org.apache.vinci.transport
Class PooledVinciClient

java.lang.Object
  extended by org.apache.vinci.transport.PooledVinciClient

public class PooledVinciClient
extends java.lang.Object

Maintains a pool of connections to a given service and allows thread-safe querying of that service. This provides a set of sendAndReceive methods with signatures equivalent to those in VinciClient, but unlike VinciClient, the methods can be invoked concurrently by multiple threads.


Constructor Summary
PooledVinciClient(java.lang.String serviceName, int maxPoolSize)
          Create a PooledVinciClient that will establish at most maxPoolSize connections to the designated service.
 
Method Summary
 void close(boolean wait)
          Close this pooled client.
 java.lang.String getServiceName()
          Get the service name to which this client connects.
 Transportable sendAndReceive(Transportable in)
          Send a request to the service and receive the response.
 Transportable sendAndReceive(Transportable in, int socketTimeout)
          Send a request to the service and receive the response, using the provided socketTimeout in place of the client-provided one.
 Transportable sendAndReceive(Transportable in, TransportableFactory f)
          Send a request to the service and receive the response, using the provided transportable factory in place of the client-provided one.
 Transportable sendAndReceive(Transportable in, TransportableFactory f, int socketTimeout)
          Send a request to the service and receive the response, using the provided transportable factory and socketTimeout in place of the client-provided ones.
 void setConnectTimeout(int connectTimeoutMillis)
          Set a connect timeout that will be used in place of BaseClient.DEFAULT_CONNECT_TIMEOUT
 void setContext(VinciContext context)
          Set a VinciContext that will be used by this PooledVinciClient instead of the default global context.
 void setSocketTimeout(int socketTimeoutMillis)
          Set a socket timeout that will be used in place of BaseClient.DEFAULT_SOCKET_TIMEOUT
 void setTransportableFactory(TransportableFactory factory)
          Set a transportable factory that will be used in place of the VinciFrame factory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PooledVinciClient

public PooledVinciClient(java.lang.String serviceName,
                         int maxPoolSize)
Create a PooledVinciClient that will establish at most maxPoolSize connections to the designated service.

Method Detail

setContext

public void setContext(VinciContext context)
Set a VinciContext that will be used by this PooledVinciClient instead of the default global context.


setConnectTimeout

public void setConnectTimeout(int connectTimeoutMillis)
Set a connect timeout that will be used in place of BaseClient.DEFAULT_CONNECT_TIMEOUT


setSocketTimeout

public void setSocketTimeout(int socketTimeoutMillis)
Set a socket timeout that will be used in place of BaseClient.DEFAULT_SOCKET_TIMEOUT


setTransportableFactory

public void setTransportableFactory(TransportableFactory factory)
Set a transportable factory that will be used in place of the VinciFrame factory.


getServiceName

public java.lang.String getServiceName()
Get the service name to which this client connects.


sendAndReceive

public Transportable sendAndReceive(Transportable in)
                             throws java.io.IOException,
                                    ServiceException
Send a request to the service and receive the response. This method is tread safe.

Throws:
java.io.IOException
ServiceException

sendAndReceive

public Transportable sendAndReceive(Transportable in,
                                    TransportableFactory f)
                             throws java.io.IOException,
                                    ServiceException
Send a request to the service and receive the response, using the provided transportable factory in place of the client-provided one. This method is tread safe.

Throws:
java.io.IOException
ServiceException

sendAndReceive

public Transportable sendAndReceive(Transportable in,
                                    TransportableFactory f,
                                    int socketTimeout)
                             throws java.io.IOException,
                                    ServiceException
Send a request to the service and receive the response, using the provided transportable factory and socketTimeout in place of the client-provided ones. This method is tread safe.

Throws:
java.io.IOException
ServiceException

sendAndReceive

public Transportable sendAndReceive(Transportable in,
                                    int socketTimeout)
                             throws java.io.IOException,
                                    ServiceException
Send a request to the service and receive the response, using the provided socketTimeout in place of the client-provided one. This method is tread safe.

Throws:
java.io.IOException
ServiceException

close

public void close(boolean wait)
Close this pooled client. Blocked requests will return IOException, as will any requests following the invocation of this method. Once a pooled client is closed it cannot be reused.

Parameters:
wait - If true, this method will block until all in-progress requests have completed, otherwise this method will return immediately (though in progress requests will still be allowed to complete)


Copyright © 2013. All Rights Reserved.