Mercurial > projects > dstep
comparison dstep/foundation/NSError.d @ 16:19885b43130e
Huge update, the bridge actually works now
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sun, 03 Jan 2010 22:06:11 +0100 |
parents | 89f3c3ef1fd2 |
children | b9de51448c6b |
comparison
equal
deleted
inserted
replaced
15:7ff919f595d5 | 16:19885b43130e |
---|---|
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) | 5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) |
6 */ | 6 */ |
7 module dstep.foundation.NSError; | 7 module dstep.foundation.NSError; |
8 | 8 |
9 import dstep.foundation.NSArray; | 9 import dstep.foundation.NSArray; |
10 import dstep.foundation.NSCoder; | |
10 import dstep.foundation.NSDictionary; | 11 import dstep.foundation.NSDictionary; |
12 import dstep.foundation.NSObjCRuntime; | |
11 import dstep.foundation.NSObject; | 13 import dstep.foundation.NSObject; |
14 import dstep.foundation.NSString; | |
15 import dstep.foundation.NSZone; | |
12 import dstep.objc.bridge.Bridge; | 16 import dstep.objc.bridge.Bridge; |
13 import dstep.objc.objc : id; | 17 import dstep.objc.objc; |
18 | |
19 | |
14 | 20 |
15 import bindings = dstep.foundation.NSError_bindings; | 21 import bindings = dstep.foundation.NSError_bindings; |
16 | 22 |
17 const NSString NSCocoaErrorDomain; | 23 private |
18 const NSString NSPOSIXErrorDomain; | 24 { |
19 const NSString NSOSStatusErrorDomain; | 25 NSString NSCocoaErrorDomain_; |
20 const NSString NSMachErrorDomain; | 26 NSString NSPOSIXErrorDomain_; |
21 const NSString NSUnderlyingErrorKey; | 27 NSString NSOSStatusErrorDomain_; |
22 const NSString NSLocalizedDescriptionKey; | 28 NSString NSMachErrorDomain_; |
23 const NSString NSLocalizedFailureReasonErrorKey; | 29 NSString NSUnderlyingErrorKey_; |
24 const NSString NSLocalizedRecoverySuggestionErrorKey; | 30 NSString NSLocalizedDescriptionKey_; |
25 const NSString NSLocalizedRecoveryOptionsErrorKey; | 31 NSString NSLocalizedFailureReasonErrorKey_; |
26 const NSString NSRecoveryAttempterErrorKey; | 32 NSString NSLocalizedRecoverySuggestionErrorKey_; |
27 const NSString NSStringEncodingErrorKey; | 33 NSString NSLocalizedRecoveryOptionsErrorKey_; |
28 const NSString NSURLErrorKey; | 34 NSString NSRecoveryAttempterErrorKey_; |
29 const NSString NSFilePathErrorKey; | 35 NSString NSStringEncodingErrorKey_; |
30 | 36 NSString NSURLErrorKey_; |
31 static this () | 37 NSString NSFilePathErrorKey_; |
32 { | 38 } |
33 NSCocoaErrorDomain = new NSString(bindings.NSCocoaErrorDomain); | 39 |
34 NSPOSIXErrorDomain = new NSString(bindings.NSPOSIXErrorDomain); | 40 NSString NSCocoaErrorDomain () |
35 NSOSStatusErrorDomain = new NSString(bindings.NSOSStatusErrorDomain); | 41 { |
36 NSMachErrorDomain = new NSString(bindings.NSMachErrorDomain); | 42 if (NSCocoaErrorDomain_) |
37 NSUnderlyingErrorKey = new NSString(bindings.NSUnderlyingErrorKey); | 43 return NSCocoaErrorDomain_; |
38 NSLocalizedDescriptionKey = new NSString(bindings.NSLocalizedDescriptionKey); | 44 |
39 NSLocalizedFailureReasonErrorKey = new NSString(bindings.NSLocalizedFailureReasonErrorKey); | 45 return NSCocoaErrorDomain_ = new NSString(bindings.NSCocoaErrorDomain); |
40 NSLocalizedRecoverySuggestionErrorKey = new NSString(bindings.NSLocalizedRecoverySuggestionErrorKey); | 46 } |
41 NSLocalizedRecoveryOptionsErrorKey = new NSString(bindings.NSLocalizedRecoveryOptionsErrorKey); | 47 |
42 NSRecoveryAttempterErrorKey = new NSString(bindings.NSRecoveryAttempterErrorKey); | 48 NSString NSPOSIXErrorDomain () |
43 NSStringEncodingErrorKey = new NSString(bindings.NSStringEncodingErrorKey); | 49 { |
44 NSURLErrorKey = new NSString(bindings.NSURLErrorKey); | 50 if (NSPOSIXErrorDomain_) |
45 NSFilePathErrorKey = new NSString(bindings.NSFilePathErrorKey); | 51 return NSPOSIXErrorDomain_; |
46 } | 52 |
53 return NSPOSIXErrorDomain_ = new NSString(bindings.NSPOSIXErrorDomain); | |
54 } | |
55 | |
56 NSString NSOSStatusErrorDomain () | |
57 { | |
58 if (NSOSStatusErrorDomain_) | |
59 return NSOSStatusErrorDomain_; | |
60 | |
61 return NSOSStatusErrorDomain_ = new NSString(bindings.NSOSStatusErrorDomain); | |
62 } | |
63 | |
64 NSString NSMachErrorDomain () | |
65 { | |
66 if (NSMachErrorDomain_) | |
67 return NSMachErrorDomain_; | |
68 | |
69 return NSMachErrorDomain_ = new NSString(bindings.NSMachErrorDomain); | |
70 } | |
71 | |
72 NSString NSUnderlyingErrorKey () | |
73 { | |
74 if (NSUnderlyingErrorKey_) | |
75 return NSUnderlyingErrorKey_; | |
76 | |
77 return NSUnderlyingErrorKey_ = new NSString(bindings.NSUnderlyingErrorKey); | |
78 } | |
79 | |
80 NSString NSLocalizedDescriptionKey () | |
81 { | |
82 if (NSLocalizedDescriptionKey_) | |
83 return NSLocalizedDescriptionKey_; | |
84 | |
85 return NSLocalizedDescriptionKey_ = new NSString(bindings.NSLocalizedDescriptionKey); | |
86 } | |
87 | |
88 NSString NSLocalizedFailureReasonErrorKey () | |
89 { | |
90 if (NSLocalizedFailureReasonErrorKey_) | |
91 return NSLocalizedFailureReasonErrorKey_; | |
92 | |
93 return NSLocalizedFailureReasonErrorKey_ = new NSString(bindings.NSLocalizedFailureReasonErrorKey); | |
94 } | |
95 | |
96 NSString NSLocalizedRecoverySuggestionErrorKey () | |
97 { | |
98 if (NSLocalizedRecoverySuggestionErrorKey_) | |
99 return NSLocalizedRecoverySuggestionErrorKey_; | |
100 | |
101 return NSLocalizedRecoverySuggestionErrorKey_ = new NSString(bindings.NSLocalizedRecoverySuggestionErrorKey); | |
102 } | |
103 | |
104 NSString NSLocalizedRecoveryOptionsErrorKey () | |
105 { | |
106 if (NSLocalizedRecoveryOptionsErrorKey_) | |
107 return NSLocalizedRecoveryOptionsErrorKey_; | |
108 | |
109 return NSLocalizedRecoveryOptionsErrorKey_ = new NSString(bindings.NSLocalizedRecoveryOptionsErrorKey); | |
110 } | |
111 | |
112 NSString NSRecoveryAttempterErrorKey () | |
113 { | |
114 if (NSRecoveryAttempterErrorKey_) | |
115 return NSRecoveryAttempterErrorKey_; | |
116 | |
117 return NSRecoveryAttempterErrorKey_ = new NSString(bindings.NSRecoveryAttempterErrorKey); | |
118 } | |
119 | |
120 NSString NSStringEncodingErrorKey () | |
121 { | |
122 if (NSStringEncodingErrorKey_) | |
123 return NSStringEncodingErrorKey_; | |
124 | |
125 return NSStringEncodingErrorKey_ = new NSString(bindings.NSStringEncodingErrorKey); | |
126 } | |
127 | |
128 NSString NSURLErrorKey () | |
129 { | |
130 if (NSURLErrorKey_) | |
131 return NSURLErrorKey_; | |
132 | |
133 return NSURLErrorKey_ = new NSString(bindings.NSURLErrorKey); | |
134 } | |
135 | |
136 NSString NSFilePathErrorKey () | |
137 { | |
138 if (NSFilePathErrorKey_) | |
139 return NSFilePathErrorKey_; | |
140 | |
141 return NSFilePathErrorKey_ = new NSString(bindings.NSFilePathErrorKey); | |
142 } | |
143 | |
144 const TNSErrorRecoveryAttempting = ` | |
145 | |
146 void attemptRecoveryFromError (NSError error, NSUInteger recoveryOptionIndex, Object delegate_, SEL didRecoverSelector, void* contextInfo) | |
147 { | |
148 return invokeObjcSelf!(void, "attemptRecoveryFromError:optionIndexdelegate:didRecoverSelector:contextInfo:", NSError, NSUInteger, Object, SEL, void*)(error, recoveryOptionIndex, delegate_, didRecoverSelector, contextInfo); | |
149 } | |
150 | |
151 bool attemptRecoveryFromError (NSError error, NSUInteger recoveryOptionIndex) | |
152 { | |
153 return invokeObjcSelf!(bool, "attemptRecoveryFromError:optionIndex:", NSError, NSUInteger)(error, recoveryOptionIndex); | |
154 } | |
155 | |
156 //mixin ObjcBindMethod!(attemptRecoveryFromError, void, "attemptRecoveryFromError:optionIndexdelegate:didRecoverSelector:contextInfo:", NSError, NSUInteger, Object, SEL, void*); | |
157 //mixin ObjcBindMethod!(attemptRecoveryFromError, bool, "attemptRecoveryFromError:optionIndex:", NSError, NSUInteger); | |
158 `; | |
47 | 159 |
48 class NSError : NSObject, INSCopying, INSCoding | 160 class NSError : NSObject, INSCopying, INSCoding |
49 { | 161 { |
50 mixin ObjcWrap; | 162 mixin (ObjcWrap); |
163 | |
164 this () | |
165 { | |
166 super(typeof(this).alloc.init.objcObject); | |
167 } | |
168 | |
169 typeof(this) init () | |
170 { | |
171 return invokeObjcSelf!(typeof(this), "init"); | |
172 } | |
51 | 173 |
52 Object initWithDomain (NSString domain, NSInteger code, NSDictionary dict) | 174 Object initWithDomain (NSString domain, NSInteger code, NSDictionary dict) |
53 { | 175 { |
54 return invokeObjcSelf!(Object, "initWithDomain:code:userInfo:", NSString, NSInteger, NSDictionary)(domain, code, dict); | 176 return invokeObjcSelf!(Object, "initWithDomain:code:userInfo:", NSString, NSInteger, NSDictionary)(domain, code, dict); |
55 } | 177 } |
56 | 178 |
57 this (NSString domain, NSInteger code, NSDictionary dict) | 179 this (NSString domain, NSInteger code, NSDictionary dict) |
58 { | 180 { |
59 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | 181 typeof(this).alloc.initWithDomain(domain, code, dict); |
60 id result = Bridge.invokeObjcMethod!(id, "initWithDomain:code:userInfo:", NSString, NSInteger, NSDictionary)(objcObject, domain, code, dict); | |
61 | |
62 if (result) | |
63 objcObject = ret; | |
64 | |
65 dObject = this; | |
66 } | 182 } |
67 | 183 |
68 static Object errorWithDomain (NSString domain, NSInteger code, NSDictionary dict) | 184 static Object errorWithDomain (NSString domain, NSInteger code, NSDictionary dict) |
69 { | 185 { |
70 return invokeObjcSelfClass!(Object, "errorWithDomain:code:userInfo:", NSString, NSInteger, NSDictionary)(domain, code, dict); | 186 return invokeObjcSuperClass!(Object, "errorWithDomain:code:userInfo:", NSString, NSInteger, NSDictionary)(domain, code, dict); |
71 } | 187 } |
72 | 188 |
73 NSString domain () | 189 NSString domain () |
74 { | 190 { |
75 return invokeObjcSelf!(NSString, "domain"); | 191 return invokeObjcSelf!(NSString, "domain"); |
125 return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder); | 241 return invokeObjcSelf!(Object, "initWithCoder:", NSCoder)(aDecoder); |
126 } | 242 } |
127 | 243 |
128 this (NSCoder aDecoder) | 244 this (NSCoder aDecoder) |
129 { | 245 { |
130 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | 246 typeof(this).alloc.initWithCoder(aDecoder); |
131 id result = Bridge.invokeObjcMethod!(id, "initWithCoder:", NSCoder)(objcObject, aDecoder); | 247 } |
132 | 248 } |
133 if (result) | |
134 objcObject = ret; | |
135 | |
136 dObject = this; | |
137 } | |
138 } | |
139 | |
140 template TNSErrorRecoveryAttempting () | |
141 { | |
142 void attemptRecoveryFromError (NSError error, NSUInteger recoveryOptionIndex, Object delegate_, SEL didRecoverSelector, void* contextInfo); | |
143 bool attemptRecoveryFromError (NSError error, NSUInteger recoveryOptionIndex); | |
144 } | |
145 |