/// <summary> /// Inititalizes a new instance of the <see cref="MqttListener"/> class. /// </summary> /// <param name="connection">The connection to listen on.</param> /// <param name="topics">The topics to subscribe to.</param> /// <param name="executor">Allows the function to be executed.</param> /// <param name="logger">The logger.</param> public MqttListener(IMqttConnection connection, TopicFilter[] topics, ITriggeredFunctionExecutor executor, ILogger logger) { _executor = executor; _logger = logger; _mqttConnection = connection; _topics = topics; _cancellationTokenSource = new CancellationTokenSource(); }
private MqttCacheTopic(IMqttConnection connection, MqttCacheTopic parent, string level) { _connection = connection; Level = level; Parent = parent; Topic = parent.Topic == null //i.e. Root ? level : parent.Topic + "/" + level; var engine = Run().Replay(1, Scheduler.Immediate); _subscription = engine.Connect(); _status = engine; }
private int _pendingInitializers; // even if we should have only one concurrent initializer, be safer public MqttCache(IMqttConnection connection) { Root = new MqttCacheTopic(connection); }
/// <summary> /// Creates a root topic /// </summary> public MqttCacheTopic(IMqttConnection connection) { _connection = connection; }