libgpiod
request-config.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_REQUEST_CONFIG_HPP__
9 #define __LIBGPIOD_CXX_REQUEST_CONFIG_HPP__
10 
11 #if !defined(__LIBGPIOD_GPIOD_CXX_INSIDE__)
12 #error "Only gpiod.hpp can be included directly."
13 #endif
14 
15 #include <cstddef>
16 #include <iostream>
17 #include <memory>
18 #include <string>
19 
20 #include "line.hpp"
21 
22 namespace gpiod {
23 
24 class chip;
25 
30 class request_config final
31 {
32 public:
33 
38 
39  request_config(const request_config& other) = delete;
40 
45  request_config(request_config&& other) noexcept;
46 
48 
54  request_config& operator=(request_config&& other) noexcept;
55 
61  request_config& set_consumer(const ::std::string& consumer) noexcept;
62 
67  ::std::string consumer() const noexcept;
68 
77 
82  ::std::size_t event_buffer_size() const noexcept;
83 
84 private:
85 
86  struct impl;
87 
88  ::std::shared_ptr<impl> _m_priv;
89 
91 
92  friend request_builder;
93 };
94 
101 ::std::ostream& operator<<(::std::ostream& out, const request_config& config);
102 
103 } /* namespace gpiod */
104 
105 #endif /* __LIBGPIOD_CXX_REQUEST_CONFIG_HPP__ */
Definition: chip-info.hpp:18
::std::ostream & operator<<(::std::ostream &out, const chip_info &chip)
Stream insertion operator for GPIO chip objects.
Intermediate object storing the configuration for a line request.
Definition: request-builder.hpp:28
request_config()
Constructor.
::std::string consumer() const noexcept
Get the consumer name.
request_config & set_event_buffer_size(::std::size_t event_buffer_size) noexcept
Set the size of the kernel event buffer.
Stores a set of options passed to the kernel when making a line request.
Definition: request-config.hpp:30
request_config & set_consumer(const ::std::string &consumer) noexcept
Set the consumer name.
request_config & operator=(request_config &&other) noexcept
Move assignment operator.
::std::size_t event_buffer_size() const noexcept
Get the edge event buffer size from this request config.