コード例 #1
0
 public IoFilterEvent(INextFilter nextFilter, IoEventType eventType, IoSession session, Object parameter)
     : base(eventType, session, parameter)
 {
     if (nextFilter == null)
         throw new ArgumentNullException("nextFilter");
     _nextFilter = nextFilter;
 }
コード例 #2
0
 private void SetProfilers(IoEventType eventTypes)
 {
     if ((eventTypes & IoEventType.MessageReceived) == IoEventType.MessageReceived)
     {
         _messageReceivedTimerWorker = new TimerWorker();
         _profileMessageReceived     = true;
     }
     if ((eventTypes & IoEventType.MessageSent) == IoEventType.MessageSent)
     {
         _messageSentTimerWorker = new TimerWorker();
         _profileMessageSent     = true;
     }
     if ((eventTypes & IoEventType.SessionCreated) == IoEventType.SessionCreated)
     {
         _sessionCreatedTimerWorker = new TimerWorker();
         _profileSessionCreated     = true;
     }
     if ((eventTypes & IoEventType.SessionOpened) == IoEventType.SessionOpened)
     {
         _sessionOpenedTimerWorker = new TimerWorker();
         _profileSessionOpened     = true;
     }
     if ((eventTypes & IoEventType.SessionIdle) == IoEventType.SessionIdle)
     {
         _sessionIdleTimerWorker = new TimerWorker();
         _profileSessionIdle     = true;
     }
     if ((eventTypes & IoEventType.SessionClosed) == IoEventType.SessionClosed)
     {
         _sessionClosedTimerWorker = new TimerWorker();
         _profileSessionClosed     = true;
     }
 }
コード例 #3
0
ファイル: IoEvent.cs プロジェクト: zhangf911/Mina.NET
 /// <summary>
 /// </summary>
 public IoEvent(IoEventType eventType, IoSession session, Object parameter)
 {
     if (session == null)
         throw new ArgumentNullException("session");
     _eventType = eventType;
     _session = session;
     _parameter = parameter;
 }
コード例 #4
0
ファイル: ExecutorFilter.cs プロジェクト: zhangf911/Mina.NET
 /// <summary>
 /// Creates an executor filter.
 /// </summary>
 /// <param name="executor">the <see cref="IoEventExecutor"/> to run events</param>
 /// <param name="eventTypes">the event types interested</param>
 public ExecutorFilter(IoEventExecutor executor, IoEventType eventTypes)
 {
     _eventTypes = eventTypes;
     if (executor == null)
         _executor = new OrderedThreadPoolExecutor();
     else
         _executor = executor;
 }
コード例 #5
0
ファイル: IoFilterEvent.cs プロジェクト: xlg210/Mina.NET
 /// <summary>
 /// </summary>
 public IoFilterEvent(INextFilter nextFilter, IoEventType eventType, IoSession session, Object parameter)
     : base(eventType, session, parameter)
 {
     if (nextFilter == null)
     {
         throw new ArgumentNullException("nextFilter");
     }
     _nextFilter = nextFilter;
 }
コード例 #6
0
ファイル: IoEvent.cs プロジェクト: xlg210/Mina.NET
 /// <summary>
 /// </summary>
 public IoEvent(IoEventType eventType, IoSession session, Object parameter)
 {
     if (session == null)
     {
         throw new ArgumentNullException("session");
     }
     _eventType = eventType;
     _session   = session;
     _parameter = parameter;
 }
コード例 #7
0
 public ExecutorFilter(IoEventExecutor executor, IoEventType eventTypes)
 {
     _eventTypes = eventTypes;
     if (executor == null)
     {
         _executor = new OrderedThreadPoolExecutor();
     }
     else
     {
         _executor = executor;
     }
 }
コード例 #8
0
        private TimerWorker GetTimerWorker(IoEventType type)
        {
            switch (type)
            {
            case IoEventType.MessageReceived:
                if (_profileMessageReceived)
                {
                    return(_messageReceivedTimerWorker);
                }
                break;

            case IoEventType.MessageSent:
                if (_profileMessageSent)
                {
                    return(_messageSentTimerWorker);
                }
                break;

            case IoEventType.SessionCreated:
                if (_profileSessionCreated)
                {
                    return(_sessionCreatedTimerWorker);
                }
                break;

            case IoEventType.SessionOpened:
                if (_profileSessionOpened)
                {
                    return(_sessionOpenedTimerWorker);
                }
                break;

            case IoEventType.SessionIdle:
                if (_profileSessionIdle)
                {
                    return(_sessionIdleTimerWorker);
                }
                break;

            case IoEventType.SessionClosed:
                if (_profileSessionClosed)
                {
                    return(_sessionClosedTimerWorker);
                }
                break;

            default:
                break;
            }

            throw new ArgumentException("You are not monitoring this event. Please add this event first.");
        }
コード例 #9
0
 /// <summary>
 /// Get the average time for the specified method represented by the <see cref="IoEventType"/>.
 /// </summary>
 public Double GetAverageTime(IoEventType type)
 {
     return(GetTimerWorker(type).Average);
 }
コード例 #10
0
 /// <summary>
 /// Get the average time for the specified method represented by the <see cref="IoEventType"/>.
 /// </summary>
 public Double GetAverageTime(IoEventType type)
 {
     return GetTimerWorker(type).Average;
 }
