This file is indexed.

/usr/share/GNUstep/Documentation/Developer/Base/Reference/NSDistantObject.html is in gnustep-base-doc 1.24.7-1build2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

    <head>
    <title>NSDistantObject class reference</title>
  </head>
  <body>
    <font face="serif">
    <a href="Base.html">Up</a>
    <br />
    <h1><a name="title$NSDistantObject">NSDistantObject class reference</a></h1>
    <h3>Authors</h3>
    <dl>
      <dt>Richard Frith-Macdonald (<a href="mailto:richard@brainstorm.co.uk"><code>richard@brainstorm.co.uk</code></a>)</dt>
      <dd>
      </dd>
      <dt>Andrew Kachites McCallum (<a href="mailto:mccallum@gnu.ai.mit.edu"><code>mccallum@gnu.ai.mit.edu</code></a>)</dt>
      <dd>
      </dd>
    </dl>
    <p><b>Version:</b> 36517</p>
    <p><b>Date:</b> 2013-04-13 11:40:15 +0100 (Sat, 13 Apr 2013)</p>
    <p><b>Copyright:</b> (C) 1997 Free Software Foundation, Inc.</p>

        <div>
    </div>

          <h1><a name="001000000000">
        Software documentation for the NSDistantObject class
      </a></h1>
    <h2><a name="class$NSDistantObject">NSDistantObject</a> : <a rel="gsdoc" href="NSProxy.html#class$NSProxy">NSProxy</a></h2>
    <blockquote class="declared">
      <dl>
        <dt><b>Declared in:</b></dt>
        <dd>Foundation/NSDistantObject.h</dd>
      </dl>
    </blockquote>
    <blockquote>
      <dl>
        <dt><b>Conforms to:</b></dt>
        <dd><a rel="gsdoc" href="NSObject.html#protocol$(NSCoding)">NSCoding</a></dd>
      </dl>
    </blockquote>
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
          Instances of this class act as proxies to remote
          objects using the Distributed Objects system. They
          also hold references to local objects which are vended
          to remote processes.
        
    </div>
    <hr width="50%" align="left" />
    <a href="#_NSDistantObject_ivars">Instance Variables</a>
    <br/><br/>
    <b>Method summary</b>
    <ul>
      <li><a rel="gsdoc" href="NSDistantObject.html#method$NSDistantObject+proxyWithLocal$connection$">+proxyWithLocal:connection:</a></li>
      <li><a rel="gsdoc" href="NSDistantObject.html#method$NSDistantObject+proxyWithTarget$connection$">+proxyWithTarget:connection:</a></li>
      <li><a rel="gsdoc" href="NSDistantObject.html#method$NSDistantObject-connectionForProxy">-connectionForProxy</a></li>
      <li><a rel="gsdoc" href="NSDistantObject.html#method$NSDistantObject-initWithLocal$connection$">-initWithLocal:connection:</a></li>
      <li><a rel="gsdoc" href="NSDistantObject.html#method$NSDistantObject-initWithTarget$connection$">-initWithTarget:connection:</a></li>
      <li><a rel="gsdoc" href="NSDistantObject.html#method$NSDistantObject-methodSignatureForSelector$">-methodSignatureForSelector:</a></li>
      <li><a rel="gsdoc" href="NSDistantObject.html#method$NSDistantObject-setProtocolForProxy$">-setProtocolForProxy:</a></li>
    </ul>
    <hr width="50%" align="left" />
<div class="method">
    <h3><a name="method$NSDistantObject+proxyWithLocal$connection$">proxyWithLocal:&nbsp;connection:&nbsp;</a></h3>
    + (<a rel="gsdoc" href="#class$NSDistantObject">NSDistantObject</a>*) <b>proxyWithLocal:</b> (id)anObject<b> connection:</b> (<a rel="gsdoc" href="NSConnection.html#class$NSConnection">NSConnection</a>*)aConnection;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            Creates and returns a proxy associated with
            <var>aConnection</var> which will hold a reference to
            the local object <var>anObject</var>.
          
    </div>
    <hr width="25%" align="left" />
</div>
<div class="method">
    <h3><a name="method$NSDistantObject+proxyWithTarget$connection$">proxyWithTarget:&nbsp;connection:&nbsp;</a></h3>
    + (<a rel="gsdoc" href="#class$NSDistantObject">NSDistantObject</a>*) <b>proxyWithTarget:</b> (unsigned)anObject<b> connection:</b> (<a rel="gsdoc" href="NSConnection.html#class$NSConnection">NSConnection</a>*)aConnection;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            Creates and returns a proxy associated with
            <var>aConnection</var> which will provide a link to a
            remote object whose reference locally is
            <var>anObject</var>.
          
    </div>
    <hr width="25%" align="left" />
</div>
<div class="method">
    <h3><a name="method$NSDistantObject-connectionForProxy">connectionForProxy&nbsp;</a></h3>
    - (<a rel="gsdoc" href="NSConnection.html#class$NSConnection">NSConnection</a>*) <b>connectionForProxy</b>;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            Returns the
            <a rel="gsdoc" href="NSConnection.html#class$NSConnection">NSConnection</a>

              instance with which the receiver is associated.
          
    </div>
    <hr width="25%" align="left" />
</div>
<div class="method">
    <h3><a name="method$NSDistantObject-initWithLocal$connection$">initWithLocal:&nbsp;connection:&nbsp;</a></h3>
    - (id) <b>initWithLocal:</b> (id)anObject<b> connection:</b> (<a rel="gsdoc" href="NSConnection.html#class$NSConnection">NSConnection</a>*)aConnection;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            Initialises and returns a proxy associated with
            <var>aConnection</var> which will hold a reference to
            the local object <var>anObject</var>.
          
    </div>
    <hr width="25%" align="left" />
