3#if !defined( EMSCRIPTEN )
5#include "../StringView.h"
17 using Ptr = std::shared_ptr<FileHandle>;
40 assert(move.mappedMemory ==
nullptr);
42 fileHandle = move.fileHandle;
43 move.fileHandle = INVALID_HANDLE_VALUE;
44#elif defined( __linux__ ) || defined(__APPLE__)
45 fileDescriptor = move.fileDescriptor;
46 move.fileDescriptor = -1;
52 assert(mappedMemory ==
nullptr);
53 assert(move.mappedMemory ==
nullptr);
56 fileHandle = move.fileHandle;
57 move.fileHandle = INVALID_HANDLE_VALUE;
58#elif defined( __linux__ ) || defined(__APPLE__)
59 fileDescriptor = move.fileDescriptor;
60 move.fileDescriptor = -1;
65 static Ptr open(std::string_view path, OpenMode openMode, AccessMode accessMode);
68 size_t getSize()
const;
72 bool isMapped()
const {
return mappedMemory !=
nullptr; }
74 bool write(
const void *buffer,
size_t size,
size_t &written);
75 bool read(
void *buffer,
size_t size,
size_t &read);
77 void* map(ProtectionMode protectionMode,
size_t offset,
size_t size);
82 HANDLE fileHandle = INVALID_HANDLE_VALUE;
83 HANDLE mapHandle =
nullptr;
84#elif defined( __linux__ ) || defined(__APPLE__)
85 int fileDescriptor = -1;
86 size_t mappedSize = 0;
88 void* mappedMemory =
nullptr;
#define COGSFOUNDATION_API
Definition: FoundationBase.h:31
Definition: FileHandle.h:15
FileHandle & operator=(const FileHandle &)=delete
std::shared_ptr< FileHandle > Ptr
Definition: FileHandle.h:17
bool isMapped() const
Definition: FileHandle.h:72
FileHandle & operator=(FileHandle &&move) noexcept
Definition: FileHandle.h:50
void * getMappedMemory() const
Definition: FileHandle.h:69
AccessMode
Definition: FileHandle.h:26
FileHandle(const FileHandle &)=delete
ProtectionMode
Definition: FileHandle.h:31
FileHandle(FileHandle &&move) noexcept
Definition: FileHandle.h:38
OpenMode
Definition: FileHandle.h:19
Main Cogs namespace.
Definition: MortonCode.h:5