mosq 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/mosq/client.rb +12 -7
- data/lib/mosq/client/bucket.rb +16 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cbee712fb0536d070cb58d1d892d066992120a1
|
4
|
+
data.tar.gz: 5adaa9828b31824d8a08be875a2120ffb3892c17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1d2359634518bc1794b513bfbac245a951998b915c3360e724932d1ccf3902fdfa9c53727a02697f1cd1a06776a948a5030b66e8345861fc57a8775c208ca65
|
7
|
+
data.tar.gz: aea1439f96aead78b618debbdffd734f88cc646117957f5dd530d99e29ef02481b7be8185d50ab7cabdb05194469c8533e6072abb4b8a46bd2906e2f049a1ae7
|
data/lib/mosq/client.rb
CHANGED
@@ -14,7 +14,8 @@ module Mosq
|
|
14
14
|
def initialize(*args)
|
15
15
|
@options = Util.connection_info(*args)
|
16
16
|
|
17
|
-
@options[:
|
17
|
+
@options[:max_in_flight] ||= 20 # messages
|
18
|
+
@options[:heartbeat] ||= 30 # seconds
|
18
19
|
@protocol_timeout = DEFAULT_PROTOCOL_TIMEOUT
|
19
20
|
|
20
21
|
Util.null_check "creating the client",
|
@@ -36,12 +37,13 @@ module Mosq
|
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|
39
|
-
def username;
|
40
|
-
def password;
|
41
|
-
def host;
|
42
|
-
def port;
|
43
|
-
def ssl?;
|
44
|
-
def heartbeat;
|
40
|
+
def username; @options.fetch(:username); end
|
41
|
+
def password; @options.fetch(:password); end
|
42
|
+
def host; @options.fetch(:host); end
|
43
|
+
def port; @options.fetch(:port); end
|
44
|
+
def ssl?; @options.fetch(:ssl); end
|
45
|
+
def heartbeat; @options.fetch(:heartbeat); end
|
46
|
+
def max_in_flight; @options.fetch(:max_in_flight); end
|
45
47
|
|
46
48
|
# The maximum time interval the user application should wait between
|
47
49
|
# yielding control back to the client object by calling methods like
|
@@ -59,6 +61,9 @@ module Mosq
|
|
59
61
|
# Initiate the connection with the server.
|
60
62
|
# It is necessary to call this before any other communication.
|
61
63
|
def start
|
64
|
+
Util.error_check "configuring the maximum number of inflight messages",
|
65
|
+
FFI.mosquitto_max_inflight_messages_set(ptr, @options[:max_in_flight])
|
66
|
+
|
62
67
|
Util.error_check "configuring the username and password",
|
63
68
|
FFI.mosquitto_username_pw_set(ptr, @options[:usernam], @options[:password])
|
64
69
|
|
data/lib/mosq/client/bucket.rb
CHANGED
@@ -5,15 +5,23 @@ module Mosq
|
|
5
5
|
# @api private
|
6
6
|
class Bucket
|
7
7
|
def initialize(ptr)
|
8
|
-
|
9
|
-
|
10
|
-
FFI.mosquitto_publish_callback_set ptr, method(:on_publish)
|
11
|
-
FFI.mosquitto_message_callback_set ptr, method(:on_message)
|
12
|
-
FFI.mosquitto_subscribe_callback_set ptr, method(:on_subscribe)
|
13
|
-
FFI.mosquitto_unsubscribe_callback_set ptr, method(:on_unsubscribe)
|
14
|
-
# FFI.mosquitto_log_callback_set ptr, method(:on_log)
|
8
|
+
@events = []
|
9
|
+
@callbacks = {}
|
15
10
|
|
16
|
-
|
11
|
+
FFI.mosquitto_connect_callback_set ptr, new_callback(:on_connect)
|
12
|
+
# FFI.mosquitto_disconnect_callback_set ptr, new_callback(:on_disconnect)
|
13
|
+
FFI.mosquitto_publish_callback_set ptr, new_callback(:on_publish)
|
14
|
+
FFI.mosquitto_message_callback_set ptr, new_callback(:on_message)
|
15
|
+
FFI.mosquitto_subscribe_callback_set ptr, new_callback(:on_subscribe)
|
16
|
+
FFI.mosquitto_unsubscribe_callback_set ptr, new_callback(:on_unsubscribe)
|
17
|
+
# FFI.mosquitto_log_callback_set ptr, new_callback(:on_log)
|
18
|
+
end
|
19
|
+
|
20
|
+
def new_callback(symbol)
|
21
|
+
# This ensures that callback Procs are retained in the Bucket,
|
22
|
+
# and are not garbage-collected for the entire life of the Client.
|
23
|
+
# If the callback Procs are garbage-collected then invoked, SIGSEGV!
|
24
|
+
@callbacks[symbol] = method(symbol).to_proc
|
17
25
|
end
|
18
26
|
|
19
27
|
attr_reader :events
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mosq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe McIlvain
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|