libgpiod
Loading...
Searching...
No Matches
info-event.hpp
Go to the documentation of this file.
1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/* SPDX-FileCopyrightText: 2021-2022 Bartosz Golaszewski <brgl@bgdev.pl> */
3
8#ifndef __LIBGPIOD_CXX_INFO_EVENT_HPP__
9#define __LIBGPIOD_CXX_INFO_EVENT_HPP__
10
11#if !defined(__LIBGPIOD_GPIOD_CXX_INSIDE__)
12#error "Only gpiod.hpp can be included directly."
13#endif
14
15#include <cstdint>
16#include <iostream>
17#include <memory>
18
19#include "timestamp.hpp"
20
21namespace gpiod {
22
23class chip;
24class line_info;
25
29class info_event final
30{
31public:
32
36 enum class event_type
37 {
44 };
45
50 info_event(const info_event& other);
51
56 info_event(info_event&& other) noexcept;
57
59
66
72 info_event& operator=(info_event&& other) noexcept;
73
79
84 ::std::uint64_t timestamp_ns() const noexcept;
85
91 const line_info& get_line_info() const noexcept;
92
93private:
94
95 info_event();
96
97 struct impl;
98
99 ::std::shared_ptr<impl> _m_priv;
100
101 friend chip;
102};
103
110::std::ostream& operator<<(::std::ostream& out, const info_event& event);
111
112} /* namespace gpiod */
113
114#endif /* __LIBGPIOD_CXX_INFO_EVENT_HPP__ */
Represents a GPIO chip.
Definition chip.hpp:37
Immutable object containing data about a single line info event.
Definition info-event.hpp:30
info_event & operator=(const info_event &other)
Copy assignment operator.
info_event(info_event &&other) noexcept
Move constructor.
event_type type() const
Type of this event.
info_event & operator=(info_event &&other) noexcept
Move assignment operator.
const line_info & get_line_info() const noexcept
Get the new line information.
info_event(const info_event &other)
Copy constructor.
event_type
Types of info events.
Definition info-event.hpp:37
::std::uint64_t timestamp_ns() const noexcept
Timestamp of the event as returned by the kernel.
Contains an immutable snapshot of the line's state at the time when the object of this class was inst...
Definition line-info.hpp:30
Definition chip-info.hpp:18