HOPS
HOPS class reference
MHO_UnaryInPlaceOperator.hh
Go to the documentation of this file.
1 #ifndef MHO_UnaryInPlaceOperator_HH__
2 #define MHO_UnaryInPlaceOperator_HH__
3 
4 #include "MHO_Operator.hh"
5 
6 #include <tuple>
7 
8 namespace hops
9 {
10 
22 template< class XArgType > class MHO_UnaryInPlaceOperator: public MHO_Operator
23 {
24  public:
25  MHO_UnaryInPlaceOperator() { std::get< 0 >(fInPlaceArgs) = nullptr; };
26 
28 
35  virtual void SetArgs(XArgType* in) { fInPlaceArgs = std::make_tuple(in); }
36 
43  virtual bool Initialize() override { return InitializeInPlace(std::get< 0 >(fInPlaceArgs)); }
44 
51  virtual bool Execute() override { return ExecuteInPlace(std::get< 0 >(fInPlaceArgs)); }
52 
53  protected:
61  virtual bool InitializeInPlace(XArgType* in) = 0;
69  virtual bool ExecuteInPlace(XArgType* in) = 0;
70 
71  std::tuple< XArgType* > fInPlaceArgs;
72 };
73 
74 } // namespace hops
75 
76 #endif
Class MHO_Operator.
Definition: MHO_Operator.hh:21
Class MHO_UnaryInPlaceOperator.
Definition: MHO_UnaryInPlaceOperator.hh:23
virtual void SetArgs(XArgType *in)
Setter for args.
Definition: MHO_UnaryInPlaceOperator.hh:35
virtual bool Execute() override
Executes operation in place using provided argument.
Definition: MHO_UnaryInPlaceOperator.hh:51
virtual ~MHO_UnaryInPlaceOperator()
Definition: MHO_UnaryInPlaceOperator.hh:27
std::tuple< XArgType * > fInPlaceArgs
Definition: MHO_UnaryInPlaceOperator.hh:71
virtual bool InitializeInPlace(XArgType *in)=0
Initializes in-place operation using input argument.
MHO_UnaryInPlaceOperator()
Definition: MHO_UnaryInPlaceOperator.hh:25
virtual bool ExecuteInPlace(XArgType *in)=0
Executes an operation in-place using input argument.
virtual bool Initialize() override
Initializes the system by calling InitializeInPlace with the first argument from fInPlaceArgs.
Definition: MHO_UnaryInPlaceOperator.hh:43
Definition: MHO_ChannelLabeler.hh:17