Class VinciClient

java.lang.Object
org.apache.vinci.transport.BaseClient
org.apache.vinci.transport.VinciClient

public class VinciClient extends BaseClient
Class for conjuring a Vinci service. Adds VNS resolution to BaseClient. Extends BaseClient with static "sendAndReceive" and "rpc" methods for convenient support of one-shot queries.
  • Constructor Details Link icon

  • Method Details Link icon

    • getLevel Link icon

      public int getLevel()
      Get the priority level of the service to which this client is connected. This method only works after the connection has been opened.
      Returns:
      -
    • getInstance Link icon

      public int getInstance()
      Get the instance number of this service. This method only works after the connection has been opened. Services should have "non zero" instance numbers only when more than one instance of the service is running on the same host. The unique instance value allows each instance to be distinguished and uniquely addressed via a fully qualified service name.
      Returns:
      -
    • sendAndReceive Link icon

      public static Transportable sendAndReceive(Transportable in, String service_name, TransportableFactory factory) throws IOException, ServiceException, ServiceDownException, VNSException
      Convenience method for "one-shot"/single-query connections. Equivalent of manually creating a new VinciClient(), calling (non-static) sendAndReceive, and then closing the client.
      Parameters:
      in - -
      service_name - -
      factory - -
      Returns:
      -
      Throws:
      IOException - -
      ServiceException - -
      ServiceDownException - -
      VNSException - -
      IllegalStateException - if the VNS host has not been specified.
    • sendAndReceive Link icon

      public static Transportable sendAndReceive(Transportable in, String service_name, TransportableFactory factory, int socket_timeout) throws IOException, ServiceException
      Convenience method for "one-shot"/single-query connections. Equivalent of manually creating a new VinciClient(), calling (non-static) sendAndReceive, and then closing the client.
      Parameters:
      in - -
      service_name - -
      factory - -
      socket_timeout - -
      Returns:
      -
      Throws:
      IOException - -
      ServiceException - -
      IllegalStateException - if the VNS host has not been specified.
    • sendAndReceive Link icon

      public static Transportable sendAndReceive(Transportable in, String service_name, TransportableFactory factory, int socket_timeout, int connect_timeout) throws IOException, ServiceException
      Convenience method for "one-shot"/single-query connections. Equivalent of manually creating a new VinciClient(), calling (non-static) sendAndReceive, and then closing the client.
      Parameters:
      in - -
      service_name - -
      factory - -
      socket_timeout - -
      connect_timeout - -
      Returns:
      -
      Throws:
      IOException - -
      ServiceException - -
      IllegalStateException - if the VNS host has not been specified.
    • getContext Link icon

      public VinciContext getContext()
      Get the context associated with this client. By default clients use the global Vinci context, though this can be overridden.
      Returns:
      -
    • setContext Link icon

      public void setContext(VinciContext c)
      Set the VinciContext to be used by this client. Set to null if you wish the global context to be used. You should set the context BEFORE a connection is open (e.g. ater using the no-arg constructor), otherwise the global context parameters will be used to establish the connection before you have a chance to change it.
      Parameters:
      c - -
    • getQualifiedServiceName Link icon

      public String getQualifiedServiceName()
      Get the fully qualified name of this service. This method is useful when for whatever reason a connection needs to be re-established with this exact same service instance. This method only works after connection has been established.
      Returns:
      -
    • getServiceName Link icon

      public String getServiceName()
    • open Link icon

      public void open(String service_name) throws ServiceDownException, VNSException
      Connects the client to the specified service as delegated by VNS. Use this open method in conjunction with the no-arg VinciClient constructor.
      Parameters:
      service_name - The name of the service to connect to.
      Throws:
      ServiceDownException - Thrown when either (1) VNS is inaccessible or (2) none of the servers registered under serviceName are accessible.
      VNSException - Thrown when VNS is accessible but reports an error, which should almost always indicate that the requested service is not registered.
      IllegalStateException - if no VNS_HOST has been specified.
    • reopen Link icon

      protected void reopen(Exception e) throws IOException
      Overrides:
      reopen in class BaseClient
      Parameters:
      e - -
      Throws:
      IOException - -
    • isSocketKeepAliveEnabled Link icon

      protected boolean isSocketKeepAliveEnabled()
      Gets wheter socket keepAlive is enabled. This overrides the method in BaseClient, and makes this setting configurable through the VinciContext.
      Overrides:
      isSocketKeepAliveEnabled in class BaseClient
      Returns:
      whether socket keepAlive is enabled.
    • rpc Link icon

      Same as VinciClient.sendAndReceive(Transportable) except for return type. Syntactic sugar method for the case where return result is known to be VinciFrame (eliminates the need for casting in the typical usage case).
      Parameters:
      in - -
      service_name - -
      Returns:
      A VinciFrame representing the service result.
      Throws:
      IllegalStateException - if the VNS host has not been specified.
      IOException - -
      ServiceException - -
      ServiceDownException - -
      VNSException - -
    • rpc Link icon

      public static VinciFrame rpc(Transportable in, String service_name, int timeout) throws IOException, ServiceException, ServiceDownException, VNSException
      Same as VinciClient.sendAndReceive(Transportable, service_name) except it also takes a timeout value. WARNING: This method "hides" the BaseClient rpc method with the same signature. The BaseClient method accepts (Transportable, host string, port) whereas this one accepts (Transportable, service_name, timeout). Despite the equivalent signatures, the semantics of these two methods are quite different.
      Parameters:
      in - -
      service_name - -
      timeout - -
      Returns:
      A VinciFrame representing the service result.
      Throws:
      IOException - -
      ServiceException - -
      ServiceDownException - -
      VNSException - -
    • rpc Link icon

      public static VinciFrame rpc(Transportable in, String service_name, int timeout, int connect_timeout) throws IOException, ServiceException, ServiceDownException, VNSException
      Same as VinciClient.sendAndReceive(Transportable, service_name) except it also takes socket read and socket connect timeout values. WARNING: This method "hides" the BaseClient rpc method with the same signature. The BaseClient method accepts (Transportable, host string, port) whereas this one accepts (Transportable, service_name, timeout). Despite the equivalent signatures, the semantics of these two methods are quite different.
      Parameters:
      in - -
      service_name - -
      timeout - -
      connect_timeout - -
      Returns:
      A VinciFrame representing the service result.
      Throws:
      IOException - -
      ServiceException - -
      ServiceDownException - -
      VNSException - -
    • main Link icon

      public static void main(String[] args) throws Exception
      Throws:
      Exception