1 #ifndef MHO_BinaryOperator_HH__
2 #define MHO_BinaryOperator_HH__
22 template<
class XArgType1,
class XArgType2 = XArgType1,
class XArgType3 = XArgType2 >
28 std::get< 0 >(
fArgs) =
nullptr;
29 std::get< 1 >(
fArgs) =
nullptr;
30 std::get< 2 >(
fArgs) =
nullptr;
43 virtual void SetArgs(
const XArgType1* in1,
const XArgType2* in2, XArgType3* out)
45 fArgs = std::make_tuple(in1, in2, out);
84 virtual bool InitializeImpl(
const XArgType1* ,
const XArgType2* , XArgType3* ) = 0;
94 virtual bool ExecuteImpl(
const XArgType1* ,
const XArgType2* , XArgType3* ) = 0;
98 std::tuple< const XArgType1*, const XArgType2*, XArgType3* >
fArgs;
Class MHO_BinaryOperator.
Definition: MHO_BinaryOperator.hh:24
virtual bool ExecuteImpl(const XArgType1 *, const XArgType2 *, XArgType3 *)=0
Function ExecuteImpl.
virtual bool InitializeImpl(const XArgType1 *, const XArgType2 *, XArgType3 *)=0
Function InitializeImpl.
std::tuple< const XArgType1 *, const XArgType2 *, XArgType3 * > fArgs
Definition: MHO_BinaryOperator.hh:98
virtual bool Initialize() override
Initializes the object using arguments from fArgs tuple.
Definition: MHO_BinaryOperator.hh:54
virtual void SetArgs(const XArgType1 *in1, const XArgType2 *in2, XArgType3 *out)
Setter for args, out-of-place operation, in1/in2 unmodified, result stored in out.
Definition: MHO_BinaryOperator.hh:43
MHO_BinaryOperator()
Definition: MHO_BinaryOperator.hh:26
virtual ~MHO_BinaryOperator()
Definition: MHO_BinaryOperator.hh:33
virtual bool Execute() override
Executes operation using provided arguments and returns result.
Definition: MHO_BinaryOperator.hh:65
Class MHO_Operator.
Definition: MHO_Operator.hh:21
Definition: MHO_ChannelLabeler.hh:17