comparison orange/serialization/archives/Archive.d @ 34:068e853b9c07 experimental

Cleaned up. Updated to latest D2 compiler.
author Jacob Carlborg <doob@me.com>
date Mon, 01 Aug 2011 20:34:54 +0200
parents 4fea56a5849f
children 511d1ef4e299
comparison
equal deleted inserted replaced
33:4fea56a5849f 34:068e853b9c07
10 import tango.util.Convert; 10 import tango.util.Convert;
11 11
12 else 12 else
13 { 13 {
14 import std.conv; 14 import std.conv;
15 alias ConvError ConversionException; 15 alias ConvException ConversionException;
16 } 16 }
17 17
18 import orange.serialization.archives.ArchiveException; 18 import orange.serialization.archives.ArchiveException;
19 import orange.serialization.Serializer;
20 import orange.core.string; 19 import orange.core.string;
21
22 version (Tango) alias void[] UntypedData;
23 else mixin ("alias immutable(void)[] UntypedData;");
24 20
25 private enum ArchiveMode 21 private enum ArchiveMode
26 { 22 {
27 archiving, 23 archiving,
28 unarchiving 24 unarchiving
29 } 25 }
30 26
31 struct Array 27 struct Array
32 { 28 {
33 void* ptr; 29 version (Tango) void* ptr;
30 else mixin("immutable(void)* ptr;");
31
34 size_t length; 32 size_t length;
35 size_t elementSize; 33 size_t elementSize;
36 34
37 bool isSliceOf (Array b) 35 bool isSliceOf (Array b)
38 { 36 {
47 size_t id = size_t.max; 45 size_t id = size_t.max;
48 } 46 }
49 47
50 interface Archive 48 interface Archive
51 { 49 {
52 alias Serializer.Id Id; 50 alias size_t Id;
51
52 version (Tango) alias void[] UntypedData;
53 else mixin ("alias immutable(void)[] UntypedData;");
53 54
54 void beginArchiving (); 55 void beginArchiving ();
55 void beginUnarchiving (UntypedData data); 56 void beginUnarchiving (UntypedData data);
56 57
57 UntypedData untypedData (); 58 UntypedData untypedData ();
158 double unarchiveDouble (string key); 159 double unarchiveDouble (string key);
159 float unarchiveFloat (string key); 160 float unarchiveFloat (string key);
160 //idouble unarchiveIdouble (string key); // currently not supported by to!() 161 //idouble unarchiveIdouble (string key); // currently not supported by to!()
161 //ifloat unarchiveIfloat (string key); // currently not supported by to!()*/ 162 //ifloat unarchiveIfloat (string key); // currently not supported by to!()*/
162 int unarchiveInt (string key); 163 int unarchiveInt (string key);
163 int unarchiveInt (Id id); 164 //int unarchiveInt (Id id);
164 //ireal unarchiveIreal (string key); // currently not supported by to!() 165 //ireal unarchiveIreal (string key); // currently not supported by to!()
165 long unarchiveLong (string key); 166 long unarchiveLong (string key);
166 real unarchiveReal (string key); 167 real unarchiveReal (string key);
167 short unarchiveShort (string key); 168 short unarchiveShort (string key);
168 ubyte unarchiveUbyte (string key); 169 ubyte unarchiveUbyte (string key);