rumai 2.0.2 → 2.1.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 (167) hide show
  1. data/CREDITS +2 -0
  2. data/bin/rumai +20 -8
  3. data/doc/api/classes/IO.html +72 -0
  4. data/doc/api/classes/Integer.html +110 -0
  5. data/doc/api/classes/Object.html +60 -0
  6. data/doc/api/classes/Rumai.html +867 -0
  7. data/doc/api/classes/Rumai/Area.html +836 -0
  8. data/doc/api/classes/Rumai/Chain.html +197 -0
  9. data/doc/api/classes/Rumai/Client.html +865 -0
  10. data/doc/api/classes/Rumai/ClientContainer.html +191 -0
  11. data/doc/api/classes/Rumai/ExportInstanceMethods.html +69 -0
  12. data/doc/api/classes/Rumai/IXP.html +131 -0
  13. data/doc/api/classes/Rumai/IXP/Agent.html +836 -0
  14. data/doc/api/classes/Rumai/IXP/Agent/FidStream.html +456 -0
  15. data/doc/api/classes/Rumai/IXP/Agent/MODES.html +108 -0
  16. data/doc/api/classes/Rumai/IXP/Agent/RangedPool.html +241 -0
  17. data/doc/api/classes/Rumai/IXP/Error.html +67 -0
  18. data/doc/api/classes/Rumai/IXP/Fcall.html +323 -0
  19. data/doc/api/classes/Rumai/IXP/Qid.html +153 -0
  20. data/doc/api/classes/Rumai/IXP/Rattach.html +67 -0
  21. data/doc/api/classes/Rumai/IXP/Rauth.html +67 -0
  22. data/doc/api/classes/Rumai/IXP/Rclunk.html +67 -0
  23. data/doc/api/classes/Rumai/IXP/Rcreate.html +67 -0
  24. data/doc/api/classes/Rumai/IXP/Rerror.html +67 -0
  25. data/doc/api/classes/Rumai/IXP/Rflush.html +67 -0
  26. data/doc/api/classes/Rumai/IXP/Ropen.html +67 -0
  27. data/doc/api/classes/Rumai/IXP/Rread.html +67 -0
  28. data/doc/api/classes/Rumai/IXP/Rremove.html +67 -0
  29. data/doc/api/classes/Rumai/IXP/Rstat.html +67 -0
  30. data/doc/api/classes/Rumai/IXP/Rversion.html +67 -0
  31. data/doc/api/classes/Rumai/IXP/Rwalk.html +67 -0
  32. data/doc/api/classes/Rumai/IXP/Rwrite.html +67 -0
  33. data/doc/api/classes/Rumai/IXP/Rwstat.html +67 -0
  34. data/doc/api/classes/Rumai/IXP/Stat.html +252 -0
  35. data/doc/api/classes/Rumai/IXP/Stream.html +131 -0
  36. data/doc/api/classes/Rumai/IXP/Struct.html +315 -0
  37. data/doc/api/classes/Rumai/IXP/Struct/Field.html +415 -0
  38. data/doc/api/classes/Rumai/IXP/Struct/Field/CounteeField.html +153 -0
  39. data/doc/api/classes/Rumai/IXP/Struct/Field/CounterField.html +104 -0
  40. data/doc/api/classes/Rumai/IXP/Tattach.html +68 -0
  41. data/doc/api/classes/Rumai/IXP/Tauth.html +67 -0
  42. data/doc/api/classes/Rumai/IXP/Tclunk.html +67 -0
  43. data/doc/api/classes/Rumai/IXP/Tcreate.html +68 -0
  44. data/doc/api/classes/Rumai/IXP/Terror.html +110 -0
  45. data/doc/api/classes/Rumai/IXP/Tflush.html +67 -0
  46. data/doc/api/classes/Rumai/IXP/Topen.html +165 -0
  47. data/doc/api/classes/Rumai/IXP/Tread.html +67 -0
  48. data/doc/api/classes/Rumai/IXP/Tremove.html +67 -0
  49. data/doc/api/classes/Rumai/IXP/Tstat.html +67 -0
  50. data/doc/api/classes/Rumai/IXP/Tversion.html +86 -0
  51. data/doc/api/classes/Rumai/IXP/Twalk.html +68 -0
  52. data/doc/api/classes/Rumai/IXP/Twrite.html +68 -0
  53. data/doc/api/classes/Rumai/IXP/Twstat.html +67 -0
  54. data/doc/api/classes/Rumai/Node.html +817 -0
  55. data/doc/api/classes/Rumai/View.html +818 -0
  56. data/doc/api/classes/Rumai/WidgetImpl.html +65 -0
  57. data/doc/api/classes/Rumai/WidgetNode.html +68 -0
  58. data/doc/api/classes/String.html +163 -0
  59. data/doc/api/classes/StringIO.html +72 -0
  60. data/doc/api/classes/Time.html +156 -0
  61. data/doc/api/created.rid +1 -0
  62. data/doc/api/css/main.css +263 -0
  63. data/doc/api/css/panel.css +383 -0
  64. data/doc/api/css/reset.css +53 -0
  65. data/doc/api/files/CREDITS.html +64 -0
  66. data/doc/api/files/LICENSE.html +76 -0
  67. data/doc/api/files/lib/rumai/fs_rb.html +75 -0
  68. data/doc/api/files/lib/rumai/ixp/message_rb.html +91 -0
  69. data/doc/api/files/lib/rumai/ixp/transport_rb.html +75 -0
  70. data/doc/api/files/lib/rumai/ixp_rb.html +69 -0
  71. data/doc/api/files/lib/rumai/wm_rb.html +77 -0
  72. data/doc/api/files/lib/rumai_rb.html +65 -0
  73. data/doc/api/i/arrows.png +0 -0
  74. data/doc/api/i/results_bg.png +0 -0
  75. data/doc/api/i/tree_bg.png +0 -0
  76. data/doc/api/index.html +14 -18
  77. data/doc/api/js/jquery-1.3.2.min.js +19 -0
  78. data/doc/api/js/jquery-effect.js +593 -0
  79. data/doc/api/js/main.js +22 -0
  80. data/doc/api/js/searchdoc.js +605 -0
  81. data/doc/api/panel/index.html +63 -0
  82. data/doc/api/panel/search_index.js +1 -0
  83. data/doc/api/panel/tree.js +1 -0
  84. data/doc/history.erb +41 -16
  85. data/doc/index.erb +14 -11
  86. data/doc/index.xhtml +519 -846
  87. data/doc/intro.erb +33 -32
  88. data/doc/setup.erb +14 -13
  89. data/doc/usage.erb +69 -35
  90. data/lib/rumai.rb +13 -5
  91. data/lib/rumai/fs.rb +71 -27
  92. data/lib/rumai/ixp.rb +4 -0
  93. data/lib/rumai/ixp/message.rb +178 -81
  94. data/lib/rumai/ixp/transport.rb +144 -91
  95. data/lib/rumai/wm.rb +717 -593
  96. data/rakefile +14 -0
  97. data/test/rumai/ixp/message.rb +42 -54
  98. metadata +110 -89
  99. data/Rakefile +0 -8
  100. data/doc/api/IO.html +0 -53
  101. data/doc/api/Integer.html +0 -102
  102. data/doc/api/Object.html +0 -23
  103. data/doc/api/Rumai.html +0 -1218
  104. data/doc/api/Rumai/Area.html +0 -1088
  105. data/doc/api/Rumai/Chain.html +0 -230
  106. data/doc/api/Rumai/Client.html +0 -1264
  107. data/doc/api/Rumai/ClientContainer.html +0 -227
  108. data/doc/api/Rumai/ExportInstMethods.html +0 -115
  109. data/doc/api/Rumai/IXP.html +0 -23
  110. data/doc/api/Rumai/IXP/Agent.html +0 -1222
  111. data/doc/api/Rumai/IXP/Agent/FidStream.html +0 -602
  112. data/doc/api/Rumai/IXP/Agent/RangedPool.html +0 -263
  113. data/doc/api/Rumai/IXP/Error.html +0 -32
  114. data/doc/api/Rumai/IXP/Fcall.html +0 -398
  115. data/doc/api/Rumai/IXP/Qid.html +0 -99
  116. data/doc/api/Rumai/IXP/Rattach.html +0 -71
  117. data/doc/api/Rumai/IXP/Rauth.html +0 -71
  118. data/doc/api/Rumai/IXP/Rclunk.html +0 -71
  119. data/doc/api/Rumai/IXP/Rcreate.html +0 -71
  120. data/doc/api/Rumai/IXP/Rerror.html +0 -71
  121. data/doc/api/Rumai/IXP/Rflush.html +0 -71
  122. data/doc/api/Rumai/IXP/Ropen.html +0 -71
  123. data/doc/api/Rumai/IXP/Rread.html +0 -71
  124. data/doc/api/Rumai/IXP/Rremove.html +0 -71
  125. data/doc/api/Rumai/IXP/Rstat.html +0 -71
  126. data/doc/api/Rumai/IXP/Rversion.html +0 -71
  127. data/doc/api/Rumai/IXP/Rwalk.html +0 -71
  128. data/doc/api/Rumai/IXP/Rwrite.html +0 -71
  129. data/doc/api/Rumai/IXP/Rwstat.html +0 -71
  130. data/doc/api/Rumai/IXP/Stat.html +0 -188
  131. data/doc/api/Rumai/IXP/Stream.html +0 -112
  132. data/doc/api/Rumai/IXP/Struct.html +0 -348
  133. data/doc/api/Rumai/IXP/Struct/ClassField.html +0 -177
  134. data/doc/api/Rumai/IXP/Struct/Field.html +0 -549
  135. data/doc/api/Rumai/IXP/Struct/Field/CounteeField.html +0 -175
  136. data/doc/api/Rumai/IXP/Struct/Field/CounterField.html +0 -95
  137. data/doc/api/Rumai/IXP/Struct/Integer8Field.html +0 -181
  138. data/doc/api/Rumai/IXP/Struct/StringField.html +0 -128
  139. data/doc/api/Rumai/IXP/Tattach.html +0 -71
  140. data/doc/api/Rumai/IXP/Tauth.html +0 -71
  141. data/doc/api/Rumai/IXP/Tclunk.html +0 -71
  142. data/doc/api/Rumai/IXP/Tcreate.html +0 -71
  143. data/doc/api/Rumai/IXP/Terror.html +0 -156
  144. data/doc/api/Rumai/IXP/Tflush.html +0 -71
  145. data/doc/api/Rumai/IXP/Topen.html +0 -113
  146. data/doc/api/Rumai/IXP/Tread.html +0 -71
  147. data/doc/api/Rumai/IXP/Tremove.html +0 -71
  148. data/doc/api/Rumai/IXP/Tstat.html +0 -71
  149. data/doc/api/Rumai/IXP/Tversion.html +0 -83
  150. data/doc/api/Rumai/IXP/Twalk.html +0 -71
  151. data/doc/api/Rumai/IXP/Twrite.html +0 -71
  152. data/doc/api/Rumai/IXP/Twstat.html +0 -71
  153. data/doc/api/Rumai/Node.html +0 -1139
  154. data/doc/api/Rumai/View.html +0 -1280
  155. data/doc/api/Rumai/WidgetImpl.html +0 -196
  156. data/doc/api/Rumai/WidgetNode.html +0 -184
  157. data/doc/api/String.html +0 -180
  158. data/doc/api/StringIO.html +0 -53
  159. data/doc/api/Time.html +0 -175
  160. data/doc/api/all-methods.html +0 -1436
  161. data/doc/api/all-namespaces.html +0 -140
  162. data/doc/api/app.js +0 -18
  163. data/doc/api/jquery.js +0 -11
  164. data/doc/api/readme.html +0 -38
  165. data/doc/api/style.css +0 -68
  166. data/doc/api/syntax_highlight.css +0 -21
  167. data/doc/theory.erb +0 -3
