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
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 Summary
FieldsModifier and TypeFieldDescriptionprivate ChannelOutput
private static final int
private static final int
private static final int
private int
private AltingChannelInput<ConnectionMessage<T>>
private ConnectionClientMessage
private ConnectionClientOpenMessage
private ChannelOutput
private ChannelOutput
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AltingConnectionClientImpl
(AltingChannelInput fromServer, ChannelOutput openToServer, ChannelOutput reqToServer, ChannelOutput backToClient) Constructs a new instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
claim()
This claims a lock on the client.boolean
isOpen()
Returns whether the server has kept its end of the Connection open.protected void
release()
This releases a lock on the client.reply()
Receives some data back from the server afterrequest(Object)
has been called.void
Sends some data over the connection to server once the connection has been opened.Methods inherited from class org.jcsp.lang.AltingConnectionClient
disable, enable, getAltingChannel, pending, setAltingChannel
-
Field Details
-
currentClientState
private int currentClientState -
CLIENT_STATE_CLOSED
private static final int CLIENT_STATE_CLOSED- See Also:
-
CLIENT_STATE_MADE_REQ
private static final int CLIENT_STATE_MADE_REQ- See Also:
-
CLIENT_STATE_OPEN
private static final int CLIENT_STATE_OPEN- See Also:
-
fromServer
-
openToServer
-
reqToServer
-
backToClient
-
msg
-
msgOpen
-
-
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
Sends some data over the connection to server once the connection has been opened.- Parameters:
data
- theObject
to send to the server.- Throws:
IllegalStateException
- if the method is called when it is not meant to be.
-
reply
Receives some data back from the server afterrequest(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
Returns whether the server has kept its end of the Connection open. This should only be called after a call toreply()
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.
-