Fawkes API  Fawkes Development Version
network_manager.h
1 
2 /***************************************************************************
3  * network_manager.h - Fawkes network manager
4  *
5  * Created: Wed Nov 15 23:52:40 2006
6  * Copyright 2006-2011 Tim Niemueller [www.niemueller.de]
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #ifndef _FAWKES_NETWORK_MANAGER_H_
25 #define _FAWKES_NETWORK_MANAGER_H_
26 
27 #include <string>
28 
29 namespace fawkes {
30 class ThreadCollector;
31 class FawkesNetworkServerThread;
32 class FawkesNetworkHandler;
33 class FawkesNetworkHub;
34 class AvahiThread;
35 class NetworkNameResolver;
36 class ServicePublisher;
37 class ServiceBrowser;
38 
40 {
41 public:
42  FawkesNetworkManager(ThreadCollector * thread_collector,
43  bool enable_ipv4,
44  bool enable_ipv6,
45  const std::string &listen_ipv4,
46  const std::string &listen_ipv6,
47  unsigned short int fawkes_port,
48  const char * service_name);
50 
55 
56  unsigned short int fawkes_port() const;
57 
58 private:
59  unsigned short int fawkes_port_;
60  ThreadCollector * thread_collector_;
61  FawkesNetworkServerThread *fawkes_network_thread_;
62  AvahiThread * avahi_thread_;
63 
64  NetworkNameResolver *nnresolver_;
65  ServicePublisher * service_publisher_;
66  ServiceBrowser * service_browser_;
67 };
68 
69 } // end namespace fawkes
70 
71 #endif
Avahi main thread.
Definition: avahi_thread.h:55
Fawkes Network Hub.
Definition: hub.h:34
Fawkes Network Manager.
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.
FawkesNetworkHub * hub()
Get Fawkes network hub.
NetworkNameResolver * nnresolver()
Get network name resolver.
unsigned short int fawkes_port() const
Get Fawkes TCP port.
ServiceBrowser * service_browser()
Get service browser.
ServicePublisher * service_publisher()
Get service publisher.
Fawkes Network Thread.
Definition: server_thread.h:49
Network name and address resolver.
Definition: resolver.h:45
Service browser.
Service publisher interface.
Fawkes library namespace.