public void RegisterStructures(ILibrary library) { if (library == null) { throw new ArgumentNullException("library"); } TokenValue.Register(library); }
protected override void Action(IList <Signal> inputSignals, IList <Signal> outputSignals, IList <Signal> internalSignals, IList <Bus> buses) { foreach (Signal input in inputSignals) { TokenValue token = input.Value as TokenValue; if (token == null || token.Value < 1) { return; } } // apparently all nodes ok, so we fire: foreach (Signal input in inputSignals) { input.PostNewValue(((TokenValue)input.Value).Decrement()); } foreach (Signal output in outputSignals) { output.PostNewValue(((output.Value as TokenValue) ?? TokenValue.Zero).Increment()); } }