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
29namespace fawkes {
30class ThreadCollector;
31class FawkesNetworkServerThread;
32class FawkesNetworkHandler;
33class FawkesNetworkHub;
34class AvahiThread;
35class NetworkNameResolver;
36class ServicePublisher;
37class ServiceBrowser;
38
40{
41public:
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
58private:
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.