diff options
author | Chris Robinson <[email protected]> | 2020-11-16 14:51:50 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2020-11-16 14:51:50 -0800 |
commit | 645d354ffa214cf366521e7f601b401d8f2c5879 (patch) | |
tree | 07a62c9ec3c833012bedf8d0d961f6cacd364f46 /common | |
parent | 88cb398a836bb8b2d4038edcedff5167886e2d51 (diff) |
Add a close method to the win32 ifstream
Diffstat (limited to 'common')
-rw-r--r-- | common/alfstream.cpp | 13 | ||||
-rw-r--r-- | common/alfstream.h | 4 |
2 files changed, 12 insertions, 5 deletions
diff --git a/common/alfstream.cpp b/common/alfstream.cpp index 7378c678..3beda833 100644 --- a/common/alfstream.cpp +++ b/common/alfstream.cpp @@ -88,11 +88,7 @@ auto filebuf::seekpos(pos_type pos, std::ios_base::openmode mode) -> pos_type } filebuf::~filebuf() -{ - if(mFile != INVALID_HANDLE_VALUE) - CloseHandle(mFile); - mFile = INVALID_HANDLE_VALUE; -} +{ close(); } bool filebuf::open(const wchar_t *filename, std::ios_base::openmode mode) { @@ -115,6 +111,13 @@ bool filebuf::open(const char *filename, std::ios_base::openmode mode) return open(wname.c_str(), mode); } +void filebuf::close() +{ + if(mFile != INVALID_HANDLE_VALUE) + CloseHandle(mFile); + mFile = INVALID_HANDLE_VALUE; +} + ifstream::ifstream(const wchar_t *filename, std::ios_base::openmode mode) : std::istream{nullptr} diff --git a/common/alfstream.h b/common/alfstream.h index 046a6e2a..353fd2de 100644 --- a/common/alfstream.h +++ b/common/alfstream.h @@ -34,6 +34,8 @@ public: bool open(const char *filename, std::ios_base::openmode mode); bool is_open() const noexcept { return mFile != INVALID_HANDLE_VALUE; } + + void close(); }; // Inherit from std::istream to use our custom streambuf @@ -50,6 +52,8 @@ public: ~ifstream() override; bool is_open() const noexcept { return mStreamBuf.is_open(); } + + void close() { mStreamBuf.close(); } }; } // namespace al |