@Override public AstScriptNode visit(AstConnectNode connectNode, State state) { state.writeState = StreamState.OPEN; state.readState = StreamState.OPEN; for (AstStreamableNode streamable : connectNode.getStreamables()) { streamable.accept(this, state); } return null; }
@Override public AstAcceptNode visitServerStreamableNode(ServerStreamableNodeContext ctx) { AstStreamableNodeVisitor visitor = new AstStreamableNodeVisitor(factory, environment); AstStreamableNode streamableNode = visitor.visitServerStreamableNode(ctx); if (streamableNode != null) { node.getStreamables().add(streamableNode); childInfos().add(streamableNode.getRegionInfo()); } return node; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } return null; }
@Override public AstAcceptableNode visitStreamableNode(StreamableNodeContext ctx) { AstStreamableNodeVisitor visitor = new AstStreamableNodeVisitor(factory, environment); AstStreamableNode streamableNode = visitor.visitStreamableNode(ctx); if (streamableNode != null) { node.getStreamables().add(streamableNode); childInfos().add(streamableNode.getRegionInfo()); } return node; }
@Override public AstScriptNode visit(AstConnectNode connectNode, State state) { state.readWriteState = ReadWriteState.NONE; AstConnectNode newConnectNode = new AstConnectNode(connectNode); state.streamables = newConnectNode.getStreamables(); for (AstStreamableNode streamable : connectNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newConnectNode); return null; }
@Override public AstConnectNode visitStreamableNode(StreamableNodeContext ctx) { AstStreamableNodeVisitor visitor = new AstStreamableNodeVisitor(factory, environment); AstStreamableNode streamableNode = visitor.visitStreamableNode(ctx); if (streamableNode != null) { node.getStreamables().add(streamableNode); childInfos().add(streamableNode.getRegionInfo()); } return node; }
@Override public AstScriptNode visit(AstConnectNode connectNode, State state) { AstConnectNode newConnectNode = new AstConnectNode(connectNode); state.streamables = newConnectNode.getStreamables(); for (AstStreamableNode streamable : connectNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newConnectNode); return null; }
@Override public AstScriptNode visit(AstConnectNode connectNode, State state) { state.connectivityState = ConnectivityState.NONE; AstConnectNode newConnectNode = new AstConnectNode(connectNode); state.streamables = newConnectNode.getStreamables(); for (AstStreamableNode streamable : connectNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newConnectNode); return null; }
@Override public AstScriptNode visit(AstConnectNode connectNode, State state) { state.readState = ReadWriteState.NONE; state.writeState = ReadWriteState.NONE; AstConnectNode newConnectNode = new AstConnectNode(connectNode); state.streamables = newConnectNode.getStreamables(); for (AstStreamableNode streamable : connectNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newConnectNode); return null; }
@Override public Configuration visit(AstAcceptableNode acceptedNode, State state) { // masking is a no-op by default for each stream state.readUnmasker = Masker.IDENTITY_MASKER; state.writeMasker = Masker.IDENTITY_MASKER; state.pipelineAsMap = new LinkedHashMap<>(); for (AstStreamableNode streamable : acceptedNode.getStreamables()) { streamable.accept(this, state); } Map<String, ChannelHandler> pipelineAsMap = state.pipelineAsMap; String handlerName = String.format("completion#%d", pipelineAsMap.size() + 1); CompletionHandler handler = new CompletionHandler(); handler.setRegionInfo(acceptedNode.getRegionInfo()); pipelineAsMap.put(handlerName, handler); return state.configuration; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { state.readState = StreamState.OPEN; state.writeState = StreamState.OPEN; acceptable.accept(this, state); } return null; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.readWriteState = ReadWriteState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptableNode : acceptNode.getAcceptables()) { acceptableNode.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.connectivityState = ConnectivityState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { acceptable.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.readState = ReadWriteState.NONE; state.writeState = ReadWriteState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptableNode : acceptNode.getAcceptables()) { acceptableNode.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); String acceptName = acceptNode.getAcceptName(); String newAcceptName = acceptName != null ? acceptName : String.format("~accept~%d", ++state.implicitAcceptCount); state.accepts.put(newAcceptName, newAcceptNode); state.implicitAcceptName = newAcceptName; state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { assert equivalent(acceptName, acceptable.getAcceptName()); acceptable.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { state.connectivityState = ConnectivityState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { state.readWriteState = ReadWriteState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { state.readState = ReadWriteState.NONE; state.writeState = ReadWriteState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); String acceptName = acceptableNode.getAcceptName(); if (acceptName == null) { acceptName = state.implicitAcceptName; } AstAcceptNode acceptNode = state.accepts.get(acceptName); if (acceptNode == null) { RegionInfo regionInfo = acceptableNode.getRegionInfo(); throw new AstRegionException("Accept not found for accepted").initRegionInfo(regionInfo); } state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } // associate accepted stream to corresponding accept acceptNode.getAcceptables().add(newAcceptableNode); return null; }
streamable.accept(this, state);