public class SimplerSPAEventStreamChannel extends java.lang.Object implements SPAEventTarget, SPAEventStreamSource
SPAEventStreamChannel, implementing
exactly the same behavioural spec, but doing so using
synchronization Tokens directly rather than indirectly
wrapped up in SynchBufMultiProds and
SynchBufSingleProds.
("Simpler" here refers to the synchronization apparatus, rather than
to the code which is acually a bit more complex than that of
SPAEventStreamChannel, due to the need for explicit
synchronization code in this case.)
| Constructor and Description |
|---|
SimplerSPAEventStreamChannel(UseJLogger lggr)
Constructs a new event channel, using the given logger.
|
| Modifier and Type | Method and Description |
|---|---|
void |
deliverAck(SPAEventAck ack)
Delivers the given acknowledgement in response to the most recently
obtained player event.
|
void |
deliverAck(java.lang.String ackmsg)
Delivers a new failure acknowledgement with the given descriptive text.
|
void |
deliverOKAck()
Delivers an OK acknowledgement.
|
SPAEvent |
getNextEvent()
Obtains and returns the most recently posted player event, blocking
if necessary until it becomes available.
|
SPAEventAck |
postEvent(EventId eid)
Posts a new event with the given id to this channel, blocking if
necessary until it is ready to accept it, before obtaining and
returning the corresponding acknowledgment.
|
SPAEventAck |
postEvent(SPAEvent evt)
Posts the given event to this channel, blocking if necessary until
it is ready to accept it, before obtaining and returning the
corresponding acknowledgment.
|
public SimplerSPAEventStreamChannel(UseJLogger lggr)
public SPAEventAck postEvent(SPAEvent evt)
postEvent in interface SPAEventTargetpublic SPAEventAck postEvent(EventId eid)
postEvent in interface SPAEventTargetpublic SPAEvent getNextEvent() throws java.lang.InterruptedException
getNextEvent in interface SPAEventStreamSourcejava.lang.InterruptedExceptionpublic void deliverAck(SPAEventAck ack) throws java.lang.InterruptedException
deliverAck in interface SPAEventStreamSourcejava.lang.InterruptedExceptionpublic void deliverOKAck()
throws java.lang.InterruptedException
deliverOKAck in interface SPAEventStreamSourcejava.lang.InterruptedExceptionpublic void deliverAck(java.lang.String ackmsg)
throws java.lang.InterruptedException
deliverAck in interface SPAEventStreamSourcejava.lang.InterruptedException