bundesstrasse 0.0.4-java → 0.0.5-java
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.
- data/lib/bundesstrasse/device.rb +3 -3
- data/lib/bundesstrasse/devices.rb +8 -2
- data/lib/bundesstrasse/socket.rb +11 -4
- data/lib/bundesstrasse/version.rb +1 -1
- metadata +1 -1
data/lib/bundesstrasse/device.rb
CHANGED
@@ -12,15 +12,15 @@ module Bundesstrasse
|
|
12
12
|
|
13
13
|
def start
|
14
14
|
error_check do
|
15
|
-
ZMQ::LibZMQ.zmq_device(@type, @frontend.
|
15
|
+
ZMQ::LibZMQ.zmq_device(@type, @frontend.pointer, @backend.pointer)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def close!
|
22
|
-
@frontend.close
|
23
|
-
@backend.close
|
22
|
+
@frontend.close!
|
23
|
+
@backend.close!
|
24
24
|
end
|
25
25
|
|
26
26
|
def error_check(&block)
|
@@ -1,13 +1,19 @@
|
|
1
1
|
module Bundesstrasse
|
2
2
|
class QueueDevice < Device
|
3
|
-
|
3
|
+
attr_reader :context
|
4
|
+
def initialize(context, frontend, backend)
|
4
5
|
super(ZMQ::QUEUE, frontend, backend)
|
6
|
+
@context = context
|
5
7
|
end
|
6
8
|
|
9
|
+
def create_endpoint!(options={})
|
10
|
+
@context.socket(RepSocket, options)
|
11
|
+
end
|
12
|
+
|
7
13
|
def self.create(context)
|
8
14
|
frontend = context.socket(RouterSocket)
|
9
15
|
backend = context.socket(DealerSocket)
|
10
|
-
new(frontend, backend)
|
16
|
+
new(context, frontend, backend)
|
11
17
|
end
|
12
18
|
end
|
13
19
|
|
data/lib/bundesstrasse/socket.rb
CHANGED
@@ -3,7 +3,6 @@ module Bundesstrasse
|
|
3
3
|
class Socket
|
4
4
|
include Errors
|
5
5
|
|
6
|
-
attr_reader :socket
|
7
6
|
def initialize(socket, options={})
|
8
7
|
@socket = socket
|
9
8
|
setup!(options)
|
@@ -17,7 +16,7 @@ module Bundesstrasse
|
|
17
16
|
@connected = error_check { @socket.connect(address) }
|
18
17
|
end
|
19
18
|
|
20
|
-
def close
|
19
|
+
def close!
|
21
20
|
!(@connected = !error_check { @socket.close })
|
22
21
|
end
|
23
22
|
|
@@ -30,6 +29,14 @@ module Bundesstrasse
|
|
30
29
|
connected_error_check { @socket.send_string message }
|
31
30
|
end
|
32
31
|
|
32
|
+
def pointer
|
33
|
+
@socket.socket
|
34
|
+
end
|
35
|
+
|
36
|
+
def connected?
|
37
|
+
@connected
|
38
|
+
end
|
39
|
+
|
33
40
|
def self.type
|
34
41
|
raise NotImplementedError, 'Subclasses define constant TYPE'
|
35
42
|
end
|
@@ -37,7 +44,7 @@ module Bundesstrasse
|
|
37
44
|
private
|
38
45
|
|
39
46
|
def connected_error_check(&block)
|
40
|
-
raise SocketError, 'Not connected' unless
|
47
|
+
raise SocketError, 'Not connected' unless connected?
|
41
48
|
error_check(&block)
|
42
49
|
end
|
43
50
|
|
@@ -45,7 +52,7 @@ module Bundesstrasse
|
|
45
52
|
super
|
46
53
|
rescue ZMQError => e
|
47
54
|
case e.error_code
|
48
|
-
when ZMQ::ETERM then close && TermError.raise_error(e)
|
55
|
+
when ZMQ::ETERM then close! && TermError.raise_error(e)
|
49
56
|
when ZMQ::EAGAIN then AgainError.raise_error(e)
|
50
57
|
else SocketError.raise_error(e)
|
51
58
|
end
|