libclues
Linux C++ Tracing Library
Loading...
Searching...
No Matches
ErrnoResult.hxx
1#pragma once
2
3// C++
4#include <optional>
5
6// cosmos
7#include <cosmos/error/errno.hxx>
8
9// clues
10#include <clues/types.hxx>
11
12namespace clues {
13
15
24class CLUES_API ErrnoResult {
25public: // functions
26
27 explicit ErrnoResult(const cosmos::Errno code);
28
29 std::string str() const;
30
31 std::optional<cosmos::Errno> errorCode() const {
32 return m_errno;
33 }
34
35 std::optional<KernelErrno> kernelErrorCode() const {
36 return m_kernel_errno;
37 }
38
39 bool hasErrorCode() const {
40 return m_errno != std::nullopt;
41 }
42
43 bool hasKernelErrorCode() const {
44 return m_kernel_errno != std::nullopt;
45 }
46
47protected: // data
48
49 std::optional<cosmos::Errno> m_errno;
50 std::optional<KernelErrno> m_kernel_errno;
51};
52
53} // end ns