com.aelitis.azureus.core.networkmanager.impl
Class IncomingMessageQueueImpl

java.lang.Object
  extended by com.aelitis.azureus.core.networkmanager.impl.IncomingMessageQueueImpl
All Implemented Interfaces:
IncomingMessageQueue

public class IncomingMessageQueueImpl
extends Object
implements IncomingMessageQueue

Inbound peer message queue.


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.aelitis.azureus.core.networkmanager.IncomingMessageQueue
IncomingMessageQueue.MessageQueueListener
 
Constructor Summary
IncomingMessageQueueImpl(MessageStreamDecoder stream_decoder, NetworkConnection connection)
          Create a new incoming message queue.
 
Method Summary
 void cancelQueueListener(IncomingMessageQueue.MessageQueueListener listener)
          Cancel queue event notification listener.
 void destroy()
          Destroy this queue.
 MessageStreamDecoder getDecoder()
           
 int getPercentDoneOfCurrentMessage()
          Get the percentage of the current message that has already been received.
 void notifyOfExternallyReceivedMessage(Message message)
          Notifty the queue (and its listeners) of a message received externally on the queue's behalf.
 int[] receiveFromTransport(int max_bytes, boolean protocol_is_free)
          Receive (read) message(s) data from the underlying transport.
 void registerQueueListener(IncomingMessageQueue.MessageQueueListener listener)
          Add a listener to be notified of queue events.
 void resumeQueueProcessing()
          Manually resume processing (reading) incoming messages.
 void setDecoder(MessageStreamDecoder new_stream_decoder)
          Set the message stream decoder that will be used to decode incoming messages.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IncomingMessageQueueImpl

public IncomingMessageQueueImpl(MessageStreamDecoder stream_decoder,
                                NetworkConnection connection)
Create a new incoming message queue.

Parameters:
stream_decoder - default message stream decoder
connection - owner to read from
Method Detail

setDecoder

public void setDecoder(MessageStreamDecoder new_stream_decoder)
Set the message stream decoder that will be used to decode incoming messages.

Specified by:
setDecoder in interface IncomingMessageQueue
Parameters:
new_stream_decoder - to use

getDecoder

public MessageStreamDecoder getDecoder()
Specified by:
getDecoder in interface IncomingMessageQueue

getPercentDoneOfCurrentMessage

public int getPercentDoneOfCurrentMessage()
Get the percentage of the current message that has already been received.

Specified by:
getPercentDoneOfCurrentMessage in interface IncomingMessageQueue
Returns:
percentage complete (0-99), or -1 if no message is currently being received

receiveFromTransport

public int[] receiveFromTransport(int max_bytes,
                                  boolean protocol_is_free)
                           throws IOException
Receive (read) message(s) data from the underlying transport.

Specified by:
receiveFromTransport in interface IncomingMessageQueue
Parameters:
max_bytes - to read
Returns:
number of bytes received
Throws:
IOException - on receive error

notifyOfExternallyReceivedMessage

public void notifyOfExternallyReceivedMessage(Message message)
                                       throws IOException
Notifty the queue (and its listeners) of a message received externally on the queue's behalf.

Specified by:
notifyOfExternallyReceivedMessage in interface IncomingMessageQueue
Parameters:
message - received externally
Throws:
IOException

resumeQueueProcessing

public void resumeQueueProcessing()
Manually resume processing (reading) incoming messages. NOTE: Allows us to resume docoding externally, in case it was auto-paused internally.

Specified by:
resumeQueueProcessing in interface IncomingMessageQueue

registerQueueListener

public void registerQueueListener(IncomingMessageQueue.MessageQueueListener listener)
Add a listener to be notified of queue events.

Specified by:
registerQueueListener in interface IncomingMessageQueue
Parameters:
listener -

cancelQueueListener

public void cancelQueueListener(IncomingMessageQueue.MessageQueueListener listener)
Cancel queue event notification listener.

Specified by:
cancelQueueListener in interface IncomingMessageQueue
Parameters:
listener -

destroy

public void destroy()
Destroy this queue.

Specified by:
destroy in interface IncomingMessageQueue