// De-queue pending messages and move them to the pipeline
synchronized (sendQueue)
{
while (!sendQueue.isEmpty() && pipeline.size() < 16)
{
AbstractPacket packet = (AbstractPacket)sendQueue.removeFirst();
pipeline.add(packet);
}
}
if (pipeline.size() > 0)
{
// Serialize all pipelined packets to buffer
while (pipeline.size() > 0)
{
AbstractPacket packet = (AbstractPacket)pipeline.removeFirst();
// We need to serialize the packet in a side buffer in order to
// know its final size before writing it to the actual output stream
RawDataBuffer buffer = outChannel.ioBuffer;
buffer.clear();