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 IncomingMessageQueue
IncomingMessageQueue.MessageQueueListener -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final NetworkConnectionprivate final AEMonitorprivate MessageStreamDecoder -
Constructor Summary
ConstructorsConstructorDescriptionIncomingMessageQueueImpl(MessageStreamDecoder stream_decoder, NetworkConnection connection) Create a new incoming message queue. -
Method Summary
Modifier and TypeMethodDescriptionvoidCancel queue event notification listener.voiddestroy()Destroy this queue.int[]Get the progress of the current message that is being receivedvoidnotifyOfExternallyReceivedMessage(Message message) Notifty the queue (and its listeners) of a message received externally on the queue's behalf.long[]receiveFromTransport(long max_bytes, boolean protocol_is_free) Receive (read) message(s) data from the underlying transport.voidAdd a listener to be notified of queue events.voidManually resume processing (reading) incoming messages.voidsetDecoder(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:
setDecoderin interfaceIncomingMessageQueue- Parameters:
new_stream_decoder- to use
-
getDecoder
- Specified by:
getDecoderin interfaceIncomingMessageQueue
-
getCurrentMessageProgress
public int[] getCurrentMessageProgress()Description copied from interface:IncomingMessageQueueGet the progress of the current message that is being received- Specified by:
getCurrentMessageProgressin interfaceIncomingMessageQueue- Returns:
- [size, done] or null
-
receiveFromTransport
Receive (read) message(s) data from the underlying transport.- Specified by:
receiveFromTransportin 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:
notifyOfExternallyReceivedMessagein 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:
resumeQueueProcessingin interfaceIncomingMessageQueue
-
registerQueueListener
Add a listener to be notified of queue events.- Specified by:
registerQueueListenerin interfaceIncomingMessageQueue- Parameters:
listener-
-
cancelQueueListener
Cancel queue event notification listener.- Specified by:
cancelQueueListenerin interfaceIncomingMessageQueue- Parameters:
listener-
-
destroy
-