libcamera
v0.7.2
Supporting cameras in Linux since 2019
Toggle main menu visibility
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
12
#include <
libcamera/base/class.h
>
13
#include <
libcamera/base/signal.h
>
14
#include <libcamera/base/span.h>
15
#include <
libcamera/base/unique_fd.h
>
16
17
namespace
libcamera
{
18
19
class
EventNotifier
;
20
21
class
Process final
22
{
23
public
:
24
enum
ExitStatus
{
25
NotExited
,
26
NormalExit
,
27
SignalExit
,
28
};
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
42
Signal<enum ExitStatus, int>
finished
;
43
44
private
:
45
LIBCAMERA_DISABLE_COPY_AND_MOVE
(Process)
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 */
class.h
Utilities to help constructing class interfaces.
LIBCAMERA_DISABLE_COPY_AND_MOVE
#define LIBCAMERA_DISABLE_COPY_AND_MOVE(klass)
Disable copy and move construction and assignment of the klass.
Definition
class.h:29
libcamera::EventNotifier
Notify of activity on a file descriptor.
Definition
event_notifier.h:20
libcamera::Process
Process object.
Definition
process.h:22
libcamera::Process::kill
void kill()
Kill the process.
Definition
process.cpp:281
libcamera::Process::start
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
libcamera::Process::ExitStatus
ExitStatus
Exit status of process.
Definition
process.h:24
libcamera::Process::SignalExit
@ SignalExit
Definition
process.h:27
libcamera::Process::NotExited
@ NotExited
Definition
process.h:25
libcamera::Process::NormalExit
@ NormalExit
Definition
process.h:26
libcamera::Process::finished
Signal< enum ExitStatus, int > finished
Definition
process.h:42
libcamera::Process::exitCode
int exitCode() const
Retrieve the exit code of the process.
Definition
process.h:38
libcamera::Process::exitStatus
ExitStatus exitStatus() const
Retrieve the exit status of the process.
Definition
process.h:37
libcamera::Signal
Generic signal and slot communication mechanism.
Definition
signal.h:39
libcamera::UniqueFD
unique_ptr-like wrapper for a file descriptor
Definition
unique_fd.h:17
libcamera
Top-level libcamera namespace.
Definition
backtrace.h:17
signal.h
Signal & slot implementation.
unique_fd.h
File descriptor wrapper that owns a file descriptor.
include
libcamera
internal
process.h
Generated by
1.18.0