Lumiera  0.pre.03
»edit your freedom«
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) Lumiera.org
5  2016, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 * *****************************************************/
22 
23 
24 
37 
38 namespace steam {
39 namespace control{
42 }}
43 namespace lumiera {
44 namespace facade {
45 
46 
47 
48  /* ==================== SessionCommand =================================== */
49 
50  using Interface = LUMIERA_INTERFACE_INAME(lumieraorg_SessionCommand, 0);
51  using Facade = steam::control::SessionCommand;
52 
53  using IHandle = InstanceHandle<Interface, Facade>;
54 
55 
56  template<>
57  class Proxy<IHandle>
58  : public Binding<IHandle>
59  {
60  //----Proxy-Implementation-of-SessionCommand--------
61 
62  Symbol cycle (Symbol cmdID, string const& invocID) override { return _i_.cycle (cmdID, cStr(invocID));}
63  void trigger (Symbol cmdID, lib::diff::Rec const& args) override { _i_.trigger (cmdID, &args); }
64  void bindArg (Symbol cmdID, lib::diff::Rec const& args) override { _i_.bindArg (cmdID, &args); }
65  void invoke (Symbol cmdID) override { _i_.invoke (cmdID); }
66 
67 
68  public:
69  using Binding<IHandle>::Binding;
70  };
71 
72 
74  template
75  class Link<Interface,Facade>;
76 
77 }} //namespace facade::lumiera
Global access point to invoke commands and cause edit operations within the Session.
CStr cStr(std::string const &rendered)
convenience shortcut: forced conversion to c-String via string.
Definition: symbol.hpp:68
Steam-Layer implementation namespace root.
Access point to singletons and other kinds of dependencies designated by type.
Definition: depend.hpp:289
static lib::Depend< SessionCommand > facade
static storage for the facade access front-end
Implementation of C++ binding proxies on top of the (plain-C based) interface system.
#define LUMIERA_INTERFACE_INAME(name, version)
Construct a type identifier for an interface.
Definition: interface.h:102
Lumiera public interface.
Definition: advice.cpp:113
object-like record of data.
Definition: record.hpp:150
Major public Interface to the Session subsystem of Lumiera GUI.