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