11 heart_beat_(heart_beat * 1000000000),
25 peers_.set_name(prefix_, vars);
32 peers_.set(originator, cur_time);
34 if (heart_beat_ > 0 && last_clear_ != cur_time)
36 std::vector<std::string> keys;
41 for (
size_t i = 0; i < keys.size(); ++i)
44 if (cur_time - peers_[keys[i]].to_integer() > heart_beat_)
46 peers_.erase(keys[i]);
madara::knowledge::KnowledgeRecord::Integer Integer
madara::knowledge::KnowledgeRecord::Integer Integer
PeerDiscovery(const std::string &prefix=".peers", knowledge::KnowledgeRecord::Integer heart_beat=-1)
Constructor.
virtual ~PeerDiscovery()
Destructor.
virtual void filter(knowledge::KnowledgeMap &records, const transport::TransportContext &transport_context, knowledge::Variables &vars)
User-implementable method for performing a filter on network data.
Provides an interface for external functions into the MADARA KaRL variable settings.
Provides context about the transport.
uint64_t get_current_time(void) const
Gets the current timestamp.
const std::string & get_originator(void) const
Returns the current message originator.
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Provides utility functions and classes for common tasks and needs.