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

Description and parameterization of a service instance. More...

#include <ServiceDescription.hpp>

Inheritance diagram for servicediscovery::avahi::ServiceDescription:
servicediscovery::avahi::ServiceConfiguration

Public Member Functions

 ServiceDescription ()
 
 ServiceDescription (const std::string &servicename)
 
virtual ~ServiceDescription ()
 
bool operator== (const ServiceDescription &other) const
 
bool operator!= (const ServiceDescription &other) const
 
std::string getName () const
 
void setName (const std::string &name)
 
bool compareWithoutTXT (const ServiceDescription &other) const
 
std::string getDescription (const std::string &label) const
 
void setDescription (const std::string &label, const std::string &description)
 
void setRawDescriptions (const std::list< std::string > &descriptions)
 
std::list< std::string > getRawDescriptions () const
 
std::vector< std::string > getLabels () const
 
void setType (const std::string &type)
 
std::string getType () const
 
void setProtocol (int protocol)
 
int getProtocol () const
 
std::string getProtocolString () const
 
void setDomain (const std::string &domain)
 
std::string getDomain () const
 
void setInterfaceIndex (int interfaceIndex)
 
int getInterfaceIndex () const
 

Protected Member Functions

int getDescriptionSize () const
 

Protected Attributes

std::string name_
 
std::string type_
 
AvahiProtocol protocol_
 
std::string domain_
 
AvahiIfIndex interfaceIndex_
 
std::list< std::string > descriptions_
 
std::vector< std::string > labels_
 

Static Protected Attributes

static const uint32_t mDNSMaxRecordSize = 200
 
static const uint32_t mDNSMaxPayloadSize = 1300
 

Friends

class ServiceEvent
 

Detailed Description

Description and parameterization of a service instance.

Constructor & Destructor Documentation

servicediscovery::avahi::ServiceDescription::ServiceDescription ( )
servicediscovery::avahi::ServiceDescription::ServiceDescription ( const std::string &  servicename)
servicediscovery::avahi::ServiceDescription::~ServiceDescription ( )
virtual

Member Function Documentation

bool servicediscovery::avahi::ServiceDescription::compareWithoutTXT ( const ServiceDescription other) const

compare this ServiceDescription without concering TXT data

std::string servicediscovery::avahi::ServiceDescription::getDescription ( const std::string &  label) const

Get the description associated with this service and a certain label

Parameters
label
int servicediscovery::avahi::ServiceDescription::getDescriptionSize ( ) const
protected
std::string servicediscovery::avahi::ServiceDescription::getDomain ( ) const

Get domain sucha as .local

int servicediscovery::avahi::ServiceDescription::getInterfaceIndex ( ) const

Get interface index

std::vector< std::string > servicediscovery::avahi::ServiceDescription::getLabels ( ) const

Retrieve all labels that are available in the description of the service

Returns
List of labels
std::string servicediscovery::avahi::ServiceDescription::getName ( ) const
int servicediscovery::avahi::ServiceDescription::getProtocol ( ) const
std::string servicediscovery::avahi::ServiceDescription::getProtocolString ( ) const
std::list< std::string > servicediscovery::avahi::ServiceDescription::getRawDescriptions ( ) const

Get all raw description fields

Returns
List of txt fields
std::string servicediscovery::avahi::ServiceDescription::getType ( ) const

Retrieve type of service

Returns
type
bool servicediscovery::avahi::ServiceDescription::operator!= ( const ServiceDescription other) const
bool servicediscovery::avahi::ServiceDescription::operator== ( const ServiceDescription other) const
void servicediscovery::avahi::ServiceDescription::setDescription ( const std::string &  label,
const std::string &  description 
)

Set a description field (identified by a label) associated with this service. Note that the description should be as brief as possible for performance reasons, since a low level protocol mDNS needs to handle the data.

This method can be used several times for adding different label/descriptions to this service. It's also possible to overwrite/update a specific label with another description.

Parameters
labelLabel of description
descriptionDescription
Exceptions
std::runtime_errorif label exceeds length of 200 byte or payload size will exceed the set maximum (currently set to 1300 bytes)
void servicediscovery::avahi::ServiceDescription::setDomain ( const std::string &  domain)

Set domain such as .local

void servicediscovery::avahi::ServiceDescription::setInterfaceIndex ( int  interfaceIndex)

Set interface index

void servicediscovery::avahi::ServiceDescription::setName ( const std::string &  name)
void servicediscovery::avahi::ServiceDescription::setProtocol ( int  protocol)

Set protocol of service by name of protocol

void servicediscovery::avahi::ServiceDescription::setRawDescriptions ( const std::list< std::string > &  descriptions)

Allows to set the txt field of a service in a raw fashion

void servicediscovery::avahi::ServiceDescription::setType ( const std::string &  type)

Set type of service, such as _myservice._tcp

Friends And Related Function Documentation

friend class ServiceEvent
friend

Member Data Documentation

std::list<std::string> servicediscovery::avahi::ServiceDescription::descriptions_
protected
std::string servicediscovery::avahi::ServiceDescription::domain_
protected
AvahiIfIndex servicediscovery::avahi::ServiceDescription::interfaceIndex_
protected
std::vector<std::string> servicediscovery::avahi::ServiceDescription::labels_
protected
const uint32_t servicediscovery::avahi::ServiceDescription::mDNSMaxPayloadSize = 1300
staticprotected
const uint32_t servicediscovery::avahi::ServiceDescription::mDNSMaxRecordSize = 200
staticprotected
std::string servicediscovery::avahi::ServiceDescription::name_
protected
AvahiProtocol servicediscovery::avahi::ServiceDescription::protocol_
protected
std::string servicediscovery::avahi::ServiceDescription::type_
protected

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