EventAnalysis  1.0.0
AlgoSequenceDecorator.h
Go to the documentation of this file.
1 /*
2  * AlgoSequenceDecorator.h
3  *
4  * Created on: 14 Jan 2020
5  * Author: Nicola Mori
6  */
7 
8 #ifndef ALGOSEQUENCEDECORATOR_H_
9 #define ALGOSEQUENCEDECORATOR_H_
10 
11 #include "algorithm/AlgoSequence.h"
12 
13 namespace EA {
14 
57 public:
62  AlgoSequenceDecorator(std::unique_ptr<AlgoSequence> &&sequence)
63  : AlgoSequence{sequence->Filter::GetRepresentation(), sequence->Info::GetRepresentation(),
64  sequence->Configurable::GetRepresentation(), sequence->DataStoreUser::GetRepresentation(),
65  sequence->ObjectProducer::GetRepresentation(), sequence->ObjectConsumer::GetRepresentation(),
66  sequence->Algorithm::GetRepresentation()},
67  _sequence{std::move(sequence)} {
68  _repr = _sequence->GetRepresentation();
69  }
70 
75  bool Initialize() override { return _sequence->Initialize(); }
76 
81  bool Finalize() override { return _sequence->Finalize(); }
82 
83 protected:
92  bool ProcessAlgo(size_t iAlgo) override { return _sequence->ProcessAlgo(iAlgo); }
93 
99 
100 private:
101  std::unique_ptr<AlgoSequence> _sequence; // The decorated sequence.
102 };
103 
104 } // namespace EA
105 
106 #endif /* ALGOSEQUENCEDECORATOR_H_ */
std::shared_ptr< Representation > _repr
Definition: AlgoSequence.h:174
A smart pointer not owning the wrapped object.
Definition: ObserverPtr.h:28
Algorithm made by multiple basic algorithms.
Definition: AlgoSequence.h:37
IncludeFileExc.h IncludeFileExc class declaration.
Definition: Algorithm.h:21
bool Finalize() override
Finalizes the algorithms of the decorated sequence.
Definition: AlgoSequenceDecorator.h:81
Base class for sequence decorators.
Definition: AlgoSequenceDecorator.h:56
AlgoSequenceDecorator(std::unique_ptr< AlgoSequence > &&sequence)
Constructor.
Definition: AlgoSequenceDecorator.h:62
bool Initialize() override
Initializes the algorithms of the decorated sequence.
Definition: AlgoSequenceDecorator.h:75
bool ProcessAlgo(size_t iAlgo) override
Hook for calling ProcessAlgo for the contained sequence.
Definition: AlgoSequenceDecorator.h:92
std::unique_ptr< AlgoSequence > _sequence
Definition: AlgoSequenceDecorator.h:101
observer_ptr< AlgoSequence > GetSequence()
Getter for the decorated sequence.
Definition: AlgoSequenceDecorator.h:98