libfilezilla
Loading...
Searching...
No Matches
fsresult.hpp
Go to the documentation of this file.
1#ifndef LIBFILEZILLA_FSRESULT_HEADER
2#define LIBFILEZILLA_FSRESULT_HEADER
3
7
8#include "private/visibility.hpp"
9
10#include <stdint.h>
11#include <stddef.h>
12
13namespace fz {
14
25class FZ_PUBLIC_SYMBOL result
26{
27public:
28 enum error {
29 ok,
30 none = ok,
31
34
37
40
43
46
49
52
55 };
56
57#if FZ_WINDOWS
58 typedef uint32_t raw_t; // DWORD alternative without windows.h
59#else
60 typedef int raw_t;
61#endif
62
63 explicit operator bool() const { return error_ == 0; }
64
65 error error_{};
66
67 raw_t raw_{};
68};
69
78
79class FZ_PUBLIC_SYMBOL rwresult final
80{
81public:
82#if FZ_WINDOWS
83 typedef uint32_t raw_t; // DWORD alternative without windows.h
84#else
85 typedef int raw_t;
86#endif
87
88 enum error {
89 none,
90
93
96
99
102 };
103
104 rwresult() = default;
105
106 explicit rwresult(error e, raw_t raw)
107 : error_(e)
108 , raw_(raw)
109 {}
110
111 explicit rwresult(size_t value)
112 : value_(value)
113 {}
114
115 explicit operator bool() const { return error_ == 0; }
116
117 error error_{};
118
119 union {
121 raw_t raw_;
122
124 size_t value_{};
125 };
126};
127}
128
129#endif
Small class to return filesystem errors.
Definition fsresult.hpp:26
error
Definition fsresult.hpp:28
@ noperm
Permission denied.
Definition fsresult.hpp:36
@ preexisting
File already exists when asked to explicitly create a new file.
Definition fsresult.hpp:51
@ nofile
Requested file does not exist or is not a file.
Definition fsresult.hpp:39
@ other
Some other error.
Definition fsresult.hpp:54
@ resource_limit
Dynamic resource utilization, like too many open files.
Definition fsresult.hpp:48
@ invalid
Invalid arguments, syntax error.
Definition fsresult.hpp:33
@ nospace
Out of disk space (physical, or space quota)
Definition fsresult.hpp:45
@ nodir
Requested dir does not exist or is not a dir.
Definition fsresult.hpp:42
Holds the result of read/write operations.
Definition fsresult.hpp:80
raw_t raw_
Undefined if error_ is none.
Definition fsresult.hpp:121
size_t value_
Undefined if error_ is not none.
Definition fsresult.hpp:124
error
Definition fsresult.hpp:88
@ other
Some other error.
Definition fsresult.hpp:101
@ wouldblock
The operation would have blocked, but the file descriptor is marked non-blocking.
Definition fsresult.hpp:98
@ invalid
Invalid arguments, syntax error.
Definition fsresult.hpp:92
@ nospace
Out of disk space.
Definition fsresult.hpp:95
@ error
Error messages aimed at the user.
Definition logger.hpp:21
The namespace used by libfilezilla.
Definition apply.hpp:17
@ error
Operationf failed.
Definition aio.hpp:199