Package org.jcsp.lang

Class AltingConnectionClientImpl<T>

    • Constructor Detail

      • 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 Detail

      • 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.