mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
Core: GetFileTime, GetFileLength, FileExists, DirectoryExists functions refactored, FileMapping improved
This commit is contained in:
parent
f7233ea69b
commit
4a99d79cb7
6 changed files with 135 additions and 61 deletions
|
|
@ -549,13 +549,14 @@ public:
|
|||
class FileMapping
|
||||
{
|
||||
public:
|
||||
FileMapping(const char *file = NULL, bool delete_share = false);
|
||||
FileMapping(const char *file = NULL);
|
||||
~FileMapping() { Close(); }
|
||||
|
||||
bool Open(const char *file, bool delete_share = false);
|
||||
bool Open(const char *file);
|
||||
bool Create(const char *file, int64 filesize, bool delete_share = false);
|
||||
bool Expand(int64 filesize);
|
||||
bool Map(int64 offset, size_t len);
|
||||
byte *Map(int64 mapoffset, size_t maplen);
|
||||
byte *Map() { return Map(0, GetFileSize()); }
|
||||
bool Unmap();
|
||||
bool Close();
|
||||
|
||||
|
|
@ -572,16 +573,22 @@ public:
|
|||
size_t GetRawCount() const { return rawsize; }
|
||||
|
||||
const byte *operator ~ () const { ASSERT(IsOpen()); return base; }
|
||||
const byte *Begin() const { ASSERT(IsOpen()); return base; }
|
||||
const byte *End() const { ASSERT(IsOpen()); return base + size; }
|
||||
const byte *GetIter(int i) const { ASSERT(IsOpen() && i >= 0 && (size_t)i <= size); return base + i; }
|
||||
const byte *begin() const { ASSERT(IsOpen()); return base; }
|
||||
const byte *end() const { ASSERT(IsOpen()); return base + size; }
|
||||
const byte& operator [] (int i) const { ASSERT(IsOpen() && i >= 0 && (size_t)i < size); return base[i]; }
|
||||
|
||||
byte *operator ~ () { ASSERT(IsOpen()); return base; }
|
||||
byte *begin() { ASSERT(IsOpen()); return base; }
|
||||
byte *end() { ASSERT(IsOpen()); return base + size; }
|
||||
byte& operator [] (int i) { ASSERT(IsOpen() && i >= 0 && (size_t)i < size); return base[i]; }
|
||||
|
||||
const byte *Begin() const { ASSERT(IsOpen()); return base; }
|
||||
const byte *End() const { ASSERT(IsOpen()); return base + size; }
|
||||
const byte *GetIter(int i) const { ASSERT(IsOpen() && i >= 0 && (size_t)i <= size); return base + i; }
|
||||
|
||||
byte *Begin() { ASSERT(IsOpen()); return base; }
|
||||
byte *End() { ASSERT(IsOpen()); return base + size; }
|
||||
byte *GetIter(int i) { ASSERT(IsOpen() && i >= 0 && (size_t)i <= size); return base + i; }
|
||||
byte& operator [] (int i) { ASSERT(IsOpen() && i >= 0 && (size_t)i < size); return base[i]; }
|
||||
|
||||
private:
|
||||
#ifdef PLATFORM_WIN32
|
||||
|
|
@ -601,6 +608,9 @@ private:
|
|||
size_t size;
|
||||
size_t rawsize;
|
||||
bool write;
|
||||
|
||||
|
||||
static int MappingGranularity();
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue