ftp.nice.ch/pub/next/developer/languages/c/egcs.1.1.1.1beta.I.b.tar.gz#/lib/gcc-lib/i386-next-nextstep3/egcs-2.91.60/include/remote/NXConnection.h

This is NXConnection.h in view mode; [Download] [Up]

/*  NXConnection.h
    Copyright 1992, NeXT, Inc.
*/

#import <stdlib.h>
#import <stdarg.h>
#import <objc/hashtable.h>
#import <objc/Protocol.h>
#import <objc/List.h>
#import <machkit/NXLock.h>
#import <remote/transport.h>
#import <machkit/NXInvalidationNotifier.h>

@class NXProxy;
@class NXPort;

/*****************  NXConnection    **************************/

/* A connection object is a bookkeeper for objects vended or received over a particular portal (channel) resource.  It may be shared by multiple threads. */

@interface NXConnection: NXInvalidationNotifier <NXSenderIsInvalid> {
    id  delegate;
@private
    id  inPortal;   /* portal that we decode from*/
    void *inMachPort;
    id  outPortal;  /* portal that we encode to*/
    void *outMachPort;
    id                  rootObject; /* the "default" object for this connection*/
    unsigned            msgcount;   /* how many objc messages sent*/
    void                *localProxies;
    void                *remoteProxies;
    int                 inTimeout;
    int                 outTimeout;
    NXZone              *zone;
    id                  bufferClass;
}

+ (NXProxy *) connectToName:(const char *)n;
+ (NXProxy *) connectToName:(const char *)n onHost:(const char *)h;
+ (NXProxy *) connectToPort:(NXPort *)p;    /* allocate a inPort (reply port)*/
+ (NXProxy *) connectToPort:(NXPort *)aPort withInPort:(NXPort *)inPort;

+ (NXProxy *) connectToName:(const char *)n fromZone:(NXZone *) z;
+ (NXProxy *) connectToName:(const char *)n onHost:(const char *)h fromZone:(NXZone *) z;
+ (NXProxy *) connectToPort:(NXPort *)p fromZone:(NXZone *) z;
+ (NXProxy *) connectToPort:(NXPort *)aPort withInPort:(NXPort *)inPort fromZone:(NXZone *) z;

+ registerRoot:anObject;    /* returns an NXConnection*/
+ registerRoot:anObject withName:(const char *)n;   /* returns an NXConnection*/

+ registerRoot:anObject fromZone:(NXZone *) z;
+ registerRoot:anObject withName:(const char *)n fromZone:(NXZone *) z;

+ removeObject:anObject;
+ unregisterForInvalidationNotification:anObject;

+ (int)messagesReceived;

+ connections:(List *) l;   /* append existing connections to list*/

+ setDefaultTimeout:(int) t;
+ (int) defaultTimeout;

+ setDefaultZone: (NXZone *) zone;
+ (NXZone *) defaultZone;

/* a delegate, if present, will be asked:*/
/*  - connection: (NXConnection *)oldConn didConnect:(NXConnection *)newConn;*/
- setDelegate:anObject;
- delegate;

- setRoot:anObject;	/* useful for connections without roots*/

- setInTimeout:(int) t;
- setOutTimeout:(int) t;
- (int) inTimeout;
- (int) outTimeout;

- (NXPort *) inPort;
- (NXPort *) outPort;

- rootObject;

- newRemote:(unsigned)name withProtocol:(Protocol *)p;

- (List *)remoteObjects;    /* the remote objects imported*/
- (List *)localObjects;     /* the local objects exported*/

- getLocal:anId;        /* return the Proxy for a local id*/

- run;                  /* blocks*/
- runWithTimeout:(int) t;
- runInNewThread;       /* spawns thread, thread will "run"; nonblocking*/

- free;
@end
 

/* By special request, a convenient interface for AppKit programmers*/
@interface NXConnection (NXAppKitServer) 
- runFromAppKit;    /* nonblocking*/
@end

/* definitions*/

/* timeout is specified in milliseconds*/
#define NX_CONNECTION_DEFAULT_TIMEOUT   15000

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