Lumiera  0.pre.03
»edit your freedom«
command-mutation.hpp File Reference

Go to the source code of this file.

Description

Core of a Steam-Layer command: functor containing the operation to be executed.

Each command holds two of these functors: one representing the actual operation and one to undo the effect of this operation. The latter involves the capturing and storing of a "memento" value behind the scenes. But towards Command, the Mutation acts as interface to conceal these details, as well as the actual type and parameters of the functions to be invoked. Thus, Mutation's public interface just consists of a function call operator.

Mutation objects are based on lib::OpaqueHolder, which yields a fixed size storage, allowing them e.g. to be embedded immediately within the CommandImpl frame.

See also
Command
SteamDispatcher
MementoTie binding memento state

Definition in file command-mutation.hpp.

Classes

class  Mutation
 Unspecific command functor for implementing Steam-Layer Command. More...
 
class  UndoMutation
 Specialised version of the command Mutation functor, used to implement the UNDO functionality. More...
 

Namespaces

 steam
 Steam-Layer implementation namespace root.
 
 steam::control
 Steam-Layer dispatcher, controller and administrative facilities.