23 #include "service_browse_handler.h" 25 #include <logging/logger.h> 46 __webview_service = webview_service;
49 WebviewServiceBrowseHandler::~WebviewServiceBrowseHandler()
51 for (ServiceList::iterator s = __service_list.begin(); s != __service_list.end(); ++s) {
54 __service_list.clear();
76 __logger->log_warn(
"WebviewServiceBrowseHandler",
"Browsing for %s.%s in domain %s failed",
85 const char *host_name,
86 const char *interface,
87 const struct sockaddr *addr,
88 const socklen_t addr_size,
90 std::list<std::string> &txt,
93 if (__service_list.find(name) != __service_list.end()) {
94 delete __service_list[name];
95 __service_list.erase(name);
98 for (std::list<std::string>::iterator i = txt.begin(); i != txt.end(); ++i) {
99 std::string::size_type eqind = i->find(
"=");
100 if (eqind != std::string::npos) {
101 std::string key = i->substr(0, eqind);
102 std::string val = i->substr(eqind + 1);
103 if (key ==
"fawkesver") {
105 addr, addr_size, txt);
107 if (! (*s == *__webview_service)) {
108 __logger->log_debug(
"WebviewServiceBrowseHandler",
"Service %s.%s on %s:%u added",
109 name, type, host_name, port);
110 __service_list[name] = s;
126 if (__service_list.find(name) != __service_list.end()) {
127 delete __service_list[name];
128 __service_list.erase(name);
130 __logger->log_debug(
"WebviewServiceBrowseHandler",
"Service %s.%s has been removed",
141 return __service_list;
virtual void service_added(const char *name, const char *type, const char *domain, const char *host_name, const char *interface, const struct sockaddr *addr, const socklen_t addr_size, uint16_t port, std::list< std::string > &txt, int flags)
A service has been announced on the network.
Fawkes library namespace.
virtual void service_removed(const char *name, const char *type, const char *domain)
A service has been removed from the network.
virtual void cache_exhausted()
Cache exhausted.
Representation of a service announced or found via service discovery (i.e.
WebviewServiceBrowseHandler(fawkes::Logger *logger, fawkes::NetworkService *webview_service)
Constructor.
ServiceList & service_list()
Get the service list.
virtual void all_for_now()
All results have been retrieved.
std::map< std::string, fawkes::NetworkService * > ServiceList
A map of services.
virtual void browse_failed(const char *name, const char *type, const char *domain)
Failed to browse for a given service.