Skip to content

Instantly share code, notes, and snippets.

@mertsalik
Created December 26, 2016 22:04
Show Gist options
  • Save mertsalik/500af1682faeeded9eb980898e7d0555 to your computer and use it in GitHub Desktop.
Save mertsalik/500af1682faeeded9eb980898e7d0555 to your computer and use it in GitHub Desktop.
import Foundation
class PrinterServiceBrowser: NSObject, NSNetServiceDelegate, NSNetServiceBrowserDelegate {
var services: NSMutableArray!
var serviceBrowser: NSNetServiceBrowser!
var service: NSNetService!
var onFinish: (NSMutableArray -> Void)
init(onFinishBrowsing: NSMutableArray -> Void) {
self.onFinish = onFinishBrowsing
}
func startBrowsing() {
if (services != nil) {
services.removeAllObjects()
} else {
services = NSMutableArray()
}
serviceBrowser = NSNetServiceBrowser()
serviceBrowser.delegate = self
serviceBrowser.searchForServicesOfType("_printer._tcp.", inDomain: "")
}
func netServiceBrowser(browser: NSNetServiceBrowser, didFindService service: NSNetService, moreComing: Bool) {
services.addObject(service)
print(service.name)
connect()
if !moreComing {
self.onFinish(self.services)
}
}
func connect() {
service = services.firstObject! as! NSNetService
service.delegate = self
service.resolveWithTimeout(30.0)
}
func netService(sender: NSNetService, didNotResolve errorDict: [String : NSNumber]) {
service.delegate = nil
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment