Mercurial > projects > dstep
diff 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 |
line wrap: on
line diff
--- a/dstep/foundation/NSNetServices.d Mon Aug 03 15:31:48 2009 +0200 +++ b/dstep/foundation/NSNetServices.d Sun Jan 03 22:06:11 2010 +0100 @@ -10,21 +10,42 @@ import dstep.foundation.NSData; import dstep.foundation.NSDate; import dstep.foundation.NSDictionary; -import dstep.foundation.NSInputStream; +import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSObject; -import dstep.foundation.NSOutputStream; import dstep.foundation.NSRunLoop; +import dstep.foundation.NSStream; import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; -import dstep.objc.objc : id; +import dstep.objc.objc; + + import bindings = dstep.foundation.NSNetServices_bindings; alias NSInteger NSNetServicesError; alias NSUInteger NSNetServiceOptions; -const NSString NSNetServicesErrorCode; -const NSString NSNetServicesErrorDomain; +private +{ + NSString NSNetServicesErrorCode_; + NSString NSNetServicesErrorDomain_; +} + +NSString NSNetServicesErrorCode () +{ + if (NSNetServicesErrorCode_) + return NSNetServicesErrorCode_; + + return NSNetServicesErrorCode_ = new NSString(bindings.NSNetServicesErrorCode); +} + +NSString NSNetServicesErrorDomain () +{ + if (NSNetServicesErrorDomain_) + return NSNetServicesErrorDomain_; + + return NSNetServicesErrorDomain_ = new NSString(bindings.NSNetServicesErrorDomain); +} enum { @@ -43,15 +64,125 @@ NSNetServiceNoAutoRename = 1 << 0 } -static this () -{ - NSNetServicesErrorCode = new NSString(bindings.NSNetServicesErrorCode); - NSNetServicesErrorDomain = new NSString(bindings.NSNetServicesErrorDomain); -} +const TNSDeprecated = ` + + void searchForAllDomains () + { + return invokeObjcSelf!(void, "searchForAllDomains"); + } +`; + +const TNSNetServiceDelegateMethods = ` + + void netServiceWillPublish (NSNetService sender) + { + return invokeObjcSelf!(void, "netServiceWillPublish:", NSNetService)(sender); + } + + void netServiceDidPublish (NSNetService sender) + { + return invokeObjcSelf!(void, "netServiceDidPublish:", NSNetService)(sender); + } + + void netService (NSNetService sender, NSDictionary errorDict) + { + return invokeObjcSelf!(void, "netService:didNotPublish:", NSNetService, NSDictionary)(sender, errorDict); + } + + void netServiceWillResolve (NSNetService sender) + { + return invokeObjcSelf!(void, "netServiceWillResolve:", NSNetService)(sender); + } + + void netServiceDidResolveAddress (NSNetService sender) + { + return invokeObjcSelf!(void, "netServiceDidResolveAddress:", NSNetService)(sender); + } + + void netService_didNotPublish (NSNetService sender, NSDictionary errorDict) + { + return invokeObjcSelf!(void, "netService:didNotPublish:", NSNetService, NSDictionary)(sender, errorDict); + } + + void netServiceDidStop (NSNetService sender) + { + return invokeObjcSelf!(void, "netServiceDidStop:", NSNetService)(sender); + } + + void netService (NSNetService sender, NSData data) + { + return invokeObjcSelf!(void, "netService:didUpdateTXTRecordData:", NSNetService, NSData)(sender, data); + } + + //mixin ObjcBindMethod!(netServiceWillPublish, "netServiceWillPublish:"); + //mixin ObjcBindMethod!(netServiceDidPublish, "netServiceDidPublish:"); + //mixin ObjcBindMethod!(netService, "netService:didNotPublish:"); + //mixin ObjcBindMethod!(netServiceWillResolve, "netServiceWillResolve:"); + //mixin ObjcBindMethod!(netServiceDidResolveAddress, "netServiceDidResolveAddress:"); + //mixin ObjcBindMethod!(netService_didNotPublish, "netService:didNotPublish:"); + //mixin ObjcBindMethod!(netServiceDidStop, "netServiceDidStop:"); + //mixin ObjcBindMethod!(netService, "netService:didUpdateTXTRecordData:"); +`; + +const TNSNetServiceBrowserDelegateMethods = ` + + void netServiceBrowserWillSearch (NSNetServiceBrowser aNetServiceBrowser) + { + return invokeObjcSelf!(void, "netServiceBrowserWillSearch:", NSNetServiceBrowser)(aNetServiceBrowser); + } + + void netServiceBrowserDidStopSearch (NSNetServiceBrowser aNetServiceBrowser) + { + return invokeObjcSelf!(void, "netServiceBrowserDidStopSearch:", NSNetServiceBrowser)(aNetServiceBrowser); + } + + void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSDictionary errorDict) + { + return invokeObjcSelf!(void, "netServiceBrowser:didNotSearch:", NSNetServiceBrowser, NSDictionary)(aNetServiceBrowser, errorDict); + } + + void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSString domainString, bool moreComing) + { + return invokeObjcSelf!(void, "netServiceBrowser:didFindDomain:moreComing:", NSNetServiceBrowser, NSString, bool)(aNetServiceBrowser, domainString, moreComing); + } + + void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSNetService aNetService, bool moreComing) + { + return invokeObjcSelf!(void, "netServiceBrowser:didFindService:moreComing:", NSNetServiceBrowser, NSNetService, bool)(aNetServiceBrowser, aNetService, moreComing); + } + + void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSString domainString, bool moreComing) + { + return invokeObjcSelf!(void, "netServiceBrowser:didRemoveDomain:moreComing:", NSNetServiceBrowser, NSString, bool)(aNetServiceBrowser, domainString, moreComing); + } + + void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSNetService aNetService, bool moreComing) + { + return invokeObjcSelf!(void, "netServiceBrowser:didRemoveService:moreComing:", NSNetServiceBrowser, NSNetService, bool)(aNetServiceBrowser, aNetService, moreComing); + } + + //mixin ObjcBindMethod!(netServiceBrowserWillSearch, "netServiceBrowserWillSearch:"); + //mixin ObjcBindMethod!(netServiceBrowserDidStopSearch, "netServiceBrowserDidStopSearch:"); + //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didNotSearch:"); + //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didFindDomain:moreComing:"); + //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didFindService:moreComing:"); + //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didRemoveDomain:moreComing:"); + //mixin ObjcBindMethod!(netServiceBrowser, "netServiceBrowser:didRemoveService:moreComing:"); +`; class NSNetService : NSObject { - mixin ObjcWrap; + mixin (ObjcWrap); + + this () + { + super(typeof(this).alloc.init.objcObject); + } + + typeof(this) init () + { + return invokeObjcSelf!(typeof(this), "init"); + } Object initWithDomain (NSString domain, NSString type, NSString name, int port) { @@ -60,13 +191,7 @@ this (NSString domain, NSString type, NSString name, int port) { - objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); - id result = Bridge.invokeObjcMethod!(id, "initWithDomain:type:name:port:", NSString, NSString, NSString, int)(objcObject, domain, type, name, port); - - if (result) - objcObject = ret; - - dObject = this; + typeof(this).alloc.initWithDomain(domain, type, name, port); } Object initWithDomain (NSString domain, NSString type, NSString name) @@ -76,13 +201,7 @@ this (NSString domain, NSString type, NSString name) { - objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); - id result = Bridge.invokeObjcMethod!(id, "initWithDomain:type:name:", NSString, NSString, NSString)(objcObject, domain, type, name); - - if (result) - objcObject = ret; - - dObject = this; + typeof(this).alloc.initWithDomain(domain, type, name); } Object delegate_ () @@ -152,12 +271,12 @@ static NSDictionary dictionaryFromTXTRecordData (NSData txtData) { - return invokeObjcSelfClass!(NSDictionary, "dictionaryFromTXTRecordData:", NSData)(txtData); + return invokeObjcSuperClass!(NSDictionary, "dictionaryFromTXTRecordData:", NSData)(txtData); } static NSData dataFromTXTRecordDictionary (NSDictionary txtDictionary) { - return invokeObjcSelfClass!(NSData, "dataFromTXTRecordDictionary:", NSDictionary)(txtDictionary); + return invokeObjcSuperClass!(NSData, "dataFromTXTRecordDictionary:", NSDictionary)(txtDictionary); } NSString hostName () @@ -170,9 +289,20 @@ return invokeObjcSelf!(void, "resolveWithTimeout:", double)(timeout); } - bool getInputStream (NSInputStream** inputStream, NSOutputStream** outputStream) + bool getInputStream (out NSInputStream inputStream, out NSOutputStream outputStream) { - return invokeObjcSelf!(bool, "getInputStream:outputStream:", NSInputStream**, NSOutputStream**)(inputStream, outputStream); + id input; + id output; + + bool result = invokeObjcSelf!(bool, "getInputStream:outputStream:", id*, id*)(&input, &output); + + if (input) + inputStream = new NSInputStream(input); + + if (output) + outputStream = new NSOutputStream(output); + + return result; } bool setTXTRecordData (NSData recordData) @@ -198,23 +328,16 @@ class NSNetServiceBrowser : NSObject { - mixin ObjcWrap; - mixin TNSDeprecated; - - Object init () - { - return invokeObjcSelf!(Object, "init"); - } - + mixin (ObjcWrap); + this () { - objcObject = Bridge.invokeObjcClassMethod!(id, "alloc")(objcClass); - id result = Bridge.invokeObjcMethod!(id, "init")(objcObject); - - if (result) - objcObject = ret; - - dObject = this; + super(typeof(this).alloc.init.objcObject); + } + + typeof(this) init () + { + return invokeObjcSelf!(typeof(this), "init"); } Object delegate_ () @@ -256,36 +379,10 @@ { return invokeObjcSelf!(void, "stop"); } -} - -template TNSDeprecated () -{ + + // TNSDeprecated void searchForAllDomains () { return invokeObjcSelf!(void, "searchForAllDomains"); } -} - -template TNSNetServiceDelegateMethods () -{ - void netServiceWillPublish (NSNetService sender); - void netServiceDidPublish (NSNetService sender); - void netService (NSNetService sender, NSDictionary errorDict); - void netServiceWillResolve (NSNetService sender); - void netServiceDidResolveAddress (NSNetService sender); - void netService (NSNetService sender, NSDictionary errorDict); - void netServiceDidStop (NSNetService sender); - void netService (NSNetService sender, NSData data); -} - -template TNSNetServiceBrowserDelegateMethods () -{ - void netServiceBrowserWillSearch (NSNetServiceBrowser aNetServiceBrowser); - void netServiceBrowserDidStopSearch (NSNetServiceBrowser aNetServiceBrowser); - void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSDictionary errorDict); - void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSString domainString, bool moreComing); - void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSNetService aNetService, bool moreComing); - void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSString domainString, bool moreComing); - void netServiceBrowser (NSNetServiceBrowser aNetServiceBrowser, NSNetService aNetService, bool moreComing); -} - +} \ No newline at end of file