Mercurial > projects > orange
comparison orange/serialization/archives/Archive.d @ 28:bffcbc8c392b experimental
Associative arrays are now treated as references.
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Fri, 19 Nov 2010 11:55:04 +0100 |
parents | 78e5fef4bbf2 |
children | c422ff6477dd |
comparison
equal
deleted
inserted
replaced
27:fc315d786f24 | 28:bffcbc8c392b |
---|---|
45 size_t length; | 45 size_t length; |
46 size_t offset; | 46 size_t offset; |
47 size_t id = size_t.max; | 47 size_t id = size_t.max; |
48 } | 48 } |
49 | 49 |
50 interface IArchive | 50 interface Archive |
51 { | 51 { |
52 alias Serializer.Id Id; | 52 alias Serializer.Id Id; |
53 | 53 |
54 void beginArchiving (); | 54 void beginArchiving (); |
55 void beginUnarchiving (UntypedData data); | 55 void beginUnarchiving (UntypedData data); |
111 void archive (ushort value, string key, Id id); | 111 void archive (ushort value, string key, Id id); |
112 void archive (wchar value, string key, Id id); | 112 void archive (wchar value, string key, Id id); |
113 | 113 |
114 Id unarchiveArray (string key, void delegate (size_t length) dg); | 114 Id unarchiveArray (string key, void delegate (size_t length) dg); |
115 void unarchiveArray (Id id, void delegate (size_t length) dg); | 115 void unarchiveArray (Id id, void delegate (size_t length) dg); |
116 void unarchiveAssociativeArray (string type, void delegate (size_t length) dg); | 116 Id unarchiveAssociativeArray (string type, void delegate (size_t length) dg); |
117 void unarchiveAssociativeArrayKey (string key, void delegate () dg); | 117 void unarchiveAssociativeArrayKey (string key, void delegate () dg); |
118 void unarchiveAssociativeArrayValue (string key, void delegate () dg); | 118 void unarchiveAssociativeArrayValue (string key, void delegate () dg); |
119 | 119 |
120 bool unarchiveEnumBool (string key); | 120 bool unarchiveEnumBool (string key); |
121 byte unarchiveEnumByte (string key); | 121 byte unarchiveEnumByte (string key); |
171 wchar unarchiveWchar (string key); | 171 wchar unarchiveWchar (string key); |
172 | 172 |
173 void postProcessArray (Id id); | 173 void postProcessArray (Id id); |
174 } | 174 } |
175 | 175 |
176 abstract class Archive (U) : IArchive | 176 abstract class Base (U) : Archive |
177 { | 177 { |
178 version (Tango) alias U[] Data; | 178 version (Tango) alias U[] Data; |
179 else mixin ("alias immutable(U)[] Data;"); | 179 else mixin ("alias immutable(U)[] Data;"); |
180 | 180 |
181 alias void delegate (ArchiveException exception, string[] data) ErrorCallback; | 181 alias void delegate (ArchiveException exception, string[] data) ErrorCallback; |