From f23402dacdf32549d3b13384af7a8a7c097ff420 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Tue, 18 Aug 2020 23:36:05 +0100 Subject: Add FileStream wrapper --- src/OSSupport/File.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src/OSSupport/File.cpp') diff --git a/src/OSSupport/File.cpp b/src/OSSupport/File.cpp index f860c37ca..113acc3a5 100644 --- a/src/OSSupport/File.cpp +++ b/src/OSSupport/File.cpp @@ -6,7 +6,6 @@ #include "Globals.h" // NOTE: MSVC stupidness requires this to be the same across all modules #include "File.h" -#include #include #ifdef _WIN32 #include // for _SH_DENYWRITE @@ -710,3 +709,29 @@ void cFile::Flush(void) { fflush(m_File); } + + + + + +template +FileStream::FileStream(const std::string & Path) : + StreamType() +{ + // Except on failbit, which is what open sets on failure: + FileStream::exceptions(FileStream::failbit | FileStream::badbit); + + // Open the file: + FileStream::open(Path); + + // Only subsequently except on serious errors, and not on conditions like EOF or malformed input: + FileStream::exceptions(FileStream::badbit); +} + + + + + +// Instantiate the templated wrapper for input and output: +template class FileStream; +template class FileStream; -- cgit v1.2.3