Beispiel #1
0
 public void FillSessionStatus(MqttSessionStatus status)
 {
     status.ClientId         = ClientId;
     status.CreatedTimestamp = _createdTimestamp;
     status.PendingApplicationMessagesCount = ApplicationMessagesQueue.Count;
     status.Items = Items;
 }
        public Task <IList <IMqttSessionStatus> > GetSessionStatusAsync()
        {
            var result = new List <IMqttSessionStatus>();

            lock (_clientSessions)
            {
                foreach (var session in _clientSessions.Values)
                {
                    var sessionStatus = new MqttSessionStatus(session, this);
                    session.FillSessionStatus(sessionStatus);

                    result.Add(sessionStatus);
                }
            }

            return(Task.FromResult((IList <IMqttSessionStatus>)result));
        }
        public Task <IList <IMqttClientStatus> > GetClientStatusAsync()
        {
            var result = new List <IMqttClientStatus>();

            lock (_clientConnections)
            {
                foreach (var connection in _clientConnections.Values)
                {
                    var clientStatus = new MqttClientStatus(connection);
                    connection.FillClientStatus(clientStatus);

                    var sessionStatus = new MqttSessionStatus(connection.Session, this);
                    connection.Session.FillSessionStatus(sessionStatus);
                    clientStatus.Session = sessionStatus;

                    result.Add(clientStatus);
                }
            }

            return(Task.FromResult((IList <IMqttClientStatus>)result));
        }