public static void consume(Pipe<NetPayloadSchema> input) { while (PipeReader.tryReadFragment(input)) { int msgIdx = PipeReader.getMsgIdx(input); switch(msgIdx) { case MSG_ENCRYPTED_200: consumeEncrypted(input); break; case MSG_PLAIN_210: consumePlain(input); break; case MSG_DISCONNECT_203: consumeDisconnect(input); break; case MSG_UPGRADE_307: consumeUpgrade(input); break; case MSG_BEGIN_208: consumeBegin(input); break; case -1: //requestShutdown(); break; } PipeReader.releaseReadLock(input); } }