protected boolean sentEOF(Pipe<?>[] pipes) { if (null != pipes) { int i = pipes.length; while (--i>=0) { if (null!=pipes[i]) { PipeWriter.publishEOF(pipes[i]); return true; } } } return false; }
/** * This sends a poison pill. Any pipe that receives this pill shuts down and sends the pill to any pipes downstream of them * @param pipe to send pill */ public static void publishEOL(Pipe pipe) { publishEOF(pipe); }
/** * This sends a poison pill. Any pipe that receives this pill shuts down and sends the pill to any pipes downstream of them * @param pipe to send pill */ public static void publishEOL(Pipe pipe) { publishEOF(pipe); }
protected boolean sentEOF(Pipe<?> pipe) { if (null!=pipe) { PipeWriter.publishEOF(pipe); return true; } else { return false; } }
/** * This sends a poison pill. Any pipe that receives this pill shuts down and sends the pill to any pipes downstream of them * @param pipe to send pill */ public static void publishEOL(Pipe pipe) { publishEOF(pipe); }
/** * This sends a poison pill. Any pipe that receives this pill shuts down and sends the pill to any pipes downstream of them * @param pipe to send pill */ public static void publishEOF(Pipe[] pipe) { int i = pipe.length; while (--i>=0) { if (null!=pipe[i] && Pipe.isInit(pipe[i])) { publishEOF(pipe[i]); } } }
/** * This sends a poison pill. Any pipe that receives this pill shuts down and sends the pill to any pipes downstream of them * @param pipe to send pill */ public static void publishEOF(Pipe[] pipe) { int i = pipe.length; while (--i>=0) { if (null!=pipe[i] && Pipe.isInit(pipe[i])) { publishEOF(pipe[i]); } } }
/** * This sends a poison pill. Any pipe that receives this pill shuts down and sends the pill to any pipes downstream of them * @param pipe to send pill */ public static void publishEOF(Pipe[] pipe) { int i = pipe.length; while (--i>=0) { if (null!=pipe[i] && Pipe.isInit(pipe[i])) { publishEOF(pipe[i]); } } }
@Override public void run() { if (0 == shutdownCountdown) { int j = output.length; while (--j>=0) { if (!PipeWriter.hasRoomForWrite(output[j])) { return; } } PipeWriter.publishEOF(output); requestShutdown(); return; } int i = input.length; while (--i >= 0) { if (PipeWriter.hasRoomForWrite(output[i])) { processRequest(input[i], output[i]); } } }
@Override public void run() { while (messageCount>0) { if (PipeWriter.tryWriteFragment(outputRing, MESSAGE_LOC)) { PipeWriter.writeBytes(outputRing, FIELD_LOC, testArray, 0, testArray.length, Integer.MAX_VALUE); PipeWriter.publishWrites(outputRing); messageCount--; } else { return; } } PipeWriter.publishEOF(outputRing); requestShutdown(); return;//do not come back } }
private void emptyReplayImpl(boolean encryption, boolean telemetry) { Pipe<PersistedBlobStoreProducerSchema> perStoreProducer = PersistedBlobStoreProducerSchema.instance.newPipe(10, 1000); Pipe<PersistedBlobStoreConsumerSchema> perStoreConsumer = PersistedBlobStoreConsumerSchema.instance.newPipe(10, 1000); perStoreProducer.initBuffers(); perStoreConsumer.initBuffers(); PipeWriter.presumeWriteFragment(perStoreConsumer, PersistedBlobStoreConsumerSchema.MSG_REQUESTREPLAY_6); PipeWriter.publishWrites(perStoreConsumer); PipeWriter.publishEOF(perStoreConsumer); String result = runGraph(perStoreProducer, perStoreConsumer, encryption, telemetry); assertTrue(result, result.indexOf("BeginReplay")>0); assertTrue(result, result.indexOf("FinishReplay")>0); }
private void writeAndReadImpl(boolean encryption, boolean telemetry) { Pipe<PersistedBlobStoreProducerSchema> perStoreProducer = PersistedBlobStoreProducerSchema.instance.newPipe(10, 1000); Pipe<PersistedBlobStoreConsumerSchema> perStoreConsumer = PersistedBlobStoreConsumerSchema.instance.newPipe(10, 1000); perStoreProducer.initBuffers(); perStoreConsumer.initBuffers(); byte[] fieldByteArrayBacking = "hello".getBytes(); int fieldByteArrayLength = fieldByteArrayBacking.length; PipeWriter.presumeWriteFragment(perStoreProducer, PersistedBlobStoreProducerSchema.MSG_BLOCK_1); PipeWriter.writeLong(perStoreProducer,PersistedBlobStoreProducerSchema.MSG_BLOCK_1_FIELD_BLOCKID_3, (long) 10); PipeWriter.writeBytes(perStoreProducer,PersistedBlobStoreProducerSchema.MSG_BLOCK_1_FIELD_BYTEARRAY_2, fieldByteArrayBacking, 0, fieldByteArrayLength); PipeWriter.publishWrites(perStoreProducer); PipeWriter.presumeWriteFragment(perStoreConsumer, PersistedBlobStoreConsumerSchema.MSG_REQUESTREPLAY_6); PipeWriter.publishWrites(perStoreConsumer); PipeWriter.publishEOF(perStoreConsumer); //ensure that the parts do not shut down before we are done PipeWriter.publishEOF(perStoreProducer); String result = runGraph(perStoreProducer, perStoreConsumer, encryption, telemetry); assertTrue(result, result.indexOf("AckWrite")>0); assertTrue(result, result.indexOf("{\"BlockId\":10}")>0); assertTrue(result, result.indexOf("0x68,0x65,0x6c,0x6c,0x6f")>0); assertTrue(result, result.indexOf("FinishReplay")>0); }
private void writeWithAckImpl(boolean encryption, boolean telemetry) { Pipe<PersistedBlobStoreProducerSchema> perStoreProducer = PersistedBlobStoreProducerSchema.instance.newPipe(10, 1000); Pipe<PersistedBlobStoreConsumerSchema> perStoreConsumer = PersistedBlobStoreConsumerSchema.instance.newPipe(10, 1000); perStoreProducer.initBuffers(); perStoreConsumer.initBuffers(); long fieldBlockId = 10; byte[] fieldByteArrayBacking = "hello".getBytes(); int fieldByteArrayPosition = 0; int fieldByteArrayLength = fieldByteArrayBacking.length; PipeWriter.presumeWriteFragment(perStoreProducer, PersistedBlobStoreProducerSchema.MSG_BLOCK_1); PipeWriter.writeLong(perStoreProducer,PersistedBlobStoreProducerSchema.MSG_BLOCK_1_FIELD_BLOCKID_3, fieldBlockId); PipeWriter.writeBytes(perStoreProducer,PersistedBlobStoreProducerSchema.MSG_BLOCK_1_FIELD_BYTEARRAY_2, fieldByteArrayBacking, fieldByteArrayPosition, fieldByteArrayLength); PipeWriter.publishWrites(perStoreProducer); PipeWriter.publishEOF(perStoreConsumer); String result = runGraph(perStoreProducer, perStoreConsumer, encryption, telemetry); assertTrue(result, result.indexOf("AckWrite")>0); assertTrue(result, result.indexOf("{\"BlockId\":10}")>0); }
PipeWriter.publishWrites(perStoreConsumer); PipeWriter.publishEOF(perStoreConsumer);
PipeWriter.publishEOF(input[0]); PipeWriter.publishEOF(input[1]); PipeWriter.publishEOF(input[2]);
SequentialCtlSchema.publishMetaRequest(control[0]); PipeWriter.publishEOF(control[0]);
PipeWriter.publishEOF(outputRing); //TODO: AA, hidden blocking call Pipe.setReleaseBatchSize(inputRing, 0); PipeReader.releaseReadLock(inputRing);