From 8642ac1b4478419630911a51a53fe8ef5fb46647 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Fri, 28 Sep 2012 01:04:31 +0300 Subject: [PATCH] Add some useful shortcuts for CreateMode combinations All valid modes can now be referred to with a single enumerator. C_EXCLUSIVE alone is not valid. --- source/io/file.cpp | 4 ++-- source/io/file.h | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/source/io/file.cpp b/source/io/file.cpp index 208371d..d4b2da3 100644 --- a/source/io/file.cpp +++ b/source/io/file.cpp @@ -39,8 +39,8 @@ File::File(const string &fn, Mode m, CreateMode cm) case C_NONE: create_flags = OPEN_EXISTING; break; case C_CREATE: create_flags = OPEN_ALWAYS; break; case C_TRUNCATE: create_flags = TRUNCATE_EXISTING; break; - case C_CREATE+C_TRUNCATE: create_flags = CREATE_ALWAYS; break; - case C_CREATE+C_EXCLUSIVE: create_flags = CREATE_NEW; break; + case C_OVERWRITE: create_flags = CREATE_ALWAYS; break; + case C_NEW: create_flags = CREATE_NEW; break; } } diff --git a/source/io/file.h b/source/io/file.h index 4f8e5dd..5fb0353 100644 --- a/source/io/file.h +++ b/source/io/file.h @@ -37,7 +37,9 @@ public: C_NONE = 0, C_CREATE = 1, C_TRUNCATE = 2, - C_EXCLUSIVE = 4 + C_OVERWRITE = C_CREATE+C_TRUNCATE, + C_EXCLUSIVE = 4, + C_NEW = C_CREATE+C_EXCLUSIVE }; private: @@ -47,7 +49,7 @@ public: /** Creates a new file object and opens it. If the create flag is set and write access is requested and the file does exist, it is created. Otherwise a missing file is an error. */ - File(const std::string &, Mode = M_READ, CreateMode = CreateMode(C_CREATE+C_TRUNCATE)); + File(const std::string &, Mode = M_READ, CreateMode = C_OVERWRITE); virtual ~File(); void set_block(bool); -- 2.43.0