Class InternalClient
- java.lang.Object
-
- org.astrogrid.samp.xmlrpc.internal.InternalClient
-
- All Implemented Interfaces:
SampXmlRpcClient
- Direct Known Subclasses:
RpcLoggingInternalClient
,TestXmlrpcClient
,XmlLoggingInternalClient
public class InternalClient extends java.lang.Object implements SampXmlRpcClient
XML-RPC client implementation suitable for use with SAMP. This implementation is completely freestanding and requires no other libraries.- Since:
- 26 Aug 2008
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
InternalClient.XmlRpcFault
IOException representing an incoming XML-RPC fault.
-
Field Summary
Fields Modifier and Type Field Description private java.net.URL
endpoint_
private static java.util.logging.Logger
logger_
private java.lang.String
userAgent_
-
Constructor Summary
Constructors Constructor Description InternalClient(java.net.URL endpoint)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
callAndForget(java.lang.String method, java.util.List params)
Sends a call, but does not wait around for the response.java.lang.Object
callAndWait(java.lang.String method, java.util.List params)
Makes a synchronous call, waiting for the response and returning the result.protected java.lang.Object
deserializeResponse(java.io.InputStream in)
Deserializes an XML-RPCmethodResponse
document to a Java object.protected byte[]
serializeCall(java.lang.String method, java.util.List paramList)
Generates the XMLmethodCall
document corresponding to an XML-RPC method call.
-
-
-
Method Detail
-
callAndWait
public java.lang.Object callAndWait(java.lang.String method, java.util.List params) throws java.io.IOException
Description copied from interface:SampXmlRpcClient
Makes a synchronous call, waiting for the response and returning the result.- Specified by:
callAndWait
in interfaceSampXmlRpcClient
- Parameters:
method
- XML-RPC method nameparams
- parameters for XML-RPC call (SAMP-compatible)- Returns:
- XML-RPC call return value (SAMP-compatible)
- Throws:
java.io.IOException
-
callAndForget
public void callAndForget(java.lang.String method, java.util.List params) throws java.io.IOException
Description copied from interface:SampXmlRpcClient
Sends a call, but does not wait around for the response. If possible, this method should complete quickly.NOTE: it seems to be difficult to implement this method in a way which is faster than
SampXmlRpcClient.callAndWait(java.lang.String, java.util.List)
but does not cause problems elsewhere (incomplete HTTP responses). It is probably a good idea to avoid using it if possible.- Specified by:
callAndForget
in interfaceSampXmlRpcClient
- Parameters:
method
- XML-RPC method nameparams
- parameters for XML-RPC call (SAMP-compatible)- Throws:
java.io.IOException
-
serializeCall
protected byte[] serializeCall(java.lang.String method, java.util.List paramList) throws java.io.IOException
Generates the XMLmethodCall
document corresponding to an XML-RPC method call.- Parameters:
method
- methodName stringparamList
- list of XML-RPC parameters- Returns:
- XML document as byte array
- Throws:
java.io.IOException
-
deserializeResponse
protected java.lang.Object deserializeResponse(java.io.InputStream in) throws java.io.IOException
Deserializes an XML-RPCmethodResponse
document to a Java object.- Parameters:
in
- input stream containing response document- Throws:
java.io.IOException
-
-