Mercurial > projects > orange
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); |