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 char *interface,
130 const struct sockaddr *addr,
131 const socklen_t addr_size,
133 std::list<std::string> &txt,
137 addr, addr_size, txt);
138 __queue_service_added.push_locked(s);
139 __dispatcher_service_added();
144 AvahiDispatcher::service_removed(
const char *name,
149 __queue_service_removed.push_locked(s);
150 __dispatcher_service_removed();
155 AvahiDispatcher::on_all_for_now()
157 __signal_all_for_now.emit();
161 AvahiDispatcher::on_cache_exhausted()
163 __signal_cache_exhausted.emit();
167 AvahiDispatcher::on_browse_failed()
169 __signal_browse_failed.emit();
173 AvahiDispatcher::on_service_added()
175 __queue_service_added.lock();
176 while (! __queue_service_added.empty()) {
177 NetworkService *s = __queue_service_added.front();
178 __signal_service_added.emit(s);
180 __queue_service_added.pop();
182 __queue_service_added.unlock();
186 AvahiDispatcher::on_service_removed()
188 __queue_service_removed.lock();
189 while (! __queue_service_removed.empty()) {
190 NetworkService *s = __queue_service_removed.front();
191 __signal_service_removed.emit(s);
193 __queue_service_removed.pop();
195 __queue_service_removed.unlock();
Fawkes library namespace.
Representation of a service announced or found via service discovery (i.e.