59#ifndef CONTROL_COMMAND_CLOSURE_H
60#define CONTROL_COMMAND_CLOSURE_H
98 virtual operator string()
const =0;
109 using PClo = std::shared_ptr<CmdClosure>;
Implementation helper to bind Steam-Layer commands with arbitrary argument tuples.
object-like record of data.
virtual bool isCaptured() const =0
does this closure hold captured UNDO state?
virtual void bindArguments(Arguments &)=0
store a set of parameter values within this closure
virtual bool isValid() const =0
does this closure hold a valid argument tuple?
virtual void invoke(CmdFunctor const &)=0
invoke functor using the stored parameter values
virtual void unbindArguments()=0
discard any parameters and return to unbound state
virtual void accept(CommandImplCloneBuilder &) const =0
assist with creating clone closure without disclosing concrete type
virtual void bindArguments(lib::diff::Rec const &)=0
store a set of parameter values, passed as GenNode sequence
Visitor to support creating a CommandImpl clone.
Generic holder for functor objects, concealing the concrete function type.
Generic building block for tree shaped (meta)data structures.
std::shared_ptr< CmdClosure > PClo
Steam-Layer implementation namespace root.