001    /*
002    // $Id: XmlaOlap4jProxy.java 243 2009-05-22 07:21:37Z jhyde $
003    // This software is subject to the terms of the Eclipse Public License v1.0
004    // Agreement, available at the following URL:
005    // http://www.eclipse.org/legal/epl-v10.html.
006    // Copyright (C) 2007-2008 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package org.olap4j.driver.xmla.proxy;
011    
012    import java.io.IOException;
013    import java.net.URL;
014    import java.util.concurrent.Future;
015    
016    /**
017     * Defines a common set of methods for proxy objects.
018     * @version $Id: XmlaOlap4jProxy.java 243 2009-05-22 07:21:37Z jhyde $
019     */
020    public interface XmlaOlap4jProxy {
021        /**
022         * Sends a request to a URL and returns the response.
023         *
024         * @param url Target URL
025         * @param request Request string
026         * @return Response The byte array that contains the whole response
027         * from the server.
028         * @throws IOException This exception declaration will be removed soon.
029         * Don't catch this. Catch XmlaOlap4jProxyException instead.
030         * @throws XmlaOlap4jProxyException If anything occurs during the
031         * request execution.
032         */
033         /*
034          * FIXME We will need to remove the IOException declaration because
035          * this type of error is linked to the proxy type. A wrapper
036          * class was created, but some proxies out there (MondrianInprocProxy...)
037          * still uses this.
038          */
039        byte[] get(
040            URL url,
041            String request)
042            throws XmlaOlap4jProxyException, IOException;
043    
044        /**
045         * Submits a request for background execution.
046         *
047         * @param url URL
048         * @param request Request
049         * @return Future object representing the submitted job
050         */
051        Future<byte[]> submit(
052            URL url,
053            String request);
054    
055        /**
056         * Returns the name of the character set use for encoding the XML
057         * string.
058         */
059        String getEncodingCharsetName();
060    }
061    
062    // End XmlaOlap4jProxy.java