org.activeio.adapter
Class SynchToAsynchChannelAdapter

java.lang.Object
  extended byorg.activeio.adapter.SynchToAsynchChannelAdapter
All Implemented Interfaces:
AsynchChannel, Channel, Disposable, InputAsynchChannel, OutputChannel, java.lang.Runnable, Service

public final class SynchToAsynchChannelAdapter
extends java.lang.Object
implements AsynchChannel, java.lang.Runnable

Adapts a SynchChannel so that it provides an AsynchChannel interface. When this channel is started, a background thread is used to poll the SynchChannel for packets comming up the channel which are then delivered to the org.activeio.ChannelConsumer.

Version:
$Revision$

Field Summary
 
Fields inherited from interface org.activeio.Service
NO_WAIT_TIMEOUT, WAIT_FOREVER_TIMEOUT
 
Constructor Summary
SynchToAsynchChannelAdapter(SynchChannel synchChannel)
          Deprecated. #adapt(SynchChannel)
SynchToAsynchChannelAdapter(SynchChannel synchChannel, EDU.oswego.cs.dl.util.concurrent.Executor executor)
          Deprecated. #adapt(SynchChannel, Executor)
 
Method Summary
static AsynchChannel adapt(Channel channel)
           
static AsynchChannel adapt(Channel channel, EDU.oswego.cs.dl.util.concurrent.Executor executor)
           
 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.
 AsynchChannelListener getAsynchChannelListener()
           
 SynchChannel getSynchChannel()
           
 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 run()
          reads packets from a Socket
 void setAsynchChannelListener(AsynchChannelListener channelListener)
          Registers the ChannelConsumer that the protcol will use to deliver packets comming 'up' the channel.
 void start()
          Starts the channel.
 void stop(long timeout)
          Stops the channel.
 java.lang.String toString()
           
 void write(Packet packet)
          Sends a packet down the channel towards the media.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SynchToAsynchChannelAdapter

public SynchToAsynchChannelAdapter(SynchChannel synchChannel)
Deprecated. #adapt(SynchChannel)


SynchToAsynchChannelAdapter

public SynchToAsynchChannelAdapter(SynchChannel synchChannel,
                                   EDU.oswego.cs.dl.util.concurrent.Executor executor)
Deprecated. #adapt(SynchChannel, Executor)

Method Detail

adapt

public static AsynchChannel adapt(Channel channel)

adapt

public static AsynchChannel adapt(Channel channel,
                                  EDU.oswego.cs.dl.util.concurrent.Executor executor)

start

public void start()
           throws java.io.IOException
Description copied from interface: Service
Starts the channel. Once started, the channel is in the running state.

Specified by:
start in interface Service
Throws:
java.io.IOException

stop

public void stop(long timeout)
          throws java.io.IOException
Description copied from interface: Service
Stops the channel. Once stopped, the channel is in the stopped state.

Specified by:
stop in interface Service
Parameters:
timeout - The amount of time the channel is allowed to take to gracefully stop. If the timeout is exceeded, the channel should do a forcefull stop.
Throws:
java.io.IOException

run

public void run()
reads packets from a Socket

Specified by:
run in interface java.lang.Runnable

setAsynchChannelListener

public void setAsynchChannelListener(AsynchChannelListener channelListener)
Description copied from interface: InputAsynchChannel
Registers the ChannelConsumer that the protcol will use to deliver packets comming 'up' the channel.

Specified by:
setAsynchChannelListener in interface InputAsynchChannel
See Also:
org.activeio.AsynchChannel#setAsynchChannelListener(org.activeio.UpPacketListener)

write

public void write(Packet packet)
           throws java.io.IOException
Description copied from interface: OutputChannel
Sends a packet down the channel towards the media.

Specified by:
write in interface OutputChannel
Parameters:
packet -
Throws:
java.io.IOException
See Also:
org.activeio.Channel#write(org.activeio.channel.Packet)

flush

public void flush()
           throws java.io.IOException
Description copied from interface: OutputChannel
Some channels may buffer data which may be sent down if flush() is called.

Specified by:
flush in interface OutputChannel
Throws:
java.io.IOException
See Also:
org.activeio.Channel#flush()

dispose

public void dispose()
Description copied from interface: Disposable
This method should not throw any exceptions. Cleaning up a Disposable object should be easy of an end user therefore do not make him have to handle an Exception.

Specified by:
dispose in interface Disposable
See Also:
Disposable.dispose()

getAsynchChannelListener

public AsynchChannelListener getAsynchChannelListener()
Specified by:
getAsynchChannelListener in interface InputAsynchChannel
Returns:
the registered Packet consumer

narrow

public java.lang.Object narrow(java.lang.Class target)
Description copied from interface: Channel
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. The first Channel in the chain the implments the requested interface will be return an implementing object. If no Channel in the chain implements the requested class, then null is returned.

Specified by:
narrow in interface Channel

getSynchChannel

public SynchChannel getSynchChannel()

toString

public java.lang.String toString()


Copyright © -2005 The ActiveIO Project. All Rights Reserved.