24 #include <gui_utils/avahi_dispatcher.h>
25 #include <netcomm/service_discovery/service.h>
39 dispatcher_all_for_now_.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_all_for_now));
40 dispatcher_cache_exhausted_.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_cache_exhausted));
41 dispatcher_browse_failed_.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_browse_failed));
42 dispatcher_service_added_.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_service_added));
43 dispatcher_service_removed_.connect(sigc::mem_fun(*
this, &AvahiDispatcher::on_service_removed));
52 return signal_all_for_now_;
61 return signal_cache_exhausted_;
70 return signal_browse_failed_;
76 sigc::signal<void, NetworkService *>
79 return signal_service_added_;
85 sigc::signal<void, NetworkService *>
88 return signal_service_removed_;
94 dispatcher_all_for_now_();
100 dispatcher_cache_exhausted_();
106 dispatcher_browse_failed_();
113 const char * host_name,
114 const char * interface,
115 const struct sockaddr * addr,
116 const socklen_t addr_size,
118 std::list<std::string> &txt,
122 queue_service_added_.push_locked(s);
123 dispatcher_service_added_();
130 queue_service_removed_.push_locked(s);
131 dispatcher_service_removed_();
135 AvahiDispatcher::on_all_for_now()
137 signal_all_for_now_.emit();
141 AvahiDispatcher::on_cache_exhausted()
143 signal_cache_exhausted_.emit();
147 AvahiDispatcher::on_browse_failed()
149 signal_browse_failed_.emit();
153 AvahiDispatcher::on_service_added()
155 queue_service_added_.lock();
156 while (!queue_service_added_.empty()) {
157 NetworkService *s = queue_service_added_.front();
158 signal_service_added_.emit(s);
160 queue_service_added_.pop();
162 queue_service_added_.unlock();
166 AvahiDispatcher::on_service_removed()
168 queue_service_removed_.lock();
169 while (!queue_service_removed_.empty()) {
170 NetworkService *s = queue_service_removed_.front();
171 signal_service_removed_.emit(s);
173 queue_service_removed_.pop();
175 queue_service_removed_.unlock();
sigc::signal< void > signal_all_for_now()
Get "all for now" signal.
virtual void all_for_now()
All results have been retrieved.
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.
sigc::signal< void > signal_browse_failed()
Get "browse failed" signal.
AvahiDispatcher()
Constructor.
sigc::signal< void > signal_cache_exhausted()
Get "cache exhausted" signal.
virtual void browse_failed(const char *name, const char *type, const char *domain)
Failed to browse for a given service.
virtual void cache_exhausted()
Cache exhausted.
virtual void service_removed(const char *name, const char *type, const char *domain)
A service has been removed from the network.
sigc::signal< void, NetworkService * > signal_service_removed()
Get "service remove" signal.
sigc::signal< void, NetworkService * > signal_service_added()
Get "service added" signal.
Representation of a service announced or found via service discovery (i.e.
Fawkes library namespace.