service_discovery
RemoteService.hpp
Go to the documentation of this file.
1 #ifndef _SERVICE_DISCOVERYREMOTESERVICE_H_
2 #define _SERVICE_DISCOVERYREMOTESERVICE_H_
3 
4 namespace servicediscovery {
5 namespace avahi {
6 
7 class RemoteService;
8 class ServiceBrowser;
9 struct ResolveData;
10 
11 }}
12 
13 #include <sigc++/sigc++.h>
14 #include <avahi-client/lookup.h>
15 #include <iostream>
16 #include <service_discovery/impl/avahi/Service.hpp>
17 
18 //typedef sigc::slot<void,
19 // RemoteService*,
20 // AvahiResolverEvent,
21 // AvahiLookupResultFlags,
22 // void*> AvahiRemoteServiceSlot;
23 
24 namespace servicediscovery {
25 namespace avahi {
26 
31 class RemoteService: public Service {
32 protected:
40  std::string host_name;
44  AvahiAddress address;
45 
49  AvahiServiceResolver *sr;
50 
51 public:
52  //the data used in the service browser. pointer also used here so that the memory is freed along with the service resolver
54 
56  ServiceBrowser *browser,
57  AvahiIfIndex interf,
58  AvahiProtocol prot,
59  std::string name,
60  std::string type,
61  std::string domain,
62  std::list<std::string> list,
63  uint16_t port,
64  std::string host_name,
65  AvahiAddress address,
66  AvahiServiceResolver *sr
67  );
68 
69  virtual ~RemoteService();
70 
71  AvahiAddress getAddress() const
72  {
73  return address;
74  }
75 
77  {
78  return browser;
79  }
80 
81  std::string getHostName() const
82  {
83  return host_name;
84  }
85 
86  AvahiServiceResolver* getServiceResolver()
87  {
88  return sr;
89  }
90 
94  void freeServiceResolver();
95 
96  std::string getAddressString();
97 
98  bool operator==(RemoteService serv);
99 };
100 
101 } // end namespace avahi
102 } // end namespace servicediscovery
103 #endif /* _SERVICE_DISCOVERYREMOTESERVICE_H_ */
class for handling service that are found and resolved by the service browsers
Definition: RemoteService.hpp:31
Definition: Client.cpp:7
ServiceBrowser * getBrowser() const
Definition: RemoteService.hpp:76
ResolveData * resolveData
Definition: RemoteService.hpp:53
std::string host_name
Definition: RemoteService.hpp:40
AvahiAddress address
Definition: RemoteService.hpp:44
struct used to count failed attempts of service resolution
Definition: ServiceBrowser.hpp:31
AvahiServiceResolver * sr
Definition: RemoteService.hpp:49
ServiceBrowser * browser
Definition: RemoteService.hpp:36
AvahiAddress getAddress() const
Definition: RemoteService.hpp:71
Definition: Service.hpp:21
Definition: ServiceBrowser.hpp:42
std::string getHostName() const
Definition: RemoteService.hpp:81
AvahiServiceResolver * getServiceResolver()
Definition: RemoteService.hpp:86