Lumiera  0.pre.03
»edityourfreedom«
command.cpp File Reference

Go to the source code of this file.

Description

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
command.hpp
command-registry.hpp

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>

Functions

 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")
 

Namespaces

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