60 return instanceManager_.
newInstance(cmdID, invocationID);
123 ,lumieraorg_SessionCommandFacade_descriptor
125 , LUMIERA_INTERFACE_INLINE (
name,
126 const char*, (LumieraInterface ifa),
127 { (void)ifa;
return "SessionCommand"; }
129 , LUMIERA_INTERFACE_INLINE (brief,
130 const char*, (LumieraInterface ifa),
131 { (void)ifa;
return "Session Interface: invoke pre-defined commands to operate on the session"; }
133 , LUMIERA_INTERFACE_INLINE (homepage,
134 const char*, (LumieraInterface ifa),
135 { (void)ifa;
return "http://www.lumiera.org/develompent.html" ;}
137 , LUMIERA_INTERFACE_INLINE (version,
138 const char*, (LumieraInterface ifa),
139 { (void)ifa;
return "0.3~pre"; }
141 , LUMIERA_INTERFACE_INLINE (author,
142 const char*, (LumieraInterface ifa),
143 { (void)ifa;
return "Hermann Vosseler"; }
145 , LUMIERA_INTERFACE_INLINE (email,
146 const char*, (LumieraInterface ifa),
147 { (void)ifa;
return "Ichthyostega@web.de"; }
149 , LUMIERA_INTERFACE_INLINE (copyright,
150 const char*, (LumieraInterface ifa),
154 "Copyright (C) Lumiera.org\n" 155 " 2016 Hermann Vosseler <Ichthyostega@web.de>";
158 , LUMIERA_INTERFACE_INLINE (license,
159 const char*, (LumieraInterface ifa),
163 "This program is free software; you can redistribute it and/or modify\n" 164 "it under the terms of the GNU General Public License as published by\n" 165 "the Free Software Foundation; either version 2 of the License, or\n" 166 "(at your option) any later version.\n" 168 "This program is distributed in the hope that it will be useful,\n" 169 "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" 170 "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" 171 "GNU General Public License for more details.\n" 173 "You should have received a copy of the GNU General Public License\n" 174 "along with this program; if not, write to the Free Software\n" 175 "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA";
178 , LUMIERA_INTERFACE_INLINE (state,
179 int, (LumieraInterface ifa),
182 , LUMIERA_INTERFACE_INLINE (versioncmp,
183 int, (
const char* a,
const char* b),
184 {(void)a;(void)b;
return 0;}
192 using LERR_(LIFECYCLE);
199 ,lumieraorg_SessionCommandService
200 ,
LUMIERA_INTERFACE_REF(lumieraorg_interfacedescriptor, 0, lumieraorg_SessionCommandFacade_descriptor)
203 , LUMIERA_INTERFACE_INLINE (
cycle,
204 const char*, (
const char* cmdID,
const char* invocationID),
209 return _instance().cycle(cmdID, invocationID);
212 , LUMIERA_INTERFACE_INLINE (
trigger,
213 void, (
const char* cmdID,
const void* args),
217 _instance().trigger(cmdID, *static_cast<Rec const *> (args));
220 , LUMIERA_INTERFACE_INLINE (
bindArg,
221 void, (
const char* cmdID,
const void* args),
225 _instance().bindArg(cmdID, *static_cast<Rec const *> (args));
228 , LUMIERA_INTERFACE_INLINE (
invoke,
229 void, (
const char* cmdID),
246 : dispatcher_{dispatcherLoopInterface}
247 , instanceManager_{dispatcher_}
248 , serviceInstance_{
LUMIERA_INTERFACE_REF (lumieraorg_SessionCommand, 0, lumieraorg_SessionCommandService)}
250 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