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...
 
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 60 of file service.cpp.

References port().

◆ 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 89 of file service.cpp.

References port(), and txt().

◆ 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 123 of file service.cpp.

References port().

◆ 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 178 of file service.cpp.

◆ 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 151 of file service.cpp.

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

◆ 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 210 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 241 of file service.cpp.

◆ ~NetworkService()

fawkes::NetworkService::~NetworkService ( )

Destructor.

Definition at line 196 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 273 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 389 of file service.cpp.

Referenced by NetLogGuiGtkWindow::~NetLogGuiGtkWindow().

◆ domain()

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

Get domain of service.

Returns
domain of service

Definition at line 358 of file service.cpp.

Referenced by Firestation::get_window(), fawkes::AvahiThread::unpublish_service(), and NetLogGuiGtkWindow::~NetLogGuiGtkWindow().

◆ host()

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

◆ 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 338 of file service.cpp.

Referenced by fawkes::AvahiThread::unpublish_service().

◆ name()

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

◆ 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 453 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 428 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 440 of file service.cpp.

◆ port()

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

◆ 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 324 of file service.cpp.

Referenced by fawkes::AvahiThread::unpublish_service().

◆ set_name()

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

Set name of service.

Parameters
new_namenew name

Definition at line 301 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 291 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 417 of file service.cpp.

Referenced by NetworkService(), and fawkes::AvahiThread::unpublish_service().

◆ type()

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

Get type of service.

Returns
type of service

Definition at line 348 of file service.cpp.

Referenced by Firestation::get_window(), fawkes::AvahiThread::unpublish_service(), and NetLogGuiGtkWindow::~NetLogGuiGtkWindow().


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