class AwsIotDevice::MqttShadowClient::MqttManager
Attributes
client_id[R]
connection_timeout_s[RW]
mqtt_operation_timeout_s[RW]
ssl[RW]
Public Class Methods
new(*args)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 15 def initialize(*args) @client = create_mqtt_adapter(*args) @mqtt_operation_timeout_s = 2 @mutex_publish = Mutex.new() @mutex_subscribe = Mutex.new() @mutex_unsubscribe = Mutex.new() end
Public Instance Methods
add_topic_callback(topic, callback, &block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 174 def add_topic_callback(topic, callback, &block) @client.add_callback_filter_topic(topic, callback, &block) end
config_endpoint(host, port)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 47 def config_endpoint(host, port) raise ArgumentError, "configure endpoint either host or port is nil" if host.nil? || port.nil? @client.host = host @client.port = port end
config_ssl_context(ca_file, key, cert)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 53 def config_ssl_context(ca_file, key, cert) self.ca_file = ca_file self.key = key self.cert = cert @client.set_tls_ssl_context(@ca_file, @cert, @key) end
connect(*args, &block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 60 def connect(*args, &block) ### Execute a mqtt opration loop in background for time period defined by mqtt_connection_timeout @client.connect(*args, &block) end
create_mqtt_adapter(*args)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 43 def create_mqtt_adapter(*args) @client = MqttAdapter::Client.new(*args) end
disconnect()
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 65 def disconnect @client.disconnect end
host()
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 27 def host @client.host end
host=(host)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 23 def host=(host) @client.host = host end
on_connack(&block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 142 def on_connack(&block) @client.on_connack(&block) if paho_client? end
on_connack=(callback)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 110 def on_connack=(callback) @client.on_connack = callback if paho_client? end
on_message(&block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 170 def on_message(&block) @client.on_message(&block) end
on_message=(callback)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 138 def on_message=(callback) @client.on_message = callback end
on_puback(&block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 154 def on_puback(&block) @client.on_puback(&block) if paho_client? end
on_puback=(callback)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 122 def on_puback=(callback) @client.on_puback = callback if paho_client? end
on_pubcomp(&block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 166 def on_pubcomp(&block) @client.on_pubcomp(&block) if paho_client? end
on_pubcomp=(callback)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 134 def on_pubcomp=(callback) @client.on_pubcomp = callback if paho_client? end
on_pubrec(&block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 158 def on_pubrec(&block) @client.on_pubrec(&block) if paho_client? end
on_pubrec=(callback)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 126 def on_pubrec=(callback) @client.on_pubrec = callback if paho_client? end
on_pubrel(&block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 162 def on_pubrel(&block) @client.on_pubrel(&block) if paho_client? end
on_pubrel=(callback)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 130 def on_pubrel=(callback) @client.on_pubrel = callback if paho_client? end
on_suback(&block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 146 def on_suback(&block) @client.on_suback(&block) if paho_client? end
on_suback=(callback)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 114 def on_suback=(callback) @client.on_suback = callback if paho_client? end
on_unsuback(&block)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 150 def on_unsuback(&block) @client.on_unsuback(&block) if paho_client? end
on_unsuback=(callback)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 118 def on_unsuback=(callback) @client.on_unsuback = callback if paho_client? end
paho_client?()
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 182 def paho_client? @client.adapter.class == MqttAdapter::PahoMqttAdapter end
port()
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 35 def port @client.port end
port=(port)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 31 def port=(port) @client.port = port end
publish(topic, payload="", retain=nil, qos=0)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 69 def publish(topic, payload="", retain=nil, qos=0) raise ArgumentError, "publish topic cannot be nil" if topic.nil? @mutex_publish.synchronize { @client.publish(topic, payload, retain, qos) } end
remove_topic_callback(topic)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 178 def remove_topic_callback(topic) @client.remove_callback_filter_topic(topic) end
subscribe(topic, qos=0, callback=nil)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 76 def subscribe(topic, qos=0, callback=nil) raise ArgumentError, "subscribe topic cannot be nil" if topic.nil? @mutex_subscribe.synchronize { @client.add_callback_filter_topic(topic, callback) @client.subscribe(topic, qos) } end
subscribe_bunch(*topics)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 84 def subscribe_bunch(*topics) @mutex_subscribe.synchronize { topics.each do |topic| @client.add_callback_filter_topic(topic.first, topic.pop) if !topic[2].nil? && topic[2].is_a?(Proc) end @client.subscribe_bunch(topics) } end
unsubscribe(topic)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 93 def unsubscribe(topic) raise ArgumentError, "unsubscribe topic cannot be nil" if topic.nil? @mutex_unsubscribe.synchronize{ @client.remove_callback_filter_topic(topic) @client.unsubscribe(topic) } end
unsubscribe_bunch(*topics)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 101 def unsubscribe_bunch(*topics) @mutex_unsubscribe.synchronize { topics.each do |topic| @client.remove_callback_filter_topic(topic) end @client.unsubscribe_bunch(topics) } end
Private Instance Methods
ca_file=(path)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 196 def ca_file=(path) @ca_file = path end
cert=(path)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 188 def cert=(path) @cert = path end
key=(path)
click to toggle source
# File lib/aws_iot_device/mqtt_shadow_client/mqtt_manager.rb, line 192 def key=(path) @key = path end