MADARA  3.2.3
Collection.inl
Go to the documentation of this file.
1 #ifndef _MADARA_CONTAINERS_COLLECTION_CONTAINER_H
2 #define _MADARA_CONTAINERS_COLLECTION_CONTAINER_H
3 
4 #include "Collection.h"
6 
7 inline void
9  const BaseContainer & container)
10 {
11  MADARA_GUARD_TYPE guard (mutex_);
12  vector_.push_back (container.clone ());
13 }
14 
15 inline void
17 {
18  MADARA_GUARD_TYPE guard (mutex_);
19 
20  for (size_t i = 0; i < vector_.size (); ++i)
21  {
22  delete vector_[i];
23  }
24 
25  vector_.clear ();
26 }
27 
28 inline void
30 const KnowledgeUpdateSettings & settings)
31 {
32  MADARA_GUARD_TYPE guard (mutex_);
33 
34  for (size_t i = 0; i < vector_.size (); ++i)
35  {
36  vector_[i]->set_settings (settings);
37  }
38 }
39 
40 inline size_t
42 {
43  MADARA_GUARD_TYPE guard (mutex_);
44 
45  return vector_.size ();
46 }
47 
48 #endif
size_t size(void) const
Returns the size of the collection.
Definition: Collection.inl:41
void clear(void)
Clears the collection of all containers.
Definition: Collection.inl:16
void add(const BaseContainer &container)
Adds a class implementing BaseContainer to the collection.
Definition: Collection.inl:8
MADARA_LOCK_TYPE mutex_
guard for access and changes
void set_settings(const KnowledgeUpdateSettings &settings)
Sets the update settings for all containers.
Definition: Collection.inl:29
virtual BaseContainer * clone(void) const =0
Clones this container.
Settings for applying knowledge updates.
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