rumai 3.1.0 → 3.2.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.
- data/bin/rumai +1 -1
- data/doc/api/classes/Integer.html +7 -7
- data/doc/api/classes/Rumai.html +148 -141
- data/doc/api/classes/Rumai/Area.html +135 -130
- data/doc/api/classes/Rumai/Chain.html +21 -21
- data/doc/api/classes/Rumai/Client.html +188 -189
- data/doc/api/classes/Rumai/ClientContainer.html +22 -22
- data/doc/api/classes/Rumai/IXP/Agent.html +248 -143
- data/doc/api/classes/Rumai/IXP/Agent/FidStream.html +50 -50
- data/doc/api/classes/Rumai/IXP/Agent/MODES.html +7 -7
- data/doc/api/classes/Rumai/IXP/Agent/RangedPool.html +21 -21
- data/doc/api/classes/Rumai/IXP/Fcall.html +33 -33
- data/doc/api/classes/Rumai/IXP/Qid.html +1 -1
- data/doc/api/classes/Rumai/IXP/Stat.html +8 -8
- data/doc/api/classes/Rumai/IXP/Stream.html +6 -6
- data/doc/api/classes/Rumai/IXP/Struct.html +34 -38
- data/doc/api/classes/Rumai/IXP/Struct/Field.html +42 -42
- data/doc/api/classes/Rumai/IXP/Struct/Field/CounteeField.html +14 -14
- data/doc/api/classes/Rumai/IXP/Struct/Field/CounterField.html +7 -7
- data/doc/api/classes/Rumai/IXP/Terror.html +7 -7
- data/doc/api/classes/Rumai/IXP/Topen.html +1 -1
- data/doc/api/classes/Rumai/Node.html +114 -110
- data/doc/api/classes/Rumai/View.html +184 -136
- data/doc/api/classes/String.html +15 -15
- data/doc/api/classes/Time.html +14 -14
- data/doc/api/created.rid +1 -1
- data/doc/api/files/lib/rumai/fs_rb.html +1 -1
- data/doc/api/files/lib/rumai/ixp/message_rb.html +1 -1
- data/doc/api/files/lib/rumai/ixp/transport_rb.html +1 -1
- data/doc/api/files/lib/rumai/wm_rb.html +1 -1
- data/doc/api/files/lib/rumai_rb.html +1 -1
- data/doc/api/panel/search_index.js +1 -1
- data/doc/history.erb +41 -0
- data/doc/index.html +1315 -669
- data/doc/setup.erb +82 -45
- data/doc/usage.erb +96 -132
- data/lib/rumai.rb +2 -2
- data/lib/rumai/fs.rb +11 -6
- data/lib/rumai/ixp/message.rb +31 -17
- data/lib/rumai/ixp/transport.rb +82 -36
- data/lib/rumai/wm.rb +87 -25
- metadata +5 -5
@@ -31,7 +31,7 @@
|
|
31
31
|
<div class="description">
|
32
32
|
<p>
|
33
33
|
NOTE: Inheritors should override the ‘<a
|
34
|
-
href="ClientContainer.html#
|
34
|
+
href="ClientContainer.html#M000068">client_ids</a>’ method.
|
35
35
|
</p>
|
36
36
|
|
37
37
|
</div>
|
@@ -51,9 +51,9 @@ href="ClientContainer.html#M000059">client_ids</a>’ method.
|
|
51
51
|
<dd>
|
52
52
|
<ul>
|
53
53
|
|
54
|
-
<li><a href="#
|
54
|
+
<li><a href="#M000068">client_ids</a>,</li>
|
55
55
|
|
56
|
-
<li><a href="#
|
56
|
+
<li><a href="#M000069">clients</a></li>
|
57
57
|
|
58
58
|
</ul>
|
59
59
|
</dd>
|
@@ -62,7 +62,7 @@ href="ClientContainer.html#M000059">client_ids</a>’ method.
|
|
62
62
|
<dd>
|
63
63
|
<ul>
|
64
64
|
|
65
|
-
<li><a href="#
|
65
|
+
<li><a href="#M000071">grouping</a></li>
|
66
66
|
|
67
67
|
</ul>
|
68
68
|
</dd>
|
@@ -84,9 +84,9 @@ href="ClientContainer.html#M000059">client_ids</a>’ method.
|
|
84
84
|
<div class="sectiontitle">Instance Public methods</div>
|
85
85
|
|
86
86
|
<div class="method">
|
87
|
-
<div class="title" id="
|
87
|
+
<div class="title" id="M000068">
|
88
88
|
|
89
|
-
<a name="
|
89
|
+
<a name="M000068"></a><b>client_ids</b>()
|
90
90
|
|
91
91
|
</div>
|
92
92
|
|
@@ -102,13 +102,13 @@ Returns the IDs of the clients in this container.
|
|
102
102
|
|
103
103
|
<div class="sourcecode">
|
104
104
|
<p class="source-link">
|
105
|
-
Source: <a href="javascript:toggleSource('
|
105
|
+
Source: <a href="javascript:toggleSource('M000068_source')" id="l_M000068_source">show</a>
|
106
106
|
|
107
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
107
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/wm.rb#L458" target="_blank" class="github_url">on GitHub</a>
|
108
108
|
|
109
109
|
</p>
|
110
|
-
<div id="
|
111
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/wm.rb, line
|
110
|
+
<div id="M000068_source" class="dyn-source">
|
111
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/wm.rb, line 458</span>
|
112
112
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">client_ids</span>
|
113
113
|
[]
|
114
114
|
<span class="ruby-keyword kw">end</span></pre>
|
@@ -118,9 +118,9 @@ Returns the IDs of the clients in this container.
|
|
118
118
|
</div>
|
119
119
|
|
120
120
|
<div class="method">
|
121
|
-
<div class="title" id="
|
121
|
+
<div class="title" id="M000069">
|
122
122
|
|
123
|
-
<a name="
|
123
|
+
<a name="M000069"></a><b>clients</b>()
|
124
124
|
|
125
125
|
</div>
|
126
126
|
|
@@ -136,13 +136,13 @@ Returns the clients contained in this container.
|
|
136
136
|
|
137
137
|
<div class="sourcecode">
|
138
138
|
<p class="source-link">
|
139
|
-
Source: <a href="javascript:toggleSource('
|
139
|
+
Source: <a href="javascript:toggleSource('M000069_source')" id="l_M000069_source">show</a>
|
140
140
|
|
141
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
141
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/wm.rb#L465" target="_blank" class="github_url">on GitHub</a>
|
142
142
|
|
143
143
|
</p>
|
144
|
-
<div id="
|
145
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/wm.rb, line
|
144
|
+
<div id="M000069_source" class="dyn-source">
|
145
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/wm.rb, line 465</span>
|
146
146
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clients</span>
|
147
147
|
<span class="ruby-identifier">client_ids</span>.<span class="ruby-identifier">map!</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-constant">Client</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">i</span> }
|
148
148
|
<span class="ruby-keyword kw">end</span></pre>
|
@@ -152,9 +152,9 @@ Returns the clients contained in this container.
|
|
152
152
|
</div>
|
153
153
|
|
154
154
|
<div class="method">
|
155
|
-
<div class="title" id="
|
155
|
+
<div class="title" id="M000071">
|
156
156
|
|
157
|
-
<a name="
|
157
|
+
<a name="M000071"></a><b>grouping</b>()
|
158
158
|
|
159
159
|
</div>
|
160
160
|
|
@@ -170,13 +170,13 @@ Returns all grouped clients in this container.
|
|
170
170
|
|
171
171
|
<div class="sourcecode">
|
172
172
|
<p class="source-link">
|
173
|
-
Source: <a href="javascript:toggleSource('
|
173
|
+
Source: <a href="javascript:toggleSource('M000071_source')" id="l_M000071_source">show</a>
|
174
174
|
|
175
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
175
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/wm.rb#L481" target="_blank" class="github_url">on GitHub</a>
|
176
176
|
|
177
177
|
</p>
|
178
|
-
<div id="
|
179
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/wm.rb, line
|
178
|
+
<div id="M000071_source" class="dyn-source">
|
179
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/wm.rb, line 481</span>
|
180
180
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">grouping</span>
|
181
181
|
<span class="ruby-identifier">clients</span>.<span class="ruby-identifier">select</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">group?</span> }
|
182
182
|
<span class="ruby-keyword kw">end</span></pre>
|
@@ -36,8 +36,12 @@
|
|
36
36
|
|
37
37
|
<div class="description">
|
38
38
|
<p>
|
39
|
-
A thread-safe
|
39
|
+
A thread-safe channel that multiplexes many threads onto a single 9P2000
|
40
40
|
connection.
|
41
|
+
</p>
|
42
|
+
<p>
|
43
|
+
The send/recv implementation is based on the XCB cookie approach: <a
|
44
|
+
href="http://www.x.org/releases/X11R7.5/doc/libxcb/tutorial/#requestsreplies">www.x.org/releases/X11R7.5/doc/libxcb/tutorial/#requestsreplies</a>
|
41
45
|
</p>
|
42
46
|
|
43
47
|
</div>
|
@@ -57,7 +61,7 @@ connection.
|
|
57
61
|
<dd>
|
58
62
|
<ul>
|
59
63
|
|
60
|
-
<li><a href="#
|
64
|
+
<li><a href="#M000105">attach</a></li>
|
61
65
|
|
62
66
|
</ul>
|
63
67
|
</dd>
|
@@ -66,9 +70,9 @@ connection.
|
|
66
70
|
<dd>
|
67
71
|
<ul>
|
68
72
|
|
69
|
-
<li><a href="#
|
73
|
+
<li><a href="#M000108">clunk</a>,</li>
|
70
74
|
|
71
|
-
<li><a href="#
|
75
|
+
<li><a href="#M000089">create</a></li>
|
72
76
|
|
73
77
|
</ul>
|
74
78
|
</dd>
|
@@ -77,7 +81,7 @@ connection.
|
|
77
81
|
<dd>
|
78
82
|
<ul>
|
79
83
|
|
80
|
-
<li><a href="#
|
84
|
+
<li><a href="#M000084">entries</a></li>
|
81
85
|
|
82
86
|
</ul>
|
83
87
|
</dd>
|
@@ -86,7 +90,7 @@ connection.
|
|
86
90
|
<dd>
|
87
91
|
<ul>
|
88
92
|
|
89
|
-
<li><a href="#
|
93
|
+
<li><a href="#M000038">new</a></li>
|
90
94
|
|
91
95
|
</ul>
|
92
96
|
</dd>
|
@@ -95,7 +99,7 @@ connection.
|
|
95
99
|
<dd>
|
96
100
|
<ul>
|
97
101
|
|
98
|
-
<li><a href="#
|
102
|
+
<li><a href="#M000064">open</a></li>
|
99
103
|
|
100
104
|
</ul>
|
101
105
|
</dd>
|
@@ -104,11 +108,13 @@ connection.
|
|
104
108
|
<dd>
|
105
109
|
<ul>
|
106
110
|
|
107
|
-
<li><a href="#
|
111
|
+
<li><a href="#M000083">read</a>,</li>
|
112
|
+
|
113
|
+
<li><a href="#M000055">recv</a>,</li>
|
108
114
|
|
109
|
-
<li><a href="#
|
115
|
+
<li><a href="#M000093">remove</a>,</li>
|
110
116
|
|
111
|
-
<li><a href="#
|
117
|
+
<li><a href="#M000096">remove_fid</a></li>
|
112
118
|
|
113
119
|
</ul>
|
114
120
|
</dd>
|
@@ -117,9 +123,11 @@ connection.
|
|
117
123
|
<dd>
|
118
124
|
<ul>
|
119
125
|
|
120
|
-
<li><a href="#
|
126
|
+
<li><a href="#M000054">send</a>,</li>
|
121
127
|
|
122
|
-
<li><a href="#
|
128
|
+
<li><a href="#M000097">stat</a>,</li>
|
129
|
+
|
130
|
+
<li><a href="#M000098">stat_fid</a></li>
|
123
131
|
|
124
132
|
</ul>
|
125
133
|
</dd>
|
@@ -128,7 +136,7 @@ connection.
|
|
128
136
|
<dd>
|
129
137
|
<ul>
|
130
138
|
|
131
|
-
<li><a href="#
|
139
|
+
<li><a href="#M000057">talk</a></li>
|
132
140
|
|
133
141
|
</ul>
|
134
142
|
</dd>
|
@@ -137,11 +145,11 @@ connection.
|
|
137
145
|
<dd>
|
138
146
|
<ul>
|
139
147
|
|
140
|
-
<li><a href="#
|
148
|
+
<li><a href="#M000101">walk</a>,</li>
|
141
149
|
|
142
|
-
<li><a href="#
|
150
|
+
<li><a href="#M000102">walk_fid</a>,</li>
|
143
151
|
|
144
|
-
<li><a href="#
|
152
|
+
<li><a href="#M000085">write</a></li>
|
145
153
|
|
146
154
|
</ul>
|
147
155
|
</dd>
|
@@ -199,37 +207,38 @@ connection.
|
|
199
207
|
<div class="sectiontitle">Class Public methods</div>
|
200
208
|
|
201
209
|
<div class="method">
|
202
|
-
<div class="title" id="
|
210
|
+
<div class="title" id="M000038">
|
203
211
|
|
204
|
-
<a name="
|
212
|
+
<a name="M000038"></a><b>new</b>(stream)
|
205
213
|
|
206
214
|
</div>
|
207
215
|
|
216
|
+
<div class="description">
|
217
|
+
<dl>
|
218
|
+
<dt>stream</dt><dd>I/O stream on which a 9P2000 server is listening.
|
219
|
+
|
220
|
+
</dd>
|
221
|
+
</dl>
|
222
|
+
|
223
|
+
</div>
|
224
|
+
|
208
225
|
|
209
226
|
|
210
227
|
|
211
228
|
<div class="sourcecode">
|
212
229
|
<p class="source-link">
|
213
|
-
Source: <a href="javascript:toggleSource('
|
230
|
+
Source: <a href="javascript:toggleSource('M000038_source')" id="l_M000038_source">show</a>
|
214
231
|
|
215
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
232
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L26" target="_blank" class="github_url">on GitHub</a>
|
216
233
|
|
217
234
|
</p>
|
218
|
-
<div id="
|
219
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
235
|
+
<div id="M000038_source" class="dyn-source">
|
236
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 26</span>
|
220
237
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span> <span class="ruby-identifier">stream</span>
|
221
|
-
<span class="ruby-ivar">@stream</span>
|
222
|
-
|
223
|
-
<span class="ruby-ivar">@
|
224
|
-
|
225
|
-
<span class="ruby-comment cmt"># background thread which continuously receives</span>
|
226
|
-
<span class="ruby-comment cmt"># and dispatches messages from the 9P2000 server</span>
|
227
|
-
<span class="ruby-constant">Thread</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span>
|
228
|
-
<span class="ruby-keyword kw">while</span> <span class="ruby-keyword kw">true</span>
|
229
|
-
<span class="ruby-identifier">msg</span> = <span class="ruby-constant">Fcall</span>.<span class="ruby-identifier">from_9p</span> <span class="ruby-ivar">@stream</span>
|
230
|
-
<span class="ruby-ivar">@recv_bays</span>[<span class="ruby-identifier">msg</span>.<span class="ruby-identifier">tag</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">msg</span>
|
231
|
-
<span class="ruby-keyword kw">end</span>
|
232
|
-
<span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">priority</span> = <span class="ruby-value">-1</span>
|
238
|
+
<span class="ruby-ivar">@stream</span> = <span class="ruby-identifier">stream</span>
|
239
|
+
|
240
|
+
<span class="ruby-ivar">@recv_buf</span> = {} <span class="ruby-comment cmt"># tag => message</span>
|
241
|
+
<span class="ruby-ivar">@recv_lock</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
|
233
242
|
|
234
243
|
<span class="ruby-ivar">@tag_pool</span> = <span class="ruby-constant">RangedPool</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-constant">BYTE2_MASK</span>)
|
235
244
|
<span class="ruby-ivar">@fid_pool</span> = <span class="ruby-constant">RangedPool</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-constant">BYTE4_MASK</span>)
|
@@ -263,9 +272,9 @@ connection.
|
|
263
272
|
<div class="sectiontitle">Instance Public methods</div>
|
264
273
|
|
265
274
|
<div class="method">
|
266
|
-
<div class="title" id="
|
275
|
+
<div class="title" id="M000105">
|
267
276
|
|
268
|
-
<a name="
|
277
|
+
<a name="M000105"></a><b>attach</b>(root_fid, auth_fid = Fcall::NOFID, auth_name = ENV['USER'])
|
269
278
|
|
270
279
|
</div>
|
271
280
|
|
@@ -281,13 +290,13 @@ Associates the given FID with the FS root.
|
|
281
290
|
|
282
291
|
<div class="sourcecode">
|
283
292
|
<p class="source-link">
|
284
|
-
Source: <a href="javascript:toggleSource('
|
293
|
+
Source: <a href="javascript:toggleSource('M000105_source')" id="l_M000105_source">show</a>
|
285
294
|
|
286
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
295
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L459" target="_blank" class="github_url">on GitHub</a>
|
287
296
|
|
288
297
|
</p>
|
289
|
-
<div id="
|
290
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
298
|
+
<div id="M000105_source" class="dyn-source">
|
299
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 459</span>
|
291
300
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attach</span> <span class="ruby-identifier">root_fid</span>, <span class="ruby-identifier">auth_fid</span> = <span class="ruby-constant">Fcall</span><span class="ruby-operator">::</span><span class="ruby-constant">NOFID</span>, <span class="ruby-identifier">auth_name</span> = <span class="ruby-constant">ENV</span>[<span class="ruby-value str">'USER'</span>]
|
292
301
|
<span class="ruby-identifier">talk</span> <span class="ruby-constant">Tattach</span>.<span class="ruby-identifier">new</span>(
|
293
302
|
<span class="ruby-identifier">:fid</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">root_fid</span>,
|
@@ -302,9 +311,9 @@ Associates the given FID with the FS root.
|
|
302
311
|
</div>
|
303
312
|
|
304
313
|
<div class="method">
|
305
|
-
<div class="title" id="
|
314
|
+
<div class="title" id="M000108">
|
306
315
|
|
307
|
-
<a name="
|
316
|
+
<a name="M000108"></a><b>clunk</b>(fid)
|
308
317
|
|
309
318
|
</div>
|
310
319
|
|
@@ -320,13 +329,13 @@ Retires the given FID from use.
|
|
320
329
|
|
321
330
|
<div class="sourcecode">
|
322
331
|
<p class="source-link">
|
323
|
-
Source: <a href="javascript:toggleSource('
|
332
|
+
Source: <a href="javascript:toggleSource('M000108_source')" id="l_M000108_source">show</a>
|
324
333
|
|
325
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
334
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L471" target="_blank" class="github_url">on GitHub</a>
|
326
335
|
|
327
336
|
</p>
|
328
|
-
<div id="
|
329
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
337
|
+
<div id="M000108_source" class="dyn-source">
|
338
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 471</span>
|
330
339
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clunk</span> <span class="ruby-identifier">fid</span>
|
331
340
|
<span class="ruby-identifier">talk</span> <span class="ruby-constant">Tclunk</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">:fid</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">fid</span>)
|
332
341
|
<span class="ruby-ivar">@fid_pool</span>.<span class="ruby-identifier">release</span> <span class="ruby-identifier">fid</span>
|
@@ -337,9 +346,9 @@ Retires the given FID from use.
|
|
337
346
|
</div>
|
338
347
|
|
339
348
|
<div class="method">
|
340
|
-
<div class="title" id="
|
349
|
+
<div class="title" id="M000089">
|
341
350
|
|
342
|
-
<a name="
|
351
|
+
<a name="M000089"></a><b>create</b>(path, mode = 'rw', perm = 0644)
|
343
352
|
|
344
353
|
</div>
|
345
354
|
|
@@ -356,13 +365,13 @@ modes for a user having the given permission bits.
|
|
356
365
|
|
357
366
|
<div class="sourcecode">
|
358
367
|
<p class="source-link">
|
359
|
-
Source: <a href="javascript:toggleSource('
|
368
|
+
Source: <a href="javascript:toggleSource('M000089_source')" id="l_M000089_source">show</a>
|
360
369
|
|
361
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
370
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L382" target="_blank" class="github_url">on GitHub</a>
|
362
371
|
|
363
372
|
</p>
|
364
|
-
<div id="
|
365
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
373
|
+
<div id="M000089_source" class="dyn-source">
|
374
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 382</span>
|
366
375
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">create</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span> = <span class="ruby-value str">'rw'</span>, <span class="ruby-identifier">perm</span> = <span class="ruby-value">0644</span>
|
367
376
|
<span class="ruby-identifier">prefix</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">path</span>)
|
368
377
|
<span class="ruby-identifier">target</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">path</span>)
|
@@ -387,15 +396,18 @@ modes for a user having the given permission bits.
|
|
387
396
|
</div>
|
388
397
|
|
389
398
|
<div class="method">
|
390
|
-
<div class="title" id="
|
399
|
+
<div class="title" id="M000084">
|
391
400
|
|
392
|
-
<a name="
|
401
|
+
<a name="M000084"></a><b>entries</b>(path)
|
393
402
|
|
394
403
|
</div>
|
395
404
|
|
396
405
|
<div class="description">
|
397
406
|
<p>
|
398
|
-
Returns the
|
407
|
+
Returns the basenames of all files inside the directory at the given path.
|
408
|
+
</p>
|
409
|
+
<p>
|
410
|
+
See Dir::entries in the Ruby documentation.
|
399
411
|
</p>
|
400
412
|
|
401
413
|
</div>
|
@@ -405,13 +417,13 @@ Returns the names of all files inside the directory whose path is given.
|
|
405
417
|
|
406
418
|
<div class="sourcecode">
|
407
419
|
<p class="source-link">
|
408
|
-
Source: <a href="javascript:toggleSource('
|
420
|
+
Source: <a href="javascript:toggleSource('M000084_source')" id="l_M000084_source">show</a>
|
409
421
|
|
410
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
422
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L360" target="_blank" class="github_url">on GitHub</a>
|
411
423
|
|
412
424
|
</p>
|
413
|
-
<div id="
|
414
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
425
|
+
<div id="M000084_source" class="dyn-source">
|
426
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 360</span>
|
415
427
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">entries</span> <span class="ruby-identifier">path</span>
|
416
428
|
<span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">stat</span>(<span class="ruby-identifier">path</span>).<span class="ruby-identifier">directory?</span>
|
417
429
|
<span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">"#{path.inspect} is not a directory"</span>
|
@@ -425,9 +437,9 @@ Returns the names of all files inside the directory whose path is given.
|
|
425
437
|
</div>
|
426
438
|
|
427
439
|
<div class="method">
|
428
|
-
<div class="title" id="
|
440
|
+
<div class="title" id="M000064">
|
429
441
|
|
430
|
-
<a name="
|
442
|
+
<a name="M000064"></a><b>open</b>(path, mode = 'r')
|
431
443
|
|
432
444
|
</div>
|
433
445
|
|
@@ -449,13 +461,13 @@ See File::open in the Ruby documentation.
|
|
449
461
|
|
450
462
|
<div class="sourcecode">
|
451
463
|
<p class="source-link">
|
452
|
-
Source: <a href="javascript:toggleSource('
|
464
|
+
Source: <a href="javascript:toggleSource('M000064_source')" id="l_M000064_source">show</a>
|
453
465
|
|
454
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
466
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L199" target="_blank" class="github_url">on GitHub</a>
|
455
467
|
|
456
468
|
</p>
|
457
|
-
<div id="
|
458
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
469
|
+
<div id="M000064_source" class="dyn-source">
|
470
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 199</span>
|
459
471
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">open</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">mode</span> = <span class="ruby-value str">'r'</span> <span class="ruby-comment cmt"># :yields: FidStream</span>
|
460
472
|
<span class="ruby-identifier">mode</span> = <span class="ruby-constant">MODES</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">mode</span>)
|
461
473
|
|
@@ -486,9 +498,9 @@ See File::open in the Ruby documentation.
|
|
486
498
|
</div>
|
487
499
|
|
488
500
|
<div class="method">
|
489
|
-
<div class="title" id="
|
501
|
+
<div class="title" id="M000083">
|
490
502
|
|
491
|
-
<a name="
|
503
|
+
<a name="M000083"></a><b>read</b>(path, *args)
|
492
504
|
|
493
505
|
</div>
|
494
506
|
|
@@ -504,13 +516,13 @@ Returns the content of the file/directory at the given path.
|
|
504
516
|
|
505
517
|
<div class="sourcecode">
|
506
518
|
<p class="source-link">
|
507
|
-
Source: <a href="javascript:toggleSource('
|
519
|
+
Source: <a href="javascript:toggleSource('M000083_source')" id="l_M000083_source">show</a>
|
508
520
|
|
509
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
521
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L348" target="_blank" class="github_url">on GitHub</a>
|
510
522
|
|
511
523
|
</p>
|
512
|
-
<div id="
|
513
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
524
|
+
<div id="M000083_source" class="dyn-source">
|
525
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 348</span>
|
514
526
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">read</span> <span class="ruby-identifier">path</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>
|
515
527
|
<span class="ruby-identifier">open</span> <span class="ruby-identifier">path</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
516
528
|
<span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
@@ -522,9 +534,77 @@ Returns the content of the file/directory at the given path.
|
|
522
534
|
</div>
|
523
535
|
|
524
536
|
<div class="method">
|
525
|
-
<div class="title" id="
|
537
|
+
<div class="title" id="M000055">
|
538
|
+
|
539
|
+
<a name="M000055"></a><b>recv</b>(tag)
|
540
|
+
|
541
|
+
</div>
|
542
|
+
|
543
|
+
<div class="description">
|
544
|
+
<p>
|
545
|
+
Returns the reply for the given ticket, which was previously given to you
|
546
|
+
when you sent the corresponding request (<a
|
547
|
+
href="Fcall.html">Rumai::IXP::Fcall</a>).
|
548
|
+
</p>
|
549
|
+
|
550
|
+
</div>
|
551
|
+
|
552
|
+
|
553
|
+
|
554
|
+
|
555
|
+
<div class="sourcecode">
|
556
|
+
<p class="source-link">
|
557
|
+
Source: <a href="javascript:toggleSource('M000055_source')" id="l_M000055_source">show</a>
|
558
|
+
|
559
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L124" target="_blank" class="github_url">on GitHub</a>
|
560
|
+
|
561
|
+
</p>
|
562
|
+
<div id="M000055_source" class="dyn-source">
|
563
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 124</span>
|
564
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recv</span> <span class="ruby-identifier">tag</span>
|
565
|
+
<span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
|
566
|
+
<span class="ruby-identifier">reply</span> = <span class="ruby-ivar">@recv_lock</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
|
567
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@recv_buf</span>.<span class="ruby-identifier">key?</span> <span class="ruby-identifier">tag</span>
|
568
|
+
<span class="ruby-ivar">@recv_buf</span>.<span class="ruby-identifier">delete</span> <span class="ruby-identifier">tag</span>
|
569
|
+
<span class="ruby-keyword kw">else</span>
|
570
|
+
<span class="ruby-comment cmt"># reply was not in the receive buffer, so wait</span>
|
571
|
+
<span class="ruby-comment cmt"># for the next reply... hoping that it is ours</span>
|
572
|
+
<span class="ruby-identifier">msg</span> = <span class="ruby-constant">Fcall</span>.<span class="ruby-identifier">from_9p</span>(<span class="ruby-ivar">@stream</span>)
|
573
|
+
|
574
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">msg</span>.<span class="ruby-identifier">tag</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">tag</span>
|
575
|
+
<span class="ruby-identifier">msg</span>
|
576
|
+
<span class="ruby-keyword kw">else</span>
|
577
|
+
<span class="ruby-comment cmt"># we got someone else's reply, so buffer</span>
|
578
|
+
<span class="ruby-comment cmt"># it (for them to receive) and try again</span>
|
579
|
+
<span class="ruby-ivar">@recv_buf</span>[<span class="ruby-identifier">msg</span>.<span class="ruby-identifier">tag</span>] = <span class="ruby-identifier">msg</span>
|
580
|
+
<span class="ruby-keyword kw">nil</span>
|
581
|
+
<span class="ruby-keyword kw">end</span>
|
582
|
+
<span class="ruby-keyword kw">end</span>
|
583
|
+
<span class="ruby-keyword kw">end</span>
|
584
|
+
|
585
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reply</span>
|
586
|
+
<span class="ruby-ivar">@tag_pool</span>.<span class="ruby-identifier">release</span> <span class="ruby-identifier">tag</span>
|
587
|
+
|
588
|
+
<span class="ruby-keyword kw">if</span> <span class="ruby-identifier">reply</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Rerror</span>
|
589
|
+
<span class="ruby-identifier">raise</span> <span class="ruby-constant">Error</span>, <span class="ruby-identifier">reply</span>.<span class="ruby-identifier">ename</span>
|
590
|
+
<span class="ruby-keyword kw">end</span>
|
591
|
+
|
592
|
+
<span class="ruby-keyword kw">return</span> <span class="ruby-identifier">reply</span>
|
593
|
+
<span class="ruby-keyword kw">else</span>
|
594
|
+
<span class="ruby-comment cmt"># give other threads a chance to receive</span>
|
595
|
+
<span class="ruby-constant">Thread</span>.<span class="ruby-identifier">pass</span>
|
596
|
+
<span class="ruby-keyword kw">end</span>
|
597
|
+
<span class="ruby-keyword kw">end</span>
|
598
|
+
<span class="ruby-keyword kw">end</span></pre>
|
599
|
+
</div>
|
600
|
+
</div>
|
601
|
+
|
602
|
+
</div>
|
603
|
+
|
604
|
+
<div class="method">
|
605
|
+
<div class="title" id="M000093">
|
526
606
|
|
527
|
-
<a name="
|
607
|
+
<a name="M000093"></a><b>remove</b>(path)
|
528
608
|
|
529
609
|
</div>
|
530
610
|
|
@@ -540,13 +620,13 @@ Deletes the file at the given path.
|
|
540
620
|
|
541
621
|
<div class="sourcecode">
|
542
622
|
<p class="source-link">
|
543
|
-
Source: <a href="javascript:toggleSource('
|
623
|
+
Source: <a href="javascript:toggleSource('M000093_source')" id="l_M000093_source">show</a>
|
544
624
|
|
545
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
625
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L404" target="_blank" class="github_url">on GitHub</a>
|
546
626
|
|
547
627
|
</p>
|
548
|
-
<div id="
|
549
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
628
|
+
<div id="M000093_source" class="dyn-source">
|
629
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 404</span>
|
550
630
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove</span> <span class="ruby-identifier">path</span>
|
551
631
|
<span class="ruby-identifier">path_fid</span> = <span class="ruby-identifier">walk</span>(<span class="ruby-identifier">path</span>)
|
552
632
|
<span class="ruby-identifier">remove_fid</span> <span class="ruby-identifier">path_fid</span> <span class="ruby-comment cmt"># remove also does clunk</span>
|
@@ -557,9 +637,9 @@ Deletes the file at the given path.
|
|
557
637
|
</div>
|
558
638
|
|
559
639
|
<div class="method">
|
560
|
-
<div class="title" id="
|
640
|
+
<div class="title" id="M000096">
|
561
641
|
|
562
|
-
<a name="
|
642
|
+
<a name="M000096"></a><b>remove_fid</b>(path_fid)
|
563
643
|
|
564
644
|
</div>
|
565
645
|
|
@@ -575,13 +655,13 @@ Deletes the file corresponding to the given FID and clunks the given FID.
|
|
575
655
|
|
576
656
|
<div class="sourcecode">
|
577
657
|
<p class="source-link">
|
578
|
-
Source: <a href="javascript:toggleSource('
|
658
|
+
Source: <a href="javascript:toggleSource('M000096_source')" id="l_M000096_source">show</a>
|
579
659
|
|
580
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
660
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L413" target="_blank" class="github_url">on GitHub</a>
|
581
661
|
|
582
662
|
</p>
|
583
|
-
<div id="
|
584
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
663
|
+
<div id="M000096_source" class="dyn-source">
|
664
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 413</span>
|
585
665
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">remove_fid</span> <span class="ruby-identifier">path_fid</span>
|
586
666
|
<span class="ruby-identifier">talk</span> <span class="ruby-constant">Tremove</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">:fid</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">path_fid</span>)
|
587
667
|
<span class="ruby-keyword kw">end</span></pre>
|
@@ -591,9 +671,49 @@ Deletes the file corresponding to the given FID and clunks the given FID.
|
|
591
671
|
</div>
|
592
672
|
|
593
673
|
<div class="method">
|
594
|
-
<div class="title" id="
|
674
|
+
<div class="title" id="M000054">
|
675
|
+
|
676
|
+
<a name="M000054"></a><b>send</b>(request)
|
677
|
+
|
678
|
+
</div>
|
679
|
+
|
680
|
+
<div class="description">
|
681
|
+
<p>
|
682
|
+
Sends the given request (<a href="Fcall.html">Rumai::IXP::Fcall</a>) and
|
683
|
+
returns a ticket that you can use later to receive the reply.
|
684
|
+
</p>
|
685
|
+
|
686
|
+
</div>
|
687
|
+
|
688
|
+
|
689
|
+
|
690
|
+
|
691
|
+
<div class="sourcecode">
|
692
|
+
<p class="source-link">
|
693
|
+
Source: <a href="javascript:toggleSource('M000054_source')" id="l_M000054_source">show</a>
|
694
|
+
|
695
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L111" target="_blank" class="github_url">on GitHub</a>
|
696
|
+
|
697
|
+
</p>
|
698
|
+
<div id="M000054_source" class="dyn-source">
|
699
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 111</span>
|
700
|
+
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">send</span> <span class="ruby-identifier">request</span>
|
701
|
+
<span class="ruby-identifier">tag</span> = <span class="ruby-ivar">@tag_pool</span>.<span class="ruby-identifier">obtain</span>
|
702
|
+
|
703
|
+
<span class="ruby-identifier">request</span>.<span class="ruby-identifier">tag</span> = <span class="ruby-identifier">tag</span>
|
704
|
+
<span class="ruby-ivar">@stream</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">request</span>.<span class="ruby-identifier">to_9p</span>
|
705
|
+
|
706
|
+
<span class="ruby-identifier">tag</span>
|
707
|
+
<span class="ruby-keyword kw">end</span></pre>
|
708
|
+
</div>
|
709
|
+
</div>
|
710
|
+
|
711
|
+
</div>
|
712
|
+
|
713
|
+
<div class="method">
|
714
|
+
<div class="title" id="M000097">
|
595
715
|
|
596
|
-
<a name="
|
716
|
+
<a name="M000097"></a><b>stat</b>(path)
|
597
717
|
|
598
718
|
</div>
|
599
719
|
|
@@ -609,13 +729,13 @@ Returns information about the file at the given path.
|
|
609
729
|
|
610
730
|
<div class="sourcecode">
|
611
731
|
<p class="source-link">
|
612
|
-
Source: <a href="javascript:toggleSource('
|
732
|
+
Source: <a href="javascript:toggleSource('M000097_source')" id="l_M000097_source">show</a>
|
613
733
|
|
614
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
734
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L420" target="_blank" class="github_url">on GitHub</a>
|
615
735
|
|
616
736
|
</p>
|
617
|
-
<div id="
|
618
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
737
|
+
<div id="M000097_source" class="dyn-source">
|
738
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 420</span>
|
619
739
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stat</span> <span class="ruby-identifier">path</span>
|
620
740
|
<span class="ruby-identifier">with_fid</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path_fid</span><span class="ruby-operator">|</span>
|
621
741
|
<span class="ruby-identifier">walk_fid</span> <span class="ruby-identifier">path_fid</span>, <span class="ruby-identifier">path</span>
|
@@ -628,9 +748,9 @@ Returns information about the file at the given path.
|
|
628
748
|
</div>
|
629
749
|
|
630
750
|
<div class="method">
|
631
|
-
<div class="title" id="
|
751
|
+
<div class="title" id="M000098">
|
632
752
|
|
633
|
-
<a name="
|
753
|
+
<a name="M000098"></a><b>stat_fid</b>(path_fid)
|
634
754
|
|
635
755
|
</div>
|
636
756
|
|
@@ -646,13 +766,13 @@ Returns information about the file referenced by the given FID.
|
|
646
766
|
|
647
767
|
<div class="sourcecode">
|
648
768
|
<p class="source-link">
|
649
|
-
Source: <a href="javascript:toggleSource('
|
769
|
+
Source: <a href="javascript:toggleSource('M000098_source')" id="l_M000098_source">show</a>
|
650
770
|
|
651
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
771
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L430" target="_blank" class="github_url">on GitHub</a>
|
652
772
|
|
653
773
|
</p>
|
654
|
-
<div id="
|
655
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
774
|
+
<div id="M000098_source" class="dyn-source">
|
775
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 430</span>
|
656
776
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">stat_fid</span> <span class="ruby-identifier">path_fid</span>
|
657
777
|
<span class="ruby-identifier">req</span> = <span class="ruby-constant">Tstat</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">:fid</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">path_fid</span>)
|
658
778
|
<span class="ruby-identifier">rsp</span> = <span class="ruby-identifier">talk</span>(<span class="ruby-identifier">req</span>)
|
@@ -664,20 +784,16 @@ Returns information about the file referenced by the given FID.
|
|
664
784
|
</div>
|
665
785
|
|
666
786
|
<div class="method">
|
667
|
-
<div class="title" id="
|
787
|
+
<div class="title" id="M000057">
|
668
788
|
|
669
|
-
<a name="
|
789
|
+
<a name="M000057"></a><b>talk</b>(request)
|
670
790
|
|
671
791
|
</div>
|
672
792
|
|
673
793
|
<div class="description">
|
674
794
|
<p>
|
675
|
-
Sends the given
|
676
|
-
returns its
|
677
|
-
</p>
|
678
|
-
<p>
|
679
|
-
This method allows you to perform a 9P2000 transaction without worrying
|
680
|
-
about the details of tag collisions and thread safety.
|
795
|
+
Sends the given request (<a href="Fcall.html">Rumai::IXP::Fcall</a>) and
|
796
|
+
returns its reply.
|
681
797
|
</p>
|
682
798
|
|
683
799
|
</div>
|
@@ -687,32 +803,21 @@ about the details of tag collisions and thread safety.
|
|
687
803
|
|
688
804
|
<div class="sourcecode">
|
689
805
|
<p class="source-link">
|
690
|
-
Source: <a href="javascript:toggleSource('
|
806
|
+
Source: <a href="javascript:toggleSource('M000057_source')" id="l_M000057_source">show</a>
|
691
807
|
|
692
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
808
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L163" target="_blank" class="github_url">on GitHub</a>
|
693
809
|
|
694
810
|
</p>
|
695
|
-
<div id="
|
696
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
811
|
+
<div id="M000057_source" class="dyn-source">
|
812
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 163</span>
|
697
813
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">talk</span> <span class="ruby-identifier">request</span>
|
698
|
-
<span class="ruby-
|
699
|
-
<span class="ruby-identifier">tag</span> = <span class="ruby-ivar">@tag_pool</span>.<span class="ruby-identifier">obtain</span>
|
700
|
-
<span class="ruby-identifier">bay</span> = <span class="ruby-ivar">@recv_bays</span>[<span class="ruby-identifier">tag</span>]
|
701
|
-
|
702
|
-
<span class="ruby-identifier">request</span>.<span class="ruby-identifier">tag</span> = <span class="ruby-identifier">tag</span>
|
703
|
-
<span class="ruby-identifier">output</span> = <span class="ruby-identifier">request</span>.<span class="ruby-identifier">to_9p</span>
|
704
|
-
<span class="ruby-ivar">@send_lock</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
|
705
|
-
<span class="ruby-ivar">@stream</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">output</span>
|
706
|
-
<span class="ruby-keyword kw">end</span>
|
707
|
-
|
708
|
-
<span class="ruby-comment cmt"># receive the response</span>
|
709
|
-
<span class="ruby-identifier">response</span> = <span class="ruby-identifier">bay</span>.<span class="ruby-identifier">shift</span>
|
710
|
-
<span class="ruby-ivar">@tag_pool</span>.<span class="ruby-identifier">release</span> <span class="ruby-identifier">tag</span>
|
814
|
+
<span class="ruby-identifier">tag</span> = <span class="ruby-identifier">send</span>(<span class="ruby-identifier">request</span>)
|
711
815
|
|
712
|
-
<span class="ruby-keyword kw">
|
713
|
-
<span class="ruby-identifier">
|
714
|
-
<span class="ruby-keyword kw">
|
715
|
-
<span class="ruby-
|
816
|
+
<span class="ruby-keyword kw">begin</span>
|
817
|
+
<span class="ruby-identifier">recv</span> <span class="ruby-identifier">tag</span>
|
818
|
+
<span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Error</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
|
819
|
+
<span class="ruby-identifier">e</span>.<span class="ruby-identifier">message</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" -- in reply to #{request.inspect}"</span>
|
820
|
+
<span class="ruby-identifier">raise</span>
|
716
821
|
<span class="ruby-keyword kw">end</span>
|
717
822
|
<span class="ruby-keyword kw">end</span></pre>
|
718
823
|
</div>
|
@@ -721,9 +826,9 @@ about the details of tag collisions and thread safety.
|
|
721
826
|
</div>
|
722
827
|
|
723
828
|
<div class="method">
|
724
|
-
<div class="title" id="
|
829
|
+
<div class="title" id="M000101">
|
725
830
|
|
726
|
-
<a name="
|
831
|
+
<a name="M000101"></a><b>walk</b>(path)
|
727
832
|
|
728
833
|
</div>
|
729
834
|
|
@@ -739,13 +844,13 @@ Returns an FID corresponding to the given path.
|
|
739
844
|
|
740
845
|
<div class="sourcecode">
|
741
846
|
<p class="source-link">
|
742
|
-
Source: <a href="javascript:toggleSource('
|
847
|
+
Source: <a href="javascript:toggleSource('M000101_source')" id="l_M000101_source">show</a>
|
743
848
|
|
744
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
849
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L439" target="_blank" class="github_url">on GitHub</a>
|
745
850
|
|
746
851
|
</p>
|
747
|
-
<div id="
|
748
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
852
|
+
<div id="M000101_source" class="dyn-source">
|
853
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 439</span>
|
749
854
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">walk</span> <span class="ruby-identifier">path</span>
|
750
855
|
<span class="ruby-identifier">fid</span> = <span class="ruby-ivar">@fid_pool</span>.<span class="ruby-identifier">obtain</span>
|
751
856
|
<span class="ruby-identifier">walk_fid</span> <span class="ruby-identifier">fid</span>, <span class="ruby-identifier">path</span>
|
@@ -757,9 +862,9 @@ Returns an FID corresponding to the given path.
|
|
757
862
|
</div>
|
758
863
|
|
759
864
|
<div class="method">
|
760
|
-
<div class="title" id="
|
865
|
+
<div class="title" id="M000102">
|
761
866
|
|
762
|
-
<a name="
|
867
|
+
<a name="M000102"></a><b>walk_fid</b>(path_fid, path)
|
763
868
|
|
764
869
|
</div>
|
765
870
|
|
@@ -775,13 +880,13 @@ Associates the given FID to the given path.
|
|
775
880
|
|
776
881
|
<div class="sourcecode">
|
777
882
|
<p class="source-link">
|
778
|
-
Source: <a href="javascript:toggleSource('
|
883
|
+
Source: <a href="javascript:toggleSource('M000102_source')" id="l_M000102_source">show</a>
|
779
884
|
|
780
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
885
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L448" target="_blank" class="github_url">on GitHub</a>
|
781
886
|
|
782
887
|
</p>
|
783
|
-
<div id="
|
784
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
888
|
+
<div id="M000102_source" class="dyn-source">
|
889
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 448</span>
|
785
890
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">walk_fid</span> <span class="ruby-identifier">path_fid</span>, <span class="ruby-identifier">path</span>
|
786
891
|
<span class="ruby-identifier">talk</span> <span class="ruby-constant">Twalk</span>.<span class="ruby-identifier">new</span>(
|
787
892
|
<span class="ruby-identifier">:fid</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@root_fid</span>,
|
@@ -795,15 +900,15 @@ Associates the given FID to the given path.
|
|
795
900
|
</div>
|
796
901
|
|
797
902
|
<div class="method">
|
798
|
-
<div class="title" id="
|
903
|
+
<div class="title" id="M000085">
|
799
904
|
|
800
|
-
<a name="
|
905
|
+
<a name="M000085"></a><b>write</b>(path, content)
|
801
906
|
|
802
907
|
</div>
|
803
908
|
|
804
909
|
<div class="description">
|
805
910
|
<p>
|
806
|
-
|
911
|
+
Writes the given content to the file at the given path.
|
807
912
|
</p>
|
808
913
|
|
809
914
|
</div>
|
@@ -813,13 +918,13 @@ Returns the content of the file/directory at the given path.
|
|
813
918
|
|
814
919
|
<div class="sourcecode">
|
815
920
|
<p class="source-link">
|
816
|
-
Source: <a href="javascript:toggleSource('
|
921
|
+
Source: <a href="javascript:toggleSource('M000085_source')" id="l_M000085_source">show</a>
|
817
922
|
|
818
|
-
| <a href="http://github.com/sunaku/rumai/blob/
|
923
|
+
| <a href="http://github.com/sunaku/rumai/blob/947d8ffb1e3c2bd1aebfca5fae4e7ebb7913607f/lib/rumai/ixp/transport.rb#L372" target="_blank" class="github_url">on GitHub</a>
|
819
924
|
|
820
925
|
</p>
|
821
|
-
<div id="
|
822
|
-
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line
|
926
|
+
<div id="M000085_source" class="dyn-source">
|
927
|
+
<pre><span class="ruby-comment cmt"># File lib/rumai/ixp/transport.rb, line 372</span>
|
823
928
|
<span class="ruby-keyword kw">def</span> <span class="ruby-identifier">write</span> <span class="ruby-identifier">path</span>, <span class="ruby-identifier">content</span>
|
824
929
|
<span class="ruby-identifier">open</span> <span class="ruby-identifier">path</span>, <span class="ruby-value str">'w'</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
|
825
930
|
<span class="ruby-identifier">f</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">content</span>
|