org.ros.internal.node.service
Class ServiceFactory

java.lang.Object
  extended by org.ros.internal.node.service.ServiceFactory

public class ServiceFactory
extends java.lang.Object

A factory for ServiceServers and ServiceClients.


Constructor Summary
ServiceFactory(GraphName nodeName, SlaveServer slaveServer, ServiceManager serviceManager, java.util.concurrent.ScheduledExecutorService executorService)
           
 
Method Summary
<T,S> DefaultServiceServer<T,S>
getServer(GraphName name)
           
<T,S> DefaultServiceClient<T,S>
newClient(ServiceDeclaration serviceDeclaration, MessageSerializer<T> serializer, MessageDeserializer<S> deserializer, MessageFactory messageFactory)
          Gets or creates a DefaultServiceClient instance.
<T,S> DefaultServiceServer<T,S>
newServer(ServiceDeclaration serviceDeclaration, ServiceResponseBuilder<T,S> responseBuilder, MessageDeserializer<T> deserializer, MessageSerializer<S> serializer, MessageFactory messageFactory)
          Creates a DefaultServiceServer instance and registers it with the master.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ServiceFactory

public ServiceFactory(GraphName nodeName,
                      SlaveServer slaveServer,
                      ServiceManager serviceManager,
                      java.util.concurrent.ScheduledExecutorService executorService)
Method Detail

newServer

public <T,S> DefaultServiceServer<T,S> newServer(ServiceDeclaration serviceDeclaration,
                                                 ServiceResponseBuilder<T,S> responseBuilder,
                                                 MessageDeserializer<T> deserializer,
                                                 MessageSerializer<S> serializer,
                                                 MessageFactory messageFactory)
Creates a DefaultServiceServer instance and registers it with the master.

Parameters:
serviceDeclaration - the ServiceDescription that is being served
responseBuilder - the ServiceResponseBuilder that is used to build responses
deserializer - a MessageDeserializer to be used for incoming messages
serializer - a MessageSerializer to be used for outgoing messages
messageFactory - a MessageFactory to be used for creating responses
Returns:
a DefaultServiceServer instance

getServer

public <T,S> DefaultServiceServer<T,S> getServer(GraphName name)
Parameters:
name - the GraphName of the DefaultServiceServer
Returns:
the DefaultServiceServer with the given name or null if it does not exist

newClient

public <T,S> DefaultServiceClient<T,S> newClient(ServiceDeclaration serviceDeclaration,
                                                 MessageSerializer<T> serializer,
                                                 MessageDeserializer<S> deserializer,
                                                 MessageFactory messageFactory)
Gets or creates a DefaultServiceClient instance. DefaultServiceClients are cached and reused per service. When a new DefaultServiceClient is created, it is connected to the DefaultServiceServer.

Parameters:
serviceDeclaration - the ServiceDescription that is being served
deserializer - a MessageDeserializer to be used for incoming messages
serializer - a MessageSerializer to be used for outgoing messages
messageFactory - a MessageFactory to be used for creating requests
Returns:
a DefaultServiceClient instance