@Override public void forwardToPositive(KompicsEvent event, int wid) { if (!destroyed) { positivePort.doTrigger(event, wid, this); } }
@Override public void forwardToNegative(KompicsEvent event, int wid) { if (!destroyed) { negativePort.doTrigger(event, wid, this); } }
@Override public void forwardToPositive(KompicsEvent event, int wid) { if (!destroyed && (direction == Direction.TO_POSITIVE)) { positivePort.doTrigger(event, wid, this); } }
@Override public void forwardToNegative(KompicsEvent event, int wid) { if (!destroyed && (direction == Direction.TO_NEGATIVE)) { negativePort.doTrigger(event, wid, this); } }
@Override public void forwardToPositive(KompicsEvent event, int wid) { if (destroyed) { return; } //log.debug("Forwarding Message down: " + event.toString()); sourcePort.doTrigger(event, wid, this); }
@Override public void handle(Started event) { logger().debug("Got Started event from {}", event.component); activeSet.add(event.component); logger().debug("Active set has {} members", activeSet.size()); try { childrenLock.readLock().lock(); if ((activeSet.size() == children.size()) && (state == Component.State.STARTING)) { logger().debug("Started!"); state = Component.State.ACTIVE; if (parent != null) { ((PortCore<ControlPort>) parent.getControl()).doTrigger(new Started(component.getComponentCore()), wid, component.getComponentCore()); } } } finally { childrenLock.readLock().unlock(); } }
@Override public void handle(Start event) { if (state != Component.State.PASSIVE) { throw new KompicsException(JavaComponent.this + " received a Start event while in " + state + " state. " + "Duplicate Start events are not allowed!"); } try { childrenLock.readLock().lock(); if (!children.isEmpty()) { logger().debug("Starting..."); state = Component.State.STARTING; for (ComponentCore child : children) { logger().debug("Sending Start to child: {}", child); // start child ((PortCore<ControlPort>) child.getControl()).doTrigger( Start.event, wid, component.getComponentCore()); } } else { logger().debug("Started!"); state = Component.State.ACTIVE; if (parent != null) { ((PortCore<ControlPort>) parent.getControl()).doTrigger(new Started(component.getComponentCore()), wid, component.getComponentCore()); } } } finally { childrenLock.readLock().unlock(); } }
@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(); }
@Override public void handle(Stopped event) { logger().debug("Got Stopped event from {}", event.component); activeSet.remove(event.component); logger().debug("Active set has {} members", activeSet.size()); if (activeSet.isEmpty() && (state == Component.State.STOPPING)) { logger().debug("Stopped!"); state = Component.State.PASSIVE; component.tearDown(); if (parent != null) { ((PortCore<ControlPort>) parent.getControl()).doTrigger(new Stopped(component.getComponentCore()), wid, component.getComponentCore()); } else { synchronized (component.getComponentCore()) { component.getComponentCore().notifyAll(); } } } }
((PortCore<ControlPort>) mainCore.getControl()).doTrigger( Start.event, 0, mainCore); } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
@Override public void handle(Killed event) { logger().debug("Got Killed event from {}", event.component); activeSet.remove(event.component); doDestroy(event.component); logger().debug("Active set has {} members", activeSet.size()); if (activeSet.isEmpty() && (state == Component.State.STOPPING)) { logger().debug("Stopped!"); state = Component.State.PASSIVE; component.tearDown(); if (parent != null) { ((PortCore<ControlPort>) parent.getControl()).doTrigger(new Killed(component.getComponentCore()), wid, component.getComponentCore()); } else { synchronized (component.getComponentCore()) { component.getComponentCore().notifyAll(); } } } }
((PortCore<ControlPort>) child.getControl()).doTrigger( Stop.event, wid, component.getComponentCore()); component.tearDown(); if (parent != null) { ((PortCore<ControlPort>) parent.getControl()).doTrigger(new Stopped(component.getComponentCore()), wid, component.getComponentCore()); } else { synchronized (component.getComponentCore()) {
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()); for (Component child : children) { if (child.id() != event.forwarder) { ((PortCore<ControlPort>) child.getControl()).doTrigger( forwardedEvent, wid, component.getComponentCore()); for (Component child : children) { if (child.id() != event.forwarder) { ((PortCore<ControlPort>) child.getControl()).doTrigger( forwardedEvent, wid, component.getComponentCore()); case ORIGINAL: { Update forwardedEvent = new Update(event.update, id()); ((PortCore<ControlPort>) parent.getControl()).doTrigger( forwardedEvent, wid, component.getComponentCore()); ConfigUpdate mappedUpdate = action.upMapper.map(event.update, event.update.modify(id())); Update forwardedEvent = new Update(mappedUpdate, id()); ((PortCore<ControlPort>) parent.getControl()).doTrigger( forwardedEvent, wid, component.getComponentCore());