12 bool launch_transport)
27 server_count_ = addresses_.size();
35 if (!settings_.no_sending)
37 this->endpoints_.sync_keys();
39 std::vector<std::string> hosts;
40 this->addresses_.resize(server_count_);
41 this->endpoints_.keys(hosts);
43 for (
auto& host : hosts)
46 auto addr = ip::address::from_string(addr_parts.first);
47 addresses_.emplace_back(addr, addr_parts.second);
50 "UdpRegistryServer::send_data:"
52 addresses_.back().address().to_string().c_str(),
53 addresses_.back().port());
#define madara_logger_log(loggering, level,...)
Fast version of the madara::logger::log method.
const ThreadSafeContext * context_
This class stores variables and their values for use by any entity needing state information in a thr...
void set_name(const std::string &var_name, KnowledgeBase &knowledge, bool sync=true)
Sets the variable name that this refers to.
knowledge::KnowledgeBase knowledge_
knowledge base for threads to use
int setup() override
all subclasses should call this method at the end of its setup
Holds basic transport settings.
std::string write_domain
All class members are accessible to users for easy setup.
UdpRegistryServer(const std::string &id, madara::knowledge::ThreadSafeContext &context, TransportSettings &config, bool launch_transport)
Constructor.
int setup(void) override
all subclasses should call this method at the end of its setup
long send_data(const madara::knowledge::KnowledgeMap &updates) override
Sends a list of knowledge updates to listeners.
knowledge::containers::Map endpoints_
UDP-based transport for knowledge.
long send_data(const madara::knowledge::KnowledgeMap &updates) override
Sends a list of knowledge updates to listeners.
::std::map< std::string, KnowledgeRecord > KnowledgeMap
std::pair< std::string, uint16_t > parse_address(std::string addr)