Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
command.cpp File Reference

Implementation of the command frontend. More...

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>

Namespaces

namespace  lumiera
 Lumiera public interface.
 
namespace  lumiera::error
 
namespace  steam
 Steam-Layer implementation namespace root.
 
namespace  steam::control
 Steam-Layer dispatcher, controller and administrative facilities.
 
namespace  steam::control::anonymous_namespace{command.cpp}
 

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