This is NXArchiver.m in view mode; [Download] [Up]
/* Implementation of NXArchiver and NXUnarchiver class * * Copyright (C) 1993 The Board of Trustees of * The Leland Stanford Junior University. All Rights Reserved. * * Authors: Paul Kunz * * This file is part of an Objective-C class library * * NXArchiver.m,v 1.3 1995/05/11 17:42:23 mfg Exp */ /* * Based on (Preliminary Documentation) Copyright (c) 1994 by NeXT Computer, * Inc. All Rights Reserved. * * This NXCoder subclass reads and writes NeXTSTEP 3.2 compatible * NXTypedStreams without use of a NSCoder */ #include "NXArchiver.h" #include <appkit/Application.h> #include "NSString.h" @implementation NXArchiver // private methods - (BOOL) _initForWritingRootObject:(id)rootObject toFile:(NSString *)path { const char *filename = [path cString]; stream = NXOpenTypedStreamForFile(filename, NX_WRITEONLY ); if ( stream == NULL ) { return NO; } [super encodeRootObject:rootObject]; NXFlushTypedStream(stream); NXCloseTypedStream(stream); return YES; } // Initializing an NSArchiver // - (id)initForWritingWithMutableData:(NSMutableData *)mdata // Archiving data // + (NSData *)archivedDataWithRootObject:(id)rootObject + (BOOL)archiveRootObject:(id)rootObject toFile:(NSString *)path; { return [[self alloc] _initForWritingRootObject:rootObject toFile:path]; } // intoClassName:(NSString *)inArchiveName; @end @implementation NXUnarchiver - (id) _initForReadingObjectFromFile:(NSString *)path { id object; const char *filename = [path cString]; stream = NXOpenTypedStreamForFile( filename, NX_READONLY ); NXActive_Archiver = self; object = [self decodeObject]; NXActive_Archiver = nil; return object; } - initForReadingWithStream:(NXStream *)untypedstream { stream = NXOpenTypedStream(untypedstream, NX_READONLY); NXActive_Archiver = self; return self; } - initForReadingFromFile:(char *)filename { stream = NXOpenTypedStreamForFile(filename, NX_READONLY); NXActive_Archiver = self; return self; } - free { NXCloseTypedStream(stream); NXActive_Archiver = nil; [super dealloc]; return self; } - (void)setObjectZone:(NXZone *)zone { NXSetTypedStreamZone(stream, zone); return; } + (id)unarchiveObjectWithFile:(NSString *)path; { return [[ self alloc] _initForReadingObjectFromFile:path]; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.