libs-base/Source/Coder.m

313 lines
7.5 KiB
Mathematica
Raw Normal View History

/* Implementation of GNU Objective-C coder object for use serializing
Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
Written by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
Date: July 1994
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., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <config.h>
#include <gnustep/base/preface.h>
#include <gnustep/base/Coder.h>
#include <gnustep/base/CoderPrivate.h>
#include <gnustep/base/MemoryStream.h>
#include <gnustep/base/Coding.h>
#include <gnustep/base/Dictionary.h>
#include <gnustep/base/Stack.h>
#include <gnustep/base/Set.h>
#include <gnustep/base/NSString.h>
#include <gnustep/base/Streaming.h>
#include <gnustep/base/Stream.h>
#include <gnustep/base/CStreaming.h>
#include <gnustep/base/CStream.h>
#include <gnustep/base/TextCStream.h>
#include <gnustep/base/BinaryCStream.h>
#include <gnustep/base/StdioStream.h>
#include <gnustep/base/Archiver.h>
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
#include <Foundation/NSException.h>
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
#include <Foundation/NSGeometry.h>
#include <Foundation/NSData.h>
#include <Foundation/NSArchiver.h>
#include <Foundation/NSMapTable.h>
#include <Foundation/NSHashTable.h>
#include <Foundation/NSCoder.h>
#include <Foundation/NSAutoreleasePool.h>
#include <assert.h>
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
/* Exception strings */
id CoderSignatureMalformedException = @"CoderSignatureMalformedException";
#define DEFAULT_FORMAT_VERSION 0
#define ROUND(V, A) \
({ typeof(V) __v=(V); typeof(A) __a=(A); \
__a*((__v+__a-1)/__a); })
#define DOING_ROOT_OBJECT (interconnect_stack_height != 0)
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
static BOOL debug_coder = NO;
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
@implementation Coder
+ (void) initialize
{
if (self == [Coder class])
behavior_class_add_class (self, [NSCoderNonCore class]);
}
+ setDebugging: (BOOL)f
{
debug_coder = f;
return self;
}
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
/* Initialization. */
/* This is the designated initializer. But, don't call it yourself;
override it and call [super...] in subclasses. */
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
- _initWithCStream: (id <CStreaming>) cs
formatVersion: (int) version
{
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
format_version = version;
cstream = [cs retain];
classname_2_classname = NULL;
interconnect_stack_height = 0;
return self;
}
- init
{
if ([self class] == [Coder class])
{
[self shouldNotImplement:_cmd];
return nil;
}
else
return [super init];
}
/* We must separate the idea of "closing" a coder and "deallocating"
a coder because of delays in deallocation due to -autorelease. */
- (void) close
{
[[cstream stream] close];
}
- (BOOL) isClosed
{
return [[cstream stream] isClosed];
}
- (void) dealloc
{
/* xxx No. [self _finishDecodeRootObject]; */
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
[cstream release];
[super dealloc];
}
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
/* Access to instance variables. */
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
- cStream
{
return cstream;
}
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
- (int) formatVersion
{
return format_version;
}
- (void) resetCoder
{
/* xxx Finish this */
Now uses a CStream instance for low-level encoding of variables of C type. Include many more files. Use new-style method name "..ValueOfObjCType", instead of "..ValueOfType". Use (id <String>) instead of (char *) where appropriate. (DEFAULT_FORMAT_VERSION): Renamed from CODER_FORMAT_VERSION. (default_stream_class): Renamed from defaultStreamClass; (default_cstream_class): New static variable. ([Coder +initialize]): Initialize above two variables. ([Coder +setDefaultCStreamClass:]): New method. ([Coder +defaultCStreamClass]): New method. ([Coder +setDefaultStreamClass:]): New method. ([Coder +defaultStreamClass]): New method. ([Coder +defaultFormatVersion]): New method. ([Coder -writeSignature]): New method, replaces -encodeSignature. ([Coder +readSignatureFromCStream:getClassname:formatVersion:]): New method, replaces decodeSignature. ([Coder -_initWithCStream:formatVersion:isDecoding:f]): New method, replaces _initWithStream:isDecoding. ([Coder +coderReadingFromStream:stream]): New method. ([Coder +coderReadingFromFile:filename]): New method. ([Coder -initForReadingFromStream:formatVersion:]): New method. ([Coder -initForWritingToStream:sformatVersion:version]): New method. ([Coder +decodeObjectFromStream:]): New method. ([Coder +decodeObjectFromFile:filename]): New method. ([Coder -initEncodingOnStream:]): Method removed. ([Coder -initDecodingOnStream:]): Method removed. ([Coder -initEncoding:]): Method removed. ([Coder -initDecoding:]): Method removed. ([Coder -encodeBytes:count:withName:]): Now unimplemented. ([Coder -decodeBytes:count:withName:name]): Likewise. ([Coder -decodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfCType:at:withName:]): New method. ([Coder -encodeValueOfObjCType:at:withName:name]): Now longer handles arrays and structs; those are now handled in a CStream method. ([Coder -decodeValueOfObjCType:at:withName:]): Likewise. ([Coder -encodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -decodeValueOfSimpleType:at:withName:]): Method removed. ([Coder -encodeIndent]): Call cstream to handle this, instead of doing nothing. ([Coder -encodeUnindent]): Likewise. ([Coder -decodeIndent]): Likewise. ([Coder -decodeUnindent]): Likewise. ([Coder -encodeName:]): Likewise. ([Coder -decodeName:]): Likewise. ([Coder -formatVersion]): Method renamed from coderFormatVersion. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@770 72102866-910b-0410-8b05-ffd578937521
1996-01-23 22:51:58 +00:00
[self notImplemented:_cmd];
}
@end
/* To fool ourselves into thinking we can call all these
Encoding and Decoding methods. */
@interface Coder (Coding) <Encoding, Decoding>
@end
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
@implementation Coder (NSCoderCompatibility)
/* The core methods */
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
- (void) encodeValueOfObjCType: (const char*)type
at: (const void*)address;
{
[self encodeValueOfObjCType: type at: address withName: NULL];
}
- (void) decodeValueOfObjCType: (const char*)type
at: (void*)address
{
[self decodeValueOfObjCType: type at: address withName: NULL];
}
- (void) encodeDataObject: (NSData*)data
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
{
[self notImplemented:_cmd];
}
- (NSData*) decodeDataObject
{
[self notImplemented:_cmd];
return nil;
}
- (unsigned int) versionForClassName: (NSString*)className
{
[self notImplemented:_cmd];
return 0;
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
}
/* Override some methods in NSCoderNonCore */
- (void) encodeObject: (id)anObject
{
[self encodeObject: anObject withName: NULL];
}
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
- (void) encodeBycopyObject: (id)anObject
{
[self encodeBycopyObject: anObject withName: NULL];
}
- (void) encodeConditionalObject: (id)anObject
{
/* NeXT's implementation handles *forward* references by running
through the entire encoding process twice! GNU Coding can handle
forward references with only one pass. Therefore, however, GNU
Coding cannot return a *forward* reference from -decodeObject, so
here, assuming this call to -encodeConditionalObject: is mirrored
by a -decodeObject, we don't try to encode *forward*
references.
Note that this means objects that use -encodeConditionalObject:
that are encoded in the GNU style might decode a nil where
NeXT-style encoded would not. I don't see this a huge problem;
at least not as bad as NeXT coding mechanism that actually causes
crashes in situations where GNU's does fine. Still, if we wanted
to fix this, we might be able to build a kludgy fix based on
detecting when this would happen, rewinding the stream to the
"conditional" point, and encoding again. Yuck. */
if ([self _coderReferenceForObject: anObject])
[self encodeObject: anObject];
else
[self encodeObject: nil];
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
}
- (void) encodeRootObject: (id)rootObject
{
[self encodeRootObject: rootObject withName: NULL];
}
- (id) decodeObject
{
/* This won't work for decoding GNU-style forward references because
once the GNU decoder finds the object later in the decoding, it
will back-patch by storing the id in &o... &o will point to some
weird location on the stack! This is why we make the GNU
implementation of -encodeConditionalObject: not encode forward
references. */
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
id o;
[self decodeObjectAt: &o withName: NULL];
return o;
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
}
- (unsigned int) systemVersion
{
return format_version; /* xxx Is this right? */
}
@end /* of (NSCoderCompatibility) */
@implementation Coder (NSArchiverCompatibility)
/* Initializing an archiver */
- (id) initForWritingWithMutableData: (NSMutableData*)mdata
{
[(id)self initForWritingToStream: [MemoryStream streamWithData: mdata]];
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
return self;
}
- (id) initForReadingWithData: (NSData*)data
{
id ret = [[self class] newReadingFromStream:
[MemoryStream streamWithData:data]];
if ([self retainCount]
- [[[self class] autoreleaseClass] autoreleaseCountForObject:self] == 0)
[ret autorelease];
else
[self release];
return ret;
}
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
/* Archiving Data */
+ (NSData*) archivedDataWithRootObject: (id)rootObject
{
id d = [[NSMutableData alloc] init];
id a = [[Archiver alloc] initForWritingWithMutableData:d];
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
[a encodeRootObject:rootObject];
return [d autorelease];
}
+ (BOOL) archiveRootObject: (id)rootObject toFile: (NSString*)path
{
/* xxx fix this return value */
id d = [self archivedDataWithRootObject:rootObject];
[d writeToFile:path atomically:NO];
return YES;
}
/* Getting data from the archiver */
+ unarchiveObjectWithData: (NSData*) data
{
return [self decodeObjectWithName: NULL
fromStream: [MemoryStream streamWithData:data]];
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
}
+ unarchiveObjectWithFile: (NSString*) path
{
return [self decodeObjectWithName: NULL fromFile: path];
}
- (NSMutableData*) archiverData
{
[self notImplemented:_cmd];
return nil;
([Coder -_initWithCStream:formatVersion:isDecoding:]): Initialize new zone ivar. ([Coder -encodeBycopyObject:withName:]): Renamed from -encodeObjectBycopy, to better match NeXT. ([Coder -decodeObjectAt:anObjPtr:name]): Use zone ivar in creating decoded objects. ([Coder -encodeArrayOfObjCType:count:at:withName:]): Renamed from -encodeArrayOfObjCType:at:count:withName:, to better match NeXT. ([Coder -decodeArrayOfObjCType:count:at:withName:]): Likewise. ([Coder +classNameEncodedForTrueClassName:trueName]): New method, for NSCoder compatibility. ([Coder -encodeClassName:trueNameintoClassName:inArchiveName]): Likewise. ([Coder +classNameDecodedForArchiveClassName:inArchiveName]): Likewise. ([Coder +decodeClassName:inArchiveNameasClassName:]): Likewise. ([Coder -objectZone]): Likewise. ([Coder -setObjectZone:]): Likewise. ([Coder -encodeValueOfObjCType:at:]): Likewise. ([Coder -encodeArrayOfObjCType:count:at:]): Likewise. ([Coder -encodeBycopyObject:]): Likewise. ([Coder -encodeConditionalObject:]): Likewise. ([Coder -encodeDataObject:]): Likewise. ([Coder -encodeObject:]): Likewise. ([Coder -encodePoint:]): Likewise. ([Coder -encodeRect:]): Likewise. ([Coder -encodeRootObject:]): Likewise. ([Coder -encodeSize:]): Likewise. ([Coder -encodeValuesOfObjCTypes:...:]): Likewise. ([Coder -decodeValueOfObjCType:at:]): Likewise. ([Coder -decodeArrayOfObjCType:count:at:]): Likewise. ([Coder -decodeDataObject]): Likewise. ([Coder -decodeObject]): Likewise. ([Coder -decodePropertyList]): Likewise. ([Coder -decodePoint]): Likewise. ([Coder -decodeRect]): Likewise. ([Coder -decodeSize]): Likewise. ([Coder -decodeValuesOfObjCTypes:...:]): Likewise. ([Coder -systemVersion]): Likewise. ([Coder -versionForClassName:]): Likewise. ([Coder -initForWritingWithMutableData:]): New method, for NSArchiver compatibility. ([Coder +archivedDataWithRootObject:]): Likewise. ([Coder +archiveRootObject:toFile:]): Likewise. ([Coder +unarchiveObjectWithData:data]): Likewise. ([Coder +unarchiveObjectWithFile:path]): Likewise. ([Coder -archiverData]): Likewise. ([Coder -cStream]): New method. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@825 72102866-910b-0410-8b05-ffd578937521
1996-01-26 03:06:35 +00:00
}
@end