public void RegisterStructures(ILibrary library)
        {
            if (library == null)
            {
                throw new ArgumentNullException("library");
            }

            TokenValue.Register(library);
        }
示例#2
0
        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());
            }
        }