rgossip2 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rgossip2/client.rb +2 -2
- data/lib/rgossip2/context_helper.rb +2 -2
- data/lib/rgossip2/node.rb +1 -1
- data/lib/rgossip2/receiver.rb +10 -3
- metadata +4 -4
data/lib/rgossip2/client.rb
CHANGED
@@ -133,7 +133,7 @@ module RGossip2
|
|
133
133
|
|
134
134
|
node.start_timer if @running
|
135
135
|
|
136
|
-
callback(:add, address, nil, nil)
|
136
|
+
callback(:add, address, nil, nil, nil)
|
137
137
|
}
|
138
138
|
}
|
139
139
|
end
|
@@ -155,7 +155,7 @@ module RGossip2
|
|
155
155
|
node = @dead_list.delete(address)
|
156
156
|
node.stop_timer if node
|
157
157
|
|
158
|
-
callback(:delete, address, nil, nil)
|
158
|
+
callback(:delete, address, nil, nil, nil)
|
159
159
|
}
|
160
160
|
}
|
161
161
|
end
|
@@ -18,9 +18,9 @@ module RGossip2
|
|
18
18
|
end
|
19
19
|
|
20
20
|
# 各種ハンドラプロキシメソッド
|
21
|
-
def callback(action, address, timestamp, data)
|
21
|
+
def callback(action, address, timestamp, data, old_data)
|
22
22
|
if @context.callback_handler
|
23
|
-
__proc_yield_protect__(@context.callback_handler, action, address, timestamp, data)
|
23
|
+
__proc_yield_protect__(@context.callback_handler, action, address, timestamp, data, old_data)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
data/lib/rgossip2/node.rb
CHANGED
data/lib/rgossip2/receiver.rb
CHANGED
@@ -111,10 +111,11 @@ module RGossip2
|
|
111
111
|
#debug("The node was updated: address=#{address} timestamp=#{timestamp}")
|
112
112
|
|
113
113
|
node.timestamp = timestamp
|
114
|
+
old_data = node.data
|
114
115
|
node.data = data
|
115
116
|
node.reset_timer
|
116
117
|
|
117
|
-
callback(:update, address, timestamp, data)
|
118
|
+
callback(:update, address, timestamp, data, old_data)
|
118
119
|
end
|
119
120
|
elsif (node = @dead_list.synchronize { @dead_list[address] })
|
120
121
|
# デッドリストに見つかった場合
|
@@ -126,10 +127,16 @@ module RGossip2
|
|
126
127
|
#debug("Node revived: address=#{address} timestamp=#{timestamp}")
|
127
128
|
|
128
129
|
@dead_list.delete(address)
|
130
|
+
|
131
|
+
# データの更新を忘れずに
|
132
|
+
node.timestamp = timestamp
|
133
|
+
old_data = node.data
|
134
|
+
node.data = data
|
135
|
+
|
129
136
|
@node_list[address] = node
|
130
137
|
node.start_timer
|
131
138
|
|
132
|
-
callback(:comeback, address, timestamp, data)
|
139
|
+
callback(:comeback, address, timestamp, data, old_data)
|
133
140
|
end
|
134
141
|
}
|
135
142
|
else
|
@@ -142,7 +149,7 @@ module RGossip2
|
|
142
149
|
@node_list[address] = node
|
143
150
|
node.start_timer
|
144
151
|
|
145
|
-
callback(:add, address, timestamp, data)
|
152
|
+
callback(:add, address, timestamp, data, data)
|
146
153
|
end
|
147
154
|
end
|
148
155
|
end # merge_lists
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rgossip2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 6
|
10
|
+
version: 0.1.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- winebarrel
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-11-
|
18
|
+
date: 2011-11-19 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: msgpack
|