1 #ifndef _SERVICEDISCOVERY_CORE_H_ 2 #define _SERVICEDISCOVERY_CORE_H_ 6 #include <boost/thread.hpp> 7 #include <service_discovery/impl/avahi/Client.hpp> 8 #include <service_discovery/impl/avahi/ServiceBrowser.hpp> 9 #include <service_discovery/impl/avahi/ServiceEvent.hpp> 10 #include <service_discovery/impl/avahi/ServicePattern.hpp> 11 #include <service_discovery/impl/avahi/LocalService.hpp> 100 void listenOn(
const std::vector<std::string>& types);
145 std::vector<ServiceDescription>
findServices(
const SearchPattern& pattern = SearchPattern())
const;
150 std::vector<ServiceDescription>
findServices(
const ServicePattern& pattern,
151 const std::string& name_space =
"*")
const;
174 boost::unique_lock<boost::mutex> lock(mAddedComponentMutex);
175 ServiceAddedSignal.connect(slot);
179 boost::unique_lock<boost::mutex> lock(mRemovedComponentMutex);
180 ServiceRemovedSignal.connect(slot);
188 static std::map<std::string, ServiceDescription>
getVisibleServices(
const SearchPattern& pattern = SearchPattern(
""));
193 static void registerCallbacks(
const std::string& serviceName,
const sigc::slot<void, ServiceEvent>& serviceAdded,
const sigc::slot<void, ServiceEvent>& serviceRemoved);
201 enum Mode { NONE = 0, LISTEN_ONLY = 1, PUBLISH = 2};
221 std::vector<ServiceDescription> _findServices(
const SearchPattern& pattern)
const;
237 void _stop(
bool lock_client,
bool wait_until_unpublished =
true);
245 void _listenOn(
const std::vector<std::string>& types);
255 void cleanupBrowsers();
257 sigc::signal<void, ServiceEvent> ServiceAddedSignal;
258 sigc::signal<void, ServiceEvent> ServiceRemovedSignal;
260 mutable boost::mutex mAddedComponentMutex;
261 mutable boost::mutex mRemovedComponentMutex;
262 mutable boost::mutex mUpdatedComponentMutex;
265 static boost::mutex mServicesMutex;
274 std::map<std::string, ServiceBrowser*> mBrowsers;
283 std::vector<std::string> mListenTypes;
289 static std::vector<ServiceDiscovery*> msServiceDiscoveries;
295 #endif // _SERVICEDISCOVERY_CORE_H_ static std::map< std::string, ServiceDescription > getVisibleServices(const SearchPattern &pattern=SearchPattern(""))
Definition: ServiceDiscovery.cpp:137
class for handling service that are found and resolved by the service browsers
Definition: RemoteService.hpp:31
void start(const ServiceConfiguration &conf)
Definition: ServiceDiscovery.cpp:184
std::vector< std::string > getServiceNames()
Definition: ServiceDiscovery.cpp:318
static void registerCallbacks(const std::string &serviceName, const sigc::slot< void, ServiceEvent > &serviceAdded, const sigc::slot< void, ServiceEvent > &serviceRemoved)
Definition: ServiceDiscovery.cpp:106
bool isRunning() const
Definition: ServiceDiscovery.cpp:331
Description and parameterization of a service.
Definition: ServiceConfiguration.hpp:21
A wrapper class for the avahi service discovery.
Definition: ServiceDiscovery.hpp:77
void listenOn(const std::vector< std::string > &types)
Definition: ServiceDiscovery.cpp:201
static std::vector< ServiceDescription > getUpdateableServices()
Definition: ServiceDiscovery.cpp:163
void update(const ServiceDescription &desc)
Definition: ServiceDiscovery.cpp:209
Description and parameterization of a service instance.
Definition: ServiceDescription.hpp:21
std::vector< ServiceDescription > findServices(const SearchPattern &pattern=SearchPattern()) const
Definition: ServiceDiscovery.cpp:351
Definition: Client.hpp:40
void addedComponentConnect(const sigc::slot< void, ServiceEvent > &slot)
Definition: ServiceDiscovery.hpp:173
Definition: ServiceDiscovery.hpp:18
void stop()
Definition: ServiceDiscovery.cpp:482
virtual ~ServiceDiscovery()
Definition: ServiceDiscovery.cpp:28
ServiceConfiguration getConfiguration() const
Definition: ServiceDiscovery.cpp:341
Definition: ServiceDiscovery.hpp:17
void removedComponentConnect(const sigc::slot< void, ServiceEvent > &slot)
Definition: ServiceDiscovery.hpp:178
Definition: Client.hpp:33
ServiceDiscovery()
Definition: ServiceDiscovery.cpp:13
LocalService for service objects that are meant to be published. Should be not used directly unless y...
Definition: LocalService.hpp:20
SDException
Definition: ServiceDiscovery.hpp:16
static ServiceDescription getServiceDescription(const std::string &servicename)
Definition: ServiceDiscovery.cpp:71