mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-25 01:31:08 +00:00
Removed obsolete working files
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@6870 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
26fb99a659
commit
705958575c
13 changed files with 4768 additions and 4727 deletions
23
ChangeLog
23
ChangeLog
|
@ -1,3 +1,26 @@
|
||||||
|
2000-07-04 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
|
* Makefile.preamble: define GS_NEW_DO to specify whether the
|
||||||
|
new or the old DO code is to be used. Change the define and
|
||||||
|
rebuild the library for the new DO code.
|
||||||
|
Advantages of new code -
|
||||||
|
MacOS-X compatibly
|
||||||
|
Should work between different processor architectures and word sizes
|
||||||
|
Might work for inter-thread communication
|
||||||
|
Approx 25% faster
|
||||||
|
Permit packet authentication/encryption
|
||||||
|
Disadvantages -
|
||||||
|
not well tested - development version
|
||||||
|
removed many old methods.
|
||||||
|
* Headers/gnustep/base/GSConnection.h: removed - merged into
|
||||||
|
NSConnection.h
|
||||||
|
* Headers/gnustep/base/GSPortCoder.h: removed - merged into
|
||||||
|
NSPortCoder.h
|
||||||
|
* Source/GSConnection.m: removed - merged into NSConnection.m
|
||||||
|
* Source/GSPortCoder.m: removed - merged into NSPortCoder.m
|
||||||
|
* Source/NSPortNameServer.m: Use GS_NEW_DO define to determine
|
||||||
|
default port class
|
||||||
|
|
||||||
2000-07-04 Richard Frith-Macdonald <rfm@gnu.org>
|
2000-07-04 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
* Source/GSConnection.m: Improved coder caching and added code for
|
* Source/GSConnection.m: Improved coder caching and added code for
|
||||||
|
|
|
@ -1,230 +0,0 @@
|
||||||
/* Interface for GNU Objective-C version of NSConnection
|
|
||||||
Copyright (C) 1997,2000 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Original by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
|
|
||||||
Version for OPENSTEP by: Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
|
||||||
Created: August 1997, updated June 2000
|
|
||||||
|
|
||||||
This file is part of the GNUstep Base Library.
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Library General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with this library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __NSConnection_h_GNUSTEP_BASE_INCLUDE
|
|
||||||
#define __NSConnection_h_GNUSTEP_BASE_INCLUDE
|
|
||||||
|
|
||||||
#include <Foundation/NSObject.h>
|
|
||||||
#include <Foundation/NSDictionary.h>
|
|
||||||
#include <Foundation/NSString.h>
|
|
||||||
#include <Foundation/NSTimer.h>
|
|
||||||
#include <Foundation/NSRunLoop.h>
|
|
||||||
#include <Foundation/NSMapTable.h>
|
|
||||||
|
|
||||||
@class NSDistantObject;
|
|
||||||
@class NSPort;
|
|
||||||
@class NSPortNameServer;
|
|
||||||
@class NSData;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Keys for the NSDictionary returned by [NSConnection -statistics]
|
|
||||||
*/
|
|
||||||
/* These in OPENSTEP 4.2 */
|
|
||||||
GS_EXPORT NSString *NSConnectionRepliesReceived;
|
|
||||||
GS_EXPORT NSString *NSConnectionRepliesSent;
|
|
||||||
GS_EXPORT NSString *NSConnectionRequestsReceived;
|
|
||||||
GS_EXPORT NSString *NSConnectionRequestsSent;
|
|
||||||
/* These Are GNUstep extras */
|
|
||||||
GS_EXPORT NSString *NSConnectionLocalCount; /* Objects sent out */
|
|
||||||
GS_EXPORT NSString *NSConnectionProxyCount; /* Objects received */
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NSConnection class interface.
|
|
||||||
*
|
|
||||||
* A few methods are in the specification but not yet implemented.
|
|
||||||
*/
|
|
||||||
@interface NSConnection : NSObject
|
|
||||||
{
|
|
||||||
@private
|
|
||||||
BOOL _isValid;
|
|
||||||
BOOL _independentQueueing;
|
|
||||||
BOOL _authenticateIn;
|
|
||||||
BOOL _authenticateOut;
|
|
||||||
BOOL _multipleThreads;
|
|
||||||
NSPort *_receivePort;
|
|
||||||
NSPort *_sendPort;
|
|
||||||
unsigned _requestDepth;
|
|
||||||
unsigned _messageCount;
|
|
||||||
unsigned _reqOutCount;
|
|
||||||
unsigned _reqInCount;
|
|
||||||
unsigned _repOutCount;
|
|
||||||
unsigned _repInCount;
|
|
||||||
NSMapTable *_localObjects;
|
|
||||||
NSMapTable *_localTargets;
|
|
||||||
NSMapTable *_remoteProxies;
|
|
||||||
NSMapTable *_replyMap;
|
|
||||||
NSTimeInterval _replyTimeout;
|
|
||||||
NSTimeInterval _requestTimeout;
|
|
||||||
NSMutableArray *_requestModes;
|
|
||||||
NSMutableArray *_runLoops;
|
|
||||||
NSMutableArray *_requestQueue;
|
|
||||||
id _delegate;
|
|
||||||
NSRecursiveLock *_refGate;
|
|
||||||
NSMutableArray *_cachedDecoders;
|
|
||||||
NSMutableArray *_cachedEncoders;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (NSArray*) allConnections;
|
|
||||||
+ (NSConnection*) connectionWithReceivePort: (NSPort*)r
|
|
||||||
sendPort: (NSPort*)s;
|
|
||||||
+ (NSConnection*) connectionWithRegisteredName: (NSString*)n
|
|
||||||
host: (NSString*)h;
|
|
||||||
+ (NSConnection*) connectionWithRegisteredName: (NSString*)n
|
|
||||||
host: (NSString*)h
|
|
||||||
usingNameServer: (NSPortNameServer*)s;
|
|
||||||
+ (id) currentConversation;
|
|
||||||
+ (NSConnection*) defaultConnection;
|
|
||||||
+ (NSDistantObject*) rootProxyForConnectionWithRegisteredName: (NSString*)name
|
|
||||||
host: (NSString*)host;
|
|
||||||
+ (NSDistantObject*) rootProxyForConnectionWithRegisteredName: (NSString*)name
|
|
||||||
host: (NSString*)host usingNameServer: (NSPortNameServer*)s;
|
|
||||||
|
|
||||||
|
|
||||||
- (void) addRequestMode: (NSString*)mode;
|
|
||||||
- (void) addRunLoop: (NSRunLoop*)runloop;
|
|
||||||
- (id) delegate;
|
|
||||||
- (void) enableMultipleThreads;
|
|
||||||
- (BOOL) independentConversationQueueing;
|
|
||||||
- (id) initWithReceivePort: (NSPort*)r
|
|
||||||
sendPort: (NSPort*)s;
|
|
||||||
- (void) invalidate;
|
|
||||||
- (BOOL) isValid;
|
|
||||||
- (NSArray*)localObjects;
|
|
||||||
- (BOOL) multipleThreadsEnabled;
|
|
||||||
- (NSPort*) receivePort;
|
|
||||||
- (BOOL) registerName: (NSString*)name;
|
|
||||||
- (BOOL) registerName: (NSString*)name withNameServer: (NSPortNameServer*)svr;
|
|
||||||
- (NSArray*) remoteObjects;
|
|
||||||
- (void) removeRequestMode: (NSString*)mode;
|
|
||||||
- (void) removeRunLoop: (NSRunLoop *)runloop;
|
|
||||||
- (NSTimeInterval) replyTimeout;
|
|
||||||
- (NSArray*) requestModes;
|
|
||||||
- (NSTimeInterval) requestTimeout;
|
|
||||||
- (id) rootObject;
|
|
||||||
- (NSDistantObject*) rootProxy;
|
|
||||||
- (void) runInNewThread;
|
|
||||||
- (NSPort*) sendPort;
|
|
||||||
- (void) setDelegate: anObj;
|
|
||||||
- (void) setIndependentConversationQueueing: (BOOL)flag;
|
|
||||||
- (void) setReplyTimeout: (NSTimeInterval)seconds;
|
|
||||||
- (void) setRequestMode: (NSString*)mode;
|
|
||||||
- (void) setRequestTimeout: (NSTimeInterval)seconds;
|
|
||||||
- (void) setRootObject: anObj;
|
|
||||||
- (NSDictionary*) statistics;
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This catagory contains legacy methods from the original GNU 'Connection'
|
|
||||||
* class, and useful extensions to NSConnection.
|
|
||||||
*/
|
|
||||||
@interface NSConnection (GNUstepExtensions) <GCFinalization>
|
|
||||||
|
|
||||||
+ (NSConnection*) newRegisteringAtName: (NSString*)n
|
|
||||||
withRootObject: (id)anObject;
|
|
||||||
|
|
||||||
- (void) gcFinalize;
|
|
||||||
|
|
||||||
- (retval_t) forwardForProxy: (NSDistantObject*)object
|
|
||||||
selector: (SEL)sel
|
|
||||||
argFrame: (arglist_t)frame;
|
|
||||||
- (const char *) typeForSelector: (SEL)sel remoteTarget: (unsigned)target;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
GS_EXPORT NSString *ConnectionBecameInvalidNotification;
|
|
||||||
|
|
||||||
@interface Object (NSConnectionDelegate)
|
|
||||||
/*
|
|
||||||
* This method may be used to ask a delegates permission to create
|
|
||||||
* a new connection from the old one.
|
|
||||||
* This method should be implemented in preference to the
|
|
||||||
* [makeNewConnection:sender:] which is obsolete.
|
|
||||||
*/
|
|
||||||
- (BOOL) connection: (NSConnection*)parent
|
|
||||||
shouldMakeNewConnection: (NSConnection*)newConnection;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is the old way of doing the same thing as
|
|
||||||
* [connection:shouldMakeNewConnection:]
|
|
||||||
* It is obsolete - don't use it.
|
|
||||||
*/
|
|
||||||
- (BOOL) makeNewConnection: (NSConnection*)newConnection
|
|
||||||
sender: (NSConnection*)parent;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If the delegate responds to this method, it will be used to ask the
|
|
||||||
* delegate's permission to establish a new connection from the old one.
|
|
||||||
* Often this is used so that the delegate can register for invalidation
|
|
||||||
* notification on new child connections.
|
|
||||||
* This is a GNUstep extension
|
|
||||||
* Normally return newConn.
|
|
||||||
*/
|
|
||||||
- (NSConnection*) connection: (NSConnection*)ancestorConn
|
|
||||||
didConnect: (NSConnection*)newConn;
|
|
||||||
|
|
||||||
|
|
||||||
- (BOOL) authenticateComponents: (NSArray*)components
|
|
||||||
withData: (NSData*)authenticationData;
|
|
||||||
- (NSData*) authenticationDataForComponents: (NSArray*)components;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface Object (NSPortCoder)
|
|
||||||
- (Class) classForPortCoder;
|
|
||||||
/*
|
|
||||||
* Must return the class that will be created on the remote side
|
|
||||||
* of the connection. If the class to be created is not the same
|
|
||||||
* as that of the object returned by replacementObjectForPortCoder:
|
|
||||||
* then the class must be capable of recognising the object it
|
|
||||||
* actually gets in its initWithCoder: method.
|
|
||||||
* The default operation is to return NSDistantObject unless the
|
|
||||||
* object is being sent bycopy, in which case the objects actual
|
|
||||||
* class is returned. To force bycopy operation the object should
|
|
||||||
* return its own class.
|
|
||||||
*/
|
|
||||||
- (id) replacementObjectForPortCoder: (NSPortCoder*)aCoder;
|
|
||||||
/*
|
|
||||||
* This message is sent to an object about to be encoded for sending
|
|
||||||
* over the wire. The default action is to return an NSDistantObject
|
|
||||||
* which is a local proxy for the object unless the object is being
|
|
||||||
* sent bycopy, in which case the actual object is returned.
|
|
||||||
* To force bycopy, an object should return itsself.
|
|
||||||
*/
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
#define CONNECTION_DEFAULT_TIMEOUT 15.0 /* in seconds */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NSRunLoop mode, NSNotification name and NSException strings.
|
|
||||||
*/
|
|
||||||
GS_EXPORT NSString *NSConnectionReplyMode;
|
|
||||||
GS_EXPORT NSString *NSConnectionDidDieNotification;
|
|
||||||
GS_EXPORT NSString *NSConnectionDidInitializeNotification; /* OPENSTEP */
|
|
||||||
GS_EXPORT NSString *NSFailedAuthenticationException; /* MacOS-X */
|
|
||||||
|
|
||||||
#endif /* __NSConnection_h_GNUSTEP_BASE_INCLUDE */
|
|
|
@ -1,102 +0,0 @@
|
||||||
/* Interface for NSPortCoder object for distributed objects
|
|
||||||
Copyright (C) 2000 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
Written by: Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
|
||||||
Date: June 2000
|
|
||||||
|
|
||||||
This file is part of the GNUstep Base Library.
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Library General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Library General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public
|
|
||||||
License along with this library; if not, write to the Free
|
|
||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __NSPortCoder_h
|
|
||||||
#define __NSPortCoder_h
|
|
||||||
|
|
||||||
#include <Foundation/NSCoder.h>
|
|
||||||
|
|
||||||
@class NSConnection;
|
|
||||||
@class NSPort;
|
|
||||||
|
|
||||||
@interface NSPortCoder : NSCoder
|
|
||||||
{
|
|
||||||
@private
|
|
||||||
NSMutableArray *_comp;
|
|
||||||
NSConnection *_conn;
|
|
||||||
BOOL _is_by_copy;
|
|
||||||
BOOL _is_by_ref;
|
|
||||||
// Encoding
|
|
||||||
BOOL _encodingRoot;
|
|
||||||
BOOL _initialPass;
|
|
||||||
id _dst; /* Serialization destination. */
|
|
||||||
IMP _eSerImp; /* Method to serialize with. */
|
|
||||||
IMP _eTagImp; /* Serialize a type tag. */
|
|
||||||
IMP _xRefImp; /* Serialize a crossref. */
|
|
||||||
IMP _eObjImp; /* Method to encode an id. */
|
|
||||||
IMP _eValImp; /* Method to encode others. */
|
|
||||||
#ifndef _IN_PORT_CODER_M
|
|
||||||
#define GSIMapTable void*
|
|
||||||
#endif
|
|
||||||
GSIMapTable _clsMap; /* Class cross references. */
|
|
||||||
GSIMapTable _cIdMap; /* Conditionally coded. */
|
|
||||||
GSIMapTable _uIdMap; /* Unconditionally coded. */
|
|
||||||
GSIMapTable _ptrMap; /* Constant pointers. */
|
|
||||||
#ifndef _IN_PORT_CODER_M
|
|
||||||
#undef GSIMapTable
|
|
||||||
#endif
|
|
||||||
unsigned _xRefC; /* Counter for cross-reference. */
|
|
||||||
unsigned _xRefO; /* Counter for cross-reference. */
|
|
||||||
unsigned _xRefP; /* Counter for cross-reference. */
|
|
||||||
// Decoding
|
|
||||||
id _src; /* Deserialization source. */
|
|
||||||
IMP _dDesImp; /* Method to deserialize with. */
|
|
||||||
void (*_dTagImp)(id,SEL,unsigned char*,unsigned*,unsigned*);
|
|
||||||
IMP _dValImp; /* Method to decode data with. */
|
|
||||||
#ifndef _IN_PORT_CODER_M
|
|
||||||
#define GSIArray void*
|
|
||||||
#endif
|
|
||||||
GSIArray _clsAry; /* Class crossreference map. */
|
|
||||||
GSIArray _objAry; /* Object crossreference map. */
|
|
||||||
GSIArray _ptrAry; /* Pointer crossreference map. */
|
|
||||||
#ifndef _IN_PORT_CODER_M
|
|
||||||
#undef GSIArray
|
|
||||||
#endif
|
|
||||||
NSMutableDictionary *_cInfo; /* Class version information. */
|
|
||||||
unsigned _cursor; /* Position in data buffer. */
|
|
||||||
unsigned _version; /* Version of archiver used. */
|
|
||||||
NSZone *_zone; /* Zone for allocating objs. */
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (NSPortCoder*) portCoderWithReceivePort: (NSPort*)recv
|
|
||||||
sendPort: (NSPort*)send
|
|
||||||
components: (NSArray*)comp;
|
|
||||||
- (id) initWithReceivePort: (NSPort*)recv
|
|
||||||
sendPort: (NSPort*)send
|
|
||||||
components: (NSArray*)comp;
|
|
||||||
|
|
||||||
- (NSConnection*) connection;
|
|
||||||
- (NSPort*) decodePortObject;
|
|
||||||
- (void) dispatch;
|
|
||||||
- (void) encodePortObject: (NSPort*)aPort;
|
|
||||||
- (BOOL) isBycopy;
|
|
||||||
- (BOOL) isByref;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface NSPortCoder (Private)
|
|
||||||
- (NSMutableArray*) _components;
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* __NSPortCoder_h */
|
|
|
@ -1,3 +1,235 @@
|
||||||
|
#if GS_NEW_DO
|
||||||
|
/* Interface for GNU Objective-C version of NSConnection
|
||||||
|
Copyright (C) 1997,2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
Original by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
|
||||||
|
Version for OPENSTEP by: Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||||
|
Created: August 1997, updated June 2000
|
||||||
|
|
||||||
|
This file is part of the GNUstep Base Library.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with this library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __NSConnection_h_GNUSTEP_BASE_INCLUDE
|
||||||
|
#define __NSConnection_h_GNUSTEP_BASE_INCLUDE
|
||||||
|
|
||||||
|
#include <Foundation/NSObject.h>
|
||||||
|
#include <Foundation/NSDictionary.h>
|
||||||
|
#include <Foundation/NSString.h>
|
||||||
|
#include <Foundation/NSTimer.h>
|
||||||
|
#include <Foundation/NSRunLoop.h>
|
||||||
|
#include <Foundation/NSMapTable.h>
|
||||||
|
|
||||||
|
@class NSDistantObject;
|
||||||
|
@class NSPort;
|
||||||
|
@class NSPortNameServer;
|
||||||
|
@class NSData;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keys for the NSDictionary returned by [NSConnection -statistics]
|
||||||
|
*/
|
||||||
|
/* These in OPENSTEP 4.2 */
|
||||||
|
GS_EXPORT NSString *NSConnectionRepliesReceived;
|
||||||
|
GS_EXPORT NSString *NSConnectionRepliesSent;
|
||||||
|
GS_EXPORT NSString *NSConnectionRequestsReceived;
|
||||||
|
GS_EXPORT NSString *NSConnectionRequestsSent;
|
||||||
|
/* These Are GNUstep extras */
|
||||||
|
GS_EXPORT NSString *NSConnectionLocalCount; /* Objects sent out */
|
||||||
|
GS_EXPORT NSString *NSConnectionProxyCount; /* Objects received */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NSConnection class interface.
|
||||||
|
*
|
||||||
|
* A few methods are in the specification but not yet implemented.
|
||||||
|
*/
|
||||||
|
@interface NSConnection : NSObject
|
||||||
|
{
|
||||||
|
@private
|
||||||
|
BOOL _isValid;
|
||||||
|
BOOL _independentQueueing;
|
||||||
|
BOOL _authenticateIn;
|
||||||
|
BOOL _authenticateOut;
|
||||||
|
BOOL _multipleThreads;
|
||||||
|
NSPort *_receivePort;
|
||||||
|
NSPort *_sendPort;
|
||||||
|
unsigned _requestDepth;
|
||||||
|
unsigned _messageCount;
|
||||||
|
unsigned _reqOutCount;
|
||||||
|
unsigned _reqInCount;
|
||||||
|
unsigned _repOutCount;
|
||||||
|
unsigned _repInCount;
|
||||||
|
NSMapTable *_localObjects;
|
||||||
|
NSMapTable *_localTargets;
|
||||||
|
NSMapTable *_remoteProxies;
|
||||||
|
NSMapTable *_replyMap;
|
||||||
|
NSTimeInterval _replyTimeout;
|
||||||
|
NSTimeInterval _requestTimeout;
|
||||||
|
NSMutableArray *_requestModes;
|
||||||
|
NSMutableArray *_runLoops;
|
||||||
|
NSMutableArray *_requestQueue;
|
||||||
|
id _delegate;
|
||||||
|
NSRecursiveLock *_refGate;
|
||||||
|
NSMutableArray *_cachedDecoders;
|
||||||
|
NSMutableArray *_cachedEncoders;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSArray*) allConnections;
|
||||||
|
+ (NSConnection*) connectionWithReceivePort: (NSPort*)r
|
||||||
|
sendPort: (NSPort*)s;
|
||||||
|
+ (NSConnection*) connectionWithRegisteredName: (NSString*)n
|
||||||
|
host: (NSString*)h;
|
||||||
|
+ (NSConnection*) connectionWithRegisteredName: (NSString*)n
|
||||||
|
host: (NSString*)h
|
||||||
|
usingNameServer: (NSPortNameServer*)s;
|
||||||
|
+ (id) currentConversation;
|
||||||
|
+ (NSConnection*) defaultConnection;
|
||||||
|
+ (NSDistantObject*) rootProxyForConnectionWithRegisteredName: (NSString*)name
|
||||||
|
host: (NSString*)host;
|
||||||
|
+ (NSDistantObject*) rootProxyForConnectionWithRegisteredName: (NSString*)name
|
||||||
|
host: (NSString*)host usingNameServer: (NSPortNameServer*)s;
|
||||||
|
|
||||||
|
|
||||||
|
- (void) addRequestMode: (NSString*)mode;
|
||||||
|
- (void) addRunLoop: (NSRunLoop*)runloop;
|
||||||
|
- (id) delegate;
|
||||||
|
- (void) enableMultipleThreads;
|
||||||
|
- (BOOL) independentConversationQueueing;
|
||||||
|
- (id) initWithReceivePort: (NSPort*)r
|
||||||
|
sendPort: (NSPort*)s;
|
||||||
|
- (void) invalidate;
|
||||||
|
- (BOOL) isValid;
|
||||||
|
- (NSArray*)localObjects;
|
||||||
|
- (BOOL) multipleThreadsEnabled;
|
||||||
|
- (NSPort*) receivePort;
|
||||||
|
- (BOOL) registerName: (NSString*)name;
|
||||||
|
- (BOOL) registerName: (NSString*)name withNameServer: (NSPortNameServer*)svr;
|
||||||
|
- (NSArray*) remoteObjects;
|
||||||
|
- (void) removeRequestMode: (NSString*)mode;
|
||||||
|
- (void) removeRunLoop: (NSRunLoop *)runloop;
|
||||||
|
- (NSTimeInterval) replyTimeout;
|
||||||
|
- (NSArray*) requestModes;
|
||||||
|
- (NSTimeInterval) requestTimeout;
|
||||||
|
- (id) rootObject;
|
||||||
|
- (NSDistantObject*) rootProxy;
|
||||||
|
- (void) runInNewThread;
|
||||||
|
- (NSPort*) sendPort;
|
||||||
|
- (void) setDelegate: anObj;
|
||||||
|
- (void) setIndependentConversationQueueing: (BOOL)flag;
|
||||||
|
- (void) setReplyTimeout: (NSTimeInterval)seconds;
|
||||||
|
- (void) setRequestMode: (NSString*)mode;
|
||||||
|
- (void) setRequestTimeout: (NSTimeInterval)seconds;
|
||||||
|
- (void) setRootObject: anObj;
|
||||||
|
- (NSDictionary*) statistics;
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This catagory contains legacy methods from the original GNU 'Connection'
|
||||||
|
* class, and useful extensions to NSConnection.
|
||||||
|
*/
|
||||||
|
@interface NSConnection (GNUstepExtensions) <GCFinalization>
|
||||||
|
|
||||||
|
+ (NSConnection*) newRegisteringAtName: (NSString*)n
|
||||||
|
withRootObject: (id)anObject;
|
||||||
|
|
||||||
|
- (void) gcFinalize;
|
||||||
|
|
||||||
|
- (retval_t) forwardForProxy: (NSDistantObject*)object
|
||||||
|
selector: (SEL)sel
|
||||||
|
argFrame: (arglist_t)frame;
|
||||||
|
- (const char *) typeForSelector: (SEL)sel remoteTarget: (unsigned)target;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
GS_EXPORT NSString *ConnectionBecameInvalidNotification;
|
||||||
|
|
||||||
|
@interface Object (NSConnectionDelegate)
|
||||||
|
/*
|
||||||
|
* This method may be used to ask a delegates permission to create
|
||||||
|
* a new connection from the old one.
|
||||||
|
* This method should be implemented in preference to the
|
||||||
|
* [makeNewConnection:sender:] which is obsolete.
|
||||||
|
*/
|
||||||
|
- (BOOL) connection: (NSConnection*)parent
|
||||||
|
shouldMakeNewConnection: (NSConnection*)newConnection;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the old way of doing the same thing as
|
||||||
|
* [connection:shouldMakeNewConnection:]
|
||||||
|
* It is obsolete - don't use it.
|
||||||
|
*/
|
||||||
|
- (BOOL) makeNewConnection: (NSConnection*)newConnection
|
||||||
|
sender: (NSConnection*)parent;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the delegate responds to this method, it will be used to ask the
|
||||||
|
* delegate's permission to establish a new connection from the old one.
|
||||||
|
* Often this is used so that the delegate can register for invalidation
|
||||||
|
* notification on new child connections.
|
||||||
|
* This is a GNUstep extension
|
||||||
|
* Normally return newConn.
|
||||||
|
*/
|
||||||
|
- (NSConnection*) connection: (NSConnection*)ancestorConn
|
||||||
|
didConnect: (NSConnection*)newConn;
|
||||||
|
|
||||||
|
|
||||||
|
- (BOOL) authenticateComponents: (NSArray*)components
|
||||||
|
withData: (NSData*)authenticationData;
|
||||||
|
- (NSData*) authenticationDataForComponents: (NSArray*)components;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface Object (NSPortCoder)
|
||||||
|
- (Class) classForPortCoder;
|
||||||
|
/*
|
||||||
|
* Must return the class that will be created on the remote side
|
||||||
|
* of the connection. If the class to be created is not the same
|
||||||
|
* as that of the object returned by replacementObjectForPortCoder:
|
||||||
|
* then the class must be capable of recognising the object it
|
||||||
|
* actually gets in its initWithCoder: method.
|
||||||
|
* The default operation is to return NSDistantObject unless the
|
||||||
|
* object is being sent bycopy, in which case the objects actual
|
||||||
|
* class is returned. To force bycopy operation the object should
|
||||||
|
* return its own class.
|
||||||
|
*/
|
||||||
|
- (id) replacementObjectForPortCoder: (NSPortCoder*)aCoder;
|
||||||
|
/*
|
||||||
|
* This message is sent to an object about to be encoded for sending
|
||||||
|
* over the wire. The default action is to return an NSDistantObject
|
||||||
|
* which is a local proxy for the object unless the object is being
|
||||||
|
* sent bycopy, in which case the actual object is returned.
|
||||||
|
* To force bycopy, an object should return itsself.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#define CONNECTION_DEFAULT_TIMEOUT 15.0 /* in seconds */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NSRunLoop mode, NSNotification name and NSException strings.
|
||||||
|
*/
|
||||||
|
GS_EXPORT NSString *NSConnectionReplyMode;
|
||||||
|
GS_EXPORT NSString *NSConnectionDidDieNotification;
|
||||||
|
GS_EXPORT NSString *NSConnectionDidInitializeNotification; /* OPENSTEP */
|
||||||
|
GS_EXPORT NSString *NSFailedAuthenticationException; /* MacOS-X */
|
||||||
|
|
||||||
|
#endif /* __NSConnection_h_GNUSTEP_BASE_INCLUDE */
|
||||||
|
#else
|
||||||
/* Interface for GNU Objective-C version of NSConnection
|
/* Interface for GNU Objective-C version of NSConnection
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -311,3 +543,4 @@ GS_EXPORT NSString *NSConnectionDidInitializeNotification; /* OPENSTEP */
|
||||||
#define ConnectionWasCreatedNotification NSConnectionDidInitializeNotification
|
#define ConnectionWasCreatedNotification NSConnectionDidInitializeNotification
|
||||||
|
|
||||||
#endif /* __NSConnection_h_GNUSTEP_BASE_INCLUDE */
|
#endif /* __NSConnection_h_GNUSTEP_BASE_INCLUDE */
|
||||||
|
#endif
|
||||||
|
|
|
@ -95,6 +95,9 @@
|
||||||
Class isa;
|
Class isa;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if GS_WITH_GC
|
||||||
|
+ (BOOL) requiresTypedMemory;
|
||||||
|
#endif
|
||||||
+ (void) initialize;
|
+ (void) initialize;
|
||||||
+ (id) allocWithZone: (NSZone*)z;
|
+ (id) allocWithZone: (NSZone*)z;
|
||||||
+ (id) alloc;
|
+ (id) alloc;
|
||||||
|
@ -132,7 +135,7 @@
|
||||||
- (id) replacementObjectForPortCoder: (NSPortCoder*)anEncoder;
|
- (id) replacementObjectForPortCoder: (NSPortCoder*)anEncoder;
|
||||||
|
|
||||||
|
|
||||||
+ setVersion: (int)aVersion;
|
+ (id) setVersion: (int)aVersion;
|
||||||
+ (int) version;
|
+ (int) version;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -1,3 +1,109 @@
|
||||||
|
#if GS_NEW_DO
|
||||||
|
/* Interface for NSPortCoder object for distributed objects
|
||||||
|
Copyright (C) 2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
Written by: Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||||
|
Date: June 2000
|
||||||
|
|
||||||
|
This file is part of the GNUstep Base Library.
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Library General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Library General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Library General Public
|
||||||
|
License along with this library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __NSPortCoder_h
|
||||||
|
#define __NSPortCoder_h
|
||||||
|
|
||||||
|
#include <Foundation/NSCoder.h>
|
||||||
|
|
||||||
|
@class NSMutableArray;
|
||||||
|
@class NSMutableDictionary;
|
||||||
|
@class NSConnection;
|
||||||
|
@class NSPort;
|
||||||
|
|
||||||
|
@interface NSPortCoder : NSCoder
|
||||||
|
{
|
||||||
|
@private
|
||||||
|
NSMutableArray *_comp;
|
||||||
|
NSConnection *_conn;
|
||||||
|
BOOL _is_by_copy;
|
||||||
|
BOOL _is_by_ref;
|
||||||
|
// Encoding
|
||||||
|
BOOL _encodingRoot;
|
||||||
|
BOOL _initialPass;
|
||||||
|
id _dst; /* Serialization destination. */
|
||||||
|
IMP _eSerImp; /* Method to serialize with. */
|
||||||
|
IMP _eTagImp; /* Serialize a type tag. */
|
||||||
|
IMP _xRefImp; /* Serialize a crossref. */
|
||||||
|
IMP _eObjImp; /* Method to encode an id. */
|
||||||
|
IMP _eValImp; /* Method to encode others. */
|
||||||
|
#ifndef _IN_PORT_CODER_M
|
||||||
|
#define GSIMapTable void*
|
||||||
|
#endif
|
||||||
|
GSIMapTable _clsMap; /* Class cross references. */
|
||||||
|
GSIMapTable _cIdMap; /* Conditionally coded. */
|
||||||
|
GSIMapTable _uIdMap; /* Unconditionally coded. */
|
||||||
|
GSIMapTable _ptrMap; /* Constant pointers. */
|
||||||
|
#ifndef _IN_PORT_CODER_M
|
||||||
|
#undef GSIMapTable
|
||||||
|
#endif
|
||||||
|
unsigned _xRefC; /* Counter for cross-reference. */
|
||||||
|
unsigned _xRefO; /* Counter for cross-reference. */
|
||||||
|
unsigned _xRefP; /* Counter for cross-reference. */
|
||||||
|
// Decoding
|
||||||
|
id _src; /* Deserialization source. */
|
||||||
|
IMP _dDesImp; /* Method to deserialize with. */
|
||||||
|
void (*_dTagImp)(id,SEL,unsigned char*,unsigned*,unsigned*);
|
||||||
|
IMP _dValImp; /* Method to decode data with. */
|
||||||
|
#ifndef _IN_PORT_CODER_M
|
||||||
|
#define GSIArray void*
|
||||||
|
#endif
|
||||||
|
GSIArray _clsAry; /* Class crossreference map. */
|
||||||
|
GSIArray _objAry; /* Object crossreference map. */
|
||||||
|
GSIArray _ptrAry; /* Pointer crossreference map. */
|
||||||
|
#ifndef _IN_PORT_CODER_M
|
||||||
|
#undef GSIArray
|
||||||
|
#endif
|
||||||
|
NSMutableDictionary *_cInfo; /* Class version information. */
|
||||||
|
unsigned _cursor; /* Position in data buffer. */
|
||||||
|
unsigned _version; /* Version of archiver used. */
|
||||||
|
NSZone *_zone; /* Zone for allocating objs. */
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (NSPortCoder*) portCoderWithReceivePort: (NSPort*)recv
|
||||||
|
sendPort: (NSPort*)send
|
||||||
|
components: (NSArray*)comp;
|
||||||
|
- (id) initWithReceivePort: (NSPort*)recv
|
||||||
|
sendPort: (NSPort*)send
|
||||||
|
components: (NSArray*)comp;
|
||||||
|
|
||||||
|
- (NSConnection*) connection;
|
||||||
|
- (NSPort*) decodePortObject;
|
||||||
|
- (void) dispatch;
|
||||||
|
- (void) encodePortObject: (NSPort*)aPort;
|
||||||
|
- (BOOL) isBycopy;
|
||||||
|
- (BOOL) isByref;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface NSPortCoder (Private)
|
||||||
|
- (NSMutableArray*) _components;
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* __NSPortCoder_h */
|
||||||
|
#else
|
||||||
/* Interface for NSPortCoder object for distributed objects
|
/* Interface for NSPortCoder object for distributed objects
|
||||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
@ -43,3 +149,4 @@
|
||||||
|
|
||||||
|
|
||||||
#endif /* __NSPortCoder_h */
|
#endif /* __NSPortCoder_h */
|
||||||
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load diff
1946
Source/GSPortCoder.m
1946
Source/GSPortCoder.m
File diff suppressed because it is too large
Load diff
|
@ -39,7 +39,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
# Additional flags to pass to the preprocessor
|
# Additional flags to pass to the preprocessor
|
||||||
ADDITIONAL_CPPFLAGS = $(DEFS) -Wall
|
ADDITIONAL_CPPFLAGS = $(DEFS) -Wall -DGS_NEW_DO=0
|
||||||
|
|
||||||
# Additional flags to pass to the Objective-C compiler
|
# Additional flags to pass to the Objective-C compiler
|
||||||
ADDITIONAL_OBJCFLAGS =
|
ADDITIONAL_OBJCFLAGS =
|
||||||
|
|
File diff suppressed because it is too large
Load diff
1950
Source/NSPortCoder.m
1950
Source/NSPortCoder.m
File diff suppressed because it is too large
Load diff
|
@ -517,8 +517,11 @@ typedef enum {
|
||||||
#endif
|
#endif
|
||||||
launchCmd = [NSString stringWithCString:
|
launchCmd = [NSString stringWithCString:
|
||||||
make_gdomap_cmd(GNUSTEP_INSTALL_PREFIX)];
|
make_gdomap_cmd(GNUSTEP_INSTALL_PREFIX)];
|
||||||
|
#if GS_NEW_DO
|
||||||
|
portClass = [GSTcpPort class];
|
||||||
|
#else
|
||||||
portClass = [TcpOutPort class];
|
portClass = [TcpOutPort class];
|
||||||
// portClass = [GSTcpPort class];
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -141,7 +141,7 @@ static Class NSDate_class;
|
||||||
NSLog(@"Missed %d timeouts at %f second intervals", inc, _interval);
|
NSLog(@"Missed %d timeouts at %f second intervals", inc, _interval);
|
||||||
#endif
|
#endif
|
||||||
RELEASE(_date);
|
RELEASE(_date);
|
||||||
_date = [[NSDate allocWithZone: [self zone]]
|
_date = [[NSDate_class allocWithZone: [self zone]]
|
||||||
initWithTimeIntervalSinceReferenceDate: nxt];
|
initWithTimeIntervalSinceReferenceDate: nxt];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue