Lumiera  0.pre.03
»edit your freedom«
session-command-facade.h File Reference

Go to the source code of this file.

Description

Major public Interface to the Session subsystem of Lumiera GUI.

This interface describes the ability of the Session to trigger the execution of pre-defined commands, outfitted with suitable arguments and parameters. Triggering of these commands typically happens in response to some messages being sent over the UI-Bus. Likewise, external entities (e.g. plug-ins) may invoke commands over this interface to alter the session.

For this reason, the operations exposed here are defined in terms matching the structure of binding and invocation messages. This goes so far as to accept the command arguments for binding packaged as Record<GenNode>. For each command, there needs to be a registration record within the Steam-Layer implementation. The service implementation backing this facade indeed retrieves the corresponding steam::control::Command handles to perform the binding operation and hands them over to the SteamDispatcher for invocation.

See also
command.hpp
session-command-service.hpp implementation
steam::control::SteamDispatcher
stage::ctrl::CoreService

Definition in file session-command-facade.h.

#include "lib/depend.hpp"
#include "lib/diff/gen-node.hpp"
#include "lib/symbol.hpp"
#include <string>
#include "common/interface.h"

Classes

class  SessionCommand
 Global access point to invoke commands and cause edit operations within the Session. More...
 

Functions

 LUMIERA_INTERFACE_DECLARE (lumieraorg_SessionCommand, 0, LUMIERA_INTERFACE_SLOT(const char *, cycle,(const char *, const char *)), LUMIERA_INTERFACE_SLOT(void, trigger,(const char *, const void *)), LUMIERA_INTERFACE_SLOT(void, bindArg,(const char *, const void *)), LUMIERA_INTERFACE_SLOT(void, invoke,(const char *)),)
 

Namespaces

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