Package org.jcsp.lang

Class AltingConnectionClientImpl<T>

java.lang.Object
org.jcsp.lang.Guard
org.jcsp.lang.AltingConnectionClient<T>
org.jcsp.lang.AltingConnectionClientImpl<T>
All Implemented Interfaces:
ConnectionClient<T>
Direct Known Subclasses:
NetAltingConnectionClient, SharedAltingConnectionClient

public class AltingConnectionClientImpl<T> extends AltingConnectionClient<T>
This class does not need to be used by standard JCSP users. It is exposed so that the connection mechanism can be extended for custom connections.
  • Field Details

  • Constructor Details

    • AltingConnectionClientImpl

      protected AltingConnectionClientImpl(AltingChannelInput fromServer, ChannelOutput openToServer, ChannelOutput reqToServer, ChannelOutput backToClient)
      Constructs a new instance. This constructor must be called by a subclass which is responsible for creating the channels used by the connection and must pass them into this constructor.
  • Method Details

    • request

      public void request(T data) throws IllegalStateException
      Sends some data over the connection to server once the connection has been opened.
      Parameters:
      data - the Object to send to the server.
      Throws:
      IllegalStateException - if the method is called when it is not meant to be.
    • reply

      public T reply() throws IllegalStateException
      Receives some data back from the server after request(Object) has been called.
      Returns:
      the Object sent from the server.
      Throws:
      IllegalStateException - if the method is called when it is not meant to be.
    • isOpen

      public boolean isOpen() throws IllegalStateException
      Returns whether the server has kept its end of the Connection open. This should only be called after a call to reply() and before any other Connection method is called.
      Returns:
      true iff the server has kept the connection open.
      Throws:
      IllegalStateException
    • claim

      protected void claim()
      This claims a lock on the client. This implementation does nothing as instances of this class are only meant to be used with One2?Connection objects.
    • release

      protected void release()
      This releases a lock on the client. This implementation does nothing as instances of this class are only meant to be used with One2?Connection objects.