24 #ifndef LXCPP_GUARD_GUARD_HPP
25 #define LXCPP_GUARD_GUARD_HPP
50 Guard(
const std::string& socketPath);
98 void onInitExit(struct ::signalfd_siginfo& sigInfo);
129 #endif // LXCPP_GUARD_HPP
utils::Channel & mChannel
Definition: guard.hpp:58
void onDisconnection(const cargo::ipc::PeerID &peerID, const cargo::ipc::FileDescriptor)
Called each time a connection to host is lost.
Definition: guard.cpp:115
cargo::ipc::PeerID mPeerID
Definition: guard.hpp:65
std::shared_ptr< MethodResult > Pointer
Definition: method-result.hpp:47
Declaration of the cargo IPC handling class.
std::string PeerID
Definition: types.hpp:45
bool onStart(const cargo::ipc::PeerID, std::shared_ptr< api::Void > &, cargo::ipc::MethodResult::Pointer result)
Host -> Guard: Start init in a container described by the configuration.
Definition: guard.cpp:168
cargo::ipc::epoll::EventPoll mEventPoll
Definition: guard.hpp:64
ContainerData(ContainerConfig &config, utils::Channel &channel)
Definition: guard.hpp:60
utils::SignalFD mSignalFD
Definition: guard.hpp:66
int execute()
Definition: guard.cpp:223
IPC implementation for related processes.
bool onSetConfig(const cargo::ipc::PeerID, std::shared_ptr< ContainerConfig > &data, cargo::ipc::MethodResult::Pointer result)
Called when synchronizing configuration with the host.
Definition: guard.cpp:137
IPC messages declaration.
~Guard()
Definition: guard.cpp:101
char data[368]
Definition: initctl.cpp:41
Definition: container-config.hpp:51
Guard(const std::string &socketPath)
Definition: guard.cpp:77
Guard process used for container's init configuration and control.
Definition: guard.hpp:48
SignalFD takes control over handling signals sent to the thread.
Definition: signalfd.hpp:47
void onInitExit(struct::signalfd_siginfo &sigInfo)
Called when the init process exits.
Definition: guard.cpp:123
std::shared_ptr< ContainerConfig > mConfig
Definition: guard.hpp:69
std::unique_ptr< cargo::ipc::Service > mService
Definition: guard.hpp:67
static int startContainer(void *data)
Setups the init process and executes the init.
Definition: guard.cpp:42
void onConnection(const cargo::ipc::PeerID &peerID, const cargo::ipc::FileDescriptor)
Called each time a new connection is opened to the Guard's socket.
Definition: guard.cpp:105
This class waits on registered file descriptor for events.
Definition: event-poll.hpp:47
int FileDescriptor
Definition: types.hpp:42
Channel is implemented with a pair of anonymous sockets.
Definition: channel.hpp:38
bool onGetConfig(const cargo::ipc::PeerID, std::shared_ptr< api::Void > &, cargo::ipc::MethodResult::Pointer result)
Called when synchronizing configuration with the host.
Definition: guard.cpp:161
ContainerConfig & mConfig
Definition: guard.hpp:57
A definition of a ContainerConfig struct.
bool onStop(const cargo::ipc::PeerID, std::shared_ptr< api::Void > &, cargo::ipc::MethodResult::Pointer result)
Host -> Guard: Stop the init process and return its exit status.
Definition: guard.cpp:213