public void addOutputPronghornPipes(Pipe ... pipes) { outputPipes = PronghornStage.join(outputPipes, pipes); }
public void addInputPronghornPipes(Pipe ... pipes) { inputPipes = PronghornStage.join(inputPipes, pipes); }
/** * * @param inputPipes Pipe<?> arg used in consumerJoin * @param iterator Iterator<ReactiveManagerPipeConsumer> arg used with .hasNext() * @return consumerJoin(join(inputPipes, iterator.next().inputs),iterator) if iterator.hasNext() else inputPipes */ private static Pipe[] consumerJoin(Pipe<?>[] inputPipes, Iterator<ReactiveManagerPipeConsumer> iterator) { if (iterator.hasNext()) { return consumerJoin(PronghornStage.join(inputPipes, iterator.next().inputs),iterator); } else { return inputPipes; } }
private void addRoutesToPipeMapping(int ... routeIds) { final PipeConfig<HTTPRequestSchema> pipeConfig = builder.pcm.getConfig(HTTPRequestSchema.class); final int track = parallelInstance==-1 ? 0 : parallelInstance; int i = routeIds.length; while (--i>=0) { if (null==builder.routerConfig().JSONExtractor(routeIds[i])) { //this route does not use JSON so we can join them together if (-1 == pipeIndexForNonJSONRequests) {//the one ring to rule them all was not yet forged. pipeIndexForNonJSONRequests = inputPipes.length; inputPipes = PronghornStage.join(inputPipes, builder.newHTTPRequestPipe(pipeConfig)); } restRoutesDefined |= builder.appendPipeMappingIncludingGroupIds( (Pipe<HTTPRequestSchema>) inputPipes[pipeIndexForNonJSONRequests], track, routeIds); } else { //every JSON request needs its own ring. Pipe<HTTPRequestSchema> jsonPipe = builder.newHTTPRequestPipe(pipeConfig); inputPipes = PronghornStage.join(inputPipes, jsonPipe); restRoutesDefined |= builder.appendPipeMappingIncludingGroupIds(jsonPipe, track, routeIds); } } }
inputPipes = PronghornStage.join(inputPipes, MsgRuntime.buildMessageSubscriptionPipe(builder) ); while (--i>=0) { PrivateTopic privateTopic = sourceTopics.get(i); outputPipes = PronghornStage.join(outputPipes, privateTopic.getPipe(parallelInstance)); while (--j>=0) { PrivateTopic privateTopic = targetTopics.get(j); inputPipes = PronghornStage.join(inputPipes, privateTopic.getPipe(parallelInstance));
public static void buildSimpleTLSServer(GraphManager graphManager, ServerCoordinator serverCoordinator, Pipe<NetPayloadSchema>[] serverPlainInput, Pipe<NetPayloadSchema>[] serverPlainOutput) { Pipe<ReleaseSchema>[] serverReleaseAck = new Pipe[] {ReleaseSchema.instance.newPipe(1024, 0)}; Pipe<NetPayloadSchema>[] serverHandshakePipe = new Pipe[] {NetPayloadSchema.instance.newPipe(8, 1<<16)}; Pipe<NetPayloadSchema>[] serverEncryptedInput = Pipe.buildPipes(serverPlainInput); Pipe<NetPayloadSchema>[] serverEncryptedOutput = Pipe.buildPipes(serverPlainOutput); ServerSocketReaderStage reader = new ServerSocketReaderStage(graphManager, serverReleaseAck, serverEncryptedInput, serverCoordinator); GraphManager.addNota(graphManager, GraphManager.DOT_RANK_NAME, "socket reader", reader); SSLEngineUnWrapStage unwrap = new SSLEngineUnWrapStage(graphManager, serverCoordinator, serverEncryptedInput, serverPlainInput, serverReleaseAck[0], serverHandshakePipe[0], true /*isServer*/); GraphManager.addNota(graphManager, GraphManager.DOT_RANK_NAME, "socket unwrap", unwrap); new SSLEngineWrapStage(graphManager, serverCoordinator, true /*isServer*/, serverPlainOutput, serverEncryptedOutput); new ServerSocketWriterStage(graphManager, serverCoordinator, PronghornStage.join(serverEncryptedOutput, serverHandshakePipe)); }
public static void buildSimpleTLSClient(GraphManager graphManager, ClientCoordinator clientCoordinator, Pipe<NetPayloadSchema>[] clientPlainOutput, Pipe<NetPayloadSchema>[] clientPlainInput) { Pipe<ReleaseSchema>[] clientReleaseAck =new Pipe[] {ReleaseSchema.instance.newPipe(1024, 0)}; Pipe<NetPayloadSchema>[] clientHandshakePipe = new Pipe[] {NetPayloadSchema.instance.newPipe(8, 1<<16)}; Pipe<NetPayloadSchema>[] clientEncyptedInput = Pipe.buildPipes(clientPlainInput); Pipe<NetPayloadSchema>[] clientEncryptedOutput = Pipe.buildPipes(clientPlainOutput); ClientSocketReaderStage reader = new ClientSocketReaderStage(graphManager, clientCoordinator, clientReleaseAck, clientEncyptedInput ); GraphManager.addNota(graphManager, GraphManager.DOT_RANK_NAME, "SocketReader", reader); SSLEngineUnWrapStage unwrap = new SSLEngineUnWrapStage(graphManager, clientCoordinator, clientEncyptedInput, clientPlainInput, clientReleaseAck[0], clientHandshakePipe[0], false /*isServer*/); GraphManager.addNota(graphManager, GraphManager.DOT_RANK_NAME, "UnWrap", unwrap); new SSLEngineWrapStage(graphManager, clientCoordinator, false /*isServer*/, clientPlainOutput, clientEncryptedOutput); new ClientSocketWriterStage(graphManager, clientCoordinator, PronghornStage.join(clientEncryptedOutput, clientHandshakePipe)); }
inputPipes = PronghornStage.join(inputPipes, buildNetResponsePipe);
fromModule[r] = PronghornStage.join(fromModule[r], outputPipes[r]);