MADARA  3.4.1
SharedMemoryPush.h
Go to the documentation of this file.
1 
2 #ifndef _TRANSPORT_SHAREDMEMORYPUSH_H_
3 #define _TRANSPORT_SHAREDMEMORYPUSH_H_
4 
5 #include <vector>
6 #include <string>
7 
10 #include "madara/MadaraExport.h"
11 
12 namespace madara { namespace transport
13 {
17  class MADARA_EXPORT SharedMemoryPush : public madara::transport::Base
18  {
19  public:
26  SharedMemoryPush (const std::string & id,
28  knowledge::KnowledgeBase & context);
29 
33  virtual ~SharedMemoryPush ();
34 
38  inline void clear (void)
39  {
40  kbs_.clear ();
41  }
42 
46  void add (std::vector <knowledge::KnowledgeBase> & kbs)
47  {
48  kbs_.insert (kbs_.end(), kbs.begin(), kbs.end());
49  }
50 
54  void set (std::vector <knowledge::KnowledgeBase> & kbs)
55  {
56  clear();
57  kbs_ = kbs;
58  }
59 
67  virtual long send_data (
68  const knowledge::KnowledgeMap & modifieds) override;
69 
70  protected:
72  std::vector <knowledge::KnowledgeBase> kbs_;
73  };
74 } // end transport namespace
75 } // end madara namespace
76 
77 #endif // _TRANSPORT_SHAREDMEMORYPUSH_H_
This class provides a distributed knowledge base to users.
Definition: KnowledgeBase.h:45
Base class from which all transports must be derived.
Definition: Transport.h:46
Custom network transport generated by gpc.pl.
void clear(void)
Clears the list of knowledge bases to push to.
void add(std::vector< knowledge::KnowledgeBase > &kbs)
Adds the list of knowledge bases to the push list.
std::vector< knowledge::KnowledgeBase > kbs_
threads for monitoring knowledge updates
void set(std::vector< knowledge::KnowledgeBase > &kbs)
Sets the push list to the provided list of knowledge bases.
Holds basic transport settings.
constexpr string_t string
::std::map< std::string, KnowledgeRecord > KnowledgeMap
Copyright(c) 2020 Galois.