EventAnalysis  1.0.0
GarbageCollectorDecorator.h
Go to the documentation of this file.
1 /*
2  * GarbageCollectorDecorator.h
3  *
4  * Created on: 10 Jan 2020
5  * Author: Nicola Mori
6  */
7 
8 #ifndef GARBAGECOLLECTORDECORATOR_H_
9 #define GARBAGECOLLECTORDECORATOR_H_
10 
13 
14 namespace EA {
15 
26 public:
32  GarbageCollectorDecorator(std::unique_ptr<AlgoSequence> &&sequence,
33  observer_ptr<PersistenceServiceManager> psManager = nullptr)
34  : AlgoSequenceDecorator(std::move(sequence)), _psManager(psManager), _freeUnused{true} {
35  DefineParameter("freeUnused", _freeUnused);
36  }
37 
44  bool Initialize();
45 
50  bool FreesUnused() { return _freeUnused; }
51 
52 protected:
63  bool ProcessAlgo(size_t iAlgo) override;
64 
65 private:
67  std::vector<observer_ptr<ObjectConsumer>> _consumers;
68 
70 };
71 
72 } // namespace EA
73 #endif /* GARBAGECOLLECTORDECORATOR_H_ */
bool _freeUnused
Definition: GarbageCollectorDecorator.h:69
bool DefineParameter(const std::string &name, T &variable)
Set a parameter.
Definition: Configurable.h:94
A smart pointer not owning the wrapped object.
Definition: ObserverPtr.h:28
observer_ptr< PersistenceServiceManager > _psManager
Definition: GarbageCollectorDecorator.h:66
GarbageCollectorDecorator(std::unique_ptr< AlgoSequence > &&sequence, observer_ptr< PersistenceServiceManager > psManager=nullptr)
Constructor.
Definition: GarbageCollectorDecorator.h:32
IncludeFileExc.h IncludeFileExc class declaration.
Definition: Algorithm.h:21
Base class for sequence decorators.
Definition: AlgoSequenceDecorator.h:56
std::vector< observer_ptr< ObjectConsumer > > _consumers
Definition: GarbageCollectorDecorator.h:67
bool Initialize()
Initializes the object deletion.
Definition: GarbageCollectorDecorator.cpp:12
bool FreesUnused()
Gets the free unused flag.
Definition: GarbageCollectorDecorator.h:50
bool ProcessAlgo(size_t iAlgo) override
Process the given algorithm and eliminates the unneeded objects.
Definition: GarbageCollectorDecorator.cpp:32
A garbage collector decorator for an algorithm sequence.
Definition: GarbageCollectorDecorator.h:25