Lumiera
0.pre.03
»edit your freedom«
|
#include "include/session-command-facade.h"
Global access point to invoke commands and cause edit operations within the Session.
Any changes to the session are effected by prepared functors bound into a steam::control::Command registration. A command instance will first be outfitted with suitable parameters to define the target and to qualify and elaborate the action, before it can be actually triggered. Commands then go through a queue to be invoked one by one.
The service exposed through this facade offers dedicated support for the standard command cycle, as is typically performed from the UI. Such a usage cycle starts with cycleopening"" a local anonymous clone copy from the global command definition, which is then used in further calls to be outfitted with actual arguments and finally to be handed over to the dispatcher for execution.
lumiera::error::State | when interface is not opened |
Definition at line 87 of file session-command-facade.h.
Public Member Functions | |
virtual void | bindArg (Symbol cmdID, lib::diff::Rec const &args)=0 |
prepare command invocation: bind the command's arguments | |
virtual Symbol | cycle (Symbol cmdID, string const &invocationID)=0 |
start next command cycle and "open" a new anonymous command instance | |
virtual void | invoke (Symbol cmdID)=0 |
trigger invocation of a prepared command | |
virtual void | trigger (Symbol cmdID, lib::diff::Rec const &args)=0 |
bind the command's arguments and trigger command invocation immediately | |
Static Public Attributes | |
static lib::Depend< SessionCommand > | facade |
static storage for the facade access front-end | |
Friends | |
class | lib::DependencyFactory< SessionCommand > |
Protected Member Functions | |
virtual | ~SessionCommand () |
this is an interface | |