</div>
<div class="method">
    <h3><a name="method$NSDistantObject-initWithTarget$connection$">initWithTarget:&nbsp;connection:&nbsp;</a></h3>
    - (id) <b>initWithTarget:</b> (unsigned)target<b> connection:</b> (<a rel="gsdoc" href="NSConnection.html#class$NSConnection">NSConnection</a>*)aConnection;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            Initialises and returns a proxy associated with
            <var>aConnection</var> which will provide a link to a
            remote object whose reference locally is
            <var>target</var>.
          
    </div>
    <hr width="25%" align="left" />
</div>
<div class="method">
    <h3><a name="method$NSDistantObject-methodSignatureForSelector$">methodSignatureForSelector:&nbsp;</a></h3>
    - (<a rel="gsdoc" href="NSMethodSignature.html#class$NSMethodSignature">NSMethodSignature</a>*) <b>methodSignatureForSelector:</b> (SEL)aSelector;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            
    </p>
    <p>

              Returns the method signature describing the
              arguments and return types of the method in the
              object referred to by the receiver which
              implements the <var>aSelector</var> message.
                </p>
    <p>
      
            
    </p>
    <p>

              This method may need to refer to another process
              (causing relatively slow network communication)
              and approximately <strong>double</strong> the time
              taken for sending a distributed objects message, so
              you are advised to use the
              <a rel="gsdoc" href="#method$NSDistantObject-setProtocolForProxy$">
                -setProtocolForProxy:
              </a>

              method to avoid this occurring.
                </p>
    <p>
      
          
    </div>
    <hr width="25%" align="left" />
</div>
<div class="method">
    <h3><a name="method$NSDistantObject-setProtocolForProxy$">setProtocolForProxy:&nbsp;</a></h3>
    - (void) <b>setProtocolForProxy:</b> (Protocol*)aProtocol;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            
    </p>
    <p>

              A key method for Distributed Objects performance. This
              sets the a protocol that the distant object referred
              to by the proxy should conform to. When messages in
              that protocol are sent to the proxy, the proxy knows
              that it does not need to ask the remote object for
              the method signature in order to send the message to
              it, but can send the message straight away based on
              the local method signature information obtained from
              the protocol.
                </p>
    <p>
      

<pre>
   if ([anObj isProxy] == YES)
     {
       [anObj setProtocolForProxy: @protocol(MyProtocol)];
     }
 </pre>
      
            
    </p>
    <p>

              It is <em>highly recommended</em> that you make use of
              this facility, but you must beware that versions of
              the compiler prior to 3.3 suffer a serious bug with
              respect to the @protocol directive. If the
              protocol referred to is not declared and
              implemented in the file where @protocol is
              used to refer to the protocol by name, a runtime
              error will occur when you try to use it.
                </p>
    <p>
      
            
    </p>
    <p>

              Beware, if you don&apos;t use this method to set the
              protocol, the system might well ask the remote
              process for method signature information, and the
              remote process might get it <em>wrong</em>. This
              is because the class of the remote object needs to
              have been declared to conform to the protocol in
              order for it to know about any protocol qualifiers
              (the keywords
              <code>bycopy, byref, in, out, inout,</code> and
              <code>oneway</code>). If the author of the server
              process forgot to do this, the type information
              returned from that process may not be what you
              are expecting.
                </p>
    <p>
      
            The class of the server object should be declared like
            this...

<pre>
 @interface MyServerClass : NSObject &lt;MyProtocol&gt;
 ...
 @end
 </pre>
      
          
    </div>
    <hr width="25%" align="left" />
</div>
<a name="_NSDistantObject_ivars"/>    <br/><hr width="50%" align="left" />
    <h2>Instance Variables for NSDistantObject Class</h2>
    <h3><a name="ivariable$NSDistantObject*_connection">_connection</a></h3>
    @public NSConnection* <b>_connection</b>;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          
    </div>
    <hr width="25%" align="left" />
    <h3><a name="ivariable$NSDistantObject*_counter">_counter</a></h3>
    @public unsigned int <b>_counter</b>;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          
    </div>
    <hr width="25%" align="left" />
    <h3><a name="ivariable$NSDistantObject*_handle">_handle</a></h3>
    @public unsigned int <b>_handle</b>;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          
    </div>
    <hr width="25%" align="left" />
    <h3><a name="ivariable$NSDistantObject*_object">_object</a></h3>
    @public id <b>_object</b>;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          
    </div>
    <hr width="25%" align="left" />
    <h3><a name="ivariable$NSDistantObject*_protocol">_protocol</a></h3>
    @public Protocol* <b>_protocol</b>;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          
    </div>
    <hr width="25%" align="left" />
    <h3><a name="ivariable$NSDistantObject*_sigs">_sigs</a></h3>
    @public void* <b>_sigs</b>;<br />
    <div class="availability">
<b>Availability:</b> OpenStep</div>
<br />
    <div class="desc">
      
            <em>Warning</em> the underscore at the start of the
            name of this instance variable indicates that, even
            though it is not technically <em>private</em>, it is
            intended for internal use within the package, and
            you should not use the variable in other code.
          
    </div>
    <hr width="25%" align="left" />
    <br/><hr width="50%" align="left" /><br/>
    <br />
    <a href="Base.html">Up</a>
    </font>
</body>
</html>