localmemcache 0.2.2 → 0.3.0

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 (64) hide show
  1. data/README +18 -11
  2. data/Rakefile +22 -7
  3. data/VERSION +1 -1
  4. data/bench/common.rb +7 -0
  5. data/bench/gdbm_vs_lmc +10 -0
  6. data/bench/gdbm_vs_lmc.rb +29 -0
  7. data/bench/lmc_bench +11 -0
  8. data/bench/lmc_bench.rb +27 -0
  9. data/bench/memcached_bench +8 -0
  10. data/bench/memcached_bench.rb +19 -0
  11. data/bench/tyrant_bench +10 -0
  12. data/bench/tyrant_bench.rb +19 -0
  13. data/example/hello.c +1 -1
  14. data/site/doc/classes/LocalMemCache/ArgError.html +113 -0
  15. data/site/doc/classes/LocalMemCache/InitError.html +113 -0
  16. data/site/doc/classes/LocalMemCache/LocalMemCacheError.html +111 -0
  17. data/site/doc/classes/LocalMemCache/LockError.html +113 -0
  18. data/site/doc/classes/LocalMemCache/LockTimedOut.html +113 -0
  19. data/site/doc/classes/LocalMemCache/MemoryPoolClosed.html +113 -0
  20. data/site/doc/classes/LocalMemCache/MemoryPoolFull.html +113 -0
  21. data/site/doc/classes/LocalMemCache/OutOfMemoryError.html +113 -0
  22. data/site/doc/classes/LocalMemCache/RecoveryFailed.html +113 -0
  23. data/site/doc/classes/LocalMemCache/ShmError.html +113 -0
  24. data/site/doc/classes/LocalMemCache/ShmLockFailed.html +113 -0
  25. data/site/doc/classes/LocalMemCache/ShmUnlockFailed.html +113 -0
  26. data/site/doc/classes/LocalMemCache.html +515 -0
  27. data/site/doc/classes/LocalMemCache.src/M000001.html +19 -0
  28. data/site/doc/classes/LocalMemCache.src/M000002.html +18 -0
  29. data/site/doc/classes/LocalMemCache.src/M000003.html +18 -0
  30. data/site/doc/classes/LocalMemCache.src/M000004.html +39 -0
  31. data/site/doc/classes/LocalMemCache.src/M000005.html +29 -0
  32. data/site/doc/classes/LocalMemCache.src/M000006.html +23 -0
  33. data/site/doc/classes/LocalMemCache.src/M000007.html +23 -0
  34. data/site/doc/classes/LocalMemCache.src/M000008.html +22 -0
  35. data/site/doc/classes/LocalMemCache.src/M000009.html +24 -0
  36. data/site/doc/classes/LocalMemCache.src/M000010.html +24 -0
  37. data/site/doc/classes/LocalMemCache.src/M000011.html +22 -0
  38. data/site/doc/classes/LocalMemCache.src/M000012.html +22 -0
  39. data/site/doc/created.rid +1 -0
  40. data/site/doc/files/__/src/ruby-binding/extconf_rb.html +108 -0
  41. data/site/doc/files/__/src/ruby-binding/localmemcache_rb.html +108 -0
  42. data/site/doc/files/__/src/ruby-binding/rblocalmemcache_c.html +101 -0
  43. data/site/doc/fr_class_index.html +39 -0
  44. data/site/doc/fr_file_index.html +28 -0
  45. data/site/doc/fr_method_index.html +38 -0
  46. data/site/doc/index.html +24 -0
  47. data/site/doc/rdoc-style.css +208 -0
  48. data/site/index.html +50 -46
  49. data/src/lmc_common.c +22 -0
  50. data/src/lmc_common.h +4 -0
  51. data/src/lmc_hashtable.h +1 -1
  52. data/src/lmc_lock.c +17 -3
  53. data/src/lmc_shm.c +4 -2
  54. data/src/lmc_valloc.c +6 -5
  55. data/src/lmc_valloc.h +1 -0
  56. data/src/localmemcache.c +56 -35
  57. data/src/localmemcache.h +161 -4
  58. data/src/ruby-binding/localmemcache.rb +48 -16
  59. data/src/ruby-binding/rblocalmemcache.c +131 -24
  60. data/src/tests/bench.rb +1 -1
  61. data/src/tests/lmc.rb +11 -2
  62. metadata +48 -7
  63. data/INTERNALS +0 -26
  64. data/example/hello.bin +0 -0
