bundesstrasse 0.0.3-java → 0.0.4-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,37 @@
1
+
2
+ module Bundesstrasse
3
+ class Device
4
+ include Errors
5
+
6
+ attr_reader :frontend, :backend
7
+ def initialize(type, frontend, backend)
8
+ @type = type
9
+ @frontend = frontend
10
+ @backend = backend
11
+ end
12
+
13
+ def start
14
+ error_check do
15
+ ZMQ::LibZMQ.zmq_device(@type, @frontend.socket.socket, @backend.socket.socket)
16
+ end
17
+ end
18
+
19
+ private
20
+
21
+ def close!
22
+ @frontend.close
23
+ @backend.close
24
+ end
25
+
26
+ def error_check(&block)
27
+ super
28
+ rescue ZMQError => e
29
+ case e.error_code
30
+ when ZMQ::ETERM then close!
31
+ else DeviceError.raise_error(e)
32
+ end
33
+ end
34
+ end
35
+
36
+ DeviceError = Class.new(ZMQError)
37
+ end
@@ -0,0 +1,37 @@
1
+ module Bundesstrasse
2
+ class QueueDevice < Device
3
+ def initialize(frontend, backend)
4
+ super(ZMQ::QUEUE, frontend, backend)
5
+ end
6
+
7
+ def self.create(context)
8
+ frontend = context.socket(RouterSocket)
9
+ backend = context.socket(DealerSocket)
10
+ new(frontend, backend)
11
+ end
12
+ end
13
+
14
+ class ForwarderDevice < Device
15
+ def initialize(frontend, backend)
16
+ super(ZMQ::FORWARDER, frontend, backend)
17
+ end
18
+
19
+ def self.create(context)
20
+ frontend = context.socket(SubSocket)
21
+ backend = context.socket(PubSocket)
22
+ new(frontend, backend)
23
+ end
24
+ end
25
+
26
+ class StreamerDevice < Device
27
+ def initialize(frontend, backend)
28
+ super(ZMQ::STREAMER, frontend, backend)
29
+ end
30
+
31
+ def self.create(context)
32
+ frontend = context.socket(PullSocket)
33
+ backend = context.socket(PushSocket)
34
+ new(frontend, backend)
35
+ end
36
+ end
37
+ end
@@ -20,7 +20,7 @@ module Bundesstrasse
20
20
  ZMQ::Util.error_string
21
21
  end
22
22
 
23
- def error_check(errors={}, &block)
23
+ def error_check(&block)
24
24
  if (res = block.call).is_a? Fixnum
25
25
  res = res >= 0
26
26
  end
@@ -3,6 +3,7 @@ module Bundesstrasse
3
3
  class Socket
4
4
  include Errors
5
5
 
6
+ attr_reader :socket
6
7
  def initialize(socket, options={})
7
8
  @socket = socket
8
9
  setup!(options)
@@ -1,3 +1,3 @@
1
1
  module Bundesstrasse
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '0.0.4'.freeze
3
3
  end
data/lib/bundesstrasse.rb CHANGED
@@ -5,3 +5,5 @@ require 'bundesstrasse/errors'
5
5
  require 'bundesstrasse/context'
6
6
  require 'bundesstrasse/socket'
7
7
  require 'bundesstrasse/sockets'
8
+ require 'bundesstrasse/device'
9
+ require 'bundesstrasse/devices'
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: bundesstrasse
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.3
5
+ version: 0.0.4
6
6
  platform: java
7
7
  authors:
8
8
  - Joel Segerlind
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
12
+ date: 2013-02-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi-rzmq
@@ -65,6 +65,24 @@ dependencies:
65
65
  none: false
66
66
  prerelease: false
67
67
  type: :development
68
+ - !ruby/object:Gem::Dependency
69
+ name: rake
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: !binary |-
75
+ MA==
76
+ none: false
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: !binary |-
82
+ MA==
83
+ none: false
84
+ prerelease: false
85
+ type: :development
68
86
  description: Basic ZeroMQ wrapper for JRuby
69
87
  email:
70
88
  - joel@kogito.se
@@ -74,6 +92,8 @@ extra_rdoc_files: []
74
92
  files:
75
93
  - lib/bundesstrasse.rb
76
94
  - lib/bundesstrasse/context.rb
95
+ - lib/bundesstrasse/device.rb
96
+ - lib/bundesstrasse/devices.rb
77
97
  - lib/bundesstrasse/errors.rb
78
98
  - lib/bundesstrasse/socket.rb
79
99
  - lib/bundesstrasse/sockets.rb
@@ -98,6 +118,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
118
  requirements:
99
119
  - - ">="
100
120
  - !ruby/object:Gem::Version
121
+ segments:
122
+ - 0
123
+ hash: 2
101
124
  version: !binary |-
102
125
  MA==
103
126
  none: false