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);
}
Aggregations