コード例 #11
0
 /// <summary>
 /// Creates a profiler.
 /// </summary>
 /// <param name="timeUnit">the time unit being used</param>
 /// <param name="eventTypes">the event types to profile</param>
 public ProfilerTimerFilter(TimeUnit timeUnit, IoEventType eventTypes)
 {
     _timeUnit = timeUnit;
     SetProfilers(eventTypes);
 }
コード例 #12
0
 /// <summary>
 /// Gets maximum time the method represented by <see cref="IoEventType"/> has executed.
 /// </summary>
 public Int64 GetMaximumTime(IoEventType type)
 {
     return(GetTimerWorker(type).maximum);
 }
コード例 #13
0
 /// <summary>
 /// Gets the total time this method has been executing.
 /// </summary>
 public Int64 GetTotalTime(IoEventType type)
 {
     return GetTimerWorker(type).total;
 }
コード例 #14
0
 /// <summary>
 /// Gets the total number of times the method has been called that is represented
 /// by the <see cref="IoEventType"/>.
 /// </summary>
 public Int64 GetTotalCalls(IoEventType type)
 {
     return GetTimerWorker(type).callsNumber;
 }
コード例 #15
0
ファイル: ExecutorFilter.cs プロジェクト: zhangf911/Mina.NET
 /// <summary>
 /// Creates an executor filter with default <see cref="IoEventExecutor"/>.
 /// </summary>
 /// <param name="eventTypes">the event types interested</param>
 public ExecutorFilter(IoEventType eventTypes)
     : this(null, eventTypes)
 { }
コード例 #16
0
 /// <summary>
 /// Gets the total number of times the method has been called that is represented
 /// by the <see cref="IoEventType"/>.
 /// </summary>
 public Int64 GetTotalCalls(IoEventType type)
 {
     return(GetTimerWorker(type).callsNumber);
 }
コード例 #17
0
 /// <summary>
 /// Gets the total time this method has been executing.
 /// </summary>
 public Int64 GetTotalTime(IoEventType type)
 {
     return(GetTimerWorker(type).total);
 }
コード例 #18
0
 /// <summary>
 /// Gets maximum time the method represented by <see cref="IoEventType"/> has executed.
 /// </summary>
 public Int64 GetMaximumTime(IoEventType type)
 {
     return GetTimerWorker(type).maximum;
 }
コード例 #19
0
        private TimerWorker GetTimerWorker(IoEventType type)
        {
            switch (type)
            {
                case IoEventType.MessageReceived:
                    if (_profileMessageReceived)
                        return _messageReceivedTimerWorker;
                    break;
                case IoEventType.MessageSent:
                    if (_profileMessageSent)
                        return _messageSentTimerWorker;
                    break;
                case IoEventType.SessionCreated:
                    if (_profileSessionCreated)
                        return _sessionCreatedTimerWorker;
                    break;
                case IoEventType.SessionOpened:
                    if (_profileSessionOpened)
                        return _sessionOpenedTimerWorker;
                    break;
                case IoEventType.SessionIdle:
                    if (_profileSessionIdle)
                        return _sessionIdleTimerWorker;
                    break;
                case IoEventType.SessionClosed:
                    if (_profileSessionClosed)
                        return _sessionClosedTimerWorker;
                    break;
                default:
                    break;
            }

            throw new ArgumentException("You are not monitoring this event. Please add this event first.");
        }
コード例 #20
0
 private void SetProfilers(IoEventType eventTypes)
 {
     if ((eventTypes & IoEventType.MessageReceived) == IoEventType.MessageReceived)
     {
         _messageReceivedTimerWorker = new TimerWorker();
         _profileMessageReceived = true;
     }
     if ((eventTypes & IoEventType.MessageSent) == IoEventType.MessageSent)
     {
         _messageSentTimerWorker = new TimerWorker();
         _profileMessageSent = true;
     }
     if ((eventTypes & IoEventType.SessionCreated) == IoEventType.SessionCreated)
     {
         _sessionCreatedTimerWorker = new TimerWorker();
         _profileSessionCreated = true;
     }
     if ((eventTypes & IoEventType.SessionOpened) == IoEventType.SessionOpened)
     {
         _sessionOpenedTimerWorker = new TimerWorker();
         _profileSessionOpened = true;
     }
     if ((eventTypes & IoEventType.SessionIdle) == IoEventType.SessionIdle)
     {
         _sessionIdleTimerWorker = new TimerWorker();
         _profileSessionIdle = true;
     }
     if ((eventTypes & IoEventType.SessionClosed) == IoEventType.SessionClosed)
     {
         _sessionClosedTimerWorker = new TimerWorker();
         _profileSessionClosed = true;
     }
 }
コード例 #21
0
 /// <summary>
 /// Creates a profiler.
 /// </summary>
 /// <param name="timeUnit">the time unit being used</param>
 /// <param name="eventTypes">the event types to profile</param>
 public ProfilerTimerFilter(TimeUnit timeUnit, IoEventType eventTypes)
 {
     _timeUnit = timeUnit;
     SetProfilers(eventTypes);
 }
コード例 #22
0
 public ExecutorFilter(IoEventType eventTypes)
     : this(null, eventTypes)
 {
 }