AsyncFw 1.2
Async Framework is c++ runtime with timers, poll notifiers, sockets, coroutines, etc.
 
Loading...
Searching...
No Matches
AsyncFw::MulticastDns Class Reference

The MulticastDns class. More...

#include <AsyncFw/MulticastDns>

Collaboration diagram for AsyncFw::MulticastDns:
[legend]

Public Member Functions

 MulticastDns (const std::string &serviceType={})
 
int sendQuery (int timeout=0)
 
const std::vector< Host > hosts () const
 
void setServiceType (const std::string &_serviceType)
 
std::string serviceType ()
 
bool startService (const std::string &hostname, const std::string &llip, const std::string &misc, uint16_t port)
 
void stopService (bool send_goodbye=true)
 
bool serviceRunning ()
 
bool startQuerier (int timeout=60)
 
void stopQuerier ()
 
bool querierRunning ()
 
void append_ (const Host &host)
 

Static Public Member Functions

static MulticastDnsinstance ()
 

Public Attributes

FunctionConnectorProtected< MulticastDns >::Connector< const Host & > hostAdded
 
FunctionConnectorProtected< MulticastDns >::Connector< const Host & > hostChanged
 
FunctionConnectorProtected< MulticastDns >::Connector< const Host & > hostRemoved
 

Detailed Description

The MulticastDns class.

Example:

#include <AsyncFw/MulticastDns>
#include <AsyncFw/MainThread>
#include <AsyncFw/Timer>
#include <AsyncFw/LogStream>
using namespace AsyncFw;
int main(int argc, char *argv[]) {
MulticastDns _mdns {"AsyncFw_mdns_example_service"};
_mdns.hostAdded([](const MulticastDns::Host &host) { lsInfoGreen() << "Added" << host.name << host.ipv4 << host.llipv4 << host.misc << host.port; });
_mdns.hostChanged([](const MulticastDns::Host &host) { lsInfoMagenta() << "Changed" << host.name << host.ipv4 << host.llipv4 << host.misc << host.port; });
_mdns.hostRemoved([](const MulticastDns::Host &host) { lsInfoRed() << "Removed" << host.name << host.ipv4 << host.llipv4 << host.misc << host.port; });
_mdns.startService("AsyncFw_host", "169.254.0.1", "AsyncFw_misc_string", 18080);
_mdns.startQuerier(1);
Timer::single(100, [&_mdns]() { _mdns.stopService(); });
Timer::single(200, [&_mdns]() { MainThread::exit(); });
lsNotice() << "Start Applicaiton";
int ret = MainThread::exec();
lsNotice() << "End Applicaiton" << ret;
return ret;
}

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