@@ -0,0 +1,456 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <title>Rumai::IXP::Agent::FidStream</title>
7
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
8
+ <link rel="stylesheet" href="../../../../css/reset.css" type="text/css" media="screen" />
9
+ <link rel="stylesheet" href="../../../../css/main.css" type="text/css" media="screen" />
10
+ <script src="../../../../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
11
+ <script src="../../../../js/jquery-effect.js" type="text/javascript" charset="utf-8"></script>
12
+ <script src="../../../../js/main.js" type="text/javascript" charset="utf-8"></script>
13
+ </head>
14
+
15
+ <body>
16
+ <div class="banner">
17
+ <h1>
18
+ <span class="type">Class</span>
19
+ Rumai::IXP::Agent::FidStream
20
+
21
+ <span class="parent">&lt;
22
+
23
+ <a href="../../../Object.html">Object</a>
24
+
25
+ </span>
26
+
27
+ </h1>
28
+ <ul class="files">
29
+
30
+ <li><a href="../../../../files/lib/rumai/ixp/transport_rb.html">lib/rumai/ixp/transport.rb</a></li>
31
+
32
+ </ul>
33
+ </div>
34
+ <div id="bodyContent">
35
+ <div id="content">
36
+
37
+ <div class="description">
38
+ <p>
39
+ Encapsulates I/O access over a file handle (fid).
40
+ </p>
41
+ <p>
42
+ NOTE: this class is NOT thread-safe.
43
+ </p>
44
+
45
+ </div>
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+ <div class="sectiontitle">Methods</div>
56
+ <dl class="methods">
57
+
58
+ <dt>#</dt>
59
+ <dd>
60
+ <ul>
61
+
62
+ <li><a href="#M000083"><<</a></li>
63
+
64
+ </ul>
65
+ </dd>
66
+
67
+ <dt>C</dt>
68
+ <dd>
69
+ <ul>
70
+
71
+ <li><a href="#M000073">close</a>,</li>
72
+
73
+ <li><a href="#M000074">closed?</a></li>
74
+
75
+ </ul>
76
+ </dd>
77
+
78
+ <dt>N</dt>
79
+ <dd>
80
+ <ul>
81
+
82
+ <li><a href="#M000069">new</a></li>
83
+
84
+ </ul>
85
+ </dd>
86
+
87
+ <dt>R</dt>
88
+ <dd>
89
+ <ul>
90
+
91
+ <li><a href="#M000077">read</a>,</li>
92
+
93
+ <li><a href="#M000072">rewind</a></li>
94
+
95
+ </ul>
96
+ </dd>
97
+
98
+ <dt>W</dt>
99
+ <dd>
100
+ <ul>
101
+
102
+ <li><a href="#M000081">write</a></li>
103
+
104
+ </ul>
105
+ </dd>
106
+
107
+ </dl>
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+ <div class="sectiontitle">Attributes</div>
120
+ <table border='0' cellpadding='5'>
121
+
122
+ <tr valign='top'>
123
+ <td class='attr-rw'>
124
+ [R]
125
+ </td>
126
+ <td class='attr-name'>fid</td>
127
+ <td class='attr-desc'></td>
128
+ </tr>
129
+
130
+ <tr valign='top'>
131
+ <td class='attr-rw'>
132
+ [R]
133
+ </td>
134
+ <td class='attr-name'>stat</td>
135
+ <td class='attr-desc'></td>
136
+ </tr>
137
+
138
+ <tr valign='top'>
139
+ <td class='attr-rw'>
140
+ [R]
141
+ </td>
142
+ <td class='attr-name'>eof</td>
143
+ <td class='attr-desc'></td>
144
+ </tr>
145
+
146
+ <tr valign='top'>
147
+ <td class='attr-rw'>
148
+ [RW]
149
+ </td>
150
+ <td class='attr-name'>pos</td>
151
+ <td class='attr-desc'></td>
152
+ </tr>
153
+
154
+ </table>
155
+
156
+
157
+
158
+ <div class="sectiontitle">Class Public methods</div>
159
+
160
+ <div class="method">
161
+ <div class="title" id="M000069">
162
+
163
+ <a name="M000069"></a><b>new</b>(agent, path_fid, message_size)
164
+
165
+ </div>
166
+
167
+
168
+
169
+
170
+ <div class="sourcecode">
171
+ <p class="source-link">
172
+ Source: <a href="javascript:toggleSource('M000069_source')" id="l_M000069_source">show</a>
173
+
174
+ | <a href="http://github.com/sunaku/rumai/blob/5fcf09b89976a53dd9346e335a1803b337e0c447/lib/rumai/ixp/transport.rb#L196" target="_blank" class="github_url">on GitHub</a>
175
+
176
+ </p>
177
+ <div id="M000069_source" class="dyn-source">
178
+ <pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 196</span>
179
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">agent</span>, <span class="ruby-identifier">path_fid</span>, <span class="ruby-identifier">message_size</span>
180
+ <span class="ruby-ivar">@agent</span> = <span class="ruby-identifier">agent</span>
181
+ <span class="ruby-ivar">@fid</span> = <span class="ruby-identifier">path_fid</span>
182
+ <span class="ruby-ivar">@msize</span> = <span class="ruby-identifier">message_size</span>
183
+ <span class="ruby-ivar">@stat</span> = <span class="ruby-ivar">@agent</span>.<span class="ruby-identifier">stat_fid</span>(<span class="ruby-ivar">@fid</span>)
184
+ <span class="ruby-ivar">@closed</span> = <span class="ruby-keyword kw">false</span>
185
+ <span class="ruby-identifier">rewind</span>
186
+ <span class="ruby-keyword kw">end</span></pre>
187
+ </div>
188
+ </div>
189
+
190
+ </div>
191
+
192
+ <div class="sectiontitle">Instance Public methods</div>
193
+
194
+ <div class="method">
195
+ <div class="title" id="M000083">
196
+
197
+ <a name="M000083"></a><b>&lt;&lt;</b>(content)
198
+
199
+ </div>
200
+
201
+ <div class="description">
202
+ <p>
203
+ Alias for <a href="FidStream.html#M000081">write</a>
204
+ </p>
205
+
206
+ </div>
207
+
208
+
209
+
210
+ </div>
211
+
212
+ <div class="method">
213
+ <div class="title" id="M000073">
214
+
215
+ <a name="M000073"></a><b>close</b>()
216
+
217
+ </div>
218
+
219
+ <div class="description">
220
+ <p>
221
+ Closes this stream.
222
+ </p>
223
+
224
+ </div>
225
+
226
+
227
+
228
+
229
+ <div class="sourcecode">
230
+ <p class="source-link">
231
+ Source: <a href="javascript:toggleSource('M000073_source')" id="l_M000073_source">show</a>
232
+
233
+ | <a href="http://github.com/sunaku/rumai/blob/5fcf09b89976a53dd9346e335a1803b337e0c447/lib/rumai/ixp/transport.rb#L216" target="_blank" class="github_url">on GitHub</a>
234
+
235
+ </p>
236
+ <div id="M000073_source" class="dyn-source">
237
+ <pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 216</span>
238
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
239
+ <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@closed</span>
240
+ <span class="ruby-ivar">@agent</span>.<span class="ruby-identifier">clunk</span> <span class="ruby-ivar">@fid</span>
241
+ <span class="ruby-ivar">@closed</span> = <span class="ruby-keyword kw">true</span>
242
+ <span class="ruby-ivar">@eof</span> = <span class="ruby-keyword kw">true</span>
243
+ <span class="ruby-keyword kw">end</span>
244
+ <span class="ruby-keyword kw">end</span></pre>
245
+ </div>
246
+ </div>
247
+
248
+ </div>
249
+
250
+ <div class="method">
251
+ <div class="title" id="M000074">
252
+
253
+ <a name="M000074"></a><b>closed?</b>()
254
+
255
+ </div>
256
+
257
+ <div class="description">
258
+ <p>
259
+ Returns true if this stream is closed.
260
+ </p>
261
+
262
+ </div>
263
+
264
+
265
+
266
+
267
+ <div class="sourcecode">
268
+ <p class="source-link">
269
+ Source: <a href="javascript:toggleSource('M000074_source')" id="l_M000074_source">show</a>
270
+
271
+ | <a href="http://github.com/sunaku/rumai/blob/5fcf09b89976a53dd9346e335a1803b337e0c447/lib/rumai/ixp/transport.rb#L227" target="_blank" class="github_url">on GitHub</a>
272
+
273
+ </p>
274
+ <div id="M000074_source" class="dyn-source">
275
+ <pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 227</span>
276
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">closed?</span>
277
+ <span class="ruby-ivar">@closed</span>
278
+ <span class="ruby-keyword kw">end</span></pre>
279
+ </div>
280
+ </div>
281
+
282
+ </div>
283
+
284
+ <div class="method">
285
+ <div class="title" id="M000077">
286
+
287
+ <a name="M000077"></a><b>read</b>(partial = false)
288
+
289
+ </div>
290
+
291
+ <div class="description">
292
+ <p>
293
+ Reads some data from this stream at the current position.
294
+ </p>
295
+ <dl>
296
+ <dt>partial</dt><dd>When false, the entire content of this stream is read and returned.
297
+
298
+ <p>
299
+ When true, the maximum amount of content that can fit inside a single
300
+ 9P2000 message is read and returned.
301
+ </p>
302
+ </dd>
303
+ </dl>
304
+ <p>
305
+ If this stream corresponds to a directory, then an Array of <a
306
+ href="../Stat.html">Stat</a> (one for each file in the directory) will be
307
+ returned.
308
+ </p>
309
+
310
+ </div>
311
+
312
+
313
+
314
+
315
+ <div class="sourcecode">
316
+ <p class="source-link">
317
+ Source: <a href="javascript:toggleSource('M000077_source')" id="l_M000077_source">show</a>
318
+
319
+ | <a href="http://github.com/sunaku/rumai/blob/5fcf09b89976a53dd9346e335a1803b337e0c447/lib/rumai/ixp/transport.rb#L244" target="_blank" class="github_url">on GitHub</a>
320
+
321
+ </p>
322
+ <div id="M000077_source" class="dyn-source">
323
+ <pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 244</span>
324
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span> <span class="ruby-identifier">partial</span> = <span class="ruby-keyword kw">false</span>
325
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">'cannot read from a closed stream'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@closed</span>
326
+
327
+ <span class="ruby-identifier">content</span> = <span class="ruby-value str">''</span>
328
+ <span class="ruby-keyword kw">begin</span>
329
+ <span class="ruby-identifier">req</span> = <span class="ruby-constant">Tread</span>.<span class="ruby-identifier">new</span>(
330
+ <span class="ruby-identifier">:fid</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@fid</span>,
331
+ <span class="ruby-identifier">:offset</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@pos</span>,
332
+ <span class="ruby-identifier">:count</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@msize</span>
333
+ )
334
+ <span class="ruby-identifier">rsp</span> = <span class="ruby-ivar">@agent</span>.<span class="ruby-identifier">talk</span>(<span class="ruby-identifier">req</span>)
335
+
336
+ <span class="ruby-identifier">content</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">rsp</span>.<span class="ruby-identifier">data</span>
337
+ <span class="ruby-identifier">count</span> = <span class="ruby-identifier">rsp</span>.<span class="ruby-identifier">count</span>
338
+ <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">count</span>
339
+ <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">until</span> <span class="ruby-ivar">@eof</span> = <span class="ruby-identifier">count</span>.<span class="ruby-identifier">zero?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">partial</span>
340
+
341
+ <span class="ruby-comment cmt"># the content of a directory is a sequence</span>
342
+ <span class="ruby-comment cmt"># of Stat for all files in that directory</span>
343
+ <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stat</span>.<span class="ruby-identifier">directory?</span>
344
+ <span class="ruby-identifier">buffer</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">content</span>)
345
+ <span class="ruby-identifier">content</span> = []
346
+
347
+ <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">buffer</span>.<span class="ruby-identifier">eof?</span>
348
+ <span class="ruby-identifier">content</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Stat</span>.<span class="ruby-identifier">from_9p</span>(<span class="ruby-identifier">buffer</span>)
349
+ <span class="ruby-keyword kw">end</span>
350
+ <span class="ruby-keyword kw">end</span>
351
+
352
+ <span class="ruby-identifier">content</span>
353
+ <span class="ruby-keyword kw">end</span></pre>
354
+ </div>
355
+ </div>
356
+
357
+ </div>
358
+
359
+ <div class="method">
360
+ <div class="title" id="M000072">
361
+
362
+ <a name="M000072"></a><b>rewind</b>()
363
+
364
+ </div>
365
+
366
+ <div class="description">
367
+ <p>
368
+ Rewinds the stream to the beginning.
369
+ </p>
370
+
371
+ </div>
372
+
373
+
374
+
375
+
376
+ <div class="sourcecode">
377
+ <p class="source-link">
378
+ Source: <a href="javascript:toggleSource('M000072_source')" id="l_M000072_source">show</a>
379
+
380
+ | <a href="http://github.com/sunaku/rumai/blob/5fcf09b89976a53dd9346e335a1803b337e0c447/lib/rumai/ixp/transport.rb#L208" target="_blank" class="github_url">on GitHub</a>
381
+
382
+ </p>
383
+ <div id="M000072_source" class="dyn-source">
384
+ <pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 208</span>
385
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rewind</span>
386
+ <span class="ruby-ivar">@pos</span> = <span class="ruby-value">0</span>
387
+ <span class="ruby-ivar">@eof</span> = <span class="ruby-keyword kw">false</span>
388
+ <span class="ruby-keyword kw">end</span></pre>
389
+ </div>
390
+ </div>
391
+
392
+ </div>
393
+
394
+ <div class="method">
395
+ <div class="title" id="M000081">
396
+
397
+ <a name="M000081"></a><b>write</b>(content)
398
+
399
+ </div>
400
+
401
+ <div class="description">
402
+ <p>
403
+ Writes the given content at the current position in this stream.
404
+ </p>
405
+
406
+ </div>
407
+
408
+
409
+ <div class="aka">
410
+ This method is also aliased as
411
+
412
+ <a href="FidStream.html#M000083">&lt;&lt;</a>
413
+
414
+ </div>
415
+
416
+
417
+
418
+ <div class="sourcecode">
419
+ <p class="source-link">
420
+ Source: <a href="javascript:toggleSource('M000081_source')" id="l_M000081_source">show</a>
421
+
422
+ | <a href="http://github.com/sunaku/rumai/blob/5fcf09b89976a53dd9346e335a1803b337e0c447/lib/rumai/ixp/transport.rb#L278" target="_blank" class="github_url">on GitHub</a>
423
+
424
+ </p>
425
+ <div id="M000081_source" class="dyn-source">
426
+ <pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 278</span>
427
+ <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span> <span class="ruby-identifier">content</span>
428
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">'closed streams cannot be written to'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@closed</span>
429
+ <span class="ruby-identifier">raise</span> <span class="ruby-value str">'directories cannot be written to'</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@stat</span>.<span class="ruby-identifier">directory?</span>
430
+
431
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">content</span>.<span class="ruby-identifier">to_s</span>
432
+ <span class="ruby-identifier">limit</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@pos</span>
433
+
434
+ <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@pos</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">limit</span>
435
+ <span class="ruby-identifier">chunk</span> = <span class="ruby-identifier">data</span>[<span class="ruby-ivar">@pos</span>, <span class="ruby-ivar">@msize</span>]
436
+
437
+ <span class="ruby-identifier">req</span> = <span class="ruby-constant">Twrite</span>.<span class="ruby-identifier">new</span>(
438
+ <span class="ruby-identifier">:fid</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@fid</span>,
439
+ <span class="ruby-identifier">:offset</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@pos</span>,
440
+ <span class="ruby-identifier">:count</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">chunk</span>.<span class="ruby-identifier">length</span>,
441
+ <span class="ruby-identifier">:data</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">chunk</span>
442
+ )
443
+ <span class="ruby-identifier">rsp</span> = <span class="ruby-ivar">@agent</span>.<span class="ruby-identifier">talk</span>(<span class="ruby-identifier">req</span>)
444
+
445
+ <span class="ruby-ivar">@pos</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">rsp</span>.<span class="ruby-identifier">count</span>
446
+ <span class="ruby-keyword kw">end</span>
447
+ <span class="ruby-keyword kw">end</span></pre>
448
+ </div>
449
+ </div>
450
+
451
+ </div>
452
+
453
+ </div>
454
+ </div>
455
+ </body>
456
+ </html>