|
CSP for Java (JCSP) 1.0-rc4 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--jcsp.lang.Guard | +--jcsp.lang.AltingChannelInputInt | +--jcsp.lang.AltingChannelInt | +--jcsp.lang.One2OneChannelInt
This implements a one-to-one integer channel.
Any2OneChannelInt
,
One2AnyChannelInt
or
Any2AnyChannelInt
.
The reading process may ALT
on this channel.
The writing process is committed (i.e. it may not back off).
The default semantics of the channel is that of CSP -- i.e. it is zero-buffered and fully synchronised. The reading process must wait for a matching writer and vice-versa.
However, the static create method allows the user to create
a channel with a plug-in driver conforming to the
ChannelDataStoreInt
interface. This allows a variety of different channel semantics to be
introduced -- including buffered channels of user-defined capacity
(including infinite), overwriting channels (with various overwriting
policies) etc..
Standard examples are given in the jcsp.util.ints package, but
careful users may write their own.
Other static create methods allows the user to create fully initialised arrays of channels, including plug-ins if required.
Alternative
,
Any2OneChannelInt
,
One2AnyChannelInt
,
Any2AnyChannelInt
,
ChannelDataStoreInt
, Serialized FormConstructor Summary | |
One2OneChannelInt()
Constructs a new One2OneChannelInt with a ZeroBufferInt ChannelDataStoreInt. |
|
One2OneChannelInt(ChannelDataStoreInt data)
Deprecated. Use One2OneChannelInt.create (ChannelDataStoreInt). |
Method Summary | |
static One2OneChannelInt |
create(ChannelDataStoreInt store)
Creates a One2OneChannelInt using the specified ChannelDataStoreInt. |
static One2OneChannelInt[] |
create(int n)
Creates an array of One2OneChannelInts. |
static One2OneChannelInt[] |
create(int n,
ChannelDataStoreInt store)
Creates an array of One2OneChannelInts using the specified ChannelDataStoreInt. |
boolean |
pending()
Returns whether there is data pending on this channel. |
int |
read()
Reads an int from the channel. |
void |
write(int value)
Writes an int to the channel. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public One2OneChannelInt()
public One2OneChannelInt(ChannelDataStoreInt data)
data
- the ChannelDataStoreInt used to store the data for the channelMethod Detail |
public int read()
public void write(int value)
value
- the integer to write to the channel.public boolean pending()
Note: if there is, it won't go away until you read it. But if there isn't, there may be some by the time you check the result of this method.
This method is provided for convenience. Its functionality can be provided by Pri Alting the channel against a SKIP guard, although at greater run-time and syntactic cost. For example, the following code fragment:
if (c.pending ()) { integer x = c.read (); ... do something with x } else ( ... do something else }is equivalent to:
if (c_pending.priSelect () == 0) { integer x = c.read (); ... do something with x } else ( ... do something else }where earlier would have had to have been declared:
final Alternative c_pending = new Alternative (new Guard[] {c, new Skip ()});
pending
in class AltingChannelInputInt
public static One2OneChannelInt[] create(int n)
n
- the number of channels to create in the arraypublic static One2OneChannelInt create(ChannelDataStoreInt store)
public static One2OneChannelInt[] create(int n, ChannelDataStoreInt store)
n
- the number of channels to create in the array
|
CSP for Java (JCSP) 1.0-rc4 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |