ReXGlue SDK
Loading...
Searching...
No Matches
file_open.h File Reference
#include <rex/bit.h>
#include <rex/types.h>

Go to the source code of this file.

Classes

struct  rex::filesystem::OpenOptions

Namespaces

namespace  rex

Enumerations

enum class  rex::filesystem::Access : u32 {
  kNone = 0 , kReadData = 0x00000001 , kWriteData = 0x00000002 , kAppendData = 0x00000004 ,
  kAllAccess = 0x10000000 , kExecuteAccess = 0x20000000 , kWriteAccess = 0x40000000 , kReadAccess = 0x80000000
}
enum class  rex::filesystem::Disposition : u8 {
  kSupersede , kOpen , kCreate , kOpenIf ,
  kOverwrite , kOverwriteIf
}
enum class  rex::filesystem::OpenAction : u8 {
  kSuperseded , kOpened , kCreated , kOverwritten ,
  kExists , kDoesNotExist
}

Functions

template<FlagsEnum E>
constexpr bool rex::filesystem::HasFlags (E value, E flags)
template<FlagsEnum E>
constexpr E rex::filesystem::operator| (E lhs, E rhs)
template<FlagsEnum E>
constexpr E rex::filesystem::operator& (E lhs, E rhs)
template<FlagsEnum E>
constexpr E rex::filesystem::operator^ (E lhs, E rhs)
template<FlagsEnum E>
constexpr E rex::filesystem::operator~ (E value)
template<FlagsEnum E>
constexpr E & rex::filesystem::operator|= (E &lhs, E rhs)
template<FlagsEnum E>
constexpr E & rex::filesystem::operator&= (E &lhs, E rhs)
template<FlagsEnum E>
constexpr E & rex::filesystem::operator^= (E &lhs, E rhs)

Detailed Description

License
BSD 3-Clause License See LICENSE file in the project root for full license text.

Enumeration Type Documentation

◆ Access

enum class rex::filesystem::Access : u32
strong

NT access bits of an open request.

Enumerator
kExecuteAccess 

Execute, no data access.

kWriteAccess 

Write, implies kWriteData.

kReadAccess 

Read, implies kReadData.

◆ Disposition

enum class rex::filesystem::Disposition : u8
strong

What an open does when the path exists or is absent. NT numbering.

Enumerator
kSupersede 

Replace when present, create when absent.

kOpen 

Open when present, fail when absent.

kCreate 

Fail when present, create when absent.

kOpenIf 

Open when present, create when absent.

kOverwrite 

Truncate when present, fail when absent.

kOverwriteIf 

Truncate when present, create when absent.

◆ OpenAction

enum class rex::filesystem::OpenAction : u8
strong

What an open did. NT numbering.

Function Documentation

◆ HasFlags()

template<FlagsEnum E>
bool rex::HasFlags ( E value,
E flags )
nodiscardconstexpr

Reports whether a set holds every flag of another set.

◆ operator&=()

template<FlagsEnum E>
E & rex::operator&= ( E & lhs,
E rhs )
constexpr

Keeps only the flags of a set that another set holds, in place.

Returns
lhs.

◆ operator^=()

template<FlagsEnum E>
E & rex::operator^= ( E & lhs,
E rhs )
constexpr

Toggles flags of a set in place.

Returns
lhs.

◆ operator|=()

template<FlagsEnum E>
E & rex::operator|= ( E & lhs,
E rhs )
constexpr

Adds flags to a set in place.

Returns
lhs.