47 #ifndef STEAM_CONTROL_SESSION_COMMAND_H 48 #define STEAM_CONTROL_SESSION_COMMAND_H 131 LUMIERA_INTERFACE_SLOT (
const char*,
cycle, (
const char*,
const char*)),
132 LUMIERA_INTERFACE_SLOT (
void,
trigger, (
const char*,
const void*)),
133 LUMIERA_INTERFACE_SLOT (
void,
bindArg, (
const char*,
const void*)),
134 LUMIERA_INTERFACE_SLOT (
void,
invoke, (
const char*)),
virtual ~SessionCommand()
this is an interface
Global access point to invoke commands and cause edit operations within the Session.
#define LUMIERA_INTERFACE_DECLARE(name, version,...)
Declare an interface.
Steam-Layer implementation namespace root.
Access point to singletons and other kinds of dependencies designated by type.
static lib::Depend< SessionCommand > facade
static storage for the facade access front-end
virtual void bindArg(Symbol cmdID, lib::diff::Rec const &args)=0
prepare command invocation: bind the command's arguments
Lumiera interface macros and structures.
Token or Atom with distinct identity.
Marker types to indicate a literal string and a Symbol.
Generic building block for tree shaped (meta)data structures.
Singleton services and Dependency Injection.
virtual void invoke(Symbol cmdID)=0
trigger invocation of a prepared command
Helper to abstract creation and lifecycle of a dependency.
object-like record of data.
virtual void trigger(Symbol cmdID, lib::diff::Rec const &args)=0
bind the command's arguments and trigger command invocation immediately
virtual Symbol cycle(Symbol cmdID, string const &invocationID)=0
start next command cycle and "open" a new anonymous command instance