This is NSDistantObjectExtras.m in view mode; [Download] [Up]

// NSDistantObjectExtras.m

#import "NSDistantObjectExtras.h"
#import <Foundation/Foundation.h>

@implementation NSDistantObject (Extras)
static NSMutableSet * connectionsCreated = nil;

- (NSDistantObject *) proxyWithProperConnection {
   NSPort * rcvPort = [[NSConnection defaultConnection] receivePort];

   if (rcvPort != [conn receivePort]) {
      NSConnection * priConn = [NSConnection connectionWithReceivePort:rcvPort
                                                              sendPort:[conn sendPort]];
      if (!connectionsCreated)
         connectionsCreated = [NSMutableSet new];
      [connectionsCreated addObject: priConn];
      // use some reasonable default timeouts
      [priConn setRequestTimeout: 45.0];
      [priConn setReplyTimeout: 45.0];
      // it is never clear when it is safe to release these proxies we dole out
      return [[NSDistantObject alloc] initWithTarget:(id)name connection:priConn];
   return self;

- (BOOL) isEqualInSameTask: (NSDistantObject *) other {
   return (name == other->name) ? YES : NO;


These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.