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_;