VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /usr/share/doc/gnustep-base-doc/Base/Reference/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/doc/gnustep-base-doc/Base/Reference/NSDistantObject.html
<!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>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>

VaKeR 2022