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();
73 "WebviewServiceBrowseHandler",
"Browsing for %s.%s in domain %s failed", name, type, domain);
80 const char * host_name,
81 const char * interface,
82 const struct sockaddr * addr,
83 const socklen_t addr_size,
85 std::list<std::string> &txt,
88 if (service_list_.find(name) != service_list_.end()) {
89 delete service_list_[name];
90 service_list_.erase(name);
93 for (std::list<std::string>::iterator i = txt.begin(); i != txt.end(); ++i) {
94 std::string::size_type eqind = i->find(
"=");
95 if (eqind != std::string::npos) {
96 std::string key = i->substr(0, eqind);
97 std::string val = i->substr(eqind + 1);
98 if (key ==
"fawkesver") {
100 new NetworkService(name, type, domain, host_name, port, addr, addr_size, txt);
102 if (!(*s == *webview_service_)) {
103 logger_->log_debug(
"WebviewServiceBrowseHandler",
104 "Service %s.%s on %s:%u added",
109 service_list_[name] = s;
122 if (service_list_.find(name) != service_list_.end()) {
123 delete service_list_[name];
124 service_list_.erase(name);
126 logger_->log_debug(
"WebviewServiceBrowseHandler",
"Service %s.%s has been removed", name, type);
135 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.