#pragma once #include namespace Swift { class String; class LinkLocalServiceInfo; class LinkLocalServiceID; class DNSSDBrowseQuery; class DNSSDRegisterQuery; class DNSSDResolveServiceQuery; class DNSSDResolveHostnameQuery; class DNSSDQuerier { public: virtual ~DNSSDQuerier(); virtual boost::shared_ptr createBrowseQuery() = 0; virtual boost::shared_ptr createRegisterQuery( const String& name, int port, const LinkLocalServiceInfo& info) = 0; virtual boost::shared_ptr createResolveServiceQuery( const LinkLocalServiceID&) = 0; virtual boost::shared_ptr createResolveHostnameQuery( const String& hostname, int interfaceIndex) = 0; }; }