roma-client 0.4.4 → 0.4.5

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.
Files changed (87) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +22 -15
  3. data/Gemfile +2 -0
  4. data/Gemfile.lock +34 -18
  5. data/README.md +4 -0
  6. data/lib/roma/client/client_pool.rb +15 -25
  7. data/lib/roma/client/client_rttable.rb +1 -2
  8. data/lib/roma/client/tools/showbalance.rb +0 -1
  9. data/lib/roma/client/version.rb +1 -1
  10. data/spec/roma/client/client_pool_spec.rb +133 -173
  11. data/spec/spec_helper.rb +9 -0
  12. metadata +3 -79
  13. data/doc/CHANGELOG_md.html +0 -119
  14. data/doc/README_md.html +0 -161
  15. data/doc/Roma.html +0 -95
  16. data/doc/Roma/Client.html +0 -95
  17. data/doc/Roma/Client/ClientPool.html +0 -716
  18. data/doc/Roma/Client/ClientRoutingTable.html +0 -495
  19. data/doc/Roma/Client/ConPool.html +0 -484
  20. data/doc/Roma/Client/Plugin.html +0 -95
  21. data/doc/Roma/Client/Plugin/Alist.html +0 -1276
  22. data/doc/Roma/Client/Plugin/Map.html +0 -531
  23. data/doc/Roma/Client/Plugin/MapCount.html +0 -401
  24. data/doc/Roma/Client/Proxy.html +0 -95
  25. data/doc/Roma/Client/Proxy/ClientHandler.html +0 -273
  26. data/doc/Roma/Client/Proxy/Conpool.html +0 -394
  27. data/doc/Roma/Client/Proxy/Daemon.html +0 -305
  28. data/doc/Roma/Client/Proxy/RomaHandler.html +0 -217
  29. data/doc/Roma/Client/RomaClient.html +0 -1339
  30. data/doc/Roma/Client/Sender.html +0 -482
  31. data/doc/Roma/Client/Stats.html +0 -162
  32. data/doc/Roma/Client/VERSION.html +0 -141
  33. data/doc/Roma/Logging.html +0 -95
  34. data/doc/Roma/Logging/RLogger.html +0 -786
  35. data/doc/Roma/Logging/RLogger/ExtLogDev.html +0 -159
  36. data/doc/Roma/Logging/RLogger/ExtShiftAge.html +0 -95
  37. data/doc/Roma/Logging/RLogger/ExtTrace.html +0 -109
  38. data/doc/Roma/Logging/RLogger/Severity.html +0 -139
  39. data/doc/Roma/Routing.html +0 -95
  40. data/doc/Roma/Routing/RoutingData.html +0 -912
  41. data/doc/Roma/Routing/RoutingData/RandomNodeListMaker.html +0 -311
  42. data/doc/created.rid +0 -20
  43. data/doc/css/fonts.css +0 -167
  44. data/doc/css/rdoc.css +0 -590
  45. data/doc/fonts/Lato-Light.ttf +0 -0
  46. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  47. data/doc/fonts/Lato-Regular.ttf +0 -0
  48. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  49. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  50. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  51. data/doc/images/add.png +0 -0
  52. data/doc/images/arrow_up.png +0 -0
  53. data/doc/images/brick.png +0 -0
  54. data/doc/images/brick_link.png +0 -0
  55. data/doc/images/bug.png +0 -0
  56. data/doc/images/bullet_black.png +0 -0
  57. data/doc/images/bullet_toggle_minus.png +0 -0
  58. data/doc/images/bullet_toggle_plus.png +0 -0
  59. data/doc/images/date.png +0 -0
  60. data/doc/images/delete.png +0 -0
  61. data/doc/images/find.png +0 -0
  62. data/doc/images/loadingAnimation.gif +0 -0
  63. data/doc/images/macFFBgHack.png +0 -0
  64. data/doc/images/package.png +0 -0
  65. data/doc/images/page_green.png +0 -0
  66. data/doc/images/page_white_text.png +0 -0
  67. data/doc/images/page_white_width.png +0 -0
  68. data/doc/images/plugin.png +0 -0
  69. data/doc/images/ruby.png +0 -0
  70. data/doc/images/tag_blue.png +0 -0
  71. data/doc/images/tag_green.png +0 -0
  72. data/doc/images/transparent.png +0 -0
  73. data/doc/images/wrench.png +0 -0
  74. data/doc/images/wrench_orange.png +0 -0
  75. data/doc/images/zoom.png +0 -0
  76. data/doc/index.html +0 -210
  77. data/doc/js/darkfish.js +0 -161
  78. data/doc/js/jquery.js +0 -4
  79. data/doc/js/navigation.js +0 -142
  80. data/doc/js/navigation.js.gz +0 -0
  81. data/doc/js/search.js +0 -109
  82. data/doc/js/search_index.js +0 -1
  83. data/doc/js/search_index.js.gz +0 -0
  84. data/doc/js/searcher.js +0 -228
  85. data/doc/js/searcher.js.gz +0 -0
  86. data/doc/table_of_contents.html +0 -972
  87. data/lib/roma/client/routing/routing_data.rb +0 -241
