1 #ifndef _BASIC_DYN_GROVE_H_
2 #define _BASIC_DYN_GROVE_H_
4 #include <BasicStaticGrove.h>
10 template <
typename Tree,
typename Subject>
25 template <
typename Tree,
typename Subject>
44 std::vector<BasicDynGroveSubject<Tree, Subject> *>
subjects;
73 std::shared_ptr<Tree> tree
92 virtual std::vector<BasicDynGroveSubject<Tree, Subject> *>
const&
96 #include <BasicDynGrove.tpp>
Interface defining the behaviors that must be supported by any object that can notify to a basic dyna...
Definition: BasicDynGroveSubject.h:17
Basic implementation of a DynGrove which extends BasicStaticGrove to provided dynamic funcionalities.
Definition: BasicDynGrove.h:26
std::vector< BasicDynGroveSubject< Tree, Subject > * > subjects
Vector with pointers to subjects.
Definition: BasicDynGrove.h:44
BasicDynGrove()
Default constructor for BasicDynGrove.
Definition: BasicDynGrove.h:52
virtual void addSubject(BasicDynGroveSubject< Tree, Subject > *subject, std::shared_ptr< Tree > tree)
Add a new subject which identifier is automatically and internally computed.
void update(Subject &s) override
virtual std::vector< BasicDynGroveSubject< Tree, Subject > * > const & getSubjects() const
Obtain a read-only reference to vector of subjects.
Definition: BasicDynGrove.h:93
virtual void removeSubject(BasicDynGroveSubject< Tree, Subject > *subject)
Remove subject with given identifier from the grove.
Basic implementation of a StaticGrove.
Definition: BasicStaticGrove.h:19
A DynGrove is an interface which declares observer-like functionality so dynamic subjects can notify ...
Definition: DynGrove.h:15