1 #ifndef _SERVICE_DISCOVERY_AVAHICLIENT_H_
2 #define _SERVICE_DISCOVERY_AVAHICLIENT_H_
4 #define DEFAULT_THREAD_POLL
6 #ifdef DEFAULT_THREAD_POLL
7 #define DEFAULT_POLL ThreadPoll
9 #define DEFAULT_POLL SimplePoll
12 #include <avahi-client/client.h>
13 #include <sigc++/sigc++.h>
20 #include <avahi-common/error.h>
21 #include <avahi-common/thread-watch.h>
22 #include <base-logging/Singleton.hpp>
24 namespace servicediscovery {
50 virtual void update(
const Event& event) = 0;
56 virtual void stop() = 0;
64 class Client :
public base::Singleton<Client>
66 friend class base::Singleton<
Client>;
78 enum Mode { INIT, NORMAL, RECOVERY };
83 static AvahiClient* msAvahiClient;
89 static AvahiThreadedPoll* msPoll;
95 std::vector<ClientObserver*> msObservers;
105 static void stateUpdateCallback(AvahiClient* client, AvahiClientState state,
void* userdata);
111 void start(
bool runningDaemonRequired);
Client represent a wrapper to access the avahi_client (a singleton). Every avahi program must set up ...
Definition: Client.hpp:64
EventType type
Definition: Client.hpp:42
static void lock()
Definition: Client.cpp:33
virtual void update(const Event &event)=0
Definition: Client.hpp:37
Definition: Client.hpp:40
static AvahiClientState getAvahiClientState()
Definition: Client.cpp:25
void addObserver(ClientObserver *clientObserver)
Definition: Client.cpp:125
Definition: Client.hpp:153
Definition: Client.hpp:37
virtual ~Client()
Definition: Client.cpp:30
Client()
Definition: Client.cpp:13
EventType
Definition: Client.hpp:37
static AvahiClient * getAvahiClient()
Definition: Client.cpp:21
static void unlock()
Definition: Client.cpp:37
~UniqueClientLock()
Definition: Client.cpp:147
virtual ~ClientObserver()
Definition: Client.hpp:45
Definition: Client.hpp:33
Definition: Client.hpp:37
UniqueClientLock()
Definition: Client.cpp:143
void removeObserver(ClientObserver *clientObserver)
Definition: Client.cpp:134