7#ifndef __LIBCAMERA_INTERNAL_PROCESS_H__
8#define __LIBCAMERA_INTERNAL_PROCESS_H__
32 int start(
const std::string &path,
33 const std::vector<std::string> &args = std::vector<std::string>(),
34 const std::vector<int> &fds = std::vector<int>());
44 void closeAllFdsExcept(
const std::vector<int> &fds);
46 void died(
int wstatus);
68 const struct sigaction &
oldsa()
const;
75 std::list<Process *> processes_;
77 struct sigaction oldsa_;
Notify of activity on a file descriptor.
Definition: event_notifier.h:20
Manager of processes.
Definition: process.h:57
static ProcessManager * instance()
Retrieve the Process manager instance.
Definition: process.cpp:159
int writePipe() const
Retrieve the Process manager's write pipe.
Definition: process.cpp:171
void registerProcess(Process *proc)
Register process with process manager.
Definition: process.cpp:102
ProcessManager()
Construct a ProcessManager instance.
Definition: process.cpp:115
const struct sigaction & oldsa() const
Retrive the old signal action data.
Definition: process.cpp:183
Process object.
Definition: process.h:21
void kill()
Kill the process.
Definition: process.cpp:365
int exitCode() const
Retrieve the exit code of the process.
Definition: process.h:37
int start(const std::string &path, const std::vector< std::string > &args=std::vector< std::string >(), const std::vector< int > &fds=std::vector< int >())
Fork and exec a process, and close fds.
Definition: process.cpp:235
ExitStatus
Exit status of process.
Definition: process.h:23
@ NormalExit
Definition: process.h:25
@ NotExited
Definition: process.h:24
@ SignalExit
Definition: process.h:26
Signal< enum ExitStatus, int > finished
Definition: process.h:41
ExitStatus exitStatus() const
Retrieve the exit status of the process.
Definition: process.h:36
Top-level libcamera namespace.
Definition: backtrace.h:17
Signal & slot implementation.