Lumiera  0.pre.03
command.cpp File Reference

Go to the source code of this file.


Implementation of the command frontend.

Within this file, the implementation level of the command frontend is linked to the implementation of the command registry. Client code is shielded from those implementation classes and need only include command.hpp

More specifically, the actual number and type of arguments and the concrete functions implementing the command operation are known only at the time of the command definition; this detailed type information is erased afterwards, allowing client code to use a simple frontend.

See also

Definition in file command.cpp.

#include "lib/util.hpp"
#include "lib/error.hpp"
#include "lib/symbol.hpp"
#include "lib/format-string.hpp"
#include "proc/control/command.hpp"
#include "proc/control/command-def.hpp"
#include "proc/control/command-impl.hpp"
#include "proc/control/command-registry.hpp"
#include "proc/control/command-impl-clone-builder.hpp"
#include "proc/control/handling-pattern.hpp"
#include <utility>
#include <sstream>
#include <string>


 LUMIERA_ERROR_DEFINE (INVALID_COMMAND, "Unknown or insufficiently defined command")
 LUMIERA_ERROR_DEFINE (DUPLICATE_COMMAND, "Attempt to redefine an already existing command definition")
 LUMIERA_ERROR_DEFINE (INVALID_ARGUMENTS, "Arguments provided for binding doesn't match stored command function parameters")
 LUMIERA_ERROR_DEFINE (UNBOUND_ARGUMENTS, "Command mutation functor not yet usable, because arguments aren't bound")
 LUMIERA_ERROR_DEFINE (MISSING_MEMENTO, "Undo functor not yet usable, because no undo state has been captured")


 Proc-Layer implementation namespace root.
 Proc-Layer dispatcher, controller and administrative facilities.