118 { (
void)
ifa;
return "SessionCommand"; }
122 { (
void)
ifa;
return "Session Interface: invoke pre-defined commands to operate on the session"; }
126 { (
void)
ifa;
return "http://www.lumiera.org/develompent.html" ;}
130 { (
void)
ifa;
return "0.3~pre"; }
134 { (
void)
ifa;
return "Hermann Vosseler"; }
138 { (
void)
ifa;
return "Ichthyostega@web.de"; }
146 " 2016, Hermann Vosseler <Ichthyostega@web.de>";
154 "**Lumiera** is free software; you can redistribute it and/or modify it\n"
155 "under the terms of the GNU General Public License as published by the\n"
156 "Free Software Foundation; either version 2 of the License, or (at your\n"
157 "option) any later version. See the file COPYING for further details."
166 int, (
const char* a,
const char* b),
175 using LERR_(LIFECYCLE);
187 const char*, (
const char* cmdID,
const char*
invocationID),
196 void, (
const char* cmdID,
const void*
args),
200 _instance().trigger(cmdID, *
static_cast<Rec
const *
> (
args));
204 void, (
const char* cmdID,
const void*
args),
208 _instance().bindArg(cmdID, *
static_cast<Rec
const *
> (
args));
212 void, (
const char* cmdID),
216 _instance().invoke(cmdID);
230 , instanceManager_{dispatcher_}
233 INFO (
stage,
"SessionCommand Facade opened.");
Access point to singletons and other kinds of dependencies designated by type.
Token or Atom with distinct identity.
Interface of a service to perform Commands on the session.
Command getInstance(Symbol instanceID)
access the currently "opened" instance with the given instanceID
void dispatch(Symbol instanceID)
hand over the designated command instance to the dispatcher installed on construction.
Symbol newInstance(Symbol prototypeID, string const &invocationID)
Create and thus "open" a new anonymous command instance.
Command & bindArg(std::tuple< TYPES... > const &)
Symbol cycle(Symbol cmdID, string const &invocationID) override
start next command cycle and "open" a new anonymous command instance
SessionCommandService(CommandDispatch &dispatcherLoopInterface)
void invoke(Symbol cmdID) override
void trigger(Symbol cmdID, Rec const &args) override
CommandInstanceManager instanceManager_
void bindArg(Symbol cmdID, Rec const &args) override
Steam-Layer command frontend.
Singleton services and Dependency Injection.
lumiera_err lumiera_error_set(lumiera_err nerr, const char *extra)
Set error state for the current thread.
A data record to describe interface, interface instances and plug-in instances.
@ LUMIERA_INTERFACE_EXPERIMENTAL
Not finished development code.
#define LUMIERA_INTERFACE_REF(iname, version, dname)
Return a reference (pointer) to an interface implementation.
#define LUMIERA_INTERFACE_INSTANCE(iname, version, name, descriptor, acquire, release,...)
Define an interface instance.
lumiera_interface * LumieraInterface
This header is for including and configuring NoBug.
Lumiera GTK UI implementation root.
com::RuntimeCheckedCommandInvoker invoke(Symbol cmdID)
Steam-Layer implementation namespace root.
A public service offered by the Session, implementing the SessionCommand facade interface.
Marker types to indicate a literal string and a Symbol.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...