///<summary>Construct a ShutdownEventArgs with the given
 ///parameters, 0 for ClassId and MethodId, and a null
 ///Cause.</summary>
 public ShutdownEventArgs(ShutdownInitiator initiator,
                          ushort replyCode,
                          string replyText)
     : this(initiator,
         replyCode,
         replyText,
         null)
 { }
 ///<summary>Construct a ShutdownEventArgs with the given
 ///parameters, 0 for ClassId and MethodId, and a null
 ///Cause.</summary>
 public ShutdownEventArgs(ShutdownInitiator initiator,
                          ushort replyCode,
                          string replyText)
     : this(initiator,
            replyCode,
            replyText,
            null)
 {
 }
 /// <summary>
 /// Construct a <see cref="ShutdownEventArgs"/> with the given parameters.
 /// </summary>
 public ShutdownEventArgs(ShutdownInitiator initiator, ushort replyCode, string replyText,
     ushort classId, ushort methodId, object cause = null)
 {
     Initiator = initiator;
     ReplyCode = replyCode;
     ReplyText = replyText;
     ClassId = classId;
     MethodId = methodId;
     Cause = cause;
 }
        public void Close(ShutdownInitiator initiator, ushort reasonCode, string reasonText)
        {
            lock (_lock)
            {
                IsOpen      = false;
                CloseReason = new ShutdownEventArgs(initiator, reasonCode, reasonText);

                _models.ForEach(m => m.Close(initiator, reasonCode, reasonText));
            }
        }
示例#5
0
 /// <summary>
 /// Construct a <see cref="ShutdownEventArgs"/> with the given parameters.
 /// </summary>
 public ShutdownEventArgs(ShutdownInitiator initiator, ushort replyCode, string replyText,
                          ushort classId, ushort methodId, object cause = null)
 {
     Initiator = initiator;
     ReplyCode = replyCode;
     ReplyText = replyText;
     ClassId   = classId;
     MethodId  = methodId;
     Cause     = cause;
 }
 public ShutdownSignalException(ShutdownInitiator shutdownInitiator, object cause, ushort classId,
                                ushort methodId, ushort replyCode, string replyText)
     : base(GenerateExceptionMessage(shutdownInitiator, cause, classId, methodId, replyCode, replyText))
 {
     ShutdownInitiator = shutdownInitiator;
     Cause             = cause;
     ClassId           = classId;
     MethodId          = methodId;
     ReplyCode         = replyCode;
     ReplyText         = replyText;
 }
 ///<summary>Construct a ShutdownEventArgs with the given
 ///parameters and 0 for ClassId and MethodId.</summary>
 public ShutdownEventArgs(ShutdownInitiator initiator,
                          ushort replyCode,
                          string replyText,
          object cause)
     : this(initiator,
         replyCode,
         replyText,
         0,
         0,
         cause)
 {
 }
 ///<summary>Construct a ShutdownEventArgs with the given
 ///parameters and 0 for ClassId and MethodId.</summary>
 public ShutdownEventArgs(ShutdownInitiator initiator,
                          ushort replyCode,
                          string replyText,
                          object cause)
     : this(initiator,
            replyCode,
            replyText,
            0,
            0,
            cause)
 {
 }
 ///<summary>Construct a ShutdownEventArgs with the given
 ///parameters and a null cause.</summary>
 public ShutdownEventArgs(ShutdownInitiator initiator,
                          ushort replyCode,
                          string replyText,
                          ushort classId,
                          ushort methodId)
     : this(initiator,
            replyCode,
            replyText,
            classId,
            methodId,
            null)
 {
 }
 ///<summary>Construct a ShutdownEventArgs with the given
 ///parameters.</summary>
 public ShutdownEventArgs(ShutdownInitiator initiator,
                          ushort replyCode,
                          string replyText,
                          ushort classId,
                          ushort methodId,
                          object cause)
 {
     m_initiator = initiator;
     m_replyCode = replyCode;
     m_replyText = replyText;
     m_classId   = classId;
     m_methodId  = methodId;
     m_cause     = cause;
 }
示例#11
0
        public void Close(ShutdownInitiator initiator, ushort replyCode, string replyText)
        {
            IsClosed    = true;
            IsOpen      = false;
            CloseReason = new ShutdownEventArgs(initiator, replyCode, replyText);

            foreach (var consumer in _consumers.Values)
            {
                if (consumer is IAsyncBasicConsumer asyncConsumer)
                {
                    asyncConsumer.HandleModelShutdown(this, CloseReason);
                }
                else
                {
                    consumer.HandleModelShutdown(this, CloseReason);
                }
            }
        }
 ///<summary>Construct a ShutdownEventArgs with the given
 ///parameters.</summary>
 public ShutdownEventArgs(ShutdownInitiator initiator,
                          ushort replyCode,
                          string replyText,
                          ushort classId,
                          ushort methodId,
                          object cause)
 {
     m_initiator = initiator;
     m_replyCode = replyCode;
     m_replyText = replyText;
     m_classId = classId;
     m_methodId = methodId;
     m_cause = cause;
 }
 ///<summary>Construct a ShutdownEventArgs with the given
 ///parameters and a null cause.</summary>
 public ShutdownEventArgs(ShutdownInitiator initiator,
                          ushort replyCode,
                          string replyText,
                          ushort classId,
                          ushort methodId)
     : this(initiator,
             replyCode,
             replyText,
             classId,
             methodId,
             null)
 { }
 public void Abort(ushort reasonCode, string reasonText,
                   ShutdownInitiator initiator, int timeout)
 {
     Close( new ShutdownEventArgs(initiator, reasonCode, reasonText),
           true, timeout);
 }
示例#15
0
 public void Abort(ushort reasonCode, string reasonText,
                   ShutdownInitiator initiator, int timeout)
 {
     Close(new ShutdownEventArgs(initiator, reasonCode, reasonText),
           true, timeout);
 }
示例#16
0
 private static string GenerateExceptionMessage(ShutdownInitiator shutdownInitiator, object cause, ushort classId,
                                                ushort methodId, ushort replyCode, string replyText)
 {
     return
         ($"ShutdownSignal has been received, ShutdownInitiator={shutdownInitiator}, Cause={cause}, ClassId={classId}, MethodId={methodId}, ReplyCode={replyCode}, ReplyText={replyText}");
 }
示例#17
0
 public Task Abort(ushort reasonCode, string reasonText,
                   ShutdownInitiator initiator, int timeout)
 {
     return(Close(new ShutdownEventArgs(initiator, reasonCode, reasonText),
                  true, timeout));
 }