autoc 1.4 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES.md +3 -0
  3. data/README.md +149 -0
  4. data/cmake/AutoC.cmake +39 -0
  5. data/lib/autoc/allocators.rb +51 -0
  6. data/lib/autoc/association.rb +126 -0
  7. data/lib/autoc/box.rb +311 -0
  8. data/lib/autoc/cmake.rb +54 -0
  9. data/lib/autoc/collection.rb +83 -110
  10. data/lib/autoc/composite.rb +333 -0
  11. data/lib/autoc/cstring.rb +263 -0
  12. data/lib/autoc/function.rb +247 -0
  13. data/lib/autoc/hash_map.rb +328 -0
  14. data/lib/autoc/hash_set.rb +339 -0
  15. data/lib/autoc/hashers.rb +102 -0
  16. data/lib/autoc/list.rb +444 -0
  17. data/lib/autoc/module.rb +434 -0
  18. data/lib/autoc/openmp.rb +15 -0
  19. data/lib/autoc/primitive.rb +27 -0
  20. data/lib/autoc/ranges.rb +707 -0
  21. data/lib/autoc/record.rb +247 -0
  22. data/lib/autoc/scaffold/docs.rb +117 -0
  23. data/lib/autoc/scaffold/generic_value.rb +86 -0
  24. data/lib/autoc/scaffold/project.rb +75 -0
  25. data/lib/autoc/scaffold/test_cstring.rb +113 -0
  26. data/lib/autoc/scaffold/test_cstring_hash_set.rb +35 -0
  27. data/lib/autoc/scaffold/test_int_box.rb +22 -0
  28. data/lib/autoc/scaffold/test_int_hash_set.rb +448 -0
  29. data/lib/autoc/scaffold/test_int_list.rb +106 -0
  30. data/lib/autoc/scaffold/test_int_vector.rb +83 -0
  31. data/lib/autoc/scaffold/test_v2v_hash_map.rb +83 -0
  32. data/lib/autoc/scaffold/test_value_hash_set.rb +60 -0
  33. data/lib/autoc/scaffold/test_value_vector.rb +146 -0
  34. data/{test/test.rb → lib/autoc/scaffold/tests.rb} +179 -158
  35. data/lib/autoc/scaffold.rb +12 -0
  36. data/lib/autoc/sequential.rb +99 -0
  37. data/lib/autoc/set.rb +331 -0
  38. data/lib/autoc/std.rb +149 -0
  39. data/lib/autoc/type.rb +93 -531
  40. data/lib/autoc/vector.rb +290 -0
  41. data/lib/autoc.rb +4 -35
  42. metadata +55 -85
  43. data/.yardopts +0 -4
  44. data/CHANGES +0 -23
  45. data/README +0 -28
  46. data/doc/AutoC/Code.html +0 -523
  47. data/doc/AutoC/Collection.html +0 -1214
  48. data/doc/AutoC/HashMap.html +0 -1441
  49. data/doc/AutoC/HashSet.html +0 -916
  50. data/doc/AutoC/Iterators/Bidirectional.html +0 -204
  51. data/doc/AutoC/Iterators/Unidirectional.html +0 -200
  52. data/doc/AutoC/Iterators.html +0 -126
  53. data/doc/AutoC/List.html +0 -1039
  54. data/doc/AutoC/Maps.html +0 -290
  55. data/doc/AutoC/Module/File.html +0 -415
  56. data/doc/AutoC/Module/Header.html +0 -437
  57. data/doc/AutoC/Module/Source.html +0 -707
  58. data/doc/AutoC/Module.html +0 -948
  59. data/doc/AutoC/Priority.html +0 -138
  60. data/doc/AutoC/Queue.html +0 -1172
  61. data/doc/AutoC/Reference.html +0 -735
  62. data/doc/AutoC/Sets.html +0 -520
  63. data/doc/AutoC/String.html +0 -1394
  64. data/doc/AutoC/TreeMap.html +0 -1565
  65. data/doc/AutoC/TreeSet.html +0 -1447
  66. data/doc/AutoC/Type.html +0 -2148
  67. data/doc/AutoC/UserDefinedType.html +0 -1047
  68. data/doc/AutoC/Vector.html +0 -987
  69. data/doc/AutoC.html +0 -331
  70. data/doc/_index.html +0 -388
  71. data/doc/class_list.html +0 -51
  72. data/doc/css/common.css +0 -1
  73. data/doc/css/full_list.css +0 -58
  74. data/doc/css/style.css +0 -481
  75. data/doc/file.CHANGES.html +0 -117
  76. data/doc/file.README.html +0 -116
  77. data/doc/file_list.html +0 -61
  78. data/doc/frames.html +0 -17
  79. data/doc/index.html +0 -116
  80. data/doc/js/app.js +0 -243
  81. data/doc/js/full_list.js +0 -216
  82. data/doc/js/jquery.js +0 -4
  83. data/doc/method_list.html +0 -1307
  84. data/doc/top-level-namespace.html +0 -112
  85. data/lib/autoc/code.rb +0 -237
  86. data/lib/autoc/collection/hash_map.rb +0 -385
  87. data/lib/autoc/collection/hash_set.rb +0 -337
  88. data/lib/autoc/collection/iterator.rb +0 -39
  89. data/lib/autoc/collection/list.rb +0 -429
  90. data/lib/autoc/collection/map.rb +0 -41
  91. data/lib/autoc/collection/queue.rb +0 -517
  92. data/lib/autoc/collection/set.rb +0 -134
  93. data/lib/autoc/collection/tree_map.rb +0 -464
  94. data/lib/autoc/collection/tree_set.rb +0 -611
  95. data/lib/autoc/collection/vector.rb +0 -336
  96. data/lib/autoc/string.rb +0 -492
  97. data/test/test_auto.c +0 -7141
  98. data/test/test_auto.h +0 -753
  99. data/test/test_char_string.rb +0 -270
  100. data/test/test_int_list.rb +0 -35
  101. data/test/test_int_tree_set.rb +0 -111
  102. data/test/test_int_vector.rb +0 -34
  103. data/test/test_value_hash_map.rb +0 -162
  104. data/test/test_value_hash_set.rb +0 -173
  105. data/test/test_value_list.rb +0 -193
  106. data/test/test_value_queue.rb +0 -275
  107. data/test/test_value_tree_map.rb +0 -176
  108. data/test/test_value_tree_set.rb +0 -173
  109. data/test/test_value_vector.rb +0 -155
  110. data/test/value.rb +0 -80
