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