50 using std::make_tuple;
108 CHECK (&oper_1 != &oper_2);
109 CHECK (&capt_1 != &capt_2);
110 CHECK (&undo_1 != &undo_2);
114 .captureUndo (capt_1)
115 .undoOperation (undo_1)
119 .captureUndo (capt_2)
120 .undoOperation (undo_2)
153 cout << com <<
":" << check_ << endl;
155 cout << com <<
":" << check_ << endl;
Implementation helper to bind Steam-Layer commands with arbitrary argument tuples.
Token or Atom with distinct identity.
Helper class used solely for defining a Command-Object.
auto operation(FUN operation_to_define)
Handle object representing a single Command instance to be used by client code.
static Command get(Symbol cmdID)
Access existing command for use.
string execCommand(Command com)
Helper: invoke and undo a command,.
Actually defining a command and binding it to execution parameters.
Core of a Steam-Layer command: functor containing the operation to be executed.
Proof-of-concept implementation of CmdClosure.
A passive container record holding the actual command arguments & UNDO state.
A special binding used by Steam-Layer commands for capturing UNDO state information.
const string MARK_2("|_2_")
void Sig_undo(char, string)
function< Sig_oper > Fun_o
void undo_2(char par, string mem)
void undo_1(char par, string mem)
Symbol COMMAND1("test.equalityCommand1")
OpClosure< Sig_oper > ArgHolder
function< Sig_capt > Fun_c
const string MARK_1("|_1_")
function< Sig_undo > Fun_u
MementoTie< Sig_oper, string > MemHolder
Symbol COMMAND2("test.equalityCommand2")
SimpleClosure< Sig_oper > Closure
std::tuple< char > ArgTuple
Steam-Layer implementation namespace root.
Test runner and basic definitions for tests.
bool isSameObject(A const &a, B const &b)
compare plain object identity, based directly on the referee's memory identities.
bool isnil(lib::time::Duration const &dur)
Simplistic test class runner.
#define LAUNCHER(_TEST_CLASS_, _GROUPS_)
RET bind()
Accept dummy binding (0 Arg)
Marker types to indicate a literal string and a Symbol.
A collection of frequently used helper functions to support unit testing.
Metaprogramming with tuples-of-types and the std::tuple record.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...