service_discovery
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
servicediscovery::avahi::ServiceBrowser Class Reference

#include <ServiceBrowser.hpp>

Public Member Functions

 ServiceBrowser (Client *client, std::string type)
 
 ServiceBrowser (Client *client, AvahiIfIndex interface, AvahiProtocol protocol, std::string type, std::string domain, AvahiLookupFlags flags, void *data)
 
virtual ~ServiceBrowser ()
 
void cleanup ()
 
void serviceAddedConnect (const sigc::slot< void, RemoteService > &slot_)
 
void serviceAddedEmit (RemoteService rms)
 
void serviceRemovedConnect (const sigc::slot< void, RemoteService > &slot_)
 
void serviceRemovedEmit (RemoteService rms)
 
void serviceUpdatedConnect (const sigc::slot< void, RemoteService > &slot_)
 
void serviceUpdatedEmit (RemoteService rms)
 
List< RemoteServicegetServices ()
 
List< RemoteService > * getInternalServices ()
 
boost::mutex & getServicesMutex ()
 
AvahiServiceBrowser * getAvahiBrowser ()
 
ClientgetClient ()
 

Static Public Member Functions

static void browseCallback (AvahiServiceBrowser *sb, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char *name, const char *type, const char *domain, AvahiLookupResultFlags flags, void *userdata)
 
static void resolveCallback (AvahiServiceResolver *sr, AvahiIfIndex interface, AvahiProtocol protocol, AvahiResolverEvent event, const char *name, const char *type, const char *domain, const char *host, const AvahiAddress *address, uint16_t port, AvahiStringList *list, AvahiLookupResultFlags flags, void *userdata)
 

Static Public Attributes

const static int MAX_RESOLVER_TRIES = 5
 

Detailed Description

a class encapsulating the service browser object of avahi it also keeps track of all currently active services TODO service browser can browse only services of specific type. Implement a service type browser

Constructor & Destructor Documentation

◆ ServiceBrowser() [1/2]

servicediscovery::avahi::ServiceBrowser::ServiceBrowser ( Client client,
std::string  type 
)

Class to browse existing services given a avahi client and a type to browse

Parameters
client
type

◆ ServiceBrowser() [2/2]

servicediscovery::avahi::ServiceBrowser::ServiceBrowser ( Client client,
AvahiIfIndex  interface,
AvahiProtocol  protocol,
std::string  type,
std::string  domain,
AvahiLookupFlags  flags,
void *  data 
)

Browser for existing services, given specific avahi definitions

Parameters
clientReference to avahi client
interfaceAvahiIfIndex interface, // In most cases pass AVAHI_IF_UNSPEC here
protocolAvahiProtocol protocol, // In most cases pass AVAHI_PROTO_UNSPEC here
typeA service type such as "_http._tcp"
domainA domain to browse in. In most cases you want to pass NULL here for the default domain (usually ".local")
flags
data

◆ ~ServiceBrowser()

servicediscovery::avahi::ServiceBrowser::~ServiceBrowser ( )
virtual

Member Function Documentation

◆ browseCallback()

void servicediscovery::avahi::ServiceBrowser::browseCallback ( AvahiServiceBrowser *  sb,
AvahiIfIndex  interface,
AvahiProtocol  protocol,
AvahiBrowserEvent  event,
const char *  name,
const char *  type,
const char *  domain,
AvahiLookupResultFlags  flags,
void *  userdata 
)
static

◆ cleanup()

void servicediscovery::avahi::ServiceBrowser::cleanup ( )

Cleanup internal instances of avahi_browers and resolvers (do not call if you are using avahi_client_free)

◆ getAvahiBrowser()

AvahiServiceBrowser* servicediscovery::avahi::ServiceBrowser::getAvahiBrowser ( )
inline

◆ getClient()

Client* servicediscovery::avahi::ServiceBrowser::getClient ( )
inline

◆ getInternalServices()

List<RemoteService>* servicediscovery::avahi::ServiceBrowser::getInternalServices ( )
inline

◆ getServices()

List<RemoteService> servicediscovery::avahi::ServiceBrowser::getServices ( )
inline

◆ getServicesMutex()

boost::mutex& servicediscovery::avahi::ServiceBrowser::getServicesMutex ( )
inline

◆ resolveCallback()

void servicediscovery::avahi::ServiceBrowser::resolveCallback ( AvahiServiceResolver *  sr,
AvahiIfIndex  interface,
AvahiProtocol  protocol,
AvahiResolverEvent  event,
const char *  name,
const char *  type,
const char *  domain,
const char *  host,
const AvahiAddress *  address,
uint16_t  port,
AvahiStringList *  list,
AvahiLookupResultFlags  flags,
void *  userdata 
)
static

◆ serviceAddedConnect()

void servicediscovery::avahi::ServiceBrowser::serviceAddedConnect ( const sigc::slot< void, RemoteService > &  slot_)
inline

generic signal for a browser event

◆ serviceAddedEmit()

void servicediscovery::avahi::ServiceBrowser::serviceAddedEmit ( RemoteService  rms)
inline

◆ serviceRemovedConnect()

void servicediscovery::avahi::ServiceBrowser::serviceRemovedConnect ( const sigc::slot< void, RemoteService > &  slot_)
inline

◆ serviceRemovedEmit()

void servicediscovery::avahi::ServiceBrowser::serviceRemovedEmit ( RemoteService  rms)
inline

◆ serviceUpdatedConnect()

void servicediscovery::avahi::ServiceBrowser::serviceUpdatedConnect ( const sigc::slot< void, RemoteService > &  slot_)
inline

◆ serviceUpdatedEmit()

void servicediscovery::avahi::ServiceBrowser::serviceUpdatedEmit ( RemoteService  rms)
inline

Member Data Documentation

◆ MAX_RESOLVER_TRIES

const static int servicediscovery::avahi::ServiceBrowser::MAX_RESOLVER_TRIES = 5
static

the browser will keep the service resolver object upon this amount of failed attempts


The documentation for this class was generated from the following files: