24 #include <core/exceptions/system.h> 25 #include <core/threading/thread_collector.h> 26 #include <netcomm/fawkes/handler.h> 27 #include <netcomm/fawkes/network_manager.h> 28 #include <netcomm/fawkes/server_thread.h> 29 #include <netcomm/utils/resolver.h> 31 # include <netcomm/dns-sd/avahi_thread.h> 32 # include <netcomm/service_discovery/service.h> 34 # include <netcomm/service_discovery/dummy_service_browser.h> 35 # include <netcomm/service_discovery/dummy_service_publisher.h> 63 const std::string &listen_ipv4,
64 const std::string &listen_ipv6,
65 unsigned short int fawkes_port,
66 const char * service_name)
69 thread_collector_ = thread_collector;
71 enable_ipv4, enable_ipv6, listen_ipv4, listen_ipv6, fawkes_port_, thread_collector_);
72 thread_collector_->
add(fawkes_network_thread_);
74 avahi_thread_ =
new AvahiThread(enable_ipv4, enable_ipv6);
75 service_publisher_ = avahi_thread_;
76 service_browser_ = avahi_thread_;
77 thread_collector_->
add(avahi_thread_);
80 new NetworkService(nnresolver_, service_name,
"_fawkes._tcp", fawkes_port_);
82 delete fawkes_service;
93 thread_collector_->
remove(fawkes_network_thread_);
94 delete fawkes_network_thread_;
96 thread_collector_->
remove(avahi_thread_);
99 delete service_publisher_;
100 delete service_browser_;
111 return fawkes_network_thread_;
129 return service_publisher_;
138 return service_browser_;
Service publisher interface.
NetworkNameResolver * nnresolver()
Get network name resolver.
unsigned short int fawkes_port() const
Get Fawkes TCP port.
virtual void remove(ThreadList &tl)=0
Remove multiple threads.
Fawkes library namespace.
FawkesNetworkHub * hub()
Get Fawkes network hub.
Dummy service publisher interface.
void publish_service(NetworkService *service)
Publish service.
~FawkesNetworkManager()
Destructor.
ServicePublisher * service_publisher()
Get service publisher.
FawkesNetworkManager(ThreadCollector *thread_collector, bool enable_ipv4, bool enable_ipv6, const std::string &listen_ipv4, const std::string &listen_ipv6, unsigned short int fawkes_port, const char *service_name)
Constructor.
virtual void add(ThreadList &tl)=0
Add multiple threads.
Representation of a service announced or found via service discovery (i.e.
Network name and address resolver.
ServiceBrowser * service_browser()
Get service browser.