hMailServer.Core.SessionManager.DecreaseSessionCount C# (CSharp) Метод

DecreaseSessionCount() публичный статический Метод

public static DecreaseSessionCount ( Protocol protocol ) : void
protocol Protocol
Результат void
        public static void DecreaseSessionCount(Protocol protocol)
        {
            switch (protocol)
            {
                case Protocol.IMAPD:
                    Interlocked.Decrement(ref _imapdSessionCount);
                    break;
                case Protocol.POP3D:
                    Interlocked.Decrement(ref _pop3dSessionCount);
                    break;
                case Protocol.SMTPD:
                    Interlocked.Decrement(ref _smtpdSessionCount);
                    break;
            }

        }
    }

Usage Example

Пример #1
0
        /// <summary>
        /// When session has completed, log any error which occured and dispose resources. This is done asynchronously
        /// sincew we want to be able to start new session without previous to complete.
        /// </summary>
        private void HandleSessionAsynchronously(Task sessionTask, Connection connection, ISession session)
        {
            sessionTask.ContinueWith(f =>
            {
                if (f.IsFaulted)
                {
                    var exception = f.Exception.InnerException;

                    _log.LogException(new LogEvent()
                    {
                        LogLevel       = LogLevel.Error,
                        EventType      = LogEventType.Application,
                        Message        = exception.Message,
                        RemoteEndpoint = connection.RemoteEndpoint,
                        SessionId      = connection.SessionId,
                        Protocol       = session.Protocol.ToString()
                    }, exception);
                }

                SessionManager.DecreaseSessionCount(session.Protocol);

                // Session has ended.
                connection.Dispose();
            });
        }