Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
session-command-interface-proxy.cpp
Go to the documentation of this file.
1/*
2 SessionCommand(Proxy) - public service to invoke commands on the session
3
4 Copyright (C)
5 2016, Hermann Vosseler <Ichthyostega@web.de>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12* *****************************************************************/
13
14
15
28
29namespace steam {
30namespace control{
33}}
34namespace lumiera {
35namespace facade {
36
37
38
39 /* ==================== SessionCommand =================================== */
40
41 using Interface = LUMIERA_INTERFACE_INAME(lumieraorg_SessionCommand, 0);
43
44 using IHandle = InstanceHandle<Interface, Facade>;
45
46
47 template<>
48 class Proxy<IHandle>
49 : public Binding<IHandle>
50 {
51 //----Proxy-Implementation-of-SessionCommand--------
52
53 Symbol cycle (Symbol cmdID, string const& invocID) override { return _i_.cycle (cmdID, cStr(invocID));}
54 void trigger (Symbol cmdID, lib::diff::Rec const& args) override { _i_.trigger (cmdID, &args); }
55 void bindArg (Symbol cmdID, lib::diff::Rec const& args) override { _i_.bindArg (cmdID, &args); }
56 void invoke (Symbol cmdID) override { _i_.invoke (cmdID); }
57
58
59 public:
60 using Binding<IHandle>::Binding;
61 };
62
63
65 template
66 class Link<Interface,Facade>;
67
68}} //namespace facade::lumiera
Access point to singletons and other kinds of dependencies designated by type.
Definition depend.hpp:281
Token or Atom with distinct identity.
Definition symbol.hpp:120
object-like record of data.
Definition record.hpp:142
void trigger(Symbol cmdID, lib::diff::Rec const &args) override
void bindArg(Symbol cmdID, lib::diff::Rec const &args) override
Symbol cycle(Symbol cmdID, string const &invocID) override
Global access point to invoke commands and cause edit operations within the Session.
static lib::Depend< SessionCommand > facade
static storage for the facade access front-end
#define LUMIERA_INTERFACE_INAME(name, version)
Construct a type identifier for an interface.
Definition interface.h:93
Implementation of C++ binding proxies on top of the (plain-C based) interface system.
InstanceHandle< Interface, Facade > IHandle
LUMIERA_INTERFACE_INAME(lumieraorg_GuiNotification, 0) Interface
stage::GuiNotification Facade
Implementation Base for building Facade Proxy implementations.
Lumiera public interface.
Definition advice.hpp:102
Steam-Layer implementation namespace root.
Major public Interface to the Session subsystem of Lumiera GUI.
CStr cStr(std::string const &rendered)
convenience shortcut: forced conversion to c-String via string.
Definition symbol.hpp:60