class MQTT::Subscriptions::ValueTrackerSubscription

Attributes

value[R]

Public Class Methods

new(topic, qos = 1) click to toggle source
Calls superclass method MQTT::Subscriptions::Subscription::new
# File lib/mqtt/subscription_classes.rb, line 50
def initialize(topic, qos = 1)
        raise ArgumentError, "Tracking of topic wildcards is prohibited! Topic: #{topic}" if topic =~ /[#\+]/
        super(topic, qos);

        @value = nil;

        @callbackList = Array.new();
end

Public Instance Methods

attach(callback) click to toggle source
# File lib/mqtt/subscription_classes.rb, line 69
def attach(callback)
        @callbackList << callback;
        callback.call(@value, nil) if(@value);
        return callback;
end
detach(callback) click to toggle source
# File lib/mqtt/subscription_classes.rb, line 74
def detach(callback)
        @callbackList.delete callback;
end
offer(_topicList, data) click to toggle source
# File lib/mqtt/subscription_classes.rb, line 59
def offer(_topicList, data)
        return if data == @value;
        oldValue = @value;
        @value = data;

        @callbackList.each do |cb|
                cb.call(data, oldValue);
        end
end