51 return instanceManager_.
newInstance(cmdID, invocationID);
114 ,lumieraorg_SessionCommandFacade_descriptor
116 , LUMIERA_INTERFACE_INLINE (
name,
117 const char*, (LumieraInterface ifa),
118 { (void)ifa;
return "SessionCommand"; }
120 , LUMIERA_INTERFACE_INLINE (brief,
121 const char*, (LumieraInterface ifa),
122 { (void)ifa;
return "Session Interface: invoke pre-defined commands to operate on the session"; }
124 , LUMIERA_INTERFACE_INLINE (homepage,
125 const char*, (LumieraInterface ifa),
126 { (void)ifa;
return "http://www.lumiera.org/develompent.html" ;}
128 , LUMIERA_INTERFACE_INLINE (version,
129 const char*, (LumieraInterface ifa),
130 { (void)ifa;
return "0.3~pre"; }
132 , LUMIERA_INTERFACE_INLINE (author,
133 const char*, (LumieraInterface ifa),
134 { (void)ifa;
return "Hermann Vosseler"; }
136 , LUMIERA_INTERFACE_INLINE (email,
137 const char*, (LumieraInterface ifa),
138 { (void)ifa;
return "Ichthyostega@web.de"; }
140 , LUMIERA_INTERFACE_INLINE (copyright,
141 const char*, (LumieraInterface ifa),
146 " 2016, Hermann Vosseler <Ichthyostega@web.de>";
149 , LUMIERA_INTERFACE_INLINE (license,
150 const char*, (LumieraInterface ifa),
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." 161 , LUMIERA_INTERFACE_INLINE (state,
162 int, (LumieraInterface ifa),
165 , LUMIERA_INTERFACE_INLINE (versioncmp,
166 int, (
const char* a,
const char* b),
167 {(void)a;(void)b;
return 0;}
175 using LERR_(LIFECYCLE);
182 ,lumieraorg_SessionCommandService
183 ,
LUMIERA_INTERFACE_REF(lumieraorg_interfacedescriptor, 0, lumieraorg_SessionCommandFacade_descriptor)
186 , LUMIERA_INTERFACE_INLINE (
cycle,
187 const char*, (
const char* cmdID,
const char* invocationID),
192 return _instance().cycle(cmdID, invocationID);
195 , LUMIERA_INTERFACE_INLINE (
trigger,
196 void, (
const char* cmdID,
const void* args),
200 _instance().trigger(cmdID, *static_cast<Rec const *> (args));
203 , LUMIERA_INTERFACE_INLINE (
bindArg,
204 void, (
const char* cmdID,
const void* args),
208 _instance().bindArg(cmdID, *static_cast<Rec const *> (args));
211 , LUMIERA_INTERFACE_INLINE (
invoke,
212 void, (
const char* cmdID),
229 : dispatcher_{dispatcherLoopInterface}
230 , instanceManager_{dispatcher_}
231 , serviceInstance_{
LUMIERA_INTERFACE_REF (lumieraorg_SessionCommand, 0, lumieraorg_SessionCommandService)}
233 INFO (
stage,
"SessionCommand Facade opened.");
lib::Depend< SessionCommandService > _instance
a backdoor for the C Language impl to access the actual SessionCommand implementation...
Symbol newInstance(Symbol prototypeID, string const &invocationID)
Create and thus "open" a new anonymous command instance.
Symbol cycle(Symbol cmdID, string const &invocationID) override
start next command cycle and "open" a new anonymous command instance
A public service offered by the Session, implementing the SessionCommand facade interface.
This header is for including and configuring NoBug.
Steam-Layer implementation namespace root.
Access point to singletons and other kinds of dependencies designated by type.
Not finished development code.
Command getInstance(Symbol instanceID)
access the currently "opened" instance with the given instanceID
#define LUMIERA_INTERFACE_INSTANCE(iname, version, name, descriptor, acquire, release,...)
Define an interface instance.
Token or Atom with distinct identity.
Marker types to indicate a literal string and a Symbol.
#define LUMIERA_INTERFACE_REF(iname, version, dname)
Return a reference (pointer) to an interface implementation.
Interface of a service to perform Commands on the session.
Lumiera GTK UI implementation root.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
Steam-Layer command frontend.
void invoke(Symbol cmdID) override
Singleton services and Dependency Injection.
lumiera_err lumiera_error_set(lumiera_err nerr, const char *extra)
Set error state for the current thread.
SessionCommandService(CommandDispatch &dispatcherLoopInterface)
A data record to describe interface, interface instances and plug-in instances.
void dispatch(Symbol instanceID)
hand over the designated command instance to the dispatcher installed on construction.
void bindArg(Symbol cmdID, Rec const &args) override
void trigger(Symbol cmdID, Rec const &args) override