Exemple #1
0
        protected bool ProcessSignal(ISemanticTypeStruct protocol, dynamic signal)
        {
            bool ret = false;

            currentProtocol = protocol.DeclTypeName;                            // Used in exception processing.
            // TODO: See ref 03282015 in Receptors.cs -- We probably don't need to run the Qualifier check here.
            ReceiveQualifier rq = receiveProtocols.Find(rp => rp.Protocol == protocol.DeclTypeName && rp.Qualifier(signal));

            if (rq == null)
            {
                ret = CheckSubTypes(protocol, signal);
            }
            else
            {
                try
                {
                    ret = true;
                    rq.Action(signal);
                }
                catch (Exception ex)
                {
                    EmitException(ex);
                }
            }

            return(ret);
        }
Exemple #2
0
        /// <summary>
        /// If not overridden, will invoke the action associated with the receive protocol that is qualified by the qualifier function.
        /// </summary>
        /// <param name="carrier"></param>
        public virtual void ProcessCarrier(ICarrier carrier)
        {
            currentProtocol = carrier.Protocol.DeclTypeName;                            // Used in exception processing.
            ReceiveQualifier rq = receiveProtocols.Find(rp => rp.Protocol == carrier.Protocol.DeclTypeName && rp.Qualifier(carrier.Signal));

            try
            {
                rq.Action(carrier.Signal);
            }
            catch (Exception ex)
            {
                EmitException(ex);
            }
        }
Exemple #3
0
        /// <summary>
        /// If not overridden, will invoke the action associated with the receive protocol that is qualified by the qualifier function.
        /// </summary>
        /// <param name="carrier"></param>
        public virtual void ProcessCarrier(ICarrier carrier)
        {
            ReceiveQualifier rq = receiveProtocols.Find(rp => rp.Protocol == carrier.Protocol.DeclTypeName && rp.Qualifier(carrier.Signal));

            rq.Action(carrier.Signal);
        }