24 #include <gui_utils/avahi_dispatcher.h>
25 #include <netcomm/service_discovery/service.h>
41 AvahiDispatcher::AvahiDispatcher()
43 __dispatcher_all_for_now.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_all_for_now));
44 __dispatcher_cache_exhausted.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_cache_exhausted));
45 __dispatcher_browse_failed.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_browse_failed));
46 __dispatcher_service_added.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_service_added));
47 __dispatcher_service_removed.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_service_removed));
55 AvahiDispatcher::signal_all_for_now()
57 return __signal_all_for_now;
65 AvahiDispatcher::signal_cache_exhausted()
67 return __signal_cache_exhausted;
75 AvahiDispatcher::signal_browse_failed()
77 return __signal_browse_failed;
84 sigc::signal<void, NetworkService *>
85 AvahiDispatcher::signal_service_added()
87 return __signal_service_added;
94 sigc::signal<void, NetworkService *>
95 AvahiDispatcher::signal_service_removed()
97 return __signal_service_removed;
102 AvahiDispatcher::all_for_now()
104 __dispatcher_all_for_now();
109 AvahiDispatcher::cache_exhausted()
111 __dispatcher_cache_exhausted();
116 AvahiDispatcher::browse_failed(
const char *name,
120 __dispatcher_browse_failed();
125 AvahiDispatcher::service_added(
const char *name,
128 const char *host_name,
129 const struct sockaddr *addr,
130 const socklen_t addr_size,
132 std::list<std::string> &txt,
136 addr, addr_size, txt);
137 __queue_service_added.push_locked(s);
138 __dispatcher_service_added();
143 AvahiDispatcher::service_removed(
const char *name,
148 __queue_service_removed.push_locked(s);
149 __dispatcher_service_removed();
154 AvahiDispatcher::on_all_for_now()
156 __signal_all_for_now.emit();
160 AvahiDispatcher::on_cache_exhausted()
162 __signal_cache_exhausted.emit();
166 AvahiDispatcher::on_browse_failed()
168 __signal_browse_failed.emit();
172 AvahiDispatcher::on_service_added()
174 __queue_service_added.lock();
175 while (! __queue_service_added.empty()) {
176 NetworkService *s = __queue_service_added.front();
177 __signal_service_added.emit(s);
179 __queue_service_added.pop();
181 __queue_service_added.unlock();
185 AvahiDispatcher::on_service_removed()
187 __queue_service_removed.lock();
188 while (! __queue_service_removed.empty()) {
189 NetworkService *s = __queue_service_removed.front();
190 __signal_service_removed.emit(s);
192 __queue_service_removed.pop();
194 __queue_service_removed.unlock();
Fawkes library namespace.
Representation of a service announced or found via service discovery (i.e.