home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2 / Openstep-4.2-Intel-Developer.iso / NextLibrary / Frameworks / Foundation.framework / Versions / B / Headers / NSArchiver.h < prev    next >
Encoding:
Text File  |  1996-10-25  |  2.5 KB  |  104 lines

  1. /*      NSArchiver.h
  2.     Serializing objects
  3.     Copyright 1994-1996, NeXT Software, Inc.  All rights reserved.
  4. */
  5.  
  6. #import <Foundation/NSCoder.h>
  7. #import <Foundation/NSHashTable.h>
  8. #import <Foundation/NSMapTable.h>
  9.  
  10. @class NSString, NSData, NSMutableData, NSMutableDictionary, NSMutableArray;
  11.  
  12. /************        Archiving: Writing    ****************/
  13.  
  14. @interface NSArchiver : NSCoder {
  15. @private
  16.     NSMutableData    *mdata;
  17.     NSMapTable        *pointerTable;
  18.     void        *stringTable;
  19.     NSHashTable        *ids;
  20.     NSMutableDictionary    *map;
  21.     NSMapTable        *replacementTable;
  22.     void        *reserved;
  23. }
  24.  
  25. - (id)initForWritingWithMutableData:(NSMutableData *)mdata;
  26.     
  27. - (NSMutableData *)archiverData;
  28.  
  29. - (void)encodeRootObject:(id)rootObject;
  30. - (void)encodeConditionalObject:(id)object;
  31.  
  32. + (NSData *)archivedDataWithRootObject:(id)rootObject;
  33.  
  34. + (BOOL)archiveRootObject:(id)rootObject toFile:(NSString *)path;
  35.  
  36. - (void)encodeClassName:(NSString *)trueName intoClassName:(NSString *)inArchiveName;
  37. - (NSString *)classNameEncodedForTrueClassName:(NSString *)trueName;
  38.  
  39. #if !defined(STRICT_OPENSTEP)
  40.  
  41. - (void)replaceObject:(id)object withObject:(id)newObject;
  42.  
  43. #endif /* !STRICT_OPENSTEP */
  44.  
  45. @end
  46.  
  47. /************        Archiving: Reading        ****************/
  48.  
  49. @interface NSUnarchiver : NSCoder {
  50. @private
  51.     id            data;
  52.     unsigned        cursor;
  53.     NSZone        *objectZone;
  54.     unsigned        systemVersion;
  55.     signed char        streamerVersion;
  56.     NSMapTable        *pointerTable;
  57.     NSMapTable        *stringTable;
  58.     NSMapTable        *classVersions;
  59.     int            lastLabel;
  60.     NSMutableDictionary    *map;
  61.     void        *allUnarchivedObjects;
  62.     void        *reserved;
  63. }
  64.  
  65. - (id)initForReadingWithData:(NSData *)data;
  66.  
  67. - (void)setObjectZone:(NSZone *)zone;
  68. - (NSZone *)objectZone;
  69.  
  70. - (BOOL)isAtEnd;
  71.  
  72. - (unsigned)systemVersion;
  73.  
  74. + (id)unarchiveObjectWithData:(NSData *)data;
  75. + (id)unarchiveObjectWithFile:(NSString *)path;
  76.  
  77. + (void)decodeClassName:(NSString *)inArchiveName asClassName:(NSString *)trueName;
  78.  
  79. - (void)decodeClassName:(NSString *)inArchiveName asClassName:(NSString *)trueName;
  80.  
  81. + (NSString *)classNameDecodedForArchiveClassName:(NSString *)inArchiveName;
  82. - (NSString *)classNameDecodedForArchiveClassName:(NSString *)inArchiveName;
  83.  
  84. #if !defined(STRICT_OPENSTEP)
  85.  
  86. - (void)replaceObject:(id)object withObject:(id)newObject;
  87.  
  88. #endif /* !STRICT_OPENSTEP */
  89.  
  90. @end
  91.  
  92. /************        Exceptions        ****************/
  93.  
  94. FOUNDATION_EXPORT NSString *NSInconsistentArchiveException;
  95.  
  96. /************        Object call back        ****************/
  97.  
  98. @interface NSObject (NSArchiverCallback)
  99.  
  100. - (Class)classForArchiver;
  101. - (id)replacementObjectForArchiver:(NSArchiver *)archiver;
  102.  
  103. @end
  104.