@@ -1,1339 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta charset=" UTF-8">
6
-
7
- <title>class Roma::Client::RomaClient - ROMA documents</title>
8
-
9
- <script type="text/javascript">
10
- var rdoc_rel_prefix = "../../";
11
- </script>
12
-
13
- <script src="../../js/jquery.js"></script>
14
- <script src="../../js/darkfish.js"></script>
15
-
16
- <link href="../../css/fonts.css" rel="stylesheet">
17
- <link href="../../css/rdoc.css" rel="stylesheet">
18
-
19
-
20
-
21
- <body id="top" role="document" class="class">
22
- <nav role="navigation">
23
- <div id="project-navigation">
24
- <div id="home-section" role="region" title="Quick navigation" class="nav-section">
25
- <h2>
26
- <a href="../../index.html" rel="home">Home</a>
27
- </h2>
28
-
29
- <div id="table-of-contents-navigation">
30
- <a href="../../table_of_contents.html#pages">Pages</a>
31
- <a href="../../table_of_contents.html#classes">Classes</a>
32
- <a href="../../table_of_contents.html#methods">Methods</a>
33
- </div>
34
- </div>
35
-
36
- <div id="search-section" role="search" class="project-section initially-hidden">
37
- <form action="#" method="get" accept-charset="utf-8">
38
- <div id="search-field-wrapper">
39
- <input id="search-field" role="combobox" aria-label="Search"
40
- aria-autocomplete="list" aria-controls="search-results"
41
- type="text" name="search" placeholder="Search" spellcheck="false"
42
- title="Type to search, Up and Down to navigate, Enter to load">
43
- </div>
44
-
45
- <ul id="search-results" aria-label="Search Results"
46
- aria-busy="false" aria-expanded="false"
47
- aria-atomic="false" class="initially-hidden"></ul>
48
- </form>
49
- </div>
50
-
51
- </div>
52
-
53
-
54
-
55
- <div id="class-metadata">
56
-
57
- <div id="parent-class-section" class="nav-section">
58
- <h3>Parent</h3>
59
-
60
-
61
- <p class="link">Object
62
-
63
- </div>
64
-
65
-
66
-
67
- <!-- Method Quickref -->
68
- <div id="method-list-section" class="nav-section">
69
- <h3>Methods</h3>
70
-
71
- <ul class="link-list" role="directory">
72
-
73
- <li ><a href="#method-c-new">::new</a>
74
-
75
- <li ><a href="#method-i-5B-5D">#[]</a>
76
-
77
- <li ><a href="#method-i-5B-5D-3D">#[]=</a>
78
-
79
- <li ><a href="#method-i-add">#add</a>
80
-
81
- <li ><a href="#method-i-append">#append</a>
82
-
83
- <li ><a href="#method-i-cas">#cas</a>
84
-
85
- <li ><a href="#method-i-decr">#decr</a>
86
-
87
- <li ><a href="#method-i-delete">#delete</a>
88
-
89
- <li ><a href="#method-i-flush_all">#flush_all</a>
90
-
91
- <li ><a href="#method-i-get">#get</a>
92
-
93
- <li ><a href="#method-i-gets">#gets</a>
94
-
95
- <li ><a href="#method-i-incr">#incr</a>
96
-
97
- <li ><a href="#method-i-make_rttable">#make_rttable</a>
98
-
99
- <li ><a href="#method-i-out">#out</a>
100
-
101
- <li ><a href="#method-i-prepend">#prepend</a>
102
-
103
- <li ><a href="#method-i-replace">#replace</a>
104
-
105
- <li ><a href="#method-i-rttable_last_update">#rttable_last_update</a>
106
-
107
- <li ><a href="#method-i-set">#set</a>
108
-
109
- <li ><a href="#method-i-stats">#stats</a>
110
-
111
- <li ><a href="#method-i-update_rttable">#update_rttable</a>
112
-
113
- <li ><a href="#method-i-verbosity">#verbosity</a>
114
-
115
- <li ><a href="#method-i-version">#version</a>
116
-
117
- </ul>
118
- </div>
119
-
120
- </div>
121
- </nav>
122
-
123
- <main role="main" aria-labelledby="class-Roma::Client::RomaClient">
124
- <h1 id="class-Roma::Client::RomaClient" class="class">
125
- class Roma::Client::RomaClient
126
- </h1>
127
-
128
- <section class="description">
129
-
130
- <p>Class to access ROMA .</p>
131
-
132
- </section>
133
-
134
-
135
-
136
-
137
- <section id="5Buntitled-5D" class="documentation-section">
138
-
139
-
140
-
141
-
142
-
143
-
144
-
145
- <section class="attribute-method-details" class="method-section">
146
- <header>
147
- <h3>Attributes</h3>
148
- </header>
149
-
150
-
151
- <div id="attribute-i-default_hash_name" class="method-detail">
152
- <div class="method-heading attribute-method-heading">
153
- <span class="method-name">default_hash_name</span><span
154
- class="attribute-access-type">[RW]</span>
155
- </div>
156
-
157
- <div class="method-description">
158
-
159
-
160
-
161
- </div>
162
- </div>
163
-
164
- <div id="attribute-i-retry_count_read" class="method-detail">
165
- <div class="method-heading attribute-method-heading">
166
- <span class="method-name">retry_count_read</span><span
167
- class="attribute-access-type">[RW]</span>
168
- </div>
169
-
170
- <div class="method-description">
171
-
172
-
173
-
174
- </div>
175
- </div>
176
-
177
- <div id="attribute-i-retry_count_write" class="method-detail">
178
- <div class="method-heading attribute-method-heading">
179
- <span class="method-name">retry_count_write</span><span
180
- class="attribute-access-type">[RW]</span>
181
- </div>
182
-
183
- <div class="method-description">
184
-
185
-
186
-
187
- </div>
188
- </div>
189
-
190
- <div id="attribute-i-rttable" class="method-detail">
191
- <div class="method-heading attribute-method-heading">
192
- <span class="method-name">rttable</span><span
193
- class="attribute-access-type">[RW]</span>
194
- </div>
195
-
196
- <div class="method-description">
197
-
198
-
199
-
200
- </div>
201
- </div>
202
-
203
- <div id="attribute-i-sender" class="method-detail">
204
- <div class="method-heading attribute-method-heading">
205
- <span class="method-name">sender</span><span
206
- class="attribute-access-type">[RW]</span>
207
- </div>
208
-
209
- <div class="method-description">
210
-
211
-
212
-
213
- </div>
214
- </div>
215
-
216
- </section>
217
-
218
-
219
-
220
- <section id="public-class-5Buntitled-5D-method-details" class="method-section">
221
- <header>
222
- <h3>Public Class Methods</h3>
223
- </header>
224
-
225
-
226
- <div id="method-c-new" class="method-detail ">
227
-
228
- <div class="method-heading">
229
- <span class="method-name">new</span><span
230
- class="method-args">(ini_nodes, plugin_modules = nil, start_sync_routing_proc = true)</span>
231
-
232
- <span class="method-click-advice">click to toggle source</span>
233
-
234
- </div>
235
-
236
-
237
- <div class="method-description">
238
-
239
- <p>ROMA client constractor .</p>
240
- <dl class="rdoc-list label-list"><dt>ini_nodes
241
- <dd>
242
- <p>ROMA nodes array</p>
243
- </dd><dt>plugin_modules
244
- <dd>
245
- <p>set plugin modules if you use .</p>
246
- </dd></dl>
247
-
248
-
249
-
250
-
251
- <div class="method-source-code" id="new-source">
252
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 26</span>
253
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">ini_nodes</span>, <span class="ruby-identifier">plugin_modules</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">start_sync_routing_proc</span> = <span class="ruby-keyword">true</span>)
254
- <span class="ruby-ivar">@retry_count_write</span> = <span class="ruby-value">10</span>
255
- <span class="ruby-ivar">@retry_count_read</span> = <span class="ruby-value">5</span>
256
- <span class="ruby-ivar">@default_hash_name</span> = <span class="ruby-string">&#39;roma&#39;</span>
257
-
258
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">plugin_modules</span>
259
- <span class="ruby-identifier">plugin_modules</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">plugin</span><span class="ruby-operator">|</span>
260
- <span class="ruby-keyword">self</span>.<span class="ruby-identifier">extend</span> <span class="ruby-identifier">plugin</span>
261
- <span class="ruby-keyword">end</span>
262
- <span class="ruby-keyword">end</span>
263
-
264
- <span class="ruby-identifier">init_sender</span>
265
- <span class="ruby-identifier">update_rttable</span>(<span class="ruby-identifier">ini_nodes</span>.<span class="ruby-identifier">map</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">n</span><span class="ruby-operator">|</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-string">&#39;:&#39;</span>, <span class="ruby-string">&#39;_&#39;</span>) })
266
- <span class="ruby-identifier">init_sync_routing_proc</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">start_sync_routing_proc</span>
267
- <span class="ruby-keyword">end</span></pre>
268
- </div>
269
-
270
- </div>
271
-
272
-
273
-
274
-
275
- </div>
276
-
277
-
278
- </section>
279
-
280
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
281
- <header>
282
- <h3>Public Instance Methods</h3>
283
- </header>
284
-
285
-
286
- <div id="method-i-5B-5D" class="method-detail ">
287
-
288
- <div class="method-heading">
289
- <span class="method-name">[]</span><span
290
- class="method-args">(key)</span>
291
-
292
- <span class="method-click-advice">click to toggle source</span>
293
-
294
- </div>
295
-
296
-
297
- <div class="method-description">
298
-
299
- <p>Get value from ROMA .</p>
300
- <dl class="rdoc-list label-list"><dt>key
301
- <dd>
302
- <p>key for roma.</p>
303
- </dd></dl>
304
-
305
- <p><code>returen</code></p>
306
-
307
- <pre>value sotored roma .
308
- If key don&#39;t exit ROMA, return nil .
309
- If coneect error, throw Exception .</pre>
310
-
311
-
312
-
313
-
314
- <div class="method-source-code" id="5B-5D-source">
315
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 111</span>
316
- <span class="ruby-keyword">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
317
- <span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>)
318
- <span class="ruby-keyword">end</span></pre>
319
- </div>
320
-
321
- </div>
322
-
323
-
324
-
325
-
326
- </div>
327
-
328
-
329
- <div id="method-i-5B-5D-3D" class="method-detail ">
330
-
331
- <div class="method-heading">
332
- <span class="method-name">[]=</span><span
333
- class="method-args">(key, value)</span>
334
-
335
- <span class="method-click-advice">click to toggle source</span>
336
-
337
- </div>
338
-
339
-
340
- <div class="method-description">
341
-
342
- <p>Set value to ROMA . please see set method .</p>
343
-
344
-
345
-
346
-
347
- <div class="method-source-code" id="5B-5D-3D-source">
348
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 101</span>
349
- <span class="ruby-keyword">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
350
- <span class="ruby-identifier">set</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">value</span>)
351
- <span class="ruby-keyword">end</span></pre>
352
- </div>
353
-
354
- </div>
355
-
356
-
357
-
358
-
359
- </div>
360
-
361
-
362
- <div id="method-i-add" class="method-detail ">
363
-
364
- <div class="method-heading">
365
- <span class="method-name">add</span><span
366
- class="method-args">(key, val, expt = 0, raw = false)</span>
367
-
368
- <span class="method-click-advice">click to toggle source</span>
369
-
370
- </div>
371
-
372
-
373
- <div class="method-description">
374
-
375
- <p>Add value to ROMA .</p>
376
-
377
- <p>If same key exists in ROMA, this method don&#39;t overwrite value and
378
- return NOT_STORED .</p>
379
- <dl class="rdoc-list label-list"><dt>key
380
- <dd>
381
- <p>key for store .</p>
382
- </dd><dt>value
383
- <dd>
384
- <p>store value .</p>
385
- </dd><dt>exp
386
- <dd>
387
- <p>expire seconds .</p>
388
- </dd><dt>raw
389
- <dd>
390
- <p>You set this value true, value isn&#39;t marshaled .</p>
391
- </dd><dt>return
392
- <dd>
393
- <p>return follow set status .</p>
394
- </dd></dl>
395
- <ul><li>
396
- <p>If method is success, return STORED .</p>
397
- </li><li>
398
- <p>If same key exists in ROMA, return NOT_STORED .</p>
399
- </li><li>
400
- <p>If server error, return SERVER_ERROR .</p>
401
- </li></ul>
402
-
403
- <p>If socket error occured, throw Exception .</p>
404
-
405
- <p>If socket timeout occured, throw TimeoutError .</p>
406
-
407
-
408
-
409
-
410
- <div class="method-source-code" id="add-source">
411
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 155</span>
412
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">add</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">expt</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">raw</span> = <span class="ruby-keyword">false</span>)
413
- <span class="ruby-identifier">val</span> = <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">val</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">raw</span>
414
- <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-string">&quot;add %s 0 %d %d&quot;</span>, <span class="ruby-identifier">expt</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">val</span>.<span class="ruby-identifier">length</span>)
415
- <span class="ruby-keyword">end</span></pre>
416
- </div>
417
-
418
- </div>
419
-
420
-
421
-
422
-
423
- </div>
424
-
425
-
426
- <div id="method-i-append" class="method-detail ">
427
-
428
- <div class="method-heading">
429
- <span class="method-name">append</span><span
430
- class="method-args">(key, val, expt = 0)</span>
431
-
432
- <span class="method-click-advice">click to toggle source</span>
433
-
434
- </div>
435
-
436
-
437
- <div class="method-description">
438
-
439
- <p>Append value to exists string .</p>
440
-
441
- <p>If same key exists in ROMA, this method append value . If same key
442
- doesn&#39;t exist in ROMA this method don&#39;t store value and return
443
- NOT_STORE .</p>
444
- <dl class="rdoc-list label-list"><dt>key
445
- <dd>
446
- <p>key for append .</p>
447
- </dd><dt>value
448
- <dd>
449
- <p>append value .</p>
450
- </dd><dt>exp
451
- <dd>
452
- <p>expire seconds .</p>
453
- </dd><dt>return
454
- <dd>
455
- <p>return follow set status .</p>
456
- </dd></dl>
457
- <ul><li>
458
- <p>If method is success, return STORED .</p>
459
- </li><li>
460
- <p>If same key exists in ROMA, return NOT_STORED .</p>
461
- </li><li>
462
- <p>If server error, return SERVER_ERROR .</p>
463
- </li></ul>
464
-
465
- <p>If socket error occured, throw Exception .</p>
466
-
467
- <p>If socket timeout occured, throw TimeoutError .</p>
468
-
469
-
470
-
471
-
472
- <div class="method-source-code" id="append-source">
473
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 202</span>
474
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">append</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">expt</span> = <span class="ruby-value">0</span>)
475
- <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-string">&quot;append %s 0 %d %d&quot;</span>, <span class="ruby-identifier">expt</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">val</span>.<span class="ruby-identifier">length</span>)
476
- <span class="ruby-keyword">end</span></pre>
477
- </div>
478
-
479
- </div>
480
-
481
-
482
-
483
-
484
- </div>
485
-
486
-
487
- <div id="method-i-cas" class="method-detail ">
488
-
489
- <div class="method-heading">
490
- <span class="method-name">cas</span><span
491
- class="method-args">(key, expt = 0, raw = false) { |val| ... }</span>
492
-
493
- <span class="method-click-advice">click to toggle source</span>
494
-
495
- </div>
496
-
497
-
498
- <div class="method-description">
499
-
500
- <p>Compare And Swap value .</p>
501
- <dl class="rdoc-list label-list"><dt>key
502
- <dd>
503
- <p>key for cas .</p>
504
- </dd><dt>value
505
- <dd>
506
- <p>store value .</p>
507
- </dd><dt>exp
508
- <dd>
509
- <p>expire seconds .</p>
510
- </dd><dt>return
511
- <dd>
512
- <p>return follow set status .</p>
513
- </dd></dl>
514
- <ul><li>
515
- <p>If method is success, return STORED .</p>
516
- </li><li>
517
- <p>If method cannot update value, return EXISTS .</p>
518
- </li><li>
519
- <p>If key doesn&#39;t exist in ROMA, this method return NOT_FOUND.</p>
520
- </li><li>
521
- <p>If server error, return SERVER_ERROR .</p>
522
- </li></ul>
523
-
524
- <p>If socket error occured, throw Exception .</p>
525
-
526
- <p>If socket timeout occured, throw TimeoutError .</p>
527
-
528
-
529
-
530
-
531
- <div class="method-source-code" id="cas-source">
532
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 243</span>
533
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">cas</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">expt</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">raw</span> = <span class="ruby-keyword">false</span>)
534
- <span class="ruby-identifier">raise</span> <span class="ruby-string">&quot;A block is required&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">block_given?</span>
535
-
536
- (<span class="ruby-identifier">val</span>, <span class="ruby-identifier">casid</span>) = <span class="ruby-identifier">gets_with_casid</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">raw</span>)
537
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;NOT_FOUND&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">val</span>
538
- <span class="ruby-identifier">updated</span> = <span class="ruby-keyword">yield</span> <span class="ruby-identifier">val</span>
539
- <span class="ruby-identifier">val</span> = <span class="ruby-identifier">raw</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">updated</span> <span class="ruby-operator">:</span> <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">updated</span>)
540
-
541
- <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-string">&quot;cas %s 0 %d %d %s&quot;</span>, <span class="ruby-identifier">expt</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">val</span>.<span class="ruby-identifier">length</span>, <span class="ruby-identifier">casid</span>)
542
- <span class="ruby-keyword">end</span></pre>
543
- </div>
544
-
545
- </div>
546
-
547
-
548
-
549
-
550
- </div>
551
-
552
-
553
- <div id="method-i-decr" class="method-detail ">
554
-
555
- <div class="method-heading">
556
- <span class="method-name">decr</span><span
557
- class="method-args">(key, val = 1)</span>
558
-
559
- <span class="method-click-advice">click to toggle source</span>
560
-
561
- </div>
562
-
563
-
564
- <div class="method-description">
565
-
566
- <p>decrement value .</p>
567
- <dl class="rdoc-list label-list"><dt>key
568
- <dd>
569
- <p>key for decremental .</p>
570
- </dd><dt>val
571
- <dd>
572
- <p>decremental value .</p>
573
- </dd><dt>return
574
- <dd>
575
- <p>Fixnum decrementaled value .</p>
576
- </dd></dl>
577
-
578
- <p>If same key doesn&#39;t exist in ROMA, return NOT_FOUND .</p>
579
-
580
- <p>If socket error occured, throw Exception .</p>
581
-
582
- <p>If socket timeout occured, throw TimeoutError .</p>
583
-
584
-
585
-
586
-
587
- <div class="method-source-code" id="decr-source">
588
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 373</span>
589
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">decr</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span> = <span class="ruby-value">1</span>)
590
- <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-string">&quot;decr %s %d&quot;</span>, <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>)
591
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">ret</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">ret</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\D/</span>
592
- <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">to_i</span>
593
- <span class="ruby-keyword">end</span></pre>
594
- </div>
595
-
596
- </div>
597
-
598
-
599
-
600
-
601
- </div>
602
-
603
-
604
- <div id="method-i-delete" class="method-detail ">
605
-
606
- <div class="method-heading">
607
- <span class="method-name">delete</span><span
608
- class="method-args">(key)</span>
609
-
610
- <span class="method-click-advice">click to toggle source</span>
611
-
612
- </div>
613
-
614
-
615
- <div class="method-description">
616
-
617
- <p>Delete value .</p>
618
- <dl class="rdoc-list label-list"><dt>key
619
- <dd>
620
- <p>key for delete .</p>
621
- </dd><dt>return
622
- <dd>
623
- <p>return follow set status .</p>
624
- </dd></dl>
625
- <ul><li>
626
- <p>If method is success, return DELETED .</p>
627
- </li><li>
628
- <p>If same key doesn&#39;t exist in ROMA, return NOT_FOUND .</p>
629
- </li><li>
630
- <p>If server error, return SERVER_ERROR .</p>
631
- </li></ul>
632
-
633
- <p>If socket error occured, throw Exception .</p>
634
-
635
- <p>If socket timeout occured, throw TimeoutError .</p>
636
-
637
-
638
-
639
-
640
- <div class="method-source-code" id="delete-source">
641
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 266</span>
642
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">key</span>)
643
- <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-string">&quot;delete %s&quot;</span>)
644
- <span class="ruby-keyword">end</span></pre>
645
- </div>
646
-
647
- </div>
648
-
649
-
650
-
651
-
652
- </div>
653
-
654
-
655
- <div id="method-i-flush_all" class="method-detail ">
656
-
657
- <div class="method-heading">
658
- <span class="method-name">flush_all</span><span
659
- class="method-args">()</span>
660
-
661
- <span class="method-click-advice">click to toggle source</span>
662
-
663
- </div>
664
-
665
-
666
- <div class="method-description">
667
-
668
-
669
-
670
-
671
-
672
-
673
- <div class="method-source-code" id="flush_all-source">
674
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 340</span>
675
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">flush_all</span>()
676
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;Unsupported yet&quot;</span>) <span class="ruby-comment"># TODO</span>
677
- <span class="ruby-ivar">@sender</span>.<span class="ruby-identifier">send_flush_all_command</span>
678
- <span class="ruby-keyword">end</span></pre>
679
- </div>
680
-
681
- </div>
682
-
683
-
684
-
685
-
686
- </div>
687
-
688
-
689
- <div id="method-i-get" class="method-detail ">
690
-
691
- <div class="method-heading">
692
- <span class="method-name">get</span><span
693
- class="method-args">(key, raw = false)</span>
694
-
695
- <span class="method-click-advice">click to toggle source</span>
696
-
697
- </div>
698
-
699
-
700
- <div class="method-description">
701
-
702
- <p>get value</p>
703
- <dl class="rdoc-list label-list"><dt>key
704
- <dd>
705
- <p>key for get .</p>
706
- </dd><dt>raw
707
- <dd>
708
- <p>If you set this value true, value isn&#39;t Marshal.load value .</p>
709
- </dd><dt>return
710
- <dd>
711
- <p>return stored value in ROMA .</p>
712
- </dd></dl>
713
-
714
- <p>If key doesn&#39;t exist in ROMA, this method return nil .</p>
715
-
716
- <p>If socket error occured, throw Exception .</p>
717
-
718
- <p>If socket timeout occured, throw TimeoutError .</p>
719
-
720
-
721
-
722
-
723
- <div class="method-source-code" id="get-source">
724
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 301</span>
725
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">raw</span> = <span class="ruby-keyword">false</span>)
726
- <span class="ruby-identifier">val</span> = <span class="ruby-identifier">sender</span>(<span class="ruby-value">:value_list_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-string">&quot;get %s&quot;</span>)[<span class="ruby-value">0</span>]
727
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">val</span>.<span class="ruby-identifier">nil?</span>
728
- <span class="ruby-identifier">val</span> = <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">val</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">raw</span>
729
- <span class="ruby-identifier">val</span>
730
- <span class="ruby-keyword">end</span></pre>
731
- </div>
732
-
733
- </div>
734
-
735
-
736
-
737
-
738
- </div>
739
-
740
-
741
- <div id="method-i-gets" class="method-detail ">
742
-
743
- <div class="method-heading">
744
- <span class="method-name">gets</span><span
745
- class="method-args">(keys, raw = false)</span>
746
-
747
- <span class="method-click-advice">click to toggle source</span>
748
-
749
- </div>
750
-
751
-
752
- <div class="method-description">
753
-
754
- <p>get values .</p>
755
- <dl class="rdoc-list label-list"><dt>keys
756
- <dd>
757
- <p>key array for get .</p>
758
- </dd><dt>raw
759
- <dd>
760
- <p>If you set this value true, value isn&#39;t Marshal.load value .</p>
761
- </dd><dt>return
762
- <dd>
763
- <p>return key and sotored value hash .</p>
764
- </dd></dl>
765
-
766
- <p>If all key doesn&#39;t exist in ROMA, return empty hash . If some key
767
- doesn&#39;t exist in ROMA, return exist key and sotred value hash .</p>
768
-
769
- <p>If socket error occured, throw Exception .</p>
770
-
771
- <p>If socket timeout occured, throw TimeoutError .</p>
772
-
773
-
774
-
775
-
776
- <div class="method-source-code" id="gets-source">
777
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 320</span>
778
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">gets</span>(<span class="ruby-identifier">keys</span>, <span class="ruby-identifier">raw</span> = <span class="ruby-keyword">false</span>)
779
- <span class="ruby-identifier">kn</span> = {}
780
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">key</span><span class="ruby-operator">|</span>
781
- <span class="ruby-identifier">nid</span>, <span class="ruby-identifier">d</span> = <span class="ruby-ivar">@rttable</span>.<span class="ruby-identifier">search_node</span>(<span class="ruby-identifier">key</span>)
782
- <span class="ruby-identifier">kn</span>[<span class="ruby-identifier">nid</span>] <span class="ruby-operator">||=</span> []
783
- <span class="ruby-identifier">kn</span>[<span class="ruby-identifier">nid</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">key</span>
784
- }
785
-
786
- <span class="ruby-identifier">res</span> = {}
787
- <span class="ruby-identifier">kn</span>.<span class="ruby-identifier">each_pair</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">nid</span>,<span class="ruby-identifier">ks</span><span class="ruby-operator">|</span>
788
- <span class="ruby-identifier">res</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">gets_sender</span>(<span class="ruby-identifier">nid</span>, <span class="ruby-identifier">ks</span>))
789
- }
790
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">raw</span>
791
- <span class="ruby-identifier">res</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span><span class="ruby-operator">|</span>
792
- <span class="ruby-identifier">res</span>[<span class="ruby-identifier">key</span>] = <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">load</span>(<span class="ruby-identifier">val</span>)
793
- <span class="ruby-keyword">end</span>
794
- <span class="ruby-keyword">end</span>
795
- <span class="ruby-identifier">res</span>
796
- <span class="ruby-keyword">end</span></pre>
797
- </div>
798
-
799
- </div>
800
-
801
-
802
-
803
-
804
- </div>
805
-
806
-
807
- <div id="method-i-incr" class="method-detail ">
808
-
809
- <div class="method-heading">
810
- <span class="method-name">incr</span><span
811
- class="method-args">(key, val = 1)</span>
812
-
813
- <span class="method-click-advice">click to toggle source</span>
814
-
815
- </div>
816
-
817
-
818
- <div class="method-description">
819
-
820
- <p>increment value .</p>
821
- <dl class="rdoc-list label-list"><dt>key
822
- <dd>
823
- <p>key for incremental .</p>
824
- </dd><dt>val
825
- <dd>
826
- <p>incremental value .</p>
827
- </dd><dt>return
828
- <dd>
829
- <p>Fixnum incrementaled value .</p>
830
- </dd></dl>
831
-
832
- <p>If same key doesn&#39;t exist in ROMA, return NOT_FOUND .</p>
833
-
834
- <p>If socket error occured, throw Exception .</p>
835
-
836
- <p>If socket timeout occured, throw TimeoutError .</p>
837
-
838
-
839
-
840
-
841
- <div class="method-source-code" id="incr-source">
842
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 356</span>
843
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">incr</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span> = <span class="ruby-value">1</span>)
844
- <span class="ruby-identifier">ret</span> = <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-string">&quot;incr %s %d&quot;</span>, <span class="ruby-identifier">val</span>.<span class="ruby-identifier">to_i</span>)
845
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">ret</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">ret</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/\D/</span>
846
- <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">to_i</span>
847
- <span class="ruby-keyword">end</span></pre>
848
- </div>
849
-
850
- </div>
851
-
852
-
853
-
854
-
855
- </div>
856
-
857
-
858
- <div id="method-i-make_rttable" class="method-detail ">
859
-
860
- <div class="method-heading">
861
- <span class="method-name">make_rttable</span><span
862
- class="method-args">(node)</span>
863
-
864
- <span class="method-click-advice">click to toggle source</span>
865
-
866
- </div>
867
-
868
-
869
- <div class="method-description">
870
-
871
-
872
-
873
-
874
-
875
-
876
- <div class="method-source-code" id="make_rttable-source">
877
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 80</span>
878
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">make_rttable</span>(<span class="ruby-identifier">node</span>)
879
- <span class="ruby-identifier">mklhash</span> = <span class="ruby-ivar">@sender</span>.<span class="ruby-identifier">send_route_mklhash_command</span>(<span class="ruby-identifier">node</span>)
880
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">mklhash</span>
881
-
882
- <span class="ruby-keyword">if</span> <span class="ruby-ivar">@rttable</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@rttable</span>.<span class="ruby-identifier">mklhash</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">mklhash</span>
883
- <span class="ruby-keyword">return</span> <span class="ruby-ivar">@rttable</span>
884
- <span class="ruby-keyword">end</span>
885
-
886
- <span class="ruby-identifier">rd</span> = <span class="ruby-ivar">@sender</span>.<span class="ruby-identifier">send_routedump_command</span>(<span class="ruby-identifier">node</span>)
887
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">rd</span>
888
- <span class="ruby-identifier">ret</span> = <span class="ruby-constant">ClientRoutingTable</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rd</span>)
889
- <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">mklhash</span> = <span class="ruby-identifier">mklhash</span>
890
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">ret</span>
891
- <span class="ruby-keyword">end</span>
892
- <span class="ruby-keyword">nil</span>
893
- <span class="ruby-keyword">rescue</span>
894
- <span class="ruby-keyword">nil</span>
895
- <span class="ruby-keyword">end</span></pre>
896
- </div>
897
-
898
- </div>
899
-
900
-
901
-
902
-
903
- </div>
904
-
905
-
906
- <div id="method-i-out" class="method-detail ">
907
-
908
- <div class="method-heading">
909
- <span class="method-name">out</span><span
910
- class="method-args">(key)</span>
911
-
912
- <span class="method-click-advice">click to toggle source</span>
913
-
914
- </div>
915
-
916
-
917
- <div class="method-description">
918
-
919
- <p>Delete value completely .</p>
920
-
921
- <p>This method delete value completely. “completely” means Don&#39;t set
922
- delete flag in server, but delete value in storage . Delete method set
923
- delete flag, but delete value soon .</p>
924
- <dl class="rdoc-list label-list"><dt>key
925
- <dd>
926
- <p>key for delete .</p>
927
- </dd><dt>return
928
- <dd>
929
- <p>return follow set status .</p>
930
- </dd></dl>
931
- <ul><li>
932
- <p>If method is success, return DELETED .</p>
933
- </li><li>
934
- <p>If same key doesn&#39;t exist in ROMA, return NOT_FOUND .</p>
935
- </li><li>
936
- <p>If server error, return SERVER_ERROR .</p>
937
- </li></ul>
938
-
939
- <p>If socket error occured, throw Exception .</p>
940
-
941
- <p>If socket timeout occured, throw TimeoutError .</p>
942
-
943
-
944
-
945
-
946
- <div class="method-source-code" id="out-source">
947
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 286</span>
948
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">out</span>(<span class="ruby-identifier">key</span>)
949
- <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-keyword">nil</span>, <span class="ruby-string">&quot;out %s&quot;</span>)
950
- <span class="ruby-keyword">end</span></pre>
951
- </div>
952
-
953
- </div>
954
-
955
-
956
-
957
-
958
- </div>
959
-
960
-
961
- <div id="method-i-prepend" class="method-detail ">
962
-
963
- <div class="method-heading">
964
- <span class="method-name">prepend</span><span
965
- class="method-args">(key, val, expt = 0)</span>
966
-
967
- <span class="method-click-advice">click to toggle source</span>
968
-
969
- </div>
970
-
971
-
972
- <div class="method-description">
973
-
974
- <p>Prepend value to exists string .</p>
975
-
976
- <p>If same key exists in ROMA, this method prepend value . If same key
977
- doesn&#39;t exist in ROMA this method don&#39;t store value and return
978
- NOT_STORE .</p>
979
- <dl class="rdoc-list label-list"><dt>key
980
- <dd>
981
- <p>key for prepend .</p>
982
- </dd><dt>value
983
- <dd>
984
- <p>prepend value .</p>
985
- </dd><dt>exp
986
- <dd>
987
- <p>expire seconds .</p>
988
- </dd><dt>return
989
- <dd>
990
- <p>return follow set status .</p>
991
- </dd></dl>
992
- <ul><li>
993
- <p>If method is success, return STORED .</p>
994
- </li><li>
995
- <p>If same key exists in ROMA, return NOT_STORED .</p>
996
- </li><li>
997
- <p>If server error, return SERVER_ERROR .</p>
998
- </li></ul>
999
-
1000
- <p>If socket error occured, throw Exception .</p>
1001
-
1002
- <p>If socket timeout occured, throw TimeoutError .</p>
1003
-
1004
-
1005
-
1006
-
1007
- <div class="method-source-code" id="prepend-source">
1008
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 224</span>
1009
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">prepend</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">expt</span> = <span class="ruby-value">0</span>)
1010
- <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-string">&quot;prepend %s 0 %d %d&quot;</span>, <span class="ruby-identifier">expt</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">val</span>.<span class="ruby-identifier">length</span>)
1011
- <span class="ruby-keyword">end</span></pre>
1012
- </div>
1013
-
1014
- </div>
1015
-
1016
-
1017
-
1018
-
1019
- </div>
1020
-
1021
-
1022
- <div id="method-i-replace" class="method-detail ">
1023
-
1024
- <div class="method-heading">
1025
- <span class="method-name">replace</span><span
1026
- class="method-args">(key, val, expt = 0, raw = false)</span>
1027
-
1028
- <span class="method-click-advice">click to toggle source</span>
1029
-
1030
- </div>
1031
-
1032
-
1033
- <div class="method-description">
1034
-
1035
- <p>Add value to ROMA .</p>
1036
-
1037
- <p>If same key exists in ROMA, this method overwrite value . If same key
1038
- doesn&#39;t exist in ROMA this method don&#39;t store value and return
1039
- NOT_STORE .</p>
1040
- <dl class="rdoc-list label-list"><dt>key
1041
- <dd>
1042
- <p>key for store .</p>
1043
- </dd><dt>value
1044
- <dd>
1045
- <p>store value .</p>
1046
- </dd><dt>exp
1047
- <dd>
1048
- <p>expire seconds .</p>
1049
- </dd><dt>raw
1050
- <dd>
1051
- <p>You set this value true, value isn&#39;t marshaled .</p>
1052
- </dd><dt>return
1053
- <dd>
1054
- <p>return follow set status .</p>
1055
- </dd></dl>
1056
- <ul><li>
1057
- <p>If method is success, return STORED .</p>
1058
- </li><li>
1059
- <p>If same key exists in ROMA, return NOT_STORED .</p>
1060
- </li><li>
1061
- <p>If server error, return SERVER_ERROR .</p>
1062
- </li></ul>
1063
-
1064
- <p>If socket error occured, throw Exception .</p>
1065
-
1066
- <p>If socket timeout occured, throw TimeoutError .</p>
1067
-
1068
-
1069
-
1070
-
1071
- <div class="method-source-code" id="replace-source">
1072
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 179</span>
1073
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">expt</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">raw</span> = <span class="ruby-keyword">false</span>)
1074
- <span class="ruby-identifier">val</span> = <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">val</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">raw</span>
1075
- <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-string">&quot;replace %s 0 %d %d&quot;</span>, <span class="ruby-identifier">expt</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">val</span>.<span class="ruby-identifier">length</span>)
1076
- <span class="ruby-keyword">end</span></pre>
1077
- </div>
1078
-
1079
- </div>
1080
-
1081
-
1082
-
1083
-
1084
- </div>
1085
-
1086
-
1087
- <div id="method-i-rttable_last_update" class="method-detail ">
1088
-
1089
- <div class="method-heading">
1090
- <span class="method-name">rttable_last_update</span><span
1091
- class="method-args">()</span>
1092
-
1093
- <span class="method-click-advice">click to toggle source</span>
1094
-
1095
- </div>
1096
-
1097
-
1098
- <div class="method-description">
1099
-
1100
-
1101
-
1102
-
1103
-
1104
-
1105
- <div class="method-source-code" id="rttable_last_update-source">
1106
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 76</span>
1107
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">rttable_last_update</span>
1108
- <span class="ruby-ivar">@rttable_last_update</span>
1109
- <span class="ruby-keyword">end</span></pre>
1110
- </div>
1111
-
1112
- </div>
1113
-
1114
-
1115
-
1116
-
1117
- </div>
1118
-
1119
-
1120
- <div id="method-i-set" class="method-detail ">
1121
-
1122
- <div class="method-heading">
1123
- <span class="method-name">set</span><span
1124
- class="method-args">(key, val, expt = 0, raw = false)</span>
1125
-
1126
- <span class="method-click-advice">click to toggle source</span>
1127
-
1128
- </div>
1129
-
1130
-
1131
- <div class="method-description">
1132
-
1133
- <p>Set value to ROMA .</p>
1134
-
1135
- <p>Both same same key exists or not exists in ROMA, this method set value .</p>
1136
- <dl class="rdoc-list label-list"><dt>key
1137
- <dd>
1138
- <p>key for store .</p>
1139
- </dd><dt>value
1140
- <dd>
1141
- <p>store value .</p>
1142
- </dd><dt>exp
1143
- <dd>
1144
- <p>expire seconds .</p>
1145
- </dd><dt>raw
1146
- <dd>
1147
- <p>You set this value true, value isn&#39;t marshaled .</p>
1148
- </dd><dt>return
1149
- <dd>
1150
- <p>return follow set status .</p>
1151
- </dd></dl>
1152
- <ul><li>
1153
- <p>If method is success, return STORED .</p>
1154
- </li><li>
1155
- <p>If method is not stored, return NOT_STORED .</p>
1156
- </li><li>
1157
- <p>If server error, return SERVER_ERROR .</p>
1158
- </li></ul>
1159
-
1160
- <p>If socket error occured, throw Exception .</p>
1161
-
1162
- <p>If socket timeout occured, throw TimeoutError .</p>
1163
-
1164
-
1165
-
1166
-
1167
- <div class="method-source-code" id="set-source">
1168
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 132</span>
1169
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-identifier">expt</span> = <span class="ruby-value">0</span>, <span class="ruby-identifier">raw</span> = <span class="ruby-keyword">false</span>)
1170
- <span class="ruby-identifier">val</span> = <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">dump</span>(<span class="ruby-identifier">val</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">raw</span>
1171
- <span class="ruby-identifier">sender</span>(<span class="ruby-value">:oneline_receiver</span>, <span class="ruby-identifier">key</span>, <span class="ruby-identifier">val</span>, <span class="ruby-string">&quot;set %s 0 %d %d&quot;</span>, <span class="ruby-identifier">expt</span>.<span class="ruby-identifier">to_i</span>, <span class="ruby-identifier">val</span>.<span class="ruby-identifier">length</span>)
1172
- <span class="ruby-keyword">end</span></pre>
1173
- </div>
1174
-
1175
- </div>
1176
-
1177
-
1178
-
1179
-
1180
- </div>
1181
-
1182
-
1183
- <div id="method-i-stats" class="method-detail ">
1184
-
1185
- <div class="method-heading">
1186
- <span class="method-name">stats</span><span
1187
- class="method-args">(filter: "", node: @rttable.nodes.first)</span>
1188
-
1189
- <span class="method-click-advice">click to toggle source</span>
1190
-
1191
- </div>
1192
-
1193
-
1194
- <div class="method-description">
1195
-
1196
-
1197
-
1198
-
1199
-
1200
-
1201
- <div class="method-source-code" id="stats-source">
1202
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 379</span>
1203
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">stats</span>(<span class="ruby-identifier">filter</span><span class="ruby-operator">:</span> <span class="ruby-string">&quot;&quot;</span>, <span class="ruby-identifier">node</span><span class="ruby-operator">:</span> <span class="ruby-ivar">@rttable</span>.<span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">first</span>)
1204
- <span class="ruby-ivar">@sender</span>.<span class="ruby-identifier">send_stats_command</span>(<span class="ruby-identifier">filter</span>, <span class="ruby-identifier">node</span>)
1205
- <span class="ruby-keyword">end</span></pre>
1206
- </div>
1207
-
1208
- </div>
1209
-
1210
-
1211
-
1212
-
1213
- </div>
1214
-
1215
-
1216
- <div id="method-i-update_rttable" class="method-detail ">
1217
-
1218
- <div class="method-heading">
1219
- <span class="method-name">update_rttable</span><span
1220
- class="method-args">(nodes = self.rttable.nodes)</span>
1221
-
1222
- <span class="method-click-advice">click to toggle source</span>
1223
-
1224
- </div>
1225
-
1226
-
1227
- <div class="method-description">
1228
-
1229
-
1230
-
1231
-
1232
-
1233
-
1234
- <div class="method-source-code" id="update_rttable-source">
1235
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 61</span>
1236
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">update_rttable</span>(<span class="ruby-identifier">nodes</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">rttable</span>.<span class="ruby-identifier">nodes</span>)
1237
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;nodes must not be nil.&quot;</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">nodes</span>
1238
-
1239
- <span class="ruby-identifier">nodes</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">node</span><span class="ruby-operator">|</span>
1240
- <span class="ruby-identifier">rt</span> = <span class="ruby-identifier">make_rttable</span>(<span class="ruby-identifier">node</span>)
1241
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">rt</span>
1242
- <span class="ruby-ivar">@rttable</span> = <span class="ruby-identifier">rt</span>
1243
- <span class="ruby-ivar">@rttable_last_update</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
1244
- <span class="ruby-keyword">return</span>
1245
- <span class="ruby-keyword">end</span>
1246
- }
1247
-
1248
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;fatal error&quot;</span>)
1249
- <span class="ruby-keyword">end</span></pre>
1250
- </div>
1251
-
1252
- </div>
1253
-
1254
-
1255
-
1256
-
1257
- </div>
1258
-
1259
-
1260
- <div id="method-i-verbosity" class="method-detail ">
1261
-
1262
- <div class="method-heading">
1263
- <span class="method-name">verbosity</span><span
1264
- class="method-args">()</span>
1265
-
1266
- <span class="method-click-advice">click to toggle source</span>
1267
-
1268
- </div>
1269
-
1270
-
1271
- <div class="method-description">
1272
-
1273
-
1274
-
1275
-
1276
-
1277
-
1278
- <div class="method-source-code" id="verbosity-source">
1279
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 388</span>
1280
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">verbosity</span>
1281
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;Unsupported yet&quot;</span>) <span class="ruby-comment"># TODO</span>
1282
- <span class="ruby-ivar">@sender</span>.<span class="ruby-identifier">send_verbosity_command</span>
1283
- <span class="ruby-keyword">end</span></pre>
1284
- </div>
1285
-
1286
- </div>
1287
-
1288
-
1289
-
1290
-
1291
- </div>
1292
-
1293
-
1294
- <div id="method-i-version" class="method-detail ">
1295
-
1296
- <div class="method-heading">
1297
- <span class="method-name">version</span><span
1298
- class="method-args">()</span>
1299
-
1300
- <span class="method-click-advice">click to toggle source</span>
1301
-
1302
- </div>
1303
-
1304
-
1305
- <div class="method-description">
1306
-
1307
-
1308
-
1309
-
1310
-
1311
-
1312
- <div class="method-source-code" id="version-source">
1313
- <pre><span class="ruby-comment"># File lib/roma/client/rclient.rb, line 383</span>
1314
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">version</span>
1315
- <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;Unsupported yet&quot;</span>) <span class="ruby-comment"># TODO</span>
1316
- <span class="ruby-ivar">@sender</span>.<span class="ruby-identifier">send_version_command</span>
1317
- <span class="ruby-keyword">end</span></pre>
1318
- </div>
1319
-
1320
- </div>
1321
-
1322
-
1323
-
1324
-
1325
- </div>
1326
-
1327
-
1328
- </section>
1329
-
1330
- </section>
1331
- </main>
1332
-
1333
-
1334
- <footer id="validator-badges" role="contentinfo">
1335
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
1336
- <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.2.
1337
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
1338
- </footer>
1339
-