class PoisonableBufferedOne2OneChannelInt extends java.lang.Object implements One2OneChannelInt, ChannelInternalsInt
| Modifier and Type | Field and Description |
|---|---|
private Alternative |
alt |
private ChannelDataStoreInt |
data
The ChannelDataStore used to store the data for the channel
|
private int |
immunity |
private int |
poisonStrength |
private java.lang.Object |
rwMonitor |
| Constructor and Description |
|---|
PoisonableBufferedOne2OneChannelInt(ChannelDataStoreInt data,
int _immunity)
Constructs a new BufferedOne2OneChannel with the specified ChannelDataStore.
|
| Modifier and Type | Method and Description |
|---|---|
void |
endRead() |
AltingChannelInputInt |
in()
Returns the
AltingChannelInput to use for this channel. |
private boolean |
isPoisoned() |
ChannelOutputInt |
out()
Returns the
ChannelOutput object to use for this channel. |
int |
read()
Reads an Object from the channel.
|
boolean |
readerDisable()
turns off Alternative selection for the channel.
|
boolean |
readerEnable(Alternative alt)
turns on Alternative selection for the channel.
|
boolean |
readerPending()
Returns whether there is data pending on this channel.
|
void |
readerPoison(int strength) |
int |
startRead() |
void |
write(int value)
Writes an Object to the channel.
|
void |
writerPoison(int strength) |
private final ChannelDataStoreInt data
private final java.lang.Object rwMonitor
private Alternative alt
private int immunity
private int poisonStrength
public PoisonableBufferedOne2OneChannelInt(ChannelDataStoreInt data, int _immunity)
data - the ChannelDataStore used to store the data for the channelprivate boolean isPoisoned()
public int read()
read in interface ChannelInternalsIntpublic int startRead()
startRead in interface ChannelInternalsIntpublic void endRead()
endRead in interface ChannelInternalsIntpublic void write(int value)
write in interface ChannelInternalsIntvalue - the object to write to the channel.public boolean readerEnable(Alternative alt)
Note: this method should only be called by the Alternative class
readerEnable in interface ChannelInternalsIntalt - the Alternative class which will control the selectionpublic boolean readerDisable()
Note: this method should only be called by the Alternative class
readerDisable in interface ChannelInternalsIntpublic boolean readerPending()
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 ()) {
Object x = c.read ();
... do something with x
} else (
... do something else
}
is equivalent to:
if (c_pending.priSelect () == 0) {
Object 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 ()});
readerPending in interface ChannelInternalsIntpublic AltingChannelInputInt in()
AltingChannelInput to use for this channel.
As BufferedOne2OneChannel implements
AltingChannelInput itself, this method simply returns
a reference to the object that it is called on.in in interface One2OneChannelIntAltingChannelInput object to use for this
channel.public ChannelOutputInt out()
ChannelOutput object to use for this channel.
As BufferedOne2OneChannel implements
ChannelOutput itself, this method simply returns
a reference to the object that it is called on.out in interface One2OneChannelIntChannelOutput object to use for this
channel.public void writerPoison(int strength)
writerPoison in interface ChannelInternalsIntpublic void readerPoison(int strength)
readerPoison in interface ChannelInternalsInt