public static void consume(Pipe<SequentialCtlSchema> input) { while (PipeReader.tryReadFragment(input)) { int msgIdx = PipeReader.getMsgIdx(input); switch(msgIdx) { case MSG_REPLAY_1: consumeReplay(input); break; case MSG_CLEAR_2: consumeClear(input); break; case MSG_METAREQUEST_3: consumeMetaRequest(input); break; case MSG_IDTOSAVE_4: consumeIdToSave(input); break; case -1: //requestShutdown(); break; } PipeReader.releaseReadLock(input); } }
Pipe<SequentialCtlSchema>[] control = new Pipe[]{SequentialCtlSchema.instance.newPipe(10, 1000)}; Pipe<RawDataSchema>[] input = new Pipe[]{RawDataSchema.instance.newPipe(10, 1000)}; Pipe.publishWrites(input[0]); SequentialCtlSchema.publishIdToSave(control[0], 123); SequentialCtlSchema.publishReplay(control[0]); SequentialCtlSchema.publishMetaRequest(control[0]);
assert(null!=toStoreProducer); PipeConfig<SequentialCtlSchema> ctlConfig = SequentialCtlSchema.instance.newPipeConfig(inFlightCount); PipeConfig<SequentialRespSchema> respConfig = SequentialRespSchema.instance.newPipeConfig(inFlightCount); PipeConfig<RawDataSchema> releaseConfig = RawDataSchema.instance.newPipeConfig(inFlightCount, 128);