Lumiera  0.pre.03
»edit your freedom«
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/error.hpp"
#include "lib/symbol.hpp"
#include "lib/format-string.hpp"
#include "steam/control/command.hpp"
#include "steam/control/command-def.hpp"
#include "steam/control/command-impl.hpp"
#include "steam/control/command-registry.hpp"
#include "steam/control/command-impl-clone-builder.hpp"
#include "steam/control/handling-pattern.hpp"
#include "lib/util.hpp"
#include <utility>
#include <sstream>
#include <string>

Functions

void ___check_canUndo (const Command *handle)
 
void ___check_isBound (const Command *handle)
 
void ___check_notBottom (const Command *handle, lib::Literal operation_descr)
 
 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")
 
Command registered_for (Symbol id)
 
bool was_activated (Command const &com)
 

Namespaces

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