MADARA  3.1.8
Collection.h
Go to the documentation of this file.
1 
2 #ifndef _MADARA_CONTAINERS_COLLECTION_H_
3 #define _MADARA_CONTAINERS_COLLECTION_H_
4 
5 #include <vector>
6 #include <string>
7 #include "madara/LockType.h"
8 #include "Barrier.h"
9 #include "BaseContainer.h"
10 #include "Counter.h"
11 #include "String.h"
12 #include "Integer.h"
13 #include "Double.h"
14 #include "Map.h"
15 #include "FlexMap.h"
16 #include "StringVector.h"
17 #include "DoubleVector.h"
18 #include "IntegerVector.h"
19 #include "BufferVector.h"
20 #include "NativeDoubleVector.h"
21 #include "NativeIntegerVector.h"
22 #include "Vector.h"
23 
32 namespace madara
33 {
34  namespace knowledge
35  {
36  namespace containers
37  {
43  class MADARA_Export Collection : public BaseContainer
44  {
45  public:
49  Collection ();
50 
55  Collection (const Collection & rhs);
56 
60  virtual ~Collection ();
61 
65  void modify (void);
66 
73  std::string get_debug_info (void);
74 
80  virtual BaseContainer * clone (void) const;
81 
86  void add (const BaseContainer & container);
87 
91  void clear (void);
92 
97  void set_settings (
98  const KnowledgeUpdateSettings & settings);
99 
104  size_t size (void) const;
105 
110  bool is_true (void) const;
111 
116  bool is_false (void) const;
117 
118  protected:
119 
124  virtual bool is_true_ (void) const;
125 
130  virtual bool is_false_ (void) const;
131 
140  virtual void modify_ (void);
141 
151  virtual std::string get_debug_info_ (void);
152 
156  std::vector <BaseContainer *> vector_;
157  };
158  }
159  }
160 }
161 
162 #include "Collection.inl"
163 
164 
165 #endif // _MADARA_CONTAINERS_COLLECTION_H_
A collection of MADARA containers that can be used for aggregate operations on all containers in the ...
Definition: Collection.h:43
Provides container classes for fast knowledge base access and mutation.
Definition: Barrier.h:27
static constexpr struct madara::knowledge::tags::string_t string
Provides functions and classes for the distributed knowledge base.
Settings for applying knowledge updates.
Copyright (c) 2015 Carnegie Mellon University.
This class is an abstract base class for all containers.
Definition: BaseContainer.h:33
std::vector< BaseContainer * > vector_
The underlying collection of containers.
Definition: Collection.h:156