private static class HubXmlRpcHandler.HubActorImpl extends java.lang.Object implements HubActor
HubActor
interface which does
the work for this class.
Apart from a few methods which have Standard-Profile-specific
aspects, the work is simply delegated to the hub connection factory.Modifier and Type | Field and Description |
---|---|
private java.util.Map |
clientMap_ |
private KeyGenerator |
keyGen_ |
private ClientProfile |
profile_ |
private java.lang.String |
secret_ |
private SampXmlRpcClientFactory |
xClientFactory_ |
Constructor and Description |
---|
HubActorImpl(SampXmlRpcClientFactory xClientFactory,
ClientProfile profile,
java.lang.String secret,
KeyGenerator keyGen)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
call(java.lang.String privateKey,
java.lang.String recipientId,
java.lang.String msgTag,
java.util.Map msg)
Sends a message to a given client expecting a response.
|
java.util.Map |
callAll(java.lang.String privateKey,
java.lang.String msgTag,
java.util.Map msg)
Sends a message to all subscribed clients expecting responses.
|
java.util.Map |
callAndWait(java.lang.String privateKey,
java.lang.String recipientId,
java.util.Map msg,
java.lang.String timeoutStr)
Sends a message synchronously to a client.
|
void |
declareMetadata(java.lang.String privateKey,
java.util.Map metadata)
Declares metadata for the calling client.
|
void |
declareSubscriptions(java.lang.String privateKey,
java.util.Map subs)
Declares subscription information for the calling client.
|
private HubConnection |
getConnection(java.lang.String privateKey)
Returns the HubConnection associated with a private key used
by this hub actor.
|
java.util.Map |
getMetadata(java.lang.String privateKey,
java.lang.String clientId)
Returns metadata for a given client.
|
java.util.List |
getRegisteredClients(java.lang.String privateKey)
Returns a list of the public-ids of all currently registered clients.
|
java.util.Map |
getSubscribedClients(java.lang.String privateKey,
java.lang.String mtype)
Returns a map of the clients subscribed to a given MType.
|
java.util.Map |
getSubscriptions(java.lang.String privateKey,
java.lang.String clientId)
Returns subscriptions for a given client.
|
void |
notify(java.lang.String privateKey,
java.lang.String recipientId,
java.util.Map msg)
Sends a message to a given client without wanting a response.
|
java.util.List |
notifyAll(java.lang.String privateKey,
java.util.Map msg)
Sends a message to all subscribed clients without wanting a response.
|
void |
ping()
Throws an exception if service is not operating.
|
void |
ping(java.lang.String privateKey)
Throws an exception if service is not operating.
|
java.util.Map |
register(java.lang.String secret)
Registers a new client and returns a map with registration information.
|
void |
reply(java.lang.String privateKey,
java.lang.String msgId,
java.util.Map response)
Responds to a previously sent message.
|
void |
setXmlrpcCallback(java.lang.String privateKey,
java.lang.String surl)
Sets the XML-RPC URL to use for callbacks for a callable client.
|
void |
unregister(java.lang.String privateKey)
Unregisters a registered client.
|
private final SampXmlRpcClientFactory xClientFactory_
private final ClientProfile profile_
private final java.lang.String secret_
private final KeyGenerator keyGen_
private final java.util.Map clientMap_
HubActorImpl(SampXmlRpcClientFactory xClientFactory, ClientProfile profile, java.lang.String secret, KeyGenerator keyGen)
xClientFactory
- XML-RPC client factory implementationprofile
- hub connection factorysecret
- password required for client registrationkeyGen
- generator for private keyspublic java.util.Map register(java.lang.String secret) throws SampException
HubActor
register
in interface HubActor
secret
- registration passwordRegInfo
-like map.SampException
public void unregister(java.lang.String privateKey) throws SampException
HubActor
unregister
in interface HubActor
privateKey
- calling client private keySampException
public void ping(java.lang.String privateKey) throws SampException
HubActor
ping
in interface HubActor
privateKey
- ignoredSampException
public void setXmlrpcCallback(java.lang.String privateKey, java.lang.String surl) throws SampException
HubActor
setXmlrpcCallback
in interface HubActor
privateKey
- calling client private keysurl
- XML-RPC endpoint for client API callbacksSampException
public void declareMetadata(java.lang.String privateKey, java.util.Map metadata) throws SampException
HubActor
declareMetadata
in interface HubActor
privateKey
- calling client private keymetadata
- Metadata
-like mapSampException
public java.util.Map getMetadata(java.lang.String privateKey, java.lang.String clientId) throws SampException
HubActor
getMetadata
in interface HubActor
privateKey
- calling client private keyclientId
- public ID for client whose metadata is requiredMetadata
-like mapSampException
public void declareSubscriptions(java.lang.String privateKey, java.util.Map subs) throws SampException
HubActor
declareSubscriptions
in interface HubActor
privateKey
- calling client private keysubs
- Subscriptions
-like mapSampException
public java.util.Map getSubscriptions(java.lang.String privateKey, java.lang.String clientId) throws SampException
HubActor
getSubscriptions
in interface HubActor
privateKey
- calling client private keySubscriptions
-like mapSampException
public java.util.List getRegisteredClients(java.lang.String privateKey) throws SampException
HubActor
getRegisteredClients
in interface HubActor
privateKey
- calling client private keySampException
public java.util.Map getSubscribedClients(java.lang.String privateKey, java.lang.String mtype) throws SampException
HubActor
getSubscribedClients
in interface HubActor
privateKey
- calling client private keymtype
- MType of interestmtype
SampException
public void notify(java.lang.String privateKey, java.lang.String recipientId, java.util.Map msg) throws SampException
HubActor
notify
in interface HubActor
privateKey
- calling client private keyrecipientId
- public-id of client to receive messagemsg
- Message
-like mapSampException
public java.util.List notifyAll(java.lang.String privateKey, java.util.Map msg) throws SampException
HubActor
notifyAll
in interface HubActor
privateKey
- calling client private keymsg
- Message
-like mapSampException
public java.lang.String call(java.lang.String privateKey, java.lang.String recipientId, java.lang.String msgTag, java.util.Map msg) throws SampException
HubActor
call
in interface HubActor
privateKey
- calling client private keyrecipientId
- public-id of client to receive messagemsgTag
- arbitrary string tagging this message for caller's
benefitmsg
- Message
-like mapSampException
public java.util.Map callAll(java.lang.String privateKey, java.lang.String msgTag, java.util.Map msg) throws SampException
HubActor
callAll
in interface HubActor
privateKey
- calling client private keymsgTag
- arbitrary string tagging this message for caller's
benefitmsg
- Message
-like mapSampException
public java.util.Map callAndWait(java.lang.String privateKey, java.lang.String recipientId, java.util.Map msg, java.lang.String timeoutStr) throws SampException
HubActor
callAndWait
in interface HubActor
privateKey
- calling client private keyrecipientId
- public-id of client to receive messagemsg
- Message
-like maptimeoutStr
- timeout in seconds encoded as a SAMP intResponse
-like mapSampException
public void reply(java.lang.String privateKey, java.lang.String msgId, java.util.Map response) throws SampException
HubActor
reply
in interface HubActor
privateKey
- calling client private keymsgId
- ID associated with earlier sendresponse
- Response
-like mapSampException
public void ping() throws SampException
HubActor
ping
in interface HubActor
SampException
private HubConnection getConnection(java.lang.String privateKey) throws SampException
privateKey
- private keyprivateKey
SampException