Fawkes API  Fawkes Development Version
fawkes::NetworkService Class Reference

Representation of a service announced or found via service discovery (i.e. More...

#include <>>

Public Member Functions

 NetworkService (const char *name, const char *type, const char *domain, const char *host, unsigned short int port)
 Constructor. More...
 
 NetworkService (const char *name, const char *type, const char *domain, const char *host, unsigned short int port, const struct sockaddr *addr, const socklen_t addr_size, std::list< std::string > &txt)
 Constructor. More...
 
 NetworkService (const char *name, const char *type, unsigned short int port)
 Constructor. More...
 
 NetworkService (const char *name, const char *type, const char *domain)
 Constructor. More...
 
 NetworkService (NetworkNameResolver *nnresolver, const char *name, const char *type, unsigned short int port)
 Constructor. More...
 
 NetworkService (const NetworkService *s)
 Copy constructor (pointer). More...
 
 NetworkService (const NetworkService &s)
 Copy constructor (reference). More...
 
 ~NetworkService ()
 Destructor. More...
 
void add_txt (const char *format,...)
 Add a TXT record. More...
 
void set_txt (std::list< std::string > &txtlist)
 Set TXT records all at once. More...
 
void set_name (const char *new_name)
 Set name of service. More...
 
void set_modified_name (const char *new_name) const
 Set modified name of service. More...
 
const char * name () const
 Get name of service. More...
 
const char * modified_name () const
 Get modified name of service. More...
 
const char * type () const
 Get type of service. More...
 
const char * domain () const
 Get domain of service. More...
 
const char * host () const
 Get host of service. More...
 
std::string addr_string () const
 Get IP address of entry as string. More...
 
unsigned short int port () const
 Get port of service. More...
 
const std::list< std::string > & txt () const
 Get TXT record list of service. More...
 
NetworkServiceoperator= (const NetworkService &s)
 Assignment operator. More...
 
bool operator== (const NetworkService &s) const
 Equal operator for NetworkService reference. More...
 
bool operator== (const NetworkService *s) const
 Equal operator for NetworkService pointer. More...
 
bool operator< (const NetworkService &s) const
 Less than operator. More...
 

Detailed Description

Representation of a service announced or found via service discovery (i.e.

mDNS/DNS-SD via Avahi). This class is used in the C++ wrapper to talk about services.

Author
Tim Niemueller

Definition at line 37 of file service.h.

Constructor & Destructor Documentation

◆ NetworkService() [1/7]

fawkes::NetworkService::NetworkService ( const char *  name,
const char *  type,
const char *  domain,
const char *  host,
unsigned short int  port 
)

Constructor.

This constructor sets all parameters.

Parameters
namename of service
typetype of service
domaindomain of service
hosthost of service
portport of service

Definition at line 57 of file service.cpp.

References domain(), host(), name(), port(), and type().

◆ NetworkService() [2/7]

fawkes::NetworkService::NetworkService ( const char *  name,
const char *  type,
const char *  domain,
const char *  host,
unsigned short int  port,
const struct sockaddr *  addr,
const socklen_t  addr_size,
std::list< std::string > &  txt 
)

Constructor.

This constructor sets all parameters.

Parameters
namename of service
typetype of service
domaindomain of service
hosthost of service
portport of service
addraddress of the service
addr_sizesize in bytes of addr parameter
txtlist of TXT records

Definition at line 85 of file service.cpp.

References domain(), host(), name(), port(), txt(), and type().

◆ NetworkService() [3/7]

fawkes::NetworkService::NetworkService ( const char *  name,
const char *  type,
unsigned short int  port 
)

Constructor.

This constructor sets all parameters. Host and domain are the default values, which means local host name in domain .local (if not set otherwise in Avahi system configuration).

Parameters
namename of service
typetype of service
portport of service

Definition at line 117 of file service.cpp.

References name(), port(), and type().

◆ NetworkService() [4/7]

fawkes::NetworkService::NetworkService ( const char *  name,
const char *  type,
const char *  domain 
)

Constructor.

This constructor sets all parameters.

Parameters
namename of service
typetype of service
domaindomain of service

Definition at line 169 of file service.cpp.

References domain(), name(), and type().

◆ NetworkService() [5/7]

fawkes::NetworkService::NetworkService ( NetworkNameResolver nnresolver,
const char *  name,
const char *  type,
unsigned short int  port 
)

Constructor.

This constructor sets all parameters. Host and domain are the default values, which means local host name in domain .local (if not set otherwise in Avahi system configuration). This specific constructor allows the usage of a "%h" token in the name, which is replaced with the short hostname.

Parameters
nnresolvernetwork name resolver to get the host from for the replacement of a h token.
namename of service
typetype of service
portport of service

Definition at line 142 of file service.cpp.

References name(), port(), fawkes::NetworkNameResolver::short_hostname(), and type().

◆ NetworkService() [6/7]

fawkes::NetworkService::NetworkService ( const NetworkService s)

Copy constructor (pointer).

Create a copy of given NetworkService.

Parameters
snetwork service to copy from

Definition at line 202 of file service.cpp.

◆ NetworkService() [7/7]

fawkes::NetworkService::NetworkService ( const NetworkService s)

Copy constructor (reference).

Create a copy of given NetworkService.

Parameters
snetwork service to copy from

Definition at line 232 of file service.cpp.

◆ ~NetworkService()

fawkes::NetworkService::~NetworkService ( )

Destructor.

Definition at line 184 of file service.cpp.

Member Function Documentation

◆ add_txt()

void fawkes::NetworkService::add_txt ( const char *  format,
  ... 
)

Add a TXT record.

Parameters
formatformat for TXT record to add, must be a "key=value" string, takes the same arguments as sprintf.

Definition at line 313 of file service.cpp.

Referenced by XmlRpcThread::init().

◆ addr_string()

std::string fawkes::NetworkService::addr_string ( ) const

Get IP address of entry as string.

Returns
IP address as string
Exceptions
NullPointerExceptionthrown if the address has not been set

Definition at line 420 of file service.cpp.

◆ domain()

const char * fawkes::NetworkService::domain ( ) const

Get domain of service.

Returns
domain of service

Definition at line 392 of file service.cpp.

Referenced by NetworkService().

◆ host()

const char * fawkes::NetworkService::host ( ) const

Get host of service.

Returns
host of service

Definition at line 401 of file service.cpp.

Referenced by NetworkService().

◆ modified_name()

const char * fawkes::NetworkService::modified_name ( ) const

Get modified name of service.

The modified name is the original name with a suffix that has been added to resolve a name collision.

Returns
modified name of service, this may be NULL if the name has not been modified

Definition at line 374 of file service.cpp.

◆ name()

const char * fawkes::NetworkService::name ( ) const

Get name of service.

Returns
name of service

Definition at line 349 of file service.cpp.

Referenced by NetworkService().

◆ operator<()

bool fawkes::NetworkService::operator< ( const NetworkService s) const

Less than operator.

Parameters
sreference of service to compare to
Returns
true, if either the type is less than (according to strcmp) or if types are equal if the service name is less than the given service's name.

Definition at line 478 of file service.cpp.

◆ operator=()

NetworkService & fawkes::NetworkService::operator= ( const NetworkService s)

Assignment operator.

Parameters
snetwork service to copy from
Returns
reference to this instance

Definition at line 263 of file service.cpp.

◆ operator==() [1/2]

bool fawkes::NetworkService::operator== ( const NetworkService s) const

Equal operator for NetworkService reference.

Parameters
sreference of service to compare to.
Returns
true, if the services are the same (same name and type), false otherwise

Definition at line 457 of file service.cpp.

◆ operator==() [2/2]

bool fawkes::NetworkService::operator== ( const NetworkService s) const

Equal operator for NetworkService pointer.

Parameters
spointer to service to compare to.
Returns
true, if the services are the same (same name and type), false otherwise

Definition at line 467 of file service.cpp.

◆ port()

unsigned short int fawkes::NetworkService::port ( ) const

Get port of service.

Returns
port of service

Definition at line 410 of file service.cpp.

Referenced by NetworkService().

◆ set_modified_name()

void fawkes::NetworkService::set_modified_name ( const char *  new_name) const

Set modified name of service.

The modified name is the original name with a suffix that has been added to resolve a name collision.

Parameters
new_namenew name

Definition at line 360 of file service.cpp.

◆ set_name()

void fawkes::NetworkService::set_name ( const char *  new_name)

Set name of service.

Parameters
new_namenew name

Definition at line 339 of file service.cpp.

◆ set_txt()

void fawkes::NetworkService::set_txt ( std::list< std::string > &  txtlist)

Set TXT records all at once.

Parameters
txtlistlist of TXT records

Definition at line 330 of file service.cpp.

◆ txt()

const std::list< std::string > & fawkes::NetworkService::txt ( ) const

Get TXT record list of service.

Returns
TXT record list of service

Definition at line 447 of file service.cpp.

Referenced by NetworkService().

◆ type()

const char * fawkes::NetworkService::type ( ) const

Get type of service.

Returns
type of service

Definition at line 383 of file service.cpp.

Referenced by NetworkService().


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