home *** CD-ROM | disk | FTP | other *** search
/ OpenStep (Enterprise) / OpenStepENTCD.toast / OEDEV / DEV.Z / NSCompatibility.h < prev    next >
Text File  |  1996-09-11  |  3KB  |  102 lines

  1. /*    NSCompatibility.h
  2.     Copyright 1994-1996, NeXT Software, Inc.  All rights reserved.
  3. */
  4.  
  5. #if !defined(STRICT_OPENSTEP)
  6.  
  7. /***************        Compatibility with NEXTSTEP 3.0         ***********/
  8.  
  9. #import <objc/Object.h>
  10. #import <Foundation/NSCoder.h>
  11. #import <Foundation/NSData.h>
  12. #import <remote/NXConnection.h>
  13.  
  14. @interface Object (NSCompatibility)
  15.  
  16. - (BOOL)respondsToSelector:(SEL)sel;
  17. - (BOOL)conformsToProtocol:(Protocol *)protocol;
  18. - (BOOL)isKindOfClass:(Class)cls;
  19. - (BOOL)isMemberOfClass:(Class)cls;
  20. - (id)performSelector:(SEL)sel withObject:(id)object;
  21. - (id)performSelector:(SEL)sel withObject:(id)object1 withObject:(id)object2;
  22. - (NSString *)description;
  23. - (id)retain;
  24. - (unsigned)retainCount;
  25. - (void)release;
  26. - (id)autorelease;
  27. + (id)allocWithZone:(NSZone *)zone;
  28. - (id)copyWithZone:(NSZone *)zone;
  29. - (void)dealloc;
  30. + (void)poseAsClass:(Class)cls;
  31. + (BOOL)instancesRespondToSelector:(SEL)sel;
  32. - (IMP)methodForSelector:(SEL)sel;
  33. + (IMP)instanceMethodForSelector:(SEL)sel;
  34. - (void)doesNotRecognizeSelector:(SEL)sel;
  35. - (id)initWithCoder:(NSCoder *)coder;
  36. - (void)encodeWithCoder:(NSCoder *)coder;
  37. - (id)awakeAfterUsingCoder:(NSCoder *)coder;
  38.  
  39. @end
  40.  
  41. /********    Compatibility with NEXTSTEP 3.0 archiving    **********/
  42.  
  43. FOUNDATION_EXPORT void NXWriteNSObject(NXTypedStream *typedStream, NSObject *object);
  44.     /* Writes object onto the typedStream; no sharing is possible across separate NXWriteNSObject */
  45.     
  46. FOUNDATION_EXPORT NSObject *NXReadNSObject(NXTypedStream *typedStream);
  47.     /* Reads an object written with NXWriteNSObject; returned object is autoreleased */
  48.  
  49. FOUNDATION_EXPORT NSObject *NXReadNSObjectFromCoder(NSCoder *decoder);
  50.     /* Reads an object written with NXWriteNSObject given an NSCoder; returned object is autoreleased */
  51.  
  52. @interface NSCoder (NSTypedstreamCompatibility)
  53.  
  54. - (void)encodeNXObject:(Object *)object;
  55.     /* Writes old-style object onto the coder; no shraing is possible across separate -encodeNXObject */
  56.     
  57. - (Object *)decodeNXObject;
  58.     /* recovers object written with -encodeNXObject */
  59.     
  60. @end
  61.  
  62. /********    Compatibility with NEXTSTEP 3.0 streams    **********/
  63.  
  64. @interface NSData (NSDataCreationFromNXStream)
  65.  
  66. + (id)dataWithStream:(NXStream *)stream;
  67.     /* Reads bytes from stream till the end */
  68.  
  69. - (id)initWithStream:(NXStream *)stream;
  70.  
  71. @end
  72.  
  73. /******************* 3.0 DO compatibility **********************/
  74. /*
  75.  * allows usage such as:
  76.  
  77.    int main(int argc, char *argv[])
  78.    {
  79.        id aServer;
  80.        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  81.  
  82.        aServer = [[DOServer alloc] init];
  83.        connection = [NXConnection registerRoot: aServer withName:"AUTORELEASED_DO"];
  84.        [connection runFromRunLoop];
  85.        [[NSRunLoop currentRunLoop] run];
  86.        [aServer free];
  87.        [pool release];
  88.        exit(0);
  89.    }
  90. */
  91.  
  92. @interface NXAutoreleaseConnection : NXConnection
  93. @end
  94.  
  95. // Run old DO via the RunLoop - moral equivalent to runFromAppKit
  96.  
  97. @interface NXConnection (NSRunFromRunLoop)
  98. - (void)runFromRunLoop;
  99. @end
  100.  
  101. #endif /* !STRICT_OPENSTEP */
  102.