示例#1
0
        /// <summary>
        /// Sends the given <see cref="ModelAction"/> output.
        /// </summary>
        public void SendModelOutput(ModelAction modelOutput)
        {
            lock (locker)
            {
                // Pre-filter incompatible types.
                if (modelOutput is null)
                {
                    throw new ArgumentNullException(nameof(modelOutput));
                }
                if (!ModelOutputs.Contains(modelOutput.GetType()))
                {
                    return;
                }

                Log.Debug(this, nameof(SendModelOutput) + ": " + modelOutput);
                string         serialized = modelOutput.Serialize();
                TorXakisAction output     = TorXakisAction.FromOutput(TorXakisModel.OutputChannel, serialized);
                Connector.SendOutput(output);
            }
        }