Lumiera  0.pre.03
»edit your freedom«
session-command-service.cpp File Reference

Go to the source code of this file.

Description

Implementation of command invocation on the Session interface.

This is the actual service implementation and runs within Session subsystem. It is managed by the DispatcherLoop, which also starts the Session Loop Thread. Moreover, for actually perform any command, the command operation needs to be defined somewhere statically, as a function operating on the current session, plus an state capturing and UNDO function. And the concrete arguments of the command functor must be suitably bound.

Definition in file session-command-service.cpp.

#include "steam/control/session-command-service.hpp"
#include "steam/control/command.hpp"
#include "include/logging.h"
#include "lib/depend.hpp"
#include "lib/symbol.hpp"
#include "lib/util.hpp"
#include "common/interface-descriptor.h"
#include <string>

Functions

 LUMIERA_INTERFACE_INSTANCE (lumieraorg_interfacedescriptor, 0, lumieraorg_SessionCommandFacade_descriptor, NULL, NULL, NULL, LUMIERA_INTERFACE_INLINE(name, const char *,(LumieraInterface ifa), {(void) ifa;return "SessionCommand";}), LUMIERA_INTERFACE_INLINE(brief, const char *,(LumieraInterface ifa), {(void) ifa;return "Session Interface: invoke pre-defined commands to operate on the session";}), LUMIERA_INTERFACE_INLINE(homepage, const char *,(LumieraInterface ifa), {(void) ifa;return "http://www.lumiera.org/develompent.html" ;}), LUMIERA_INTERFACE_INLINE(version, const char *,(LumieraInterface ifa), {(void) ifa;return "0.3~pre";}), LUMIERA_INTERFACE_INLINE(author, const char *,(LumieraInterface ifa), {(void) ifa;return "Hermann Vosseler";}), LUMIERA_INTERFACE_INLINE(email, const char *,(LumieraInterface ifa), {(void) ifa;return "Ichthyostega@web.de";}), LUMIERA_INTERFACE_INLINE(copyright, const char *,(LumieraInterface ifa), {(void) ifa;return "Copyright (C) Lumiera.org\ " 2016 Hermann Vosseler< Ichthyostega @web.de >"; }), LUMIERA_INTERFACE_INLINE(license, const char *,(LumieraInterface ifa), {(void) ifa; return "This program is free software;you can redistribute it and/or modify\" "it under the terms of the GNU General Public License as published by\" "the Free Software Foundation;either version 2 of the License, or\" "(at your option) any later version.\" "\" "This program is distributed in the hope that it will be useful,\" "but WITHOUT ANY WARRANTY;without even the implied warranty of\" "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\" "GNU General Public License for more details.\" "\" "You should have received a copy of the GNU General Public License\" "along with this program;if not, write to the Free Software\" "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"; }), LUMIERA_INTERFACE_INLINE(state, int,(LumieraInterface ifa), {(void) ifa; return LUMIERA_INTERFACE_EXPERIMENTAL;}), LUMIERA_INTERFACE_INLINE(versioncmp, int,(const char *a, const char *b), {(void) a;(void) b; return 0;}))
 
 LUMIERA_INTERFACE_INSTANCE (lumieraorg_SessionCommand, 0, lumieraorg_SessionCommandService, LUMIERA_INTERFACE_REF(lumieraorg_interfacedescriptor, 0, lumieraorg_SessionCommandFacade_descriptor), NULL, NULL, LUMIERA_INTERFACE_INLINE(cycle, const char *,(const char *cmdID, const char *invocationID), { if(!_instance) return lumiera_error_set(LUMIERA_ERROR_LIFECYCLE, cmdID);else return _instance().cycle(cmdID, invocationID);}), LUMIERA_INTERFACE_INLINE(trigger, void,(const char *cmdID, const void *args), { if(!_instance) lumiera_error_set(LUMIERA_ERROR_LIFECYCLE, cmdID);else _instance().trigger(cmdID, *static_cast< Rec const *>(args));}), LUMIERA_INTERFACE_INLINE(bindArg, void,(const char *cmdID, const void *args), { if(!_instance) lumiera_error_set(LUMIERA_ERROR_LIFECYCLE, cmdID);else _instance().bindArg(cmdID, *static_cast< Rec const *>(args));}), LUMIERA_INTERFACE_INLINE(invoke, void,(const char *cmdID), { if(!_instance) lumiera_error_set(LUMIERA_ERROR_LIFECYCLE, cmdID);else _instance().invoke(cmdID);}))
 

Variables

lib::Depend< SessionCommandService > _instance
 a backdoor for the C Language impl to access the actual SessionCommand implementation...
 

Namespaces

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