16 #include "network/ZeroconfBrowser.h" 17 #include "threads/Thread.h" 18 #include "threads/CriticalSection.h" 20 #include <CoreFoundation/CoreFoundation.h> 21 #if defined(TARGET_DARWIN_OSX) 22 #include <CoreServices/CoreServices.h> 24 #include <CFNetwork/CFNetServices.h> 37 bool doAddServiceType(
const std::string& fcr_service_type)
override;
38 bool doRemoveServiceType(
const std::string& fcr_service_type)
override;
40 std::vector<CZeroconfBrowser::ZeroconfService> doGetFoundServices()
override;
45 static void BrowserCallback(CFNetServiceBrowserRef browser, CFOptionFlags flags, CFTypeRef domainOrService, CFStreamError *error,
void *info);
47 static void ResolveCallback(CFNetServiceRef theService, CFStreamError *error,
void *info);
50 void addDiscoveredService(CFNetServiceBrowserRef browser, CFOptionFlags flags,
ZeroconfService const &fcr_service);
52 void removeDiscoveredService(CFNetServiceBrowserRef browser, CFOptionFlags flags,
ZeroconfService const &fcr_service);
55 CFRunLoopRef m_runloop =
nullptr;
59 CCriticalSection m_data_guard;
61 typedef std::map<std::string, CFNetServiceBrowserRef> tBrowserMap;
62 tBrowserMap m_service_browsers;
65 typedef std::map<CFNetServiceBrowserRef, std::vector<std::pair<ZeroconfService, unsigned int> > > tDiscoveredServicesMap;
66 tDiscoveredServicesMap m_discovered_services;
Definition: ZeroconfBrowserDarwin.h:28
Definition: ZeroconfBrowser.h:27
this class provides support for zeroconf browsing
Definition: ZeroconfBrowser.h:24