15#include <libcamera/base/private.h>
19#include <libcamera/base/span.h>
43 File(
const std::string &name);
47 const std::string &
fileName()
const {
return name_; }
56 int error()
const {
return error_; }
62 ssize_t
read(
const Span<uint8_t> &data);
63 ssize_t
write(
const Span<const uint8_t> &data);
65 Span<uint8_t>
map(off_t offset = 0, ssize_t
size = -1,
67 bool unmap(uint8_t *addr);
69 static bool exists(
const std::string &name);
81 std::map<void *, size_t> maps_;
Utilities to help constructing class interfaces.
#define LIBCAMERA_DISABLE_COPY(klass)
Disable copy construction and assignment of the klass.
Interface for I/O operations on files.
Definition: file.h:25
MapFlag
Flags for the File::map() function.
Definition: file.h:27
@ NoOption
No option (used as default value)
@ Private
The memory region is mapped as private, changes are not reflected in the file constents.
int error() const
Retrieve the file error status.
Definition: file.h:56
const std::string & fileName() const
Retrieve the file name.
Definition: file.h:47
bool exists() const
Check if the file specified by fileName() exists.
Definition: file.cpp:152
bool open(OpenMode mode)
Open the file in the given mode.
Definition: file.cpp:173
ssize_t write(const Span< const uint8_t > &data)
Write data to the file.
Definition: file.cpp:342
void close()
Close the file.
Definition: file.cpp:214
OpenModeFlag
Mode in which a file is opened.
Definition: file.h:34
@ ReadOnly
The file is open for reading.
@ WriteOnly
The file is open for writing.
@ ReadWrite
The file is open for reading and writing.
@ NotOpen
The file is not open.
bool isOpen() const
Check if the file is open.
Definition: file.h:52
~File()
Destroy a File instance.
Definition: file.cpp:108
File()
Construct a File without an associated name.
Definition: file.cpp:97
Flags< OpenModeFlag > OpenMode
A bitwise combination of File::OpenModeFlag values.
Definition: file.h:41
OpenMode openMode() const
Retrieve the file open mode.
Definition: file.h:53
Flags< MapFlag > MapFlags
A bitwise combination of File::MapFlag values.
Definition: file.h:32
ssize_t read(const Span< uint8_t > &data)
Read data from the file.
Definition: file.cpp:304
off_t seek(off_t pos)
Set the read or write position.
Definition: file.cpp:277
Span< uint8_t > map(off_t offset=0, ssize_t size=-1, MapFlags flags=MapFlag::NoOption)
Map a region of the file in the process memory.
Definition: file.cpp:387
bool unmap(uint8_t *addr)
Unmap a region mapped with map()
Definition: file.cpp:434
ssize_t size() const
Retrieve the file size.
Definition: file.cpp:243
off_t pos() const
Return current read or write position.
Definition: file.cpp:263
void setFileName(const std::string &name)
Set the name of the file.
Definition: file.cpp:129
Type-safe container for enum-based bitfields.
Definition: flags.h:16
unique_ptr-like wrapper for a file descriptor
Definition: unique_fd.h:18
bool isValid() const
Check if the UniqueFD owns a valid file descriptor.
Definition: unique_fd.h:61
#define LIBCAMERA_FLAGS_ENABLE_OPERATORS(_enum)
Enable bitwise operations on the enum enumeration.
Top-level libcamera namespace.
Definition: backtrace.h:17
File descriptor wrapper that owns a file descriptor.