ffi-czmq 0.0.2.pre → 0.0.3.pre
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/czmq/libczmq.rb +24 -20
- data/lib/czmq/version.rb +1 -1
- metadata +31 -25
- checksums.yaml +0 -7
data/lib/czmq/libczmq.rb
CHANGED
@@ -5,7 +5,7 @@ require_relative 'sock_type'
|
|
5
5
|
module LibCZMQ
|
6
6
|
def self.extended(klass)
|
7
7
|
klass.extend FFI::Library
|
8
|
-
klass.ffi_lib('
|
8
|
+
klass.ffi_lib('libzmq', 'czmq')
|
9
9
|
end
|
10
10
|
|
11
11
|
def czmq_class
|
@@ -28,7 +28,9 @@ module LibCZMQ
|
|
28
28
|
|
29
29
|
instance.instance_variable_set(:@czmq_obj, czmq_obj)
|
30
30
|
instance.instance_variable_set(:@owned_by_ruby, owned_by_ruby)
|
31
|
-
|
31
|
+
if owned_by_ruby
|
32
|
+
instance.send :setup_finalizer
|
33
|
+
end
|
32
34
|
|
33
35
|
if instance.method(:initialize).parameters.size > 0
|
34
36
|
instance.send :initialize, czmq_obj
|
@@ -56,8 +58,8 @@ module LibCZMQ
|
|
56
58
|
|
57
59
|
instance.instance_variable_set(:@czmq_obj, czmq_obj)
|
58
60
|
instance.instance_variable_set(:@owned_by_ruby, true)
|
59
|
-
|
60
61
|
instance.send :setup_finalizer
|
62
|
+
|
61
63
|
if instance.method(:initialize).parameters.size > 0
|
62
64
|
instance.send :initialize, *args
|
63
65
|
else
|
@@ -89,15 +91,12 @@ module LibCZMQ
|
|
89
91
|
remove_finalizer
|
90
92
|
|
91
93
|
if @owned_by_ruby
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
self.class.destructor(p)
|
99
|
-
end
|
100
|
-
end
|
94
|
+
p = FFI::MemoryPointer.new(:pointer)
|
95
|
+
p.write_pointer(@czmq_obj)
|
96
|
+
if #{czmq_class == :zsock}
|
97
|
+
self.class.destructor(p, __FILE__, __LINE__)
|
98
|
+
else
|
99
|
+
self.class.destructor(p)
|
101
100
|
end
|
102
101
|
end
|
103
102
|
|
@@ -108,22 +107,25 @@ module LibCZMQ
|
|
108
107
|
true
|
109
108
|
end
|
110
109
|
|
111
|
-
private
|
112
|
-
|
113
110
|
def setup_finalizer
|
114
|
-
|
115
|
-
at_exit { destructor }
|
116
|
-
end
|
117
|
-
ObjectSpace.define_finalizer(self, self.class.close_instance(self))
|
111
|
+
ObjectSpace.define_finalizer(self, self.class.close_instance(@czmq_obj.address))
|
118
112
|
end
|
119
113
|
|
114
|
+
private
|
115
|
+
|
120
116
|
def remove_finalizer
|
121
117
|
ObjectSpace.undefine_finalizer self
|
122
118
|
end
|
123
119
|
|
124
|
-
def self.close_instance(
|
120
|
+
def self.close_instance(czmq_obj)
|
125
121
|
Proc.new do
|
126
|
-
|
122
|
+
p = FFI::MemoryPointer.new(:pointer)
|
123
|
+
p.write_pointer(czmq_obj)
|
124
|
+
if #{czmq_class == :zsock}
|
125
|
+
destructor(p, __FILE__, __LINE__)
|
126
|
+
else
|
127
|
+
destructor(p)
|
128
|
+
end
|
127
129
|
end
|
128
130
|
end
|
129
131
|
RUBY
|
@@ -149,6 +151,7 @@ module LibCZMQ
|
|
149
151
|
|
150
152
|
unless(#{czmq_class == :zframe} && args.last & CZMQ::Zframe::REUSE > 0)
|
151
153
|
z_obj.instance_variable_set(:@owned_by_ruby, nil)
|
154
|
+
z_obj.destructor
|
152
155
|
end
|
153
156
|
when :insert, :append, :prepend
|
154
157
|
if args.first.instance_variable_get(:@owned_by_ruby)
|
@@ -162,6 +165,7 @@ module LibCZMQ
|
|
162
165
|
result = self.class.#{name}(@czmq_obj, czmq_obj)
|
163
166
|
|
164
167
|
z_obj.instance_variable_set(:@owned_by_ruby, nil)
|
168
|
+
z_obj.destructor
|
165
169
|
when :reload
|
166
170
|
czmq_obj = FFI::MemoryPointer.new(:pointer)
|
167
171
|
czmq_obj.write_pointer(@czmq_obj)
|
data/lib/czmq/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-czmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3.pre
|
5
|
+
prerelease: 6
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Hendrik
|
@@ -9,34 +10,38 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2014-09-
|
13
|
+
date: 2014-09-26 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: ffi
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
|
-
- -
|
20
|
+
- - ! '>='
|
19
21
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.
|
22
|
+
version: 1.9.4
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
|
-
- -
|
28
|
+
- - ! '>='
|
26
29
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.
|
30
|
+
version: 1.9.4
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: bundler
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
|
-
- -
|
36
|
+
- - ! '>='
|
33
37
|
- !ruby/object:Gem::Version
|
34
38
|
version: 1.1.4
|
35
39
|
type: :development
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
|
-
- -
|
44
|
+
- - ! '>='
|
40
45
|
- !ruby/object:Gem::Version
|
41
46
|
version: 1.1.4
|
42
47
|
description: czmq ffi wrapper
|
@@ -45,47 +50,48 @@ executables: []
|
|
45
50
|
extensions: []
|
46
51
|
extra_rdoc_files: []
|
47
52
|
files:
|
48
|
-
- LICENSE
|
49
53
|
- README.md
|
54
|
+
- LICENSE
|
55
|
+
- lib/ffi-czmq.rb
|
50
56
|
- lib/czmq.rb
|
51
|
-
- lib/czmq/
|
52
|
-
- lib/czmq/
|
53
|
-
- lib/czmq/utils.rb
|
54
|
-
- lib/czmq/version.rb
|
55
|
-
- lib/czmq/zactor.rb
|
57
|
+
- lib/czmq/zmsg.rb
|
58
|
+
- lib/czmq/ziflist.rb
|
56
59
|
- lib/czmq/zcert.rb
|
60
|
+
- lib/czmq/zsock.rb
|
61
|
+
- lib/czmq/zactor.rb
|
62
|
+
- lib/czmq/zsys.rb
|
63
|
+
- lib/czmq/sock_type.rb
|
57
64
|
- lib/czmq/zcertstore.rb
|
58
|
-
- lib/czmq/
|
65
|
+
- lib/czmq/version.rb
|
59
66
|
- lib/czmq/zframe.rb
|
60
|
-
- lib/czmq/ziflist.rb
|
61
67
|
- lib/czmq/zloop.rb
|
62
|
-
- lib/czmq/
|
68
|
+
- lib/czmq/zconfig.rb
|
63
69
|
- lib/czmq/zpoller.rb
|
64
|
-
- lib/czmq/
|
65
|
-
- lib/czmq/
|
66
|
-
- lib/ffi-czmq.rb
|
70
|
+
- lib/czmq/libczmq.rb
|
71
|
+
- lib/czmq/utils.rb
|
67
72
|
homepage: https://github.com/Asmod4n/ruby-ffi-czmq
|
68
73
|
licenses:
|
69
74
|
- Apache-2.0
|
70
|
-
metadata: {}
|
71
75
|
post_install_message:
|
72
76
|
rdoc_options: []
|
73
77
|
require_paths:
|
74
78
|
- lib
|
75
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
76
81
|
requirements:
|
77
|
-
- -
|
82
|
+
- - ! '>='
|
78
83
|
- !ruby/object:Gem::Version
|
79
84
|
version: '0'
|
80
85
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
81
87
|
requirements:
|
82
|
-
- -
|
88
|
+
- - ! '>'
|
83
89
|
- !ruby/object:Gem::Version
|
84
90
|
version: 1.3.1
|
85
91
|
requirements: []
|
86
92
|
rubyforge_project:
|
87
|
-
rubygems_version:
|
93
|
+
rubygems_version: 1.8.23
|
88
94
|
signing_key:
|
89
|
-
specification_version:
|
95
|
+
specification_version: 3
|
90
96
|
summary: czmq ffi wrapper
|
91
97
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 552c8d88ce927fad7ac3a633ca63ee747f783efc
|
4
|
-
data.tar.gz: 5fa75ca3f5ebb2c7944a80cb5fcc963a4e4813cb
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 1e34228e7d123a5bd5935c60b90e6acecb6dfeedecc569fe6f0f9970d4f431cab8d8e504d13905f23e3038d40211b1cd9e6574d4f946adffe7a252c85f1cd62b
|
7
|
-
data.tar.gz: 42e394a43c94781e9b25d2a139a341ed2cc450c629375b9d6e5cd00d8ce750567695618e47a60d78b4461aee6728fb75b813bd58cc7c973923a3e376961c5414
|