OpenFlags.h
Go to the documentation of this file.
1 
22 #pragma once
23 
24 #include "Types.h"
25 
26 namespace IFS
27 {
34 #define IFS_OPEN_FLAG_MAP(XX) \
35  XX(Append, "Append to file") \
36  XX(Truncate, "Create empty file") \
37  XX(Create, "Create new file if file doesn't exist") \
38  XX(Read, "Read access") \
39  XX(Write, "Write access") \
40  XX(NoFollow, "Don't follow symbolic links")
41 
42 enum class OpenFlag {
43 #define XX(_tag, _comment) _tag,
45 #undef XX
46  MAX
47 };
48 
49 // The set of flags
51 
52 inline constexpr OpenFlags operator|(OpenFlag a, OpenFlag b)
53 {
54  return OpenFlags(a) | b;
55 }
56 
57 } // namespace IFS
58 
BitSet< uint8_t, OpenFlag, size_t(OpenFlag::MAX)> OpenFlags
Definition: OpenFlags.h:50
The String class.
Definition: WString.h:136
XX(_tag, _comment)
#define IFS_OPEN_FLAG_MAP(XX)
File open flag.
Definition: OpenFlags.h:34
String toString(IFS::OpenFlag flag)
Get a descriptive string for a flag.
constexpr OpenFlags operator|(OpenFlag a, OpenFlag b)
Definition: OpenFlags.h:52
Definition: DirectoryTemplate.h:36
Manage a set of bit values using enumeration.
Definition: BitSet.h:43
OpenFlag
Definition: OpenFlags.h:42