bundesstrasse 0.0.3-java → 0.0.4-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.
@@ -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