Mercurial > projects > dstep
view 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 source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Aug 3, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.foundation.NSNetServices; import dstep.foundation.NSArray; import dstep.foundation.NSData; import dstep.foundation.NSDate; import dstep.foundation.NSDictionary; import dstep.foundation.NSObjCRuntime; import dstep.foundation.NSObject; import dstep.foundation.NSRunLoop; import dstep.foundation.NSStream; import dstep.foundation.NSString; import dstep.objc.bridge.Bridge; import dstep.objc.objc; import bindings = dstep.foundation.NSNetServices_bindings; alias NSInteger NSNetServicesError; alias NSUInteger NSNetServiceOptions; 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 { NSNetServicesUnknownError = -72000, NSNetServicesCollisionError = -72001, NSNetServicesNotFoundError = -72002, NSNetServicesActivityInProgress = -72003, NSNetServicesBadArgumentError = -72004, NSNetServicesCancelledError = -72005, NSNetServicesInvalidError = -72006, NSNetServicesTimeoutError = -72007 } enum { NSNetServiceNoAutoRename = 1 << 0 } 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); 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) { return invokeObjcSelf!(Object, "initWithDomain:type:name:port:", NSString, NSString, NSString, int)(domain, type, name, port); } this (NSString domain, NSString type, NSString name, int port) { typeof(this).alloc.initWithDomain(domain, type, name, port); } Object initWithDomain (NSString domain, NSString type, NSString name) { return invokeObjcSelf!(Object, "initWithDomain:type:name:", NSString, NSString, NSString)(domain, type, name); } this (NSString domain, NSString type, NSString name) { typeof(this).alloc.initWithDomain(domain, type, name); } Object delegate_ () { return invokeObjcSelf!(Object, "delegate"); } void setDelegate (Object delegate_) { return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_); } void scheduleInRunLoop (NSRunLoop aRunLoop, NSString mode) { return invokeObjcSelf!(void, "scheduleInRunLoop:forMode:", NSRunLoop, NSString)(aRunLoop, mode); } void removeFromRunLoop (NSRunLoop aRunLoop, NSString mode) { return invokeObjcSelf!(void, "removeFromRunLoop:forMode:", NSRunLoop, NSString)(aRunLoop, mode); } NSString domain () { return invokeObjcSelf!(NSString, "domain"); } NSString type () { return invokeObjcSelf!(NSString, "type"); } NSString name () { return invokeObjcSelf!(NSString, "name"); } NSArray addresses () { return invokeObjcSelf!(NSArray, "addresses"); } NSInteger port () { return invokeObjcSelf!(NSInteger, "port"); } void publish () { return invokeObjcSelf!(void, "publish"); } void publishWithOptions (uint options) { return invokeObjcSelf!(void, "publishWithOptions:", uint)(options); } void resolve () { return invokeObjcSelf!(void, "resolve"); } void stop () { return invokeObjcSelf!(void, "stop"); } static NSDictionary dictionaryFromTXTRecordData (NSData txtData) { return invokeObjcSuperClass!(NSDictionary, "dictionaryFromTXTRecordData:", NSData)(txtData); } static NSData dataFromTXTRecordDictionary (NSDictionary txtDictionary) { return invokeObjcSuperClass!(NSData, "dataFromTXTRecordDictionary:", NSDictionary)(txtDictionary); } NSString hostName () { return invokeObjcSelf!(NSString, "hostName"); } void resolveWithTimeout (double timeout) { return invokeObjcSelf!(void, "resolveWithTimeout:", double)(timeout); } bool getInputStream (out NSInputStream inputStream, out NSOutputStream 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) { return invokeObjcSelf!(bool, "setTXTRecordData:", NSData)(recordData); } NSData TXTRecordData () { return invokeObjcSelf!(NSData, "TXTRecordData"); } void startMonitoring () { return invokeObjcSelf!(void, "startMonitoring"); } void stopMonitoring () { return invokeObjcSelf!(void, "stopMonitoring"); } } class NSNetServiceBrowser : NSObject { mixin (ObjcWrap); this () { super(typeof(this).alloc.init.objcObject); } typeof(this) init () { return invokeObjcSelf!(typeof(this), "init"); } Object delegate_ () { return invokeObjcSelf!(Object, "delegate"); } void setDelegate (Object delegate_) { return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_); } void scheduleInRunLoop (NSRunLoop aRunLoop, NSString mode) { return invokeObjcSelf!(void, "scheduleInRunLoop:forMode:", NSRunLoop, NSString)(aRunLoop, mode); } void removeFromRunLoop (NSRunLoop aRunLoop, NSString mode) { return invokeObjcSelf!(void, "removeFromRunLoop:forMode:", NSRunLoop, NSString)(aRunLoop, mode); } void searchForBrowsableDomains () { return invokeObjcSelf!(void, "searchForBrowsableDomains"); } void searchForRegistrationDomains () { return invokeObjcSelf!(void, "searchForRegistrationDomains"); } void searchForServicesOfType (NSString type, NSString domainString) { return invokeObjcSelf!(void, "searchForServicesOfType:inDomain:", NSString, NSString)(type, domainString); } void stop () { return invokeObjcSelf!(void, "stop"); } // TNSDeprecated void searchForAllDomains () { return invokeObjcSelf!(void, "searchForAllDomains"); } }