MADARA  3.4.1
Hive.h
Go to the documentation of this file.
1 #pragma once
48 #include "KnowledgeBase.h"
50 #include "madara/MadaraExport.h"
51 
52 namespace madara
53 {
54 
55  namespace transport
56  {
58  class SharedMemoryPush;
59  } // namespace transport
60 
61  namespace knowledge
62  {
66  class MADARA_EXPORT Hive
67  {
68  public:
72  Hive();
73 
77  ~Hive();
78 
82  inline void clear(void)
83  {
84  for (auto kb : kbs_)
85  {
86  kb.clear();
87  }
88  }
89 
94  inline std::vector<knowledge::KnowledgeBase>& get_kbs(void)
95  {
96  return kbs_;
97  }
98 
102  inline size_t get_size(void)
103  {
104  return kbs_.size();
105  }
106 
111  void resize(size_t new_size);
112 
113  private:
115  std::vector<madara::knowledge::KnowledgeBase> kbs_;
116 
118  std::vector<madara::transport::SharedMemoryPush*> transports_;
119  };
120  } // namespace knowledge
121 } // namespace madara
Knowledge bases linked with shared memory to a central hive concept.
Definition: Hive.h:67
std::vector< madara::knowledge::KnowledgeBase > kbs_
Knowledge base.
Definition: Hive.h:115
std::vector< knowledge::KnowledgeBase > & get_kbs(void)
Returns a reference to the underlying hive knowledge bases.
Definition: Hive.h:94
void clear(void)
Clears the hive of knowledge values.
Definition: Hive.h:82
std::vector< madara::transport::SharedMemoryPush * > transports_
transports meant for fast memory transport within the controller
Definition: Hive.h:118
size_t get_size(void)
Returns the size of the hive.
Definition: Hive.h:102
Custom network transport generated by gpc.pl.
Provides functions and classes for the distributed knowledge base.
Copyright(c) 2020 Galois.