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 
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
void freeServiceResolver()
Definition: RemoteService.cpp:44
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
uint16_t port
Definition: Service.hpp:26
std::string getAddressString()
Definition: RemoteService.cpp:59
Definition: ServiceBrowser.hpp:42
std::string getHostName() const
Definition: RemoteService.hpp:81
AvahiServiceResolver * getServiceResolver()
Definition: RemoteService.hpp:86
virtual ~RemoteService()
Definition: RemoteService.cpp:28
bool operator==(RemoteService serv)
Definition: RemoteService.cpp:32
RemoteService(ServiceBrowser *browser, AvahiIfIndex interf, AvahiProtocol prot, std::string name, std::string type, std::string domain, std::list< std::string > list, uint16_t port, std::string host_name, AvahiAddress address, AvahiServiceResolver *sr)
Definition: RemoteService.cpp:10