service_discovery
Service.hpp
Go to the documentation of this file.
1 #ifndef _SERVICE_DISCOVERY_SERVICE_H_
2 #define _SERVICE_DISCOVERY_SERVICE_H_
3 
4 #include <string>
5 #include <list>
6 #include <iostream>
7 #include <avahi-client/lookup.h>
8 #include <avahi-client/client.h>
9 #include <service_discovery/impl/avahi/Client.hpp>
10 #include <service_discovery/impl/avahi/ServiceConfiguration.hpp>
11 
12 namespace servicediscovery {
13 namespace avahi {
14 class Service;
15 class Client;
16 }}
17 
18 namespace servicediscovery {
19 namespace avahi {
20 
21 class Service {
22 protected:
26  uint16_t port;
27 
29  AvahiStringList *txt;
30 
32  std::list<std::string> stringlist;
33 
34  static AvahiStringList* getTxt(std::list<std::string>);
35 
36  void setTxt(AvahiStringList* ntxt) {
37  if (txt) {
38  avahi_string_list_free(txt);
39  }
40  txt = ntxt;
41  }
42 
48  void setStringList(std::list<std::string> list);
49 
52 
55 
56  void addDescriptionsToConfiguration(const std::list<std::string>& strlist);
57 
58 
59 public:
60 
62 
63  Service(const Service&);
64 
65  Service(Client *client, AvahiIfIndex interf, AvahiProtocol prot, std::string name,
66  std::string type, std::string domain, uint16_t port = 0,
67  std::list<std::string> list = std::list<std::string>());
68 
69  virtual ~Service();
70 
71  bool operator==(const Service&);
72 
73  uint16_t getPort() const { return port; }
74 
75  AvahiStringList *getTxt() const { return txt; }
76 
77  std::list<std::string> getStringList() const { return stringlist; }
78 
79  std::string getName() const { return configuration_.getName();}
80 
81  void setConfiguration(const ServiceConfiguration& config);
82 
83  ServiceConfiguration getConfiguration() const;
84 
85  Client* getClient();
86 };
87 
88 } // end namespace avahi
89 } // end namespace servicediscovery
90 #endif /* _SERVICE_DISCOVERY_SERVICE_H_ */
Client represent a wrapper to access the avahi_client (a singleton). Every avahi program must set up ...
Definition: Client.hpp:64
Definition: Client.cpp:7
Description and parameterization of a service.
Definition: ServiceConfiguration.hpp:21
AvahiStringList * getTxt() const
Definition: Service.hpp:75
Definition: Service.hpp:21
uint16_t port
Definition: Service.hpp:26
AvahiStringList * txt
Definition: Service.hpp:29
std::string getName() const
Definition: Service.hpp:79
Client * client_
Definition: Service.hpp:51
uint16_t getPort() const
Definition: Service.hpp:73
void setTxt(AvahiStringList *ntxt)
Definition: Service.hpp:36
std::list< std::string > getStringList() const
Definition: Service.hpp:77
std::list< std::string > stringlist
Definition: Service.hpp:32
ServiceConfiguration configuration_
Definition: Service.hpp:54
bool dontCheckTXT
Definition: Service.hpp:61
std::string getName() const
Definition: ServiceDescription.cpp:43