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); }
/// <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); } }
/// <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); }