Search in sources :

Example 1 with OutgoingMessageQueueListener

use of com.biglybt.pif.network.OutgoingMessageQueueListener in project BiglyBT by BiglySoftware.

the class OutgoingMessageQueueImpl method registerListener.

@Override
public void registerListener(final OutgoingMessageQueueListener listener) {
    com.biglybt.core.networkmanager.OutgoingMessageQueue.MessageQueueListener core_listener = new com.biglybt.core.networkmanager.OutgoingMessageQueue.MessageQueueListener() {

        @Override
        public boolean messageAdded(com.biglybt.core.peermanager.messaging.Message message) {
            if (message instanceof MessageAdapter) {
                // so just use original plugin message...i.e. unwrap out of MessageAdapter
                return listener.messageAdded(((MessageAdapter) message).getPluginMessage());
            }
            // message originally created by core
            return listener.messageAdded(new MessageAdapter(message));
        }

        @Override
        public void messageQueued(com.biglybt.core.peermanager.messaging.Message message) {
        /*nothing*/
        }

        @Override
        public void messageRemoved(com.biglybt.core.peermanager.messaging.Message message) {
        /*nothing*/
        }

        @Override
        public void messageSent(com.biglybt.core.peermanager.messaging.Message message) {
            if (message instanceof MessageAdapter) {
                // the message must have been originally created by plugin encoder and wrapped
                // so just use original plugin message...i.e. unwrap out of MessageAdapter
                listener.messageSent(((MessageAdapter) message).getPluginMessage());
                return;
            }
            // message originally created by core
            listener.messageSent(new MessageAdapter(message));
        }

        @Override
        public void protocolBytesSent(int byte_count) {
            listener.bytesSent(byte_count);
        }

        @Override
        public void dataBytesSent(int byte_count) {
            listener.bytesSent(byte_count);
        }

        @Override
        public void flush() {
        }
    };
    // save this mapping for later
    registrations.put(listener, core_listener);
    core_queue.registerQueueListener(core_listener);
}
Also used : MessageAdapter(com.biglybt.pifimpl.local.messaging.MessageAdapter) Message(com.biglybt.pif.messaging.Message) OutgoingMessageQueue(com.biglybt.pif.network.OutgoingMessageQueue) OutgoingMessageQueueListener(com.biglybt.pif.network.OutgoingMessageQueueListener)

Aggregations

Message (com.biglybt.pif.messaging.Message)1 OutgoingMessageQueue (com.biglybt.pif.network.OutgoingMessageQueue)1 OutgoingMessageQueueListener (com.biglybt.pif.network.OutgoingMessageQueueListener)1 MessageAdapter (com.biglybt.pifimpl.local.messaging.MessageAdapter)1