|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.activeio.FilterAsynchChannel
org.activeio.filter.SynchornizedAsynchChannel
Used to synchronize concurrent access to an ASynchChannel.
Uses a Sync
object
for write operations. All other operations such as stop(long)
and stop(long)
just do a normal java synchronization against the SynchornizedSynchChannel
object instance. It is assumed that the Async message delivery is not
concurrent and therefore does not require synchronization.
Field Summary |
Fields inherited from class org.activeio.FilterAsynchChannel |
channelListener, next |
Fields inherited from interface org.activeio.Service |
NO_WAIT_TIMEOUT, WAIT_FOREVER_TIMEOUT |
Constructor Summary | |
SynchornizedAsynchChannel(AsynchChannel next)
|
|
SynchornizedAsynchChannel(AsynchChannel next,
EDU.oswego.cs.dl.util.concurrent.Sync writeLock)
|
Method Summary | |
void |
dispose()
This method should not throw any exceptions. |
void |
flush()
Some channels may buffer data which may be sent down if flush() is called. |
EDU.oswego.cs.dl.util.concurrent.Sync |
getWriteLock()
|
java.lang.Object |
narrow(java.lang.Class target)
Since a Channel may be composed from a chain of other Channel obejcts, this method allows you to query the chain for the specified interface. |
void |
start()
Starts the channel. |
void |
stop(long timeout)
Stops the channel. |
void |
write(Packet packet)
Sends a packet down the channel towards the media. |
Methods inherited from class org.activeio.FilterAsynchChannel |
getAsynchChannelListener, getNext, onPacket, onPacketError, setAsynchChannelListener, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public SynchornizedAsynchChannel(AsynchChannel next)
public SynchornizedAsynchChannel(AsynchChannel next, EDU.oswego.cs.dl.util.concurrent.Sync writeLock)
Method Detail |
public void write(Packet packet) throws java.io.IOException
OutputChannel
write
in interface OutputChannel
write
in class FilterAsynchChannel
java.io.IOException
org.activeio.Channel#write(org.activeio.channel.Packet)
public void flush() throws java.io.IOException
OutputChannel
flush
in interface OutputChannel
flush
in class FilterAsynchChannel
java.io.IOException
org.activeio.Channel#flush()
public void dispose()
Disposable
dispose
in interface Disposable
dispose
in class FilterAsynchChannel
Disposable.dispose()
public java.lang.Object narrow(java.lang.Class target)
Channel
narrow
in interface Channel
narrow
in class FilterAsynchChannel
public void start() throws java.io.IOException
Service
start
in interface Service
start
in class FilterAsynchChannel
java.io.IOException
- if the next channel has not been set.Service.start()
public void stop(long timeout) throws java.io.IOException
Service
stop
in interface Service
stop
in class FilterAsynchChannel
java.io.IOException
Service.stop(long)
public EDU.oswego.cs.dl.util.concurrent.Sync getWriteLock()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |