MADARA  3.4.1
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 
8  const BaseContainer& container)
9 {
10  MADARA_GUARD_TYPE guard(mutex_);
11  vector_.push_back(container.clone());
12 }
13 
15 {
16  MADARA_GUARD_TYPE guard(mutex_);
17 
18  for (size_t i = 0; i < vector_.size(); ++i)
19  {
20  delete vector_[i];
21  }
22 
23  vector_.clear();
24 }
25 
27  const KnowledgeUpdateSettings& settings)
28 {
29  MADARA_GUARD_TYPE guard(mutex_);
30 
31  for (size_t i = 0; i < vector_.size(); ++i)
32  {
33  vector_[i]->set_settings(settings);
34  }
35 }
36 
38 {
39  MADARA_GUARD_TYPE guard(mutex_);
40 
41  return vector_.size();
42 }
43 
44 #endif
Settings for applying knowledge updates.
This class is an abstract base class for all containers.
Definition: BaseContainer.h:34
virtual BaseContainer * clone(void) const =0
Clones this container.
MADARA_LOCK_TYPE mutex_
guard for access and changes
size_t size(void) const
Returns the size of the collection.
Definition: Collection.inl:37
void add(const BaseContainer &container)
Adds a class implementing BaseContainer to the collection.
Definition: Collection.inl:7
void clear(void)
Clears the collection of all containers.
Definition: Collection.inl:14
std::vector< BaseContainer * > vector_
The underlying collection of containers.
Definition: Collection.h:154
void set_settings(const KnowledgeUpdateSettings &settings)
Sets the update settings for all containers.
Definition: Collection.inl:26