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>
|
||||
|
||||
* 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
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -311,3 +543,4 @@ GS_EXPORT NSString *NSConnectionDidInitializeNotification; /* OPENSTEP */
|
|||
#define ConnectionWasCreatedNotification NSConnectionDidInitializeNotification
|
||||
|
||||
#endif /* __NSConnection_h_GNUSTEP_BASE_INCLUDE */
|
||||
#endif
|
||||
|
|
|
@ -95,6 +95,9 @@
|
|||
Class isa;
|
||||
}
|
||||
|
||||
#if GS_WITH_GC
|
||||
+ (BOOL) requiresTypedMemory;
|
||||
#endif
|
||||
+ (void) initialize;
|
||||
+ (id) allocWithZone: (NSZone*)z;
|
||||
+ (id) alloc;
|
||||
|
@ -132,7 +135,7 @@
|
|||
- (id) replacementObjectForPortCoder: (NSPortCoder*)anEncoder;
|
||||
|
||||
|
||||
+ setVersion: (int)aVersion;
|
||||
+ (id) setVersion: (int)aVersion;
|
||||
+ (int) version;
|
||||
|
||||
@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
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
|
||||
|
@ -43,3 +149,4 @@
|
|||
|
||||
|
||||
#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_CPPFLAGS = $(DEFS) -Wall
|
||||
ADDITIONAL_CPPFLAGS = $(DEFS) -Wall -DGS_NEW_DO=0
|
||||
|
||||
# Additional flags to pass to the Objective-C compiler
|
||||
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
|
||||
launchCmd = [NSString stringWithCString:
|
||||
make_gdomap_cmd(GNUSTEP_INSTALL_PREFIX)];
|
||||
#if GS_NEW_DO
|
||||
portClass = [GSTcpPort class];
|
||||
#else
|
||||
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);
|
||||
#endif
|
||||
RELEASE(_date);
|
||||
_date = [[NSDate allocWithZone: [self zone]]
|
||||
_date = [[NSDate_class allocWithZone: [self zone]]
|
||||
initWithTimeIntervalSinceReferenceDate: nxt];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue