bundesstrasse 0.0.4-java → 0.0.5-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|