@@ -0,0 +1,515 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>Class: LocalMemCache</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="classHeader">
50
+ <table class="header-table">
51
+ <tr class="top-aligned-row">
52
+ <td><strong>Class</strong></td>
53
+ <td class="class-name-in-header">LocalMemCache</td>
54
+ </tr>
55
+ <tr class="top-aligned-row">
56
+ <td><strong>In:</strong></td>
57
+ <td>
58
+ <a href="../files/__/src/ruby-binding/localmemcache_rb.html">
59
+ ../src/ruby-binding/localmemcache.rb
60
+ </a>
61
+ <br />
62
+ <a href="../files/__/src/ruby-binding/rblocalmemcache_c.html">
63
+ ../src/ruby-binding/rblocalmemcache.c
64
+ </a>
65
+ <br />
66
+ </td>
67
+ </tr>
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+ Object
73
+ </td>
74
+ </tr>
75
+ </table>
76
+ </div>
77
+ <!-- banner header -->
78
+
79
+ <div id="bodyContent">
80
+
81
+
82
+
83
+ <div id="contextContent">
84
+
85
+ <div id="description">
86
+ <p>
87
+ <tt><a href="LocalMemCache.html">LocalMemCache</a></tt> provides for a
88
+ Hashtable of strings in shared memory (via a memory mapped file), which
89
+ thus can be shared between processes on a computer. Here is an example of
90
+ its usage:
91
+ </p>
92
+ <pre>
93
+ $lm = LocalMemCache.new :namespace =&gt; &quot;viewcounters&quot;
94
+ $lm[:foo] = 1
95
+ $lm[:foo] # -&gt; &quot;1&quot;
96
+ $lm.delete(:foo)
97
+ </pre>
98
+ <p>
99
+ <tt><a href="LocalMemCache.html">LocalMemCache</a></tt> can also be used as
100
+ a persistent key value database, just use the :filename instead of the
101
+ :namespace parameter.
102
+ </p>
103
+ <pre>
104
+ $lm = LocalMemCache.new :filename =&gt; &quot;my-database.lmc&quot;
105
+ $lm[:foo] = 1
106
+ $lm[:foo] # -&gt; &quot;1&quot;
107
+ $lm.delete(:foo)
108
+
109
+ == Default sizes of memory pools
110
+
111
+ The default size for memory pools is 1024 (MB). It cannot be changed later,
112
+ so choose a size that will provide enough space for all your data. You
113
+ might consider setting this size to the maximum filesize of your
114
+ filesystem. Also note that while these memory pools may look large on your
115
+ disk, they really aren't, because with sparse files only those parts of the
116
+ file which contain non-null data actually use disk space.
117
+
118
+ == Automatic recovery from crashes
119
+
120
+ In case a process is terminated while accessing a memory pool, other
121
+ processes will wait for the lock up to 2 seconds, and will then try to
122
+ resume the aborted operation. This can also be done explicitly by using
123
+ LocalMemCache.check(options).
124
+
125
+ == Clearing memory pools
126
+
127
+ Removing memory pools can be done with LocalMemCache.clear(options).
128
+
129
+ == Environment
130
+
131
+ If you use the :namespace parameter, the .lmc file for your namespace will
132
+ reside in /var/tmp/localmemcache. This can be overriden by setting the
133
+ LMC_NAMESPACES_ROOT_PATH variable in the environment.
134
+ </pre>
135
+
136
+ </div>
137
+
138
+
139
+ </div>
140
+
141
+ <div id="method-list">
142
+ <h3 class="section-bar">Methods</h3>
143
+
144
+ <div class="name-list">
145
+ <a href="#M000007">[]</a>&nbsp;&nbsp;
146
+ <a href="#M000010">[]=</a>&nbsp;&nbsp;
147
+ <a href="#M000005">check</a>&nbsp;&nbsp;
148
+ <a href="#M000003">check_namespace</a>&nbsp;&nbsp;
149
+ <a href="#M000004">clear</a>&nbsp;&nbsp;
150
+ <a href="#M000002">clear_namespace</a>&nbsp;&nbsp;
151
+ <a href="#M000012">close</a>&nbsp;&nbsp;
152
+ <a href="#M000008">delete</a>&nbsp;&nbsp;
153
+ <a href="#M000006">get</a>&nbsp;&nbsp;
154
+ <a href="#M000011">keys</a>&nbsp;&nbsp;
155
+ <a href="#M000001">new</a>&nbsp;&nbsp;
156
+ <a href="#M000009">set</a>&nbsp;&nbsp;
157
+ </div>
158
+ </div>
159
+
160
+ </div>
161
+
162
+
163
+ <!-- if includes -->
164
+
165
+ <div id="section">
166
+
167
+ <div id="class-list">
168
+ <h3 class="section-bar">Classes and Modules</h3>
169
+
170
+ Class <a href="LocalMemCache/ArgError.html" class="link">LocalMemCache::ArgError</a><br />
171
+ Class <a href="LocalMemCache/InitError.html" class="link">LocalMemCache::InitError</a><br />
172
+ Class <a href="LocalMemCache/LocalMemCacheError.html" class="link">LocalMemCache::LocalMemCacheError</a><br />
173
+ Class <a href="LocalMemCache/LockError.html" class="link">LocalMemCache::LockError</a><br />
174
+ Class <a href="LocalMemCache/LockTimedOut.html" class="link">LocalMemCache::LockTimedOut</a><br />
175
+ Class <a href="LocalMemCache/MemoryPoolClosed.html" class="link">LocalMemCache::MemoryPoolClosed</a><br />
176
+ Class <a href="LocalMemCache/MemoryPoolFull.html" class="link">LocalMemCache::MemoryPoolFull</a><br />
177
+ Class <a href="LocalMemCache/OutOfMemoryError.html" class="link">LocalMemCache::OutOfMemoryError</a><br />
178
+ Class <a href="LocalMemCache/RecoveryFailed.html" class="link">LocalMemCache::RecoveryFailed</a><br />
179
+ Class <a href="LocalMemCache/ShmError.html" class="link">LocalMemCache::ShmError</a><br />
180
+ Class <a href="LocalMemCache/ShmLockFailed.html" class="link">LocalMemCache::ShmLockFailed</a><br />
181
+ Class <a href="LocalMemCache/ShmUnlockFailed.html" class="link">LocalMemCache::ShmUnlockFailed</a><br />
182
+
183
+ </div>
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+ <!-- if method_list -->
192
+ <div id="methods">
193
+ <h3 class="section-bar">Public Class methods</h3>
194
+
195
+ <div id="method-M000005" class="method-detail">
196
+ <a name="M000005"></a>
197
+
198
+ <div class="method-heading">
199
+ <a href="LocalMemCache.src/M000005.html" target="Code" class="method-signature"
200
+ onclick="popupCode('LocalMemCache.src/M000005.html');return false;">
201
+ <span class="method-name"> LocalMemCache.check(*args)<br />
202
+ </span>
203
+ </a>
204
+ </div>
205
+
206
+ <div class="method-description">
207
+ <p>
208
+ Tries to repair a corrupt namespace. Usually one doesn&#8216;t call this
209
+ method directly, it&#8216;s invoked automatically when operations time out.
210
+ </p>
211
+ <p>
212
+ valid options are [:namespace] [:filename]
213
+ </p>
214
+ <p>
215
+ The memory pool must be specified by either setting the :filename or
216
+ :namespace option.
217
+ </p>
218
+ </div>
219
+ </div>
220
+
221
+ <div id="method-M000003" class="method-detail">
222
+ <a name="M000003"></a>
223
+
224
+ <div class="method-heading">
225
+ <a href="LocalMemCache.src/M000003.html" target="Code" class="method-signature"
226
+ onclick="popupCode('LocalMemCache.src/M000003.html');return false;">
227
+ <span class="method-name">check_namespace</span><span class="method-args">(namespace)</span>
228
+ </a>
229
+ </div>
230
+
231
+ <div class="method-description">
232
+ <p>
233
+ NOTE: This method is deprecated, use <a
234
+ href="LocalMemCache.html#M000005">LocalMemCache.check(*args)</a> instead.
235
+ </p>
236
+ <p>
237
+ Tries to repair a corrupt namespace. Usually one doesn&#8216;t call this
238
+ method directly, it&#8216;s invoked automatically when operations time out.
239
+ </p>
240
+ <p>
241
+ valid options are [:namespace] [:filename]
242
+ </p>
243
+ <p>
244
+ The memory pool must be specified by either setting the :filename or
245
+ :namespace option. The default for :repair is false.
246
+ </p>
247
+ </div>
248
+ </div>
249
+
250
+ <div id="method-M000004" class="method-detail">
251
+ <a name="M000004"></a>
252
+
253
+ <div class="method-heading">
254
+ <a href="LocalMemCache.src/M000004.html" target="Code" class="method-signature"
255
+ onclick="popupCode('LocalMemCache.src/M000004.html');return false;">
256
+ <span class="method-name"> LocalMemCache.clear(*args)<br />
257
+ </span>
258
+ </a>
259
+ </div>
260
+
261
+ <div class="method-description">
262
+ <p>
263
+ Deletes a memory pool. If the :repair option is <a
264
+ href="LocalMemCache.html#M000009">set</a>, locked semaphores are removed as
265
+ well.
266
+ </p>
267
+ <p>
268
+ WARNING: Do only call this method with the :repair option if you are sure
269
+ that you really want to remove this memory pool and no more processes are
270
+ still using it.
271
+ </p>
272
+ <p>
273
+ If you <a href="LocalMemCache.html#M000008">delete</a> a pool and other
274
+ processes still have handles open on it, the status of these handles
275
+ becomes undefined. There&#8216;s no way for a process to know when a handle
276
+ is not valid anymore, so only <a
277
+ href="LocalMemCache.html#M000008">delete</a> a memory pool if you are sure
278
+ that all handles are closed.
279
+ </p>
280
+ <p>
281
+ valid options for <a href="LocalMemCache.html#M000004">clear</a> are
282
+ [:namespace] [:filename] [:repair]
283
+ </p>
284
+ <p>
285
+ The memory pool must be specified by either setting the :filename or
286
+ :namespace option. The default for :repair is false.
287
+ </p>
288
+ </div>
289
+ </div>
290
+
291
+ <div id="method-M000002" class="method-detail">
292
+ <a name="M000002"></a>
293
+
294
+ <div class="method-heading">
295
+ <a href="LocalMemCache.src/M000002.html" target="Code" class="method-signature"
296
+ onclick="popupCode('LocalMemCache.src/M000002.html');return false;">
297
+ <span class="method-name">clear_namespace</span><span class="method-args">(namespace, repair = false)</span>
298
+ </a>
299
+ </div>
300
+
301
+ <div class="method-description">
302
+ <p>
303
+ NOTE: This method is deprecated, use <a
304
+ href="LocalMemCache.html#M000004">LocalMemCache.clear(*args)</a> instead.
305
+ </p>
306
+ <p>
307
+ Deletes a memory pool. If the repair flag is <a
308
+ href="LocalMemCache.html#M000009">set</a>, locked semaphores are removed as
309
+ well.
310
+ </p>
311
+ <p>
312
+ If you <a href="LocalMemCache.html#M000008">delete</a> a pool and other
313
+ processes still have handles open on it, the status of these handles
314
+ becomes undefined. There&#8216;s no way for a process to know when a handle
315
+ is not valid anymore, so only <a
316
+ href="LocalMemCache.html#M000008">delete</a> a memory pool if you are sure
317
+ that all handles are closed.
318
+ </p>
319
+ <p>
320
+ WARNING: Do only call this method with the repair=true flag if you are sure
321
+ that you really want to remove this memory pool and no more processes are
322
+ still using it.
323
+ </p>
324
+ </div>
325
+ </div>
326
+
327
+ <div id="method-M000001" class="method-detail">
328
+ <a name="M000001"></a>
329
+
330
+ <div class="method-heading">
331
+ <a href="LocalMemCache.src/M000001.html" target="Code" class="method-signature"
332
+ onclick="popupCode('LocalMemCache.src/M000001.html');return false;">
333
+ <span class="method-name">new</span><span class="method-args">(options)</span>
334
+ </a>
335
+ </div>
336
+
337
+ <div class="method-description">
338
+ <p>
339
+ Creates a <a href="LocalMemCache.html#M000001">new</a> handle for accessing
340
+ a shared memory region.
341
+ </p>
342
+ <p>
343
+ <a href="LocalMemCache.html#M000001">LocalMemCache.new</a>
344
+ :namespace=&gt;&quot;foo&quot;, :size_mb=&gt; 1
345
+ </p>
346
+ <p>
347
+ <a href="LocalMemCache.html#M000001">LocalMemCache.new</a>
348
+ :filename=&gt;&quot;./foo.lmc&quot;
349
+ </p>
350
+ <p>
351
+ You must supply at least a :namespace or :filename parameter The size_mb
352
+ defaults to 1024 (1 GB).
353
+ </p>
354
+ <p>
355
+ If you use the :namespace parameter, the .lmc file for your namespace will
356
+ reside in /var/tmp/localmemcache. This can be overriden by setting the
357
+ LMC_NAMESPACES_ROOT_PATH variable in the environment.
358
+ </p>
359
+ <p>
360
+ When you first call .<a href="LocalMemCache.html#M000001">new</a> for a
361
+ previously not existing memory pool, a sparse file will be created and
362
+ memory and disk space will be allocated to hold the empty hashtable (about
363
+ 100K), so the size_mb refers only to the maximum size of the memory pool.
364
+ .<a href="LocalMemCache.html#M000001">new</a> for an already existing
365
+ memory pool will only map the already previously allocated RAM into the
366
+ virtual address space of your process.
367
+ </p>
368
+ </div>
369
+ </div>
370
+
371
+ <h3 class="section-bar">Public Instance methods</h3>
372
+
373
+ <div id="method-M000007" class="method-detail">
374
+ <a name="M000007"></a>
375
+
376
+ <div class="method-heading">
377
+ <a href="LocalMemCache.src/M000007.html" target="Code" class="method-signature"
378
+ onclick="popupCode('LocalMemCache.src/M000007.html');return false;">
379
+ <span class="method-name">lmc.get(key) &rarr; string value or nil<br />
380
+ lmc[key] &rarr; string value or nil<br />
381
+ </span>
382
+ </a>
383
+ </div>
384
+
385
+ <div class="method-description">
386
+ <p>
387
+ Retrieve string value from hashtable.
388
+ </p>
389
+ </div>
390
+ </div>
391
+
392
+ <div id="method-M000010" class="method-detail">
393
+ <a name="M000010"></a>
394
+
395
+ <div class="method-heading">
396
+ <a href="LocalMemCache.src/M000010.html" target="Code" class="method-signature"
397
+ onclick="popupCode('LocalMemCache.src/M000010.html');return false;">
398
+ <span class="method-name">lmc.set(key, value) &rarr; Qnil<br />
399
+ lmc[key]=value &rarr; Qnil<br />
400
+ </span>
401
+ </a>
402
+ </div>
403
+
404
+ <div class="method-description">
405
+ <p>
406
+ Set value for key in hashtable. Value and key will be converted to string.
407
+ </p>
408
+ </div>
409
+ </div>
410
+
411
+ <div id="method-M000012" class="method-detail">
412
+ <a name="M000012"></a>
413
+
414
+ <div class="method-heading">
415
+ <a href="LocalMemCache.src/M000012.html" target="Code" class="method-signature"
416
+ onclick="popupCode('LocalMemCache.src/M000012.html');return false;">
417
+ <span class="method-name">lmc.close() &rarr; Qnil<br />
418
+ </span>
419
+ </a>
420
+ </div>
421
+
422
+ <div class="method-description">
423
+ <p>
424
+ Releases hashtable.
425
+ </p>
426
+ </div>
427
+ </div>
428
+
429
+ <div id="method-M000008" class="method-detail">
430
+ <a name="M000008"></a>
431
+
432
+ <div class="method-heading">
433
+ <a href="LocalMemCache.src/M000008.html" target="Code" class="method-signature"
434
+ onclick="popupCode('LocalMemCache.src/M000008.html');return false;">
435
+ <span class="method-name">lmc.delete(key) &rarr; Qnil<br />
436
+ </span>
437
+ </a>
438
+ </div>
439
+
440
+ <div class="method-description">
441
+ <p>
442
+ Deletes key from hashtable. The key is converted to string.
443
+ </p>
444
+ </div>
445
+ </div>
446
+
447
+ <div id="method-M000006" class="method-detail">
448
+ <a name="M000006"></a>
449
+
450
+ <div class="method-heading">
451
+ <a href="LocalMemCache.src/M000006.html" target="Code" class="method-signature"
452
+ onclick="popupCode('LocalMemCache.src/M000006.html');return false;">
453
+ <span class="method-name">lmc.get(key) &rarr; string value or nil<br />
454
+ lmc[key] &rarr; string value or nil<br />
455
+ </span>
456
+ </a>
457
+ </div>
458
+
459
+ <div class="method-description">
460
+ <p>
461
+ Retrieve string value from hashtable.
462
+ </p>
463
+ </div>
464
+ </div>
465
+
466
+ <div id="method-M000011" class="method-detail">
467
+ <a name="M000011"></a>
468
+
469
+ <div class="method-heading">
470
+ <a href="LocalMemCache.src/M000011.html" target="Code" class="method-signature"
471
+ onclick="popupCode('LocalMemCache.src/M000011.html');return false;">
472
+ <span class="method-name">lmc.keys() &rarr; array or nil<br />
473
+ </span>
474
+ </a>
475
+ </div>
476
+
477
+ <div class="method-description">
478
+ <p>
479
+ Returns a list of <a href="LocalMemCache.html#M000011">keys</a>.
480
+ </p>
481
+ </div>
482
+ </div>
483
+
484
+ <div id="method-M000009" class="method-detail">
485
+ <a name="M000009"></a>
486
+
487
+ <div class="method-heading">
488
+ <a href="LocalMemCache.src/M000009.html" target="Code" class="method-signature"
489
+ onclick="popupCode('LocalMemCache.src/M000009.html');return false;">
490
+ <span class="method-name">lmc.set(key, value) &rarr; Qnil<br />
491
+ lmc[key]=value &rarr; Qnil<br />
492
+ </span>
493
+ </a>
494
+ </div>
495
+
496
+ <div class="method-description">
497
+ <p>
498
+ Set value for key in hashtable. Value and key will be converted to string.
499
+ </p>
500
+ </div>
501
+ </div>
502
+
503
+
504
+ </div>
505
+
506
+
507
+ </div>
508
+
509
+
510
+ <div id="validator-badges">
511
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
512
+ </div>
513
+
514
+ </body>
515
+ </html>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>new (LocalMemCache)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File ../src/ruby-binding/localmemcache.rb, line 39</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>)
15
+ <span class="ruby-identifier">o</span> = { <span class="ruby-identifier">:size_mb</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> }.<span class="ruby-identifier">update</span>(<span class="ruby-identifier">options</span> <span class="ruby-operator">||</span> {})
16
+ <span class="ruby-identifier">_new</span>(<span class="ruby-identifier">o</span>);
17
+ <span class="ruby-keyword kw">end</span></pre>
18
+ </body>
19
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>clear_namespace (LocalMemCache)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File ../src/ruby-binding/localmemcache.rb, line 57</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clear_namespace</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">repair</span> = <span class="ruby-keyword kw">false</span>)
15
+ <span class="ruby-identifier">clear</span> <span class="ruby-identifier">:namespace</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">:repair</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">repair</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>check_namespace (LocalMemCache)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre><span class="ruby-comment cmt"># File ../src/ruby-binding/localmemcache.rb, line 72</span>
14
+ <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">check_namespace</span>(<span class="ruby-identifier">namespace</span>)
15
+ <span class="ruby-identifier">check</span> <span class="ruby-identifier">:namespace</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">to_s</span>
16
+ <span class="ruby-keyword kw">end</span></pre>
17
+ </body>
18
+ </html>
@@ -0,0 +1,39 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>clear (LocalMemCache)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre>/*
14
+ * call-seq: LocalMemCache.clear(*args)
15
+ *
16
+ * Deletes a memory pool. If the :repair option is set, locked semaphores are
17
+ * removed as well.
18
+ *
19
+ * WARNING: Do only call this method with the :repair option if you are sure
20
+ * that you really want to remove this memory pool and no more processes are
21
+ * still using it.
22
+ *
23
+ * If you delete a pool and other processes still have handles open on it, the
24
+ * status of these handles becomes undefined. There's no way for a process to
25
+ * know when a handle is not valid anymore, so only delete a memory pool if
26
+ * you are sure that all handles are closed.
27
+ *
28
+ * valid options for clear are
29
+ * [:namespace]
30
+ * [:filename]
31
+ * [:repair]
32
+ *
33
+ * The memory pool must be specified by either setting the :filename or
34
+ * :namespace option. The default for :repair is false.
35
+ */
36
+ static VALUE LocalMemCache__clear(VALUE klass, VALUE o) {
37
+ </pre>
38
+ </body>
39
+ </html>
@@ -0,0 +1,29 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>check (LocalMemCache)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre>/*
14
+ * call-seq: LocalMemCache.check(*args)
15
+ *
16
+ * Tries to repair a corrupt namespace. Usually one doesn't call this method
17
+ * directly, it's invoked automatically when operations time out.
18
+ *
19
+ * valid options are
20
+ * [:namespace]
21
+ * [:filename]
22
+ *
23
+ * The memory pool must be specified by either setting the :filename or
24
+ * :namespace option.
25
+ */
26
+ static VALUE LocalMemCache__check(VALUE klass, VALUE o) {
27
+ </pre>
28
+ </body>
29
+ </html>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html>
7
+ <head>
8
+ <title>get (LocalMemCache)</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
+ </head>
12
+ <body class="standalone-code">
13
+ <pre>/*
14
+ * call-seq:
15
+ * lmc.get(key) -&gt; string value or nil
16
+ * lmc[key] -&gt; string value or nil
17
+ *
18
+ * Retrieve string value from hashtable.
19
+ */
20
+ static VALUE LocalMemCache__get(VALUE obj, VALUE key) {
21
+ </pre>
22
+ </body>
23
+ </html>