MADARA  3.4.1
PeerDiscovery.h
Go to the documentation of this file.
1 
2 
3 #ifndef _MADARA_FILTERS_PEER_DISCOVERY_H_
4 #define _MADARA_FILTERS_PEER_DISCOVERY_H_
5 
13 #include <string>
14 #include <vector>
15 #include <map>
16 #include <list>
19 #include "madara/utility/StdInt.h"
20 #include "madara/MadaraExport.h"
24 
25 #include "AggregateFilter.h"
26 
27 namespace madara
28 {
29 namespace filters
30 {
34 class MADARA_EXPORT PeerDiscovery : public AggregateFilter
35 {
36 public:
45  PeerDiscovery(const std::string& prefix = ".peers",
46  knowledge::KnowledgeRecord::Integer heart_beat = -1);
47 
51  virtual ~PeerDiscovery();
52 
61  virtual void filter(knowledge::KnowledgeMap& records,
62  const transport::TransportContext& transport_context,
63  knowledge::Variables& vars);
64 
65 protected:
70 
75 
80 
85 
90 };
91 }
92 }
93 
94 #endif // _MADARA_FILTERS_PEER_DISCOVERY_H_
Abstract base class for implementing aggregate record filters via a functor interface.
Filter for discovering neighboring peers.
Definition: PeerDiscovery.h:35
knowledge::containers::Map peers_
A map of discovered peers.
Definition: PeerDiscovery.h:79
bool initialized_
Tracks if the peers_ map has been initialized.
Definition: PeerDiscovery.h:69
std::string prefix_
The context.
Definition: PeerDiscovery.h:74
knowledge::KnowledgeRecord::Integer last_clear_
The time of the last clear of the peer_list.
Definition: PeerDiscovery.h:89
knowledge::KnowledgeRecord::Integer heart_beat_
The time to keep record of a peer.
Definition: PeerDiscovery.h:84
Provides an interface for external functions into the MADARA KaRL variable settings.
Definition: Variables.h:53
This class stores a map of strings to KaRL variables.
Definition: Map.h:33
Provides context about the transport.
constexpr string_t string
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Copyright(c) 2020 Galois.