@Override public void connectTimer(ComponentProxy proxy, Component c) { proxy.connect(timerC.getPositive(Timer.class), c.getNegative(Timer.class), Channel.TWO_WAY); } }));
@Override public void handle(Recover event) { long diff = System.currentTimeMillis() - event.timestamp; if (diff < 100) { try { LOG.debug("Waiting for connections to shutdown..."); Thread.sleep(10); trigger(event, onSelf); return; } catch (InterruptedException ex) { LOG.error("Error while waiting to recover.", ex); System.exit(1); } } LOG.info("Recovering..."); Component fr = createFRComponent(); trigger(Start.event, fr.control()); }
public void handle(CreateRing event) { if (inside) { logger.error("Already inside ring"); return; } self = event.getSelf(); // initialize ring trigger(new ChordPSInit(log2RingSize, successorListLength, stabilizationPeriod, self), ring.getControl()); // initialize router trigger(new ChordIterativeRouterInit(log2RingSize, fingerStabilizationPeriod, rpcTimeout, self), router .getControl()); logger = LoggerFactory.getLogger(getClass().getName() + "@" + self.getKey()); trigger(event, ring.getPositive(ChordPeriodicStabilization.class)); } };
public void handle(ChordNeighborsRequest event) { // System.err.println("NEIGHBORS_REQUEST"); trigger(event, chord.getPositive(ChordStatus.class)); } };
public static VirtualNetworkChannel connect(Positive<Network> sourcePort, ChannelSelector<?, ?> selector, ComponentProxy parent) { Component deadLetterBox = parent.create(DefaultDeadLetterComponent.class, Init.NONE); return connect(sourcePort, deadLetterBox.getNegative(Network.class), selector); }
public void handle(CyclonPeerInit init) { self = init.getSelf(); logger = LoggerFactory.getLogger(getClass().getName() + "@" + self.getId()); bootstrapRequestPeerCount = init.getConfiguration() .getBootstrapRequestPeerCount(); bootstrapConfiguration = init.getBootstrapConfiguration(); monitorConfiguration = init.getMonitorConfiguration(); trigger(new CyclonInit(init.getConfiguration()), cyclon .getControl()); trigger(new BootstrapClientInit(self, init .getBootstrapConfiguration()), bootstrap.getControl()); trigger(new CyclonMonitorClientInit(init.getMonitorConfiguration(), self), monitor.getControl()); } };
Update forwardedEvent = new Update(event.update, id()); for (Component child : children) { ((PortCore<ControlPort>) child.getControl()).doTrigger( forwardedEvent, wid, component.getComponentCore()); Update forwardedEvent = new Update(mappedUpdate, id()); for (Component child : children) { ((PortCore<ControlPort>) child.getControl()).doTrigger( forwardedEvent, wid, component.getComponentCore()); Update forwardedEvent = new Update(event.update, id()); for (Component child : children) { if (child.id() != event.forwarder) { ((PortCore<ControlPort>) child.getControl()).doTrigger( forwardedEvent, wid, component.getComponentCore()); Update forwardedEvent = new Update(mappedUpdate, id()); for (Component child : children) { if (child.id() != event.forwarder) { ((PortCore<ControlPort>) child.getControl()).doTrigger( forwardedEvent, wid, component.getComponentCore());
public FRComponent(FRInit init) { self = init.frAddr; acker = init.ackerAddr; Component netw = nGen.generate(myProxy, self); connect(netw.provided(Network.class), net.getPair()); subscribe(startHandler, control); subscribe(ackHandler, net); }
public void handle(JoinRing event) { if (inside) { logger.error("Already inside ring"); return; } self = event.getSelf(); // initialize ring trigger(new ChordPSInit(log2RingSize, successorListLength, stabilizationPeriod, self), ring.getControl()); // initialize router trigger(new ChordIterativeRouterInit(log2RingSize, fingerStabilizationPeriod, rpcTimeout, self), router .getControl()); logger = LoggerFactory.getLogger(getClass().getName() + "@" + self.getKey()); trigger(event, ring.getPositive(ChordPeriodicStabilization.class)); } };
public void handle(ChordLookupRequest event) { // System.err.println("LOOKUP_REQUEST"); trigger(event, chord.getPositive(ChordStructuredOverlay.class)); } };
public static VirtualNetworkChannel connect(Positive<Network> sourcePort, ComponentProxy parent) { Component deadLetterBox = parent.create(DefaultDeadLetterComponent.class, Init.NONE); return connect(sourcePort, deadLetterBox.getNegative(Network.class)); }
public void handle(ChordPeerInit init) { self = init.getSelf(); logger = LoggerFactory.getLogger(getClass().getName() + "@" + self.getId()); bootstrapRequestPeerCount = init.getChordConfiguration() .getBootstrapRequestPeerCount(); bootstrapConfiguration = init.getBootstrapConfiguration(); monitorConfiguration = init.getMonitorConfiguration(); trigger(new ChordInit(init.getChordConfiguration() .getLog2RingSize(), init.getChordConfiguration() .getSuccessorListLength(), init.getChordConfiguration() .getSuccessorStabilizationPeriod(), init .getChordConfiguration().getFingerStabilizationPeriod(), init.getChordConfiguration().getRpcTimeout()), chord .getControl()); trigger( new PingFailureDetectorInit(self, init.getFdConfiguration()), fd.getControl()); trigger(new BootstrapClientInit(self, init .getBootstrapConfiguration()), bootstrap.getControl()); trigger(new ChordMonitorClientInit(init.getMonitorConfiguration(), self), monitor.getControl()); } };
@Override public void connectTimer(ComponentProxy proxy, Component c) { proxy.connect(timerC.getPositive(Timer.class), c.getNegative(Timer.class), Channel.TWO_WAY); } }));
public void handle(JoinCyclon event) { cyclonSelf = new CyclonAddress(self, event.getCyclonId()); trigger(new CyclonWebApplicationInit(cyclonSelf, monitorConfiguration.getMonitorServerAddress(), bootstrapConfiguration.getBootstrapServerAddress(), monitorConfiguration.getClientWebPort()), webapp .getControl()); BootstrapRequest request = new BootstrapRequest("Cyclon", bootstrapRequestPeerCount); trigger(request, bootstrap.getPositive(P2pBootstrap.class)); // Join or create are triggered on BootstrapResponse } };
public void handle(CyclonNeighborsRequest event) { trigger(event, cyclon.getPositive(CyclonStatus.class)); } };
@Override void doConfigUpdate(ConfigUpdate update) { Config.Impl impl = (Config.Impl) conf; impl.apply(update, ValueMerger.NONE); Update forwardedEvent = new Update(update, id()); // forward down for (Component child : children) { ((PortCore<ControlPort>) child.getControl()).doTrigger( forwardedEvent, wid, this); } // forward up if (parent != null) { ((PortCore<ControlPort>) parent.getControl()).doTrigger( forwardedEvent, wid, this); } component.postUpdate(); }
connect(network, cyclon.getNegative(Network.class)); connect(network, bootstrap.getNegative(Network.class)); connect(network, monitor.getNegative(Network.class)); connect(timer, cyclon.getNegative(Timer.class)); connect(timer, bootstrap.getNegative(Timer.class)); connect(timer, monitor.getNegative(Timer.class)); connect(web, webapp.getPositive(Web.class)); connect(cyclon.getPositive(CyclonStatus.class), webapp .getNegative(CyclonStatus.class)); connect(cyclon.getPositive(CyclonPeerSampling.class), webapp .getNegative(CyclonPeerSampling.class)); connect(cyclon.getPositive(CyclonStatus.class), monitor .getNegative(CyclonStatus.class)); .getPositive(CyclonPeerSampling.class)); subscribe(handleBootstrapResponse, bootstrap .getPositive(P2pBootstrap.class)); subscribe(handlePeerRequest, cyclonPeer); subscribe(handlePeerResponse, cyclon .getPositive(CyclonPeerSampling.class)); subscribe(handleNeighborsRequest, cyclonPeer); subscribe(handleNeighborsResponse, cyclon .getPositive(CyclonStatus.class));
public void handle(JoinChordRing event) { // logger.debug("JOIN CHORD RING"); chordSelf = new ChordAddress(self, event.getNodeKey()); trigger(new ChordWebApplicationInit(chordSelf, monitorConfiguration.getMonitorServerAddress(), bootstrapConfiguration.getBootstrapServerAddress(), monitorConfiguration.getClientWebPort()), webapp .getControl()); BootstrapRequest request = new BootstrapRequest("Chord", bootstrapRequestPeerCount); trigger(request, bootstrap.getPositive(P2pBootstrap.class)); // Join or create are triggered on BootstrapResponse } };