libcamera v0.5.2
Supporting cameras in Linux since 2019
Loading...
Searching...
No Matches
process.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * Copyright (C) 2019, Google Inc.
4 *
5 * Process object
6 */
7
8#pragma once
9
10#include <string>
11
14#include <libcamera/base/span.h>
16
17namespace libcamera {
18
19class EventNotifier;
20
21class Process final
22{
23public:
29
30 Process();
31 ~Process();
32
33 int start(const std::string &path,
34 Span<const std::string> args = {},
35 Span<const int> fds = {});
36
37 ExitStatus exitStatus() const { return exitStatus_; }
38 int exitCode() const { return exitCode_; }
39
40 void kill();
41
43
44private:
46
47 void onPidfdNotify();
48
49 pid_t pid_;
50 enum ExitStatus exitStatus_;
51 int exitCode_;
52
53 UniqueFD pidfd_;
54 std::unique_ptr<EventNotifier> pidfdNotify_;
55};
56
57} /* namespace libcamera */
Utilities to help constructing class interfaces.
#define LIBCAMERA_DISABLE_COPY_AND_MOVE(klass)
Disable copy and move construction and assignment of the klass.
Definition class.h:29
Notify of activity on a file descriptor.
Definition event_notifier.h:20
Process object.
Definition process.h:22
void kill()
Kill the process.
Definition process.cpp:281
int start(const std::string &path, Span< const std::string > args={}, Span< const int > fds={})
Fork and exec a process, and close fds.
Definition process.cpp:141
ExitStatus
Exit status of process.
Definition process.h:24
@ SignalExit
Definition process.h:27
@ NotExited
Definition process.h:25
@ NormalExit
Definition process.h:26
Signal< enum ExitStatus, int > finished
Definition process.h:42
int exitCode() const
Retrieve the exit code of the process.
Definition process.h:38
ExitStatus exitStatus() const
Retrieve the exit status of the process.
Definition process.h:37
Generic signal and slot communication mechanism.
Definition signal.h:39
unique_ptr-like wrapper for a file descriptor
Definition unique_fd.h:17
Top-level libcamera namespace.
Definition backtrace.h:17
Signal & slot implementation.
File descriptor wrapper that owns a file descriptor.