MqttSessionStatus.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading.Tasks;
  4. namespace MQTTnet.Server.Status
  5. {
  6. public class MqttSessionStatus : IMqttSessionStatus
  7. {
  8. readonly MqttClientSession _session;
  9. readonly MqttClientSessionsManager _sessionsManager;
  10. public MqttSessionStatus(MqttClientSession session, MqttClientSessionsManager sessionsManager)
  11. {
  12. _session = session ?? throw new ArgumentNullException(nameof(session));
  13. _sessionsManager = sessionsManager ?? throw new ArgumentNullException(nameof(sessionsManager));
  14. }
  15. public string ClientId { get; set; }
  16. public long PendingApplicationMessagesCount { get; set; }
  17. public DateTime CreatedTimestamp { get; set; }
  18. public IDictionary<object, object> Items { get; set; }
  19. public Task DeleteAsync()
  20. {
  21. return _sessionsManager.DeleteSessionAsync(ClientId);
  22. }
  23. public Task ClearPendingApplicationMessagesAsync()
  24. {
  25. _session.ApplicationMessagesQueue.Clear();
  26. return Task.FromResult(0);
  27. }
  28. }
  29. }