comparison dstep/foundation/NSKeyedArchiver.d @ 14:89f3c3ef1fd2

Added the Foundation framework
author Jacob Carlborg <doob@me.com>
date Mon, 03 Aug 2009 15:23:15 +0200
parents
children 19885b43130e
comparison
equal deleted inserted replaced
13:4f583f7e242e 14:89f3c3ef1fd2
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Aug 3, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.foundation.NSKeyedArchiver;
8
9 import dstep.foundation.NSArray;
10 import dstep.foundation.NSCoder;
11 import dstep.foundation.NSData;
12 import dstep.foundation.NSGeometry;
13 import dstep.foundation.NSMutableData;
14 import dstep.foundation.NSPropertyList;
15 import dstep.objc.bridge.Bridge;
16 import dstep.objc.objc : id;
17
18 import bindings = dstep.foundation.NSKeyedArchiver_bindings;
19
20 const NSString NSInvalidArchiveOperationException;
21 const NSString NSInvalidUnarchiveOperationException;
22
23 static this ()
24 {
25 NSInvalidArchiveOperationException = new NSString(bindings.NSInvalidArchiveOperationException);
26 NSInvalidUnarchiveOperationException = new NSString(bindings.NSInvalidUnarchiveOperationException);
27 }
28
29 class NSKeyedArchiver : NSCoder
30 {
31 mixin ObjcWrap;
32
33 static NSData archivedDataWithRootObject (Object rootObject)
34 {
35 return invokeObjcSelfClass!(NSData, "archivedDataWithRootObject:", Object)(rootObject);
36 }
37
38 static bool archiveRootObject (Object rootObject, NSString path)
39 {
40 return invokeObjcSelfClass!(bool, "archiveRootObject:toFile:", Object, NSString)(rootObject, path);
41 }
42
43 Object initForWritingWithMutableData (NSMutableData data)
44 {
45 return invokeObjcSelf!(Object, "initForWritingWithMutableData:", NSMutableData)(data);
46 }
47
48 this (NSMutableData data)
49 {
50 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
51 id result = Bridge.invokeObjcMethod!(id, "initForWritingWithMutableData:", NSMutableData)(objcObject, data);
52
53 if (result)
54 objcObject = ret;
55
56 dObject = this;
57 }
58
59 void setDelegate (Object delegate_)
60 {
61 return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_);
62 }
63
64 Object delegate_ ()
65 {
66 return invokeObjcSelf!(Object, "delegate");
67 }
68
69 void setOutputFormat (uint format)
70 {
71 return invokeObjcSelf!(void, "setOutputFormat:", uint)(format);
72 }
73
74 uint outputFormat ()
75 {
76 return invokeObjcSelf!(uint, "outputFormat");
77 }
78
79 void finishEncoding ()
80 {
81 return invokeObjcSelf!(void, "finishEncoding");
82 }
83
84 static void setClassName (NSString codedName, Class cls)
85 {
86 return invokeObjcSelfClass!(void, "setClassName:forClass:", NSString, Class)(codedName, cls);
87 }
88
89 void setClassName (NSString codedName, Class cls)
90 {
91 return invokeObjcSelf!(void, "setClassName:forClass:", NSString, Class)(codedName, cls);
92 }
93
94 static NSString classNameForClass (Class cls)
95 {
96 return invokeObjcSelfClass!(NSString, "classNameForClass:", Class)(cls);
97 }
98
99 NSString classNameForClass (Class cls)
100 {
101 return invokeObjcSelf!(NSString, "classNameForClass:", Class)(cls);
102 }
103
104 void encodeObject (Object objv, NSString key)
105 {
106 return invokeObjcSelf!(void, "encodeObject:forKey:", Object, NSString)(objv, key);
107 }
108
109 void encodeConditionalObject (Object objv, NSString key)
110 {
111 return invokeObjcSelf!(void, "encodeConditionalObject:forKey:", Object, NSString)(objv, key);
112 }
113
114 void encodeBool (bool boolv, NSString key)
115 {
116 return invokeObjcSelf!(void, "encodeBool:forKey:", bool, NSString)(boolv, key);
117 }
118
119 void encodeInt (int intv, NSString key)
120 {
121 return invokeObjcSelf!(void, "encodeInt:forKey:", int, NSString)(intv, key);
122 }
123
124 void encodeInt32 (int intv, NSString key)
125 {
126 return invokeObjcSelf!(void, "encodeInt32:forKey:", int, NSString)(intv, key);
127 }
128
129 void encodeInt64 (long intv, NSString key)
130 {
131 return invokeObjcSelf!(void, "encodeInt64:forKey:", long, NSString)(intv, key);
132 }
133
134 void encodeFloat (float realv, NSString key)
135 {
136 return invokeObjcSelf!(void, "encodeFloat:forKey:", float, NSString)(realv, key);
137 }
138
139 void encodeDouble (double realv, NSString key)
140 {
141 return invokeObjcSelf!(void, "encodeDouble:forKey:", double, NSString)(realv, key);
142 }
143
144 void encodeBytes (char* bytesp, NSUInteger lenv, NSString key)
145 {
146 return invokeObjcSelf!(void, "encodeBytes:length:forKey:", char*, NSUInteger, NSString)(bytesp, lenv, key);
147 }
148 }
149
150 class NSKeyedUnarchiver : NSCoder
151 {
152 mixin ObjcWrap;
153
154 static Object unarchiveObjectWithData (NSData data)
155 {
156 return invokeObjcSelfClass!(Object, "unarchiveObjectWithData:", NSData)(data);
157 }
158
159 static Object unarchiveObjectWithFile (NSString path)
160 {
161 return invokeObjcSelfClass!(Object, "unarchiveObjectWithFile:", NSString)(path);
162 }
163
164 Object initForReadingWithData (NSData data)
165 {
166 return invokeObjcSelf!(Object, "initForReadingWithData:", NSData)(data);
167 }
168
169 this (NSData data)
170 {
171 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass);
172 id result = Bridge.invokeObjcMethod!(id, "initForReadingWithData:", NSData)(objcObject, data);
173
174 if (result)
175 objcObject = ret;
176
177 dObject = this;
178 }
179
180 void setDelegate (Object delegate_)
181 {
182 return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_);
183 }
184
185 Object delegate_ ()
186 {
187 return invokeObjcSelf!(Object, "delegate");
188 }
189
190 void finishDecoding ()
191 {
192 return invokeObjcSelf!(void, "finishDecoding");
193 }
194
195 static void setClass (Class cls, NSString codedName)
196 {
197 return invokeObjcSelfClass!(void, "setClass:forClassName:", Class, NSString)(cls, codedName);
198 }
199
200 void setClass (Class cls, NSString codedName)
201 {
202 return invokeObjcSelf!(void, "setClass:forClassName:", Class, NSString)(cls, codedName);
203 }
204
205 static Class classForClassName (NSString codedName)
206 {
207 return invokeObjcSelfClass!(Class, "classForClassName:", NSString)(codedName);
208 }
209
210 Class classForClassName (NSString codedName)
211 {
212 return invokeObjcSelf!(Class, "classForClassName:", NSString)(codedName);
213 }
214
215 bool containsValueForKey (NSString key)
216 {
217 return invokeObjcSelf!(bool, "containsValueForKey:", NSString)(key);
218 }
219
220 Object decodeObjectForKey (NSString key)
221 {
222 return invokeObjcSelf!(Object, "decodeObjectForKey:", NSString)(key);
223 }
224
225 bool decodeBoolForKey (NSString key)
226 {
227 return invokeObjcSelf!(bool, "decodeBoolForKey:", NSString)(key);
228 }
229
230 int decodeIntForKey (NSString key)
231 {
232 return invokeObjcSelf!(int, "decodeIntForKey:", NSString)(key);
233 }
234
235 int decodeInt32ForKey (NSString key)
236 {
237 return invokeObjcSelf!(int, "decodeInt32ForKey:", NSString)(key);
238 }
239
240 long decodeInt64ForKey (NSString key)
241 {
242 return invokeObjcSelf!(long, "decodeInt64ForKey:", NSString)(key);
243 }
244
245 float decodeFloatForKey (NSString key)
246 {
247 return invokeObjcSelf!(float, "decodeFloatForKey:", NSString)(key);
248 }
249
250 double decodeDoubleForKey (NSString key)
251 {
252 return invokeObjcSelf!(double, "decodeDoubleForKey:", NSString)(key);
253 }
254
255 char* decodeBytesForKey (NSString key, NSUInteger* lengthp)
256 {
257 return invokeObjcSelf!(char*, "decodeBytesForKey:returnedLength:", NSString, NSUInteger*)(key, lengthp);
258 }
259 }
260
261 template TNSKeyedArchiverObjectSubstitution ()
262 {
263 Class classForKeyedArchiver ();
264 Object replacementObjectForKeyedArchiver (NSKeyedArchiver archiver);
265 static NSArray classFallbacksForKeyedArchiver ();
266 }
267
268 template TNSKeyedUnarchiverObjectSubstitution ()
269 {
270 static Class classForKeyedUnarchiver ();
271 }
272
273 template TNSKeyedUnarchiverDelegate ()
274 {
275 Class unarchiver (NSKeyedUnarchiver unarchiver, NSString name, NSArray classNames);
276 Object unarchiver (NSKeyedUnarchiver unarchiver, Object object);
277 void unarchiver (NSKeyedUnarchiver unarchiver, Object object, Object newObject);
278 void unarchiverWillFinish (NSKeyedUnarchiver unarchiver);
279 void unarchiverDidFinish (NSKeyedUnarchiver unarchiver);
280 }
281
282 template TNSKeyedArchiverDelegate ()
283 {
284 Object archiver (NSKeyedArchiver archiver, Object object);
285 void archiver (NSKeyedArchiver archiver, Object object);
286 void archiver (NSKeyedArchiver archiver, Object object, Object newObject);
287 void archiverWillFinish (NSKeyedArchiver archiver);
288 void archiverDidFinish (NSKeyedArchiver archiver);
289 }
290
291 template TNSGeometryKeyedCoding ()
292 {
293 void encodePoint (NSPoint point, NSString key)
294 {
295 return invokeObjcSelf!(void, "encodePoint:forKey:", NSPoint, NSString)(point, key);
296 }
297
298 void encodeSize (NSSize size, NSString key)
299 {
300 return invokeObjcSelf!(void, "encodeSize:forKey:", NSSize, NSString)(size, key);
301 }
302
303 void encodeRect (NSRect rect, NSString key)
304 {
305 return invokeObjcSelf!(void, "encodeRect:forKey:", NSRect, NSString)(rect, key);
306 }
307
308 NSPoint decodePointForKey (NSString key)
309 {
310 return invokeObjcSelf!(NSPoint, "decodePointForKey:", NSString)(key);
311 }
312
313 NSSize decodeSizeForKey (NSString key)
314 {
315 return invokeObjcSelf!(NSSize, "decodeSizeForKey:", NSString)(key);
316 }
317
318 NSRect decodeRectForKey (NSString key)
319 {
320 return invokeObjcSelf!(NSRect, "decodeRectForKey:", NSString)(key);
321 }
322 }
323