Mercurial > projects > dstep
comparison dstep/foundation/NSNetServices.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 |
---|---|
8 | 8 |
9 import dstep.foundation.NSArray; | 9 import dstep.foundation.NSArray; |
10 import dstep.foundation.NSData; | 10 import dstep.foundation.NSData; |
11 import dstep.foundation.NSDate; | 11 import dstep.foundation.NSDate; |
12 import dstep.foundation.NSDictionary; | 12 import dstep.foundation.NSDictionary; |
13 import dstep.foundation.NSInputStream; | 13 import dstep.foundation.NSObjCRuntime; |
14 import dstep.foundation.NSObject; | 14 import dstep.foundation.NSObject; |
15 import dstep.foundation.NSOutputStream; | |
16 import dstep.foundation.NSRunLoop; | 15 import dstep.foundation.NSRunLoop; |
16 import dstep.foundation.NSStream; | |
17 import dstep.foundation.NSString; | 17 import dstep.foundation.NSString; |
18 import dstep.objc.bridge.Bridge; | 18 import dstep.objc.bridge.Bridge; |
19 import dstep.objc.objc : id; | 19 import dstep.objc.objc; |
20 | |
21 | |
20 | 22 |
21 import bindings = dstep.foundation.NSNetServices_bindings; | 23 import bindings = dstep.foundation.NSNetServices_bindings; |
22 | 24 |
23 alias NSInteger NSNetServicesError; | 25 alias NSInteger NSNetServicesError; |
24 alias NSUInteger NSNetServiceOptions; | 26 alias NSUInteger NSNetServiceOptions; |
25 | 27 |
26 const NSString NSNetServicesErrorCode; | 28 private |
27 const NSString NSNetServicesErrorDomain; | 29 { |
30 NSString NSNetServicesErrorCode_; | |
31 NSString NSNetServicesErrorDomain_; | |
32 } | |
33 | |
34 NSString NSNetServicesErrorCode () | |
35 { | |
36 if (NSNetServicesErrorCode_) | |
37 return NSNetServicesErrorCode_; | |
38 | |
39 return NSNetServicesErrorCode_ = new NSString(bindings.NSNetServicesErrorCode); | |
40 } | |
41 | |
42 NSString NSNetServicesErrorDomain () | |
43 { | |
44 if (NSNetServicesErrorDomain_) | |
45 return NSNetServicesErrorDomain_; | |
46 | |
47 return NSNetServicesErrorDomain_ = new NSString(bindings.NSNetServicesErrorDomain); | |
48 } | |
28 | 49 |
29 enum | 50 enum |
30 { | 51 { |
31 NSNetServicesUnknownError = -72000, | 52 NSNetServicesUnknownError = -72000, |
32 NSNetServicesCollisionError = -72001, | 53 NSNetServicesCollisionError = -72001, |
41 enum | 62 enum |
42 { | 63 { |
43 NSNetServiceNoAutoRename = 1 << 0 | 64 NSNetServiceNoAutoRename = 1 << 0 |
44 } | 65 } |
45 | 66 |
46 static this () | 67 const TNSDeprecated = ` |
47 { | 68 |
48 NSNetServicesErrorCode = new NSString(bindings.NSNetServicesErrorCode); | 69 void searchForAllDomains () |
49 NSNetServicesErrorDomain = new NSString(bindings.NSNetServicesErrorDomain); | 70 { |
50 } | 71 return invokeObjcSelf!(void, "searchForAllDomains"); |
72 } | |
73 `; | |
74 | |
75 const TNSNetServiceDelegateMethods = ` | |
76 | |
77 void netServiceWillPublish (NSNetService sender) | |
78 { | |
79 return invokeObjcSelf!(void, "netServiceWillPublish:", NSNetService)(sender); | |
80 } | |
81 | |
82 void netServiceDidPublish (NSNetService sender) | |
83 { | |
84 return invokeObjcSelf!(void, "netServiceDidPublish:", NSNetService)(sender); | |
85 } | |
86 | |
87 void netService (NSNetService sender, NSDictionary errorDict) | |
88 { | |
89 return invokeObjcSelf!(void, "netService:didNotPublish:", NSNetService, NSDictionary)(sender, errorDict); | |
90 } | |
91 | |
92 void netServiceWillResolve (NSNetService sender) | |
93 { | |
94 return invokeObjcSelf!(void, "netServiceWillResolve:", NSNetService)(sender); | |
95 } | |
96 | |
97 void netServiceDidResolveAddress (NSNetService sender) | |
98 { | |
99 return invokeObjcSelf!(void, "netServiceDidResolveAddress:", NSNetService)(sender); | |
100 } | |
101 | |
102 void netService_didNotPublish (NSNetService sender, NSDictionary errorDict) | |
103 { | |
104 return invokeObjcSelf!(void, "netService:didNotPublish:", NSNetService, NSDictionary)(sender, errorDict); | |
105 } | |
106 | |
107 void netServiceDidStop (NSNetService sender) | |
108 { | |
109 return invokeObjcSelf!(void, "netServiceDidStop:", NSNetService)(sender); | |
110 } | |
111 | |
112 void netService (NSNetService sender, NSData data) | |
113 { | |
114 return invokeObjcSelf!(void, "netService:didUpdateTXTRecordData:", NSNetService, NSData)(sender, data); | |
115 } | |
116 | |
117 //mixin ObjcBindMethod!(netServiceWillPublish, "netServiceWillPublish:"); | |
118 //mixin ObjcBindMethod!(netServiceDidPublish, "netServiceDidPublish:"); | |
119 //mixin ObjcBindMethod!(netService, "netService:didNotPublish:"); | |
120 //mixin ObjcBindMethod!(netServiceWillResolve, "netServiceWillResolve:"); | |
121 //mixin ObjcBindMethod!(netServiceDidResolveAddress, "netServiceDidResolveAddress:"); | |
122 //mixin ObjcBindMethod!(netService_didNotPublish, "netService:didNotPublish:"); | |
123 //mixin ObjcBindMethod!(netServiceDidStop, "netServiceDidStop:"); | |
124 //mixin ObjcBindMethod!(netService, "netService:didUpdateTXTRecordData:"); | |
125 `; | |
126 | |
127 const TNSNetServiceBrowserDelegateMethods = ` | |
128 | |
129 void netServiceBrowserWillSearch (NSNetServiceBrowser aNetServiceBrowser) | |
130 { | |
131 return invokeObjcSelf!(void, "netServiceBrowserWillSearch:", NSNetServiceBrowser)(aNetServiceBrowser); | |
132 } | |
133 | |
134 void netServiceBrowserDidStopSearch (NSNetServiceBrowser aNetServiceBrowser) | |
135 { | |
136 return invokeObjcSelf!(void, "netServiceBrowserDidStopSearch:", NSNetServiceBrowser)(aNetServiceBrowser); | |
137 } | |
138 | |
139 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSDictionary errorDict) | |
140 { | |
141 return invokeObjcSelf!(void, "netServiceBrowser:didNotSearch:", NSNetServiceBrowser, NSDictionary)(aNetServiceBrowser, errorDict); | |
142 } | |
143 | |
144 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSString domainString, bool moreComing) | |
145 { | |
146 return invokeObjcSelf!(void, "netServiceBrowser:didFindDomain:moreComing:", NSNetServiceBrowser, NSString, bool)(aNetServiceBrowser, domainString, moreComing); | |
147 } | |
148 | |
149 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSNetService aNetService, bool moreComing) | |
150 { | |
151 return invokeObjcSelf!(void, "netServiceBrowser:didFindService:moreComing:", NSNetServiceBrowser, NSNetService, bool)(aNetServiceBrowser, aNetService, moreComing); | |
152 } | |
153 | |
154 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSString domainString, bool moreComing) | |
155 { | |
156 return invokeObjcSelf!(void, "netServiceBrowser:didRemoveDomain:moreComing:", NSNetServiceBrowser, NSString, bool)(aNetServiceBrowser, domainString, moreComing); | |
157 } | |
158 | |
159 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSNetService aNetService, bool moreComing) | |
160 { | |
161 return invokeObjcSelf!(void, "netServiceBrowser:didRemoveService:moreComing:", NSNetServiceBrowser, NSNetService, bool)(aNetServiceBrowser, aNetService, moreComing); | |
162 } | |
163 | |
164 //mixin ObjcBindMethod!(netServiceBrowserWillSearch, "netServiceBrowserWillSearch:"); | |
165 //mixin ObjcBindMethod!(netServiceBrowserDidStopSearch, "netServiceBrowserDidStopSearch:"); | |
166 //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didNotSearch:"); | |
167 //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didFindDomain:moreComing:"); | |
168 //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didFindService:moreComing:"); | |
169 //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didRemoveDomain:moreComing:"); | |
170 //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didRemoveService:moreComing:"); | |
171 `; | |
51 | 172 |
52 class NSNetService : NSObject | 173 class NSNetService : NSObject |
53 { | 174 { |
54 mixin ObjcWrap; | 175 mixin (ObjcWrap); |
176 | |
177 this () | |
178 { | |
179 super(typeof(this).alloc.init.objcObject); | |
180 } | |
181 | |
182 typeof(this) init () | |
183 { | |
184 return invokeObjcSelf!(typeof(this), "init"); | |
185 } | |
55 | 186 |
56 Object initWithDomain (NSString domain, NSString type, NSString name, int port) | 187 Object initWithDomain (NSString domain, NSString type, NSString name, int port) |
57 { | 188 { |
58 return invokeObjcSelf!(Object, "initWithDomain:type:name:port:", NSString, NSString, NSString, int)(domain, type, name, port); | 189 return invokeObjcSelf!(Object, "initWithDomain:type:name:port:", NSString, NSString, NSString, int)(domain, type, name, port); |
59 } | 190 } |
60 | 191 |
61 this (NSString domain, NSString type, NSString name, int port) | 192 this (NSString domain, NSString type, NSString name, int port) |
62 { | 193 { |
63 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | 194 typeof(this).alloc.initWithDomain(domain, type, name, port); |
64 id result = Bridge.invokeObjcMethod!(id, "initWithDomain:type:name:port:", NSString, NSString, NSString, int)(objcObject, domain, type, name, port); | |
65 | |
66 if (result) | |
67 objcObject = ret; | |
68 | |
69 dObject = this; | |
70 } | 195 } |
71 | 196 |
72 Object initWithDomain (NSString domain, NSString type, NSString name) | 197 Object initWithDomain (NSString domain, NSString type, NSString name) |
73 { | 198 { |
74 return invokeObjcSelf!(Object, "initWithDomain:type:name:", NSString, NSString, NSString)(domain, type, name); | 199 return invokeObjcSelf!(Object, "initWithDomain:type:name:", NSString, NSString, NSString)(domain, type, name); |
75 } | 200 } |
76 | 201 |
77 this (NSString domain, NSString type, NSString name) | 202 this (NSString domain, NSString type, NSString name) |
78 { | 203 { |
79 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | 204 typeof(this).alloc.initWithDomain(domain, type, name); |
80 id result = Bridge.invokeObjcMethod!(id, "initWithDomain:type:name:", NSString, NSString, NSString)(objcObject, domain, type, name); | |
81 | |
82 if (result) | |
83 objcObject = ret; | |
84 | |
85 dObject = this; | |
86 } | 205 } |
87 | 206 |
88 Object delegate_ () | 207 Object delegate_ () |
89 { | 208 { |
90 return invokeObjcSelf!(Object, "delegate"); | 209 return invokeObjcSelf!(Object, "delegate"); |
150 return invokeObjcSelf!(void, "stop"); | 269 return invokeObjcSelf!(void, "stop"); |
151 } | 270 } |
152 | 271 |
153 static NSDictionary dictionaryFromTXTRecordData (NSData txtData) | 272 static NSDictionary dictionaryFromTXTRecordData (NSData txtData) |
154 { | 273 { |
155 return invokeObjcSelfClass!(NSDictionary, "dictionaryFromTXTRecordData:", NSData)(txtData); | 274 return invokeObjcSuperClass!(NSDictionary, "dictionaryFromTXTRecordData:", NSData)(txtData); |
156 } | 275 } |
157 | 276 |
158 static NSData dataFromTXTRecordDictionary (NSDictionary txtDictionary) | 277 static NSData dataFromTXTRecordDictionary (NSDictionary txtDictionary) |
159 { | 278 { |
160 return invokeObjcSelfClass!(NSData, "dataFromTXTRecordDictionary:", NSDictionary)(txtDictionary); | 279 return invokeObjcSuperClass!(NSData, "dataFromTXTRecordDictionary:", NSDictionary)(txtDictionary); |
161 } | 280 } |
162 | 281 |
163 NSString hostName () | 282 NSString hostName () |
164 { | 283 { |
165 return invokeObjcSelf!(NSString, "hostName"); | 284 return invokeObjcSelf!(NSString, "hostName"); |
168 void resolveWithTimeout (double timeout) | 287 void resolveWithTimeout (double timeout) |
169 { | 288 { |
170 return invokeObjcSelf!(void, "resolveWithTimeout:", double)(timeout); | 289 return invokeObjcSelf!(void, "resolveWithTimeout:", double)(timeout); |
171 } | 290 } |
172 | 291 |
173 bool getInputStream (NSInputStream** inputStream, NSOutputStream** outputStream) | 292 bool getInputStream (out NSInputStream inputStream, out NSOutputStream outputStream) |
174 { | 293 { |
175 return invokeObjcSelf!(bool, "getInputStream:outputStream:", NSInputStream**, NSOutputStream**)(inputStream, outputStream); | 294 id input; |
295 id output; | |
296 | |
297 bool result = invokeObjcSelf!(bool, "getInputStream:outputStream:", id*, id*)(&input, &output); | |
298 | |
299 if (input) | |
300 inputStream = new NSInputStream(input); | |
301 | |
302 if (output) | |
303 outputStream = new NSOutputStream(output); | |
304 | |
305 return result; | |
176 } | 306 } |
177 | 307 |
178 bool setTXTRecordData (NSData recordData) | 308 bool setTXTRecordData (NSData recordData) |
179 { | 309 { |
180 return invokeObjcSelf!(bool, "setTXTRecordData:", NSData)(recordData); | 310 return invokeObjcSelf!(bool, "setTXTRecordData:", NSData)(recordData); |
196 } | 326 } |
197 } | 327 } |
198 | 328 |
199 class NSNetServiceBrowser : NSObject | 329 class NSNetServiceBrowser : NSObject |
200 { | 330 { |
201 mixin ObjcWrap; | 331 mixin (ObjcWrap); |
202 mixin TNSDeprecated; | 332 |
203 | |
204 Object init () | |
205 { | |
206 return invokeObjcSelf!(Object, "init"); | |
207 } | |
208 | |
209 this () | 333 this () |
210 { | 334 { |
211 objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); | 335 super(typeof(this).alloc.init.objcObject); |
212 id result = Bridge.invokeObjcMethod!(id, "init")(objcObject); | 336 } |
213 | 337 |
214 if (result) | 338 typeof(this) init () |
215 objcObject = ret; | 339 { |
216 | 340 return invokeObjcSelf!(typeof(this), "init"); |
217 dObject = this; | |
218 } | 341 } |
219 | 342 |
220 Object delegate_ () | 343 Object delegate_ () |
221 { | 344 { |
222 return invokeObjcSelf!(Object, "delegate"); | 345 return invokeObjcSelf!(Object, "delegate"); |
254 | 377 |
255 void stop () | 378 void stop () |
256 { | 379 { |
257 return invokeObjcSelf!(void, "stop"); | 380 return invokeObjcSelf!(void, "stop"); |
258 } | 381 } |
259 } | 382 |
260 | 383 // TNSDeprecated |
261 template TNSDeprecated () | |
262 { | |
263 void searchForAllDomains () | 384 void searchForAllDomains () |
264 { | 385 { |
265 return invokeObjcSelf!(void, "searchForAllDomains"); | 386 return invokeObjcSelf!(void, "searchForAllDomains"); |
266 } | 387 } |
267 } | 388 } |
268 | |
269 template TNSNetServiceDelegateMethods () | |
270 { | |
271 void netServiceWillPublish (NSNetService sender); | |
272 void netServiceDidPublish (NSNetService sender); | |
273 void netService (NSNetService sender, NSDictionary errorDict); | |
274 void netServiceWillResolve (NSNetService sender); | |
275 void netServiceDidResolveAddress (NSNetService sender); | |
276 void netService (NSNetService sender, NSDictionary errorDict); | |
277 void netServiceDidStop (NSNetService sender); | |
278 void netService (NSNetService sender, NSData data); | |
279 } | |
280 | |
281 template TNSNetServiceBrowserDelegateMethods () | |
282 { | |
283 void netServiceBrowserWillSearch (NSNetServiceBrowser aNetServiceBrowser); | |
284 void netServiceBrowserDidStopSearch (NSNetServiceBrowser aNetServiceBrowser); | |
285 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSDictionary errorDict); | |
286 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSString domainString, bool moreComing); | |
287 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSNetService aNetService, bool moreComing); | |
288 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSString domainString, bool moreComing); | |
289 void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSNetService aNetService, bool moreComing); | |
290 } | |
291 |