@@ -1,735 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>
7
- Class: AutoC::Reference
8
-
9
- &mdash; Documentation by YARD 0.9.5
10
-
11
- </title>
12
-
13
- <link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
14
-
15
- <link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
16
-
17
- <script type="text/javascript" charset="utf-8">
18
- pathId = "AutoC::Reference";
19
- relpath = '../';
20
- </script>
21
-
22
-
23
- <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
24
-
25
- <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
26
-
27
-
28
- </head>
29
- <body>
30
- <div class="nav_wrap">
31
- <iframe id="nav" src="../class_list.html"></iframe>
32
- <div id="resizer"></div>
33
- </div>
34
-
35
- <div id="main" tabindex="-1">
36
- <div id="header">
37
- <div id="menu">
38
-
39
- <a href="../_index.html">Index (R)</a> &raquo;
40
- <span class='title'><span class='object_link'><a href="../AutoC.html" title="AutoC (module)">AutoC</a></span></span>
41
- &raquo;
42
- <span class="title">Reference</span>
43
-
44
- </div>
45
-
46
- <div id="search">
47
-
48
- <a class="full_list_link" id="class_list_link"
49
- href="../class_list.html">
50
-
51
- <svg width="24" height="24">
52
- <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
- <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
- <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
- </svg>
56
- </a>
57
-
58
- </div>
59
- <div class="clear"></div>
60
- </div>
61
-
62
- <iframe id="search_frame" src="../class_list.html"></iframe>
63
-
64
- <div id="content"><h1>Class: AutoC::Reference
65
-
66
-
67
-
68
- </h1>
69
- <div class="box_info">
70
-
71
- <dl>
72
- <dt>Inherits:</dt>
73
- <dd>
74
- <span class="inheritName"><span class='object_link'><a href="Type.html" title="AutoC::Type (class)">Type</a></span></span>
75
-
76
- <ul class="fullTree">
77
- <li>Object</li>
78
-
79
- <li class="next"><span class='object_link'><a href="Code.html" title="AutoC::Code (class)">Code</a></span></li>
80
-
81
- <li class="next"><span class='object_link'><a href="Type.html" title="AutoC::Type (class)">Type</a></span></li>
82
-
83
- <li class="next">AutoC::Reference</li>
84
-
85
- </ul>
86
- <a href="#" class="inheritanceTree">show all</a>
87
-
88
- </dd>
89
- </dl>
90
-
91
-
92
-
93
-
94
- <dl>
95
- <dt>Extended by:</dt>
96
- <dd>Forwardable</dd>
97
- </dl>
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
-
106
- <dl>
107
- <dt>Defined in:</dt>
108
- <dd>lib/autoc/type.rb</dd>
109
- </dl>
110
-
111
- </div>
112
-
113
- <h2>Overview</h2><div class="docstring">
114
- <div class="discussion">
115
- <div class="paragraph">
116
- <p>Reference represents a managed counted reference for any type.
117
- It can be used with any type, including AutoC collections themselves.</p>
118
- </div>
119
- <div class="sect1">
120
- <h2 id="_generated_c_interface">Generated C interface</h2>
121
- <div class="sectionbody">
122
- <div class="sect2">
123
- <h3 id="_type_management">Type management</h3>
124
- <table class="tableblock frame-all grid-all spread">
125
- <colgroup>
126
- <col style="width: 50%;">
127
- <col style="width: 50%;">
128
- </colgroup>
129
- <tbody>
130
- <tr>
131
- <td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Type</em></strong> * <sub>type</sub>New(&#8230;&#8203;)</p></td>
132
- <td class="tableblock halign-left valign-top"><p class="tableblock">Create and return a reference to <strong><em>Type</em></strong> with reference count set to one.
133
- </p><p class="tableblock">The storage for the returned instance is malloc()'ed. The instance is constructed with the type&#8217;s constructor <sub>type</sub>Ctor(&#8230;&#8203;).
134
- </p><p class="tableblock">NOTE: The generated method borrows the second and subsequent arguments from the respective constructor.</p></td>
135
- </tr>
136
- <tr>
137
- <td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>Type</em></strong> * <sub>type</sub>Ref(<strong><em>Type</em></strong> * self)</p></td>
138
- <td class="tableblock halign-left valign-top"><p class="tableblock">Increment the self's reference count and return self.</p></td>
139
- </tr>
140
- <tr>
141
- <td class="tableblock halign-left valign-top"><p class="tableblock"><strong><em>void</em></strong> <sub>type</sub>Free(<strong><em>Type</em></strong> * self)</p></td>
142
- <td class="tableblock halign-left valign-top"><p class="tableblock">Decrement the self's reference count.
143
- If the reference count reaches zero, free the storage and destroy the instance with the type&#8217;s destructor <sub>type</sub>Dtor().</p></td>
144
- </tr>
145
- </tbody>
146
- </table>
147
- </div>
148
- </div>
149
- </div>
150
-
151
- </div>
152
- </div>
153
- <div class="tags">
154
-
155
-
156
- </div>
157
-
158
-
159
-
160
- <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
161
- <ul class="summary">
162
-
163
- <li class="public ">
164
- <span class="summary_signature">
165
-
166
- <a href="#target-instance_method" title="#target (instance method)">#<strong>target</strong> &#x21d2; Object </a>
167
-
168
-
169
-
170
- </span>
171
-
172
-
173
-
174
-
175
- <span class="note title readonly">readonly</span>
176
-
177
-
178
-
179
-
180
-
181
-
182
-
183
-
184
-
185
- <span class="summary_desc"><div class='inline'><div class="paragraph">
186
- <p>Returns the value of attribute target.</p>
187
- </div></div></span>
188
-
189
- </li>
190
-
191
-
192
- </ul>
193
-
194
-
195
-
196
-
197
-
198
- <h3 class="inherited">Attributes inherited from <span class='object_link'><a href="Type.html" title="AutoC::Type (class)">Type</a></span></h3>
199
- <p class="inherited"><span class='object_link'><a href="Type.html#type-instance_method" title="AutoC::Type#type (method)">#type</a></span>, <span class='object_link'><a href="Type.html#type_ref-instance_method" title="AutoC::Type#type_ref (method)">#type_ref</a></span></p>
200
-
201
-
202
-
203
- <h2>
204
- Instance Method Summary
205
- <small><a href="#" class="summary_toggle">collapse</a></small>
206
- </h2>
207
-
208
- <ul class="summary">
209
-
210
- <li class="public ">
211
- <span class="summary_signature">
212
-
213
- <a href="#%3D%3D-instance_method" title="#== (instance method)">#<strong>==</strong>(other) &#x21d2; Object </a>
214
-
215
-
216
-
217
- (also: #eql?)
218
-
219
- </span>
220
-
221
-
222
-
223
-
224
-
225
-
226
-
227
-
228
-
229
- <span class="summary_desc"><div class='inline'></div></span>
230
-
231
- </li>
232
-
233
-
234
- <li class="public ">
235
- <span class="summary_signature">
236
-
237
- <a href="#copyable%3F-instance_method" title="#copyable? (instance method)">#<strong>copyable?</strong> &#x21d2; Boolean </a>
238
-
239
-
240
-
241
- </span>
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
-
251
- <span class="summary_desc"><div class='inline'><div class="paragraph">
252
- <p>Return <strong>true</strong> since reference copying involves no call to the underlying type&#8217;s copy constructor.</p>
253
- </div></div></span>
254
-
255
- </li>
256
-
257
-
258
- <li class="public ">
259
- <span class="summary_signature">
260
-
261
- <a href="#entities-instance_method" title="#entities (instance method)">#<strong>entities</strong> &#x21d2; Object </a>
262
-
263
-
264
-
265
- </span>
266
-
267
-
268
-
269
-
270
-
271
-
272
-
273
-
274
-
275
- <span class="summary_desc"><div class='inline'></div></span>
276
-
277
- </li>
278
-
279
-
280
- <li class="public ">
281
- <span class="summary_signature">
282
-
283
- <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(target) &#x21d2; Reference </a>
284
-
285
-
286
-
287
- </span>
288
-
289
-
290
- <span class="note title constructor">constructor</span>
291
-
292
-
293
-
294
-
295
-
296
-
297
-
298
-
299
- <span class="summary_desc"><div class='inline'><div class="paragraph">
300
- <p>A new instance of Reference.</p>
301
- </div></div></span>
302
-
303
- </li>
304
-
305
-
306
- <li class="public ">
307
- <span class="summary_signature">
308
-
309
- <a href="#write_impls-instance_method" title="#write_impls (instance method)">#<strong>write_impls</strong>(stream, define) &#x21d2; Object </a>
310
-
311
-
312
-
313
- </span>
314
-
315
-
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
- <span class="summary_desc"><div class='inline'></div></span>
324
-
325
- </li>
326
-
327
-
328
- <li class="public ">
329
- <span class="summary_signature">
330
-
331
- <a href="#write_intf_decls-instance_method" title="#write_intf_decls (instance method)">#<strong>write_intf_decls</strong>(stream, declare, define) &#x21d2; Object </a>
332
-
333
-
334
-
335
- </span>
336
-
337
-
338
-
339
-
340
-
341
-
342
-
343
-
344
-
345
- <span class="summary_desc"><div class='inline'></div></span>
346
-
347
- </li>
348
-
349
-
350
- </ul>
351
-
352
-
353
-
354
-
355
-
356
-
357
-
358
-
359
-
360
-
361
-
362
-
363
- <h3 class="inherited">Methods inherited from <span class='object_link'><a href="Type.html" title="AutoC::Type (class)">Type</a></span></h3>
364
- <p class="inherited"><span class='object_link'><a href="Type.html#abort-instance_method" title="AutoC::Type#abort (method)">#abort</a></span>, <span class='object_link'><a href="Type.html#assert-instance_method" title="AutoC::Type#assert (method)">#assert</a></span>, <span class='object_link'><a href="Type.html#calloc-instance_method" title="AutoC::Type#calloc (method)">#calloc</a></span>, <span class='object_link'><a href="Type.html#coerce-class_method" title="AutoC::Type.coerce (method)">coerce</a></span>, <span class='object_link'><a href="Type.html#comparable%3F-instance_method" title="AutoC::Type#comparable? (method)">#comparable?</a></span>, <span class='object_link'><a href="Type.html#constructible%3F-instance_method" title="AutoC::Type#constructible? (method)">#constructible?</a></span>, <span class='object_link'><a href="Type.html#destructible%3F-instance_method" title="AutoC::Type#destructible? (method)">#destructible?</a></span>, <span class='object_link'><a href="Type.html#extern-instance_method" title="AutoC::Type#extern (method)">#extern</a></span>, <span class='object_link'><a href="Type.html#free-instance_method" title="AutoC::Type#free (method)">#free</a></span>, <span class='object_link'><a href="Type.html#hash-instance_method" title="AutoC::Type#hash (method)">#hash</a></span>, <span class='object_link'><a href="Type.html#hashable%3F-instance_method" title="AutoC::Type#hashable? (method)">#hashable?</a></span>, <span class='object_link'><a href="Type.html#initializable%3F-instance_method" title="AutoC::Type#initializable? (method)">#initializable?</a></span>, <span class='object_link'><a href="Type.html#inline-instance_method" title="AutoC::Type#inline (method)">#inline</a></span>, <span class='object_link'><a href="Type.html#malloc-instance_method" title="AutoC::Type#malloc (method)">#malloc</a></span>, <span class='object_link'><a href="Type.html#method_missing-instance_method" title="AutoC::Type#method_missing (method)">#method_missing</a></span>, <span class='object_link'><a href="Type.html#orderable%3F-instance_method" title="AutoC::Type#orderable? (method)">#orderable?</a></span>, <span class='object_link'><a href="Type.html#prefix-instance_method" title="AutoC::Type#prefix (method)">#prefix</a></span>, <span class='object_link'><a href="Type.html#private%3F-instance_method" title="AutoC::Type#private? (method)">#private?</a></span>, <span class='object_link'><a href="Type.html#public%3F-instance_method" title="AutoC::Type#public? (method)">#public?</a></span>, <span class='object_link'><a href="Type.html#sortable%3F-instance_method" title="AutoC::Type#sortable? (method)">#sortable?</a></span>, <span class='object_link'><a href="Type.html#static-instance_method" title="AutoC::Type#static (method)">#static</a></span>, <span class='object_link'><a href="Type.html#static%3F-instance_method" title="AutoC::Type#static? (method)">#static?</a></span>, <span class='object_link'><a href="Type.html#write_decls-instance_method" title="AutoC::Type#write_decls (method)">#write_decls</a></span>, <span class='object_link'><a href="Type.html#write_defs-instance_method" title="AutoC::Type#write_defs (method)">#write_defs</a></span>, <span class='object_link'><a href="Type.html#write_intf-instance_method" title="AutoC::Type#write_intf (method)">#write_intf</a></span></p>
365
-
366
-
367
-
368
-
369
-
370
-
371
-
372
-
373
-
374
- <h3 class="inherited">Methods inherited from <span class='object_link'><a href="Code.html" title="AutoC::Code (class)">Code</a></span></h3>
375
- <p class="inherited"><span class='object_link'><a href="Code.html#attach-instance_method" title="AutoC::Code#attach (method)">#attach</a></span>, <span class='object_link'><a href="Code.html#priority-instance_method" title="AutoC::Code#priority (method)">#priority</a></span>, <span class='object_link'><a href="Code.html#source_size-instance_method" title="AutoC::Code#source_size (method)">#source_size</a></span>, <span class='object_link'><a href="Code.html#write_decls-instance_method" title="AutoC::Code#write_decls (method)">#write_decls</a></span>, <span class='object_link'><a href="Code.html#write_defs-instance_method" title="AutoC::Code#write_defs (method)">#write_defs</a></span>, <span class='object_link'><a href="Code.html#write_intf-instance_method" title="AutoC::Code#write_intf (method)">#write_intf</a></span></p>
376
- <div id="constructor_details" class="method_details_list">
377
- <h2>Constructor Details</h2>
378
-
379
- <div class="method_details first">
380
- <h3 class="signature first" id="initialize-instance_method">
381
-
382
- #<strong>initialize</strong>(target) &#x21d2; <tt><span class='object_link'><a href="" title="AutoC::Reference (class)">Reference</a></span></tt>
383
-
384
-
385
-
386
-
387
-
388
- </h3><div class="docstring">
389
- <div class="discussion">
390
- <div class="paragraph">
391
- <p>Returns a new instance of Reference</p>
392
- </div>
393
-
394
- </div>
395
- </div>
396
- <div class="tags">
397
-
398
-
399
- </div><table class="source_code">
400
- <tr>
401
- <td>
402
- <pre class="lines">
403
-
404
-
405
- 428
406
- 429
407
- 430
408
- 431
409
- 432
410
- 433
411
- 434
412
- 435
413
- 436
414
- 437
415
- 438</pre>
416
- </td>
417
- <td>
418
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 428</span>
419
-
420
- <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
421
- <span class='ivar'>@target</span> <span class='op'>=</span> <span class='const'>Type</span><span class='period'>.</span><span class='id identifier rubyid_coerce'>coerce</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
422
- <span class='kw'>super</span><span class='lparen'>(</span><span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_type_ref'>type_ref</span><span class='rparen'>)</span> <span class='comment'># NOTE : the type of the Reference instance itself is actually a pointer type
423
- </span> <span class='ivar'>@init</span> <span class='op'>=</span> <span class='const'>Dispatcher</span><span class='op'>::</span><span class='const'>ParameterArray</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_ctor'>ctor</span><span class='period'>.</span><span class='id identifier rubyid_parameters'>parameters</span><span class='lbracket'>[</span><span class='int'>1</span><span class='op'>..</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='comment'># Capture extra parameters from the target type constructor
424
- </span> <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:ctor</span><span class='comma'>,</span> <span class='ivar'>@init</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='comma'>,</span> <span class='op'>*</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>((</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'>) = </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ref</span><span class='period'>.</span><span class='id identifier rubyid_new?'>new?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_params'>params</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>,</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>))</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>end</span><span class='rbrace'>}</span>
425
- <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:dtor</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_type'>type</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='ivar'>@ref</span><span class='period'>.</span><span class='id identifier rubyid_free?'>free?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>end</span><span class='rbrace'>}</span>
426
- <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:copy</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_dst'>dst</span><span class='comma'>,</span> <span class='id identifier rubyid_src'>src</span><span class='rparen'>)</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>((</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_dst'>dst</span><span class='embexpr_end'>}</span><span class='tstring_content'>) = </span><span class='embexpr_beg'>#{</span><span class='ivar'>@ref</span><span class='period'>.</span><span class='id identifier rubyid_ref?'>ref?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_src'>src</span><span class='embexpr_end'>}</span><span class='tstring_content'>))</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>end</span><span class='rbrace'>}</span>
427
- <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:equal</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_lt'>lt</span><span class='comma'>,</span> <span class='id identifier rubyid_rt'>rt</span><span class='rparen'>)</span> <span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_equal'>equal</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_lt'>lt</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rt'>rt</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>end</span><span class='rbrace'>}</span>
428
- <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:less</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_type'>type</span><span class='comma'>,</span> <span class='id identifier rubyid_type'>type</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_lt'>lt</span><span class='comma'>,</span> <span class='id identifier rubyid_rt'>rt</span><span class='rparen'>)</span> <span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_less'>less</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_lt'>lt</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_rt'>rt</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>end</span><span class='rbrace'>}</span>
429
- <span class='id identifier rubyid_define_callable'>define_callable</span><span class='lparen'>(</span><span class='symbol'>:identify</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_type'>type</span><span class='rbracket'>]</span><span class='rparen'>)</span> <span class='lbrace'>{</span><span class='kw'>def</span> <span class='id identifier rubyid_call'>call</span><span class='lparen'>(</span><span class='id identifier rubyid_obj'>obj</span><span class='rparen'>)</span> <span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_identify'>identify</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_obj'>obj</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>end</span><span class='rbrace'>}</span>
430
- <span class='kw'>end</span></pre>
431
- </td>
432
- </tr>
433
- </table>
434
- </div>
435
-
436
- </div>
437
- <div id="method_missing_details" class="method_details_list">
438
- <h2>Dynamic Method Handling</h2>
439
- <p class="notice super">
440
- This class handles dynamic methods through the <tt>method_missing</tt> method
441
-
442
- in the class <span class='object_link'><a href="Type.html#method_missing-instance_method" title="AutoC::Type#method_missing (method)">AutoC::Type</a></span>
443
-
444
- </p>
445
-
446
- </div>
447
-
448
- <div id="instance_attr_details" class="attr_details">
449
- <h2>Instance Attribute Details</h2>
450
-
451
-
452
- <span id=""></span>
453
- <div class="method_details first">
454
- <h3 class="signature first" id="target-instance_method">
455
-
456
- #<strong>target</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
457
-
458
-
459
-
460
-
461
-
462
- </h3><div class="docstring">
463
- <div class="discussion">
464
- <div class="paragraph">
465
- <p>Returns the value of attribute target</p>
466
- </div>
467
-
468
- </div>
469
- </div>
470
- <div class="tags">
471
-
472
-
473
- </div><table class="source_code">
474
- <tr>
475
- <td>
476
- <pre class="lines">
477
-
478
-
479
- 426
480
- 427
481
- 428</pre>
482
- </td>
483
- <td>
484
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 426</span>
485
-
486
- <span class='kw'>def</span> <span class='id identifier rubyid_target'>target</span>
487
- <span class='ivar'>@target</span>
488
- <span class='kw'>end</span></pre>
489
- </td>
490
- </tr>
491
- </table>
492
- </div>
493
-
494
- </div>
495
-
496
-
497
- <div id="instance_method_details" class="method_details_list">
498
- <h2>Instance Method Details</h2>
499
-
500
-
501
- <div class="method_details first">
502
- <h3 class="signature first" id="==-instance_method">
503
-
504
- #<strong>==</strong>(other) &#x21d2; <tt>Object</tt>
505
-
506
-
507
-
508
- <span class="aliases">Also known as:
509
- <span class="names"><span id='eql?-instance_method'>eql?</span></span>
510
- </span>
511
-
512
-
513
-
514
- </h3><table class="source_code">
515
- <tr>
516
- <td>
517
- <pre class="lines">
518
-
519
-
520
- 440</pre>
521
- </td>
522
- <td>
523
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 440</span>
524
-
525
- <span class='kw'>def</span> <span class='op'>==</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span> <span class='ivar'>@target</span> <span class='op'>==</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_instance_variable_get'>instance_variable_get</span><span class='lparen'>(</span><span class='symbol'>:@target</span><span class='rparen'>)</span> <span class='kw'>end</span></pre>
526
- </td>
527
- </tr>
528
- </table>
529
- </div>
530
-
531
- <div class="method_details ">
532
- <h3 class="signature " id="copyable?-instance_method">
533
-
534
- #<strong>copyable?</strong> &#x21d2; <tt>Boolean</tt>
535
-
536
-
537
-
538
-
539
-
540
- </h3><div class="docstring">
541
- <div class="discussion">
542
- <div class="paragraph">
543
- <p>Return <strong>true</strong> since reference copying involves no call to the underlying type&#8217;s copy constructor</p>
544
- </div>
545
-
546
- </div>
547
- </div>
548
- <div class="tags">
549
-
550
- <p class="tag_title">Returns:</p>
551
- <ul class="return">
552
-
553
- <li>
554
-
555
-
556
- <span class='type'>(<tt>Boolean</tt>)</span>
557
-
558
-
559
-
560
- </li>
561
-
562
- </ul>
563
-
564
- </div><table class="source_code">
565
- <tr>
566
- <td>
567
- <pre class="lines">
568
-
569
-
570
- 424</pre>
571
- </td>
572
- <td>
573
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 424</span>
574
-
575
- <span class='kw'>def</span> <span class='id identifier rubyid_copyable?'>copyable?</span><span class='semicolon'>;</span> <span class='kw'>true</span> <span class='kw'>end</span></pre>
576
- </td>
577
- </tr>
578
- </table>
579
- </div>
580
-
581
- <div class="method_details ">
582
- <h3 class="signature " id="entities-instance_method">
583
-
584
- #<strong>entities</strong> &#x21d2; <tt>Object</tt>
585
-
586
-
587
-
588
-
589
-
590
- </h3><table class="source_code">
591
- <tr>
592
- <td>
593
- <pre class="lines">
594
-
595
-
596
- 444</pre>
597
- </td>
598
- <td>
599
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 444</span>
600
-
601
- <span class='kw'>def</span> <span class='id identifier rubyid_entities'>entities</span><span class='semicolon'>;</span> <span class='kw'>super</span> <span class='op'>&lt;&lt;</span> <span class='ivar'>@target</span> <span class='kw'>end</span></pre>
602
- </td>
603
- </tr>
604
- </table>
605
- </div>
606
-
607
- <div class="method_details ">
608
- <h3 class="signature " id="write_impls-instance_method">
609
-
610
- #<strong>write_impls</strong>(stream, define) &#x21d2; <tt>Object</tt>
611
-
612
-
613
-
614
-
615
-
616
- </h3><table class="source_code">
617
- <tr>
618
- <td>
619
- <pre class="lines">
620
-
621
-
622
- 457
623
- 458
624
- 459
625
- 460
626
- 461
627
- 462
628
- 463
629
- 464
630
- 465
631
- 466
632
- 467
633
- 468
634
- 469
635
- 470
636
- 471
637
- 472
638
- 473
639
- 474
640
- 475
641
- 476
642
- 477
643
- 478
644
- 479
645
- 480</pre>
646
- </td>
647
- <td>
648
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 457</span>
649
-
650
- <span class='kw'>def</span> <span class='id identifier rubyid_write_impls'>write_impls</span><span class='lparen'>(</span><span class='id identifier rubyid_stream'>stream</span><span class='comma'>,</span> <span class='id identifier rubyid_define'>define</span><span class='rparen'>)</span>
651
- <span class='id identifier rubyid_stream'>stream</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>%$</span><span class='tstring_content'>
652
- #define AUTOC_COUNTER(p) (*(size_t*)((char*)(p) + sizeof(</span><span class='embexpr_beg'>#{</span><span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'>)))
653
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_define'>define</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_new?'>new?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='ivar'>@init</span><span class='period'>.</span><span class='id identifier rubyid_definition'>definition</span><span class='embexpr_end'>}</span><span class='tstring_content'>) {
654
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> self = (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_malloc'>malloc</span><span class='embexpr_end'>}</span><span class='tstring_content'>(sizeof(</span><span class='embexpr_beg'>#{</span><span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'>) + sizeof(size_t)); </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_assert'>assert</span><span class='embexpr_end'>}</span><span class='tstring_content'>(self);
655
- </span><span class='embexpr_beg'>#{</span><span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_ctor'>ctor</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*self</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='op'>*</span><span class='ivar'>@init</span><span class='period'>.</span><span class='id identifier rubyid_names'>names</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
656
- AUTOC_COUNTER(self) = 1;
657
- return self;
658
- }
659
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_define'>define</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ref?'>ref?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> self) {
660
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_assert'>assert</span><span class='embexpr_end'>}</span><span class='tstring_content'>(self);
661
- ++AUTOC_COUNTER(self);
662
- return self;
663
- }
664
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_define'>define</span><span class='embexpr_end'>}</span><span class='tstring_content'> void </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_free?'>free?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> self) {
665
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_assert'>assert</span><span class='embexpr_end'>}</span><span class='tstring_content'>(self);
666
- if(--AUTOC_COUNTER(self) == 0) {
667
- </span><span class='embexpr_beg'>#{</span><span class='ivar'>@target</span><span class='period'>.</span><span class='id identifier rubyid_dtor'>dtor</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>*self</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'>;
668
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_free'>free</span><span class='embexpr_end'>}</span><span class='tstring_content'>(self);
669
- }
670
- }
671
- #undef AUTOC_COUNTER
672
- </span><span class='tstring_end'>$</span></span>
673
- <span class='kw'>end</span></pre>
674
- </td>
675
- </tr>
676
- </table>
677
- </div>
678
-
679
- <div class="method_details ">
680
- <h3 class="signature " id="write_intf_decls-instance_method">
681
-
682
- #<strong>write_intf_decls</strong>(stream, declare, define) &#x21d2; <tt>Object</tt>
683
-
684
-
685
-
686
-
687
-
688
- </h3><table class="source_code">
689
- <tr>
690
- <td>
691
- <pre class="lines">
692
-
693
-
694
- 446
695
- 447
696
- 448
697
- 449
698
- 450
699
- 451
700
- 452
701
- 453
702
- 454
703
- 455</pre>
704
- </td>
705
- <td>
706
- <pre class="code"><span class="info file"># File 'lib/autoc/type.rb', line 446</span>
707
-
708
- <span class='kw'>def</span> <span class='id identifier rubyid_write_intf_decls'>write_intf_decls</span><span class='lparen'>(</span><span class='id identifier rubyid_stream'>stream</span><span class='comma'>,</span> <span class='id identifier rubyid_declare'>declare</span><span class='comma'>,</span> <span class='id identifier rubyid_define'>define</span><span class='rparen'>)</span>
709
- <span class='id identifier rubyid_stream'>stream</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>%$</span><span class='tstring_content'>
710
- /***
711
- **** &lt;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'>&gt; (</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_content'>)
712
- ***/
713
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_declare'>declare</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_new?'>new?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='ivar'>@init</span><span class='period'>.</span><span class='id identifier rubyid_declaration'>declaration</span><span class='embexpr_end'>}</span><span class='tstring_content'>);
714
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_declare'>declare</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_ref?'>ref?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'>);
715
- </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_declare'>declare</span><span class='embexpr_end'>}</span><span class='tstring_content'> void </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_free?'>free?</span><span class='embexpr_end'>}</span><span class='tstring_content'>(</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_type'>type</span><span class='embexpr_end'>}</span><span class='tstring_content'>);
716
- </span><span class='tstring_end'>$</span></span>
717
- <span class='kw'>end</span></pre>
718
- </td>
719
- </tr>
720
- </table>
721
- </div>
722
-
723
- </div>
724
-
725
- </div>
726
-
727
- <div id="footer">
728
- Generated on Wed Oct 12 12:27:11 2016 by
729
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
730
- 0.9.5 (ruby-2.3.1).
731
- </div>
732
-
733
- </div>
734
- </body>
735
- </html>