public class SimplerSPAEventStreamChannel extends java.lang.Object implements SPAEventTarget, SPAEventStreamSource
SPAEventStreamChannel
, implementing
exactly the same behavioural spec, but doing so using
synchronization Token
s directly rather than indirectly
wrapped up in SynchBufMultiProd
s and
SynchBufSingleProd
s.
("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(Logger 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(Logger lggr)
public SPAEventAck postEvent(SPAEvent evt)
postEvent
in interface SPAEventTarget
public SPAEventAck postEvent(EventId eid)
postEvent
in interface SPAEventTarget
public SPAEvent getNextEvent() throws java.lang.InterruptedException
getNextEvent
in interface SPAEventStreamSource
java.lang.InterruptedException
public void deliverAck(SPAEventAck ack) throws java.lang.InterruptedException
deliverAck
in interface SPAEventStreamSource
java.lang.InterruptedException
public void deliverOKAck() throws java.lang.InterruptedException
deliverOKAck
in interface SPAEventStreamSource
java.lang.InterruptedException
public void deliverAck(java.lang.String ackmsg) throws java.lang.InterruptedException
deliverAck
in interface SPAEventStreamSource
java.lang.InterruptedException