22 #include "observableproperty.h" 23 #include "gatewayconfig.h" 24 #include "signalconnectionshandler.h" 25 #include "config/softwarecontainerconfig.h" 26 #include "filetoolkitwithundo.h" 27 #include "softwarecontainererror.h" 39 #include "functionjob.h" 40 #include "commandjob.h" 45 class ContainerAbstractInterface;
48 enum class ContainerState
170 LOG_DECLARE_CLASS_CONTEXT(
"PCL",
"SoftwareContainer library");
185 std::unique_ptr<const SoftwareContainerConfig> config);
214 std::shared_ptr<FunctionJob> createFunctionJob(
const std::function<
int()> fun);
224 std::shared_ptr<CommandJob> createCommandJob(
const std::string &command);
253 void shutdown(
unsigned int timeout);
294 bool bindMount(
const std::string &pathOnHost,
295 const std::string &pathInContainer,
296 bool readonly =
true);
315 bool previouslyConfigured();
327 bool activateGateways();
328 bool shutdownGateways();
330 std::string getContainerDir();
331 std::string getGatewayDir();
333 void assertValidState();
336 void checkContainerRoot(std::string rootDir);
337 #ifdef ENABLE_NETWORKGATEWAY 338 void checkNetworkSettings();
339 #endif // ENABLE_NETWORKGATEWAY 341 ContainerID m_containerID;
342 std::shared_ptr<ContainerAbstractInterface> m_container;
343 pid_t m_pcPid = INVALID_PID;
346 std::vector<std::unique_ptr<Gateway>> m_gateways;
347 std::unique_ptr<const SoftwareContainerConfig> m_config;
349 std::string m_containerRoot;
350 unsigned int m_tmpfsSize;
352 Glib::RefPtr<Glib::MainContext> m_mainLoopContext;
356 bool m_previouslyConfigured;
A method was called which is inappropriate in the current state.
Contains the softwarecontainer::SoftwareContainerAbstractInterface class.
The container instance is in an invalid state and should not be used.
The SignalConnectionsHandler class contains references to sigc++ connections and automatically discon...
An error has occured in the underlying container implementation.
An abstraction of concrete container implementations.
Developers guide to adding a config item: