softwarecontainer  0.18.0-739e8d7 2017-05-04
softwarecontaineragentadaptor.h
1 /*
2  * Copyright (C) 2016-2017 Pelagicore AB
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
9  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
10  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
11  * BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
12  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
13  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
14  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
15  * SOFTWARE.
16  *
17  * For further information see LICENSE
18  */
19 
20 #pragma once
21 
22 #include "softwarecontaineragent.h"
23 #include "softwarecontaineragent_dbus_stub.h"
24 
25 namespace softwarecontainer {
26 
29 {
30  LOG_DECLARE_CLASS_CONTEXT("SCAA", "SoftwareContainerAgentAdaptor");
31 
32 public:
34 
36  Glib::RefPtr<Glib::MainLoop> &mainLoop,
38  bool useSessionBus);
39 
40  void List(SoftwareContainerAgentMessageHelper msg) override;
41  void ListCapabilities(SoftwareContainerAgentMessageHelper msg) override;
42 
43  void Execute(const gint32 containerID,
44  const std::string commandLine,
45  const std::string workingDirectory,
46  const std::string outputFile,
47  const std::map<std::string, std::string> env,
49 
50  void Destroy(const gint32 containerID, SoftwareContainerAgentMessageHelper msg) override;
51 
52  void BindMount(const gint32 containerID,
53  const std::string pathInHost,
54  const std::string PathInContainer,
55  const bool readOnly,
57 
58  void Suspend(const gint32 containerID, SoftwareContainerAgentMessageHelper msg) override;
59 
60  void Resume(const gint32 containerID, SoftwareContainerAgentMessageHelper msg) override;
61 
62  void SetCapabilities(const gint32 containerID,
63  const std::vector<std::string> capabilities,
65 
66  void Create(const std::string config, SoftwareContainerAgentMessageHelper msg) override;
67 
68 private:
69  // Slots to be invoked to notify on error or success in dbus setup
70  void onDBusError(std::string message);
71  void onDBusNameAcquired(std::string message);
72 
73  Glib::RefPtr<Glib::MainLoop> m_mainLoop;
75 
76 };
77 
78 } // namespace softwarecontainer
79 
Contains the softwarecontainer::SoftwareContainerAgent class.
Developers guide to adding a config item: