예제 #1
0
        internal virtual void ProcessTransportFailure(TransportInfo transportInfo)
        {
            ResolvedTransport transport;

            lock (m_Transports)
            {
                if (!m_Transports.TryGetValue(transportInfo, out transport))
                {
                    return;
                }
                m_Transports.Remove(transportInfo);
            }

            var handler = TransportEvents;

            if (handler == null)
            {
                return;
            }

            lock (transport)
            {
                foreach (var transportId in transport.KnownIds)
                {
                    handler(transportId, Contract.TransportEvents.Failure);
                }
            }
        }
예제 #2
0
 protected bool Equals(TransportInfo other)
 {
     return(string.Equals(Broker, other.Broker) && string.Equals(Login, other.Login) && string.Equals(Password, other.Password) && string.Equals(Messaging, other.Messaging) && string.Equals(JailStrategyName, other.JailStrategyName));
 }
예제 #3
0
 public ResolvedTransport(TransportInfo transportInfo, Action processTransportFailure, ITransportFactory factory)
 {
     m_Factory = factory;
     m_ProcessTransportFailure = processTransportFailure;
     m_TransportInfo           = transportInfo;
 }