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)
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 
29 namespace steam {
30 namespace control{
33 }}
34 namespace lumiera {
35 namespace facade {
36 
37 
38 
39  /* ==================== SessionCommand =================================== */
40 
41  using Interface = LUMIERA_INTERFACE_INAME(lumieraorg_SessionCommand, 0);
42  using Facade = steam::control::SessionCommand;
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
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:59
Steam-Layer implementation namespace root.
Access point to singletons and other kinds of dependencies designated by type.
Definition: depend.hpp:280
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:93
Lumiera public interface.
Definition: advice.cpp:104
object-like record of data.
Definition: record.hpp:141
Major public Interface to the Session subsystem of Lumiera GUI.