Class IncomingMessageQueueImpl
java.lang.Object
com.biglybt.core.networkmanager.impl.IncomingMessageQueueImpl
- All Implemented Interfaces:
IncomingMessageQueue
Inbound peer message queue.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.biglybt.core.networkmanager.IncomingMessageQueue
IncomingMessageQueue.MessageQueueListener
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final NetworkConnection
private final AEMonitor
private MessageStreamDecoder
-
Constructor Summary
ConstructorsConstructorDescriptionIncomingMessageQueueImpl
(MessageStreamDecoder stream_decoder, NetworkConnection connection) Create a new incoming message queue. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Cancel queue event notification listener.void
destroy()
Destroy this queue.int[]
Get the progress of the current message that is being receivedvoid
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
Add a listener to be notified of queue events.void
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.
-
Field Details
-
listeners
-
listeners_mon
-
stream_decoder
-
connection
-
-
Constructor Details
-
IncomingMessageQueueImpl
Create a new incoming message queue.- Parameters:
stream_decoder
- default message stream decoderconnection
- owner to read from
-
-
Method Details
-
setDecoder
Set the message stream decoder that will be used to decode incoming messages.- Specified by:
setDecoder
in interfaceIncomingMessageQueue
- Parameters:
new_stream_decoder
- to use
-
getDecoder
- Specified by:
getDecoder
in interfaceIncomingMessageQueue
-
getCurrentMessageProgress
public int[] getCurrentMessageProgress()Description copied from interface:IncomingMessageQueue
Get the progress of the current message that is being received- Specified by:
getCurrentMessageProgress
in interfaceIncomingMessageQueue
- Returns:
- [size, done] or null
-
receiveFromTransport
Receive (read) message(s) data from the underlying transport.- Specified by:
receiveFromTransport
in interfaceIncomingMessageQueue
- Parameters:
max_bytes
- to read- Returns:
- number of bytes received
- Throws:
IOException
- on receive error
-
notifyOfExternallyReceivedMessage
Notifty the queue (and its listeners) of a message received externally on the queue's behalf.- Specified by:
notifyOfExternallyReceivedMessage
in interfaceIncomingMessageQueue
- 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 interfaceIncomingMessageQueue
-
registerQueueListener
Add a listener to be notified of queue events.- Specified by:
registerQueueListener
in interfaceIncomingMessageQueue
- Parameters:
listener
-
-
cancelQueueListener
Cancel queue event notification listener.- Specified by:
cancelQueueListener
in interfaceIncomingMessageQueue
- Parameters:
listener
-
-
destroy
public void destroy()Destroy this queue.- Specified by:
destroy
in interfaceIncomingMessageQueue
-