]> git.tdb.fi Git - libs/core.git/blobdiff - source/io/mode.h
Add a helper function for adjusting mode flags
[libs/core.git] / source / io / mode.h
index 5e103f278907be65a1f7f91da38ac34c5d113301..2e7527dc5202d3158895f8c20feb3f90236b17dd 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef MSP_IO_MODE_H_
 #define MSP_IO_MODE_H_
 
+#include <stdexcept>
+
 namespace Msp {
 namespace IO {
 
@@ -23,6 +25,17 @@ inline Mode operator&(Mode m, Mode n)
 inline Mode operator~(Mode m)
 { return Mode(~static_cast<int>(m)); }
 
+inline void adjust_mode(Mode &m, Mode f, bool b)
+{ m = b ? (m|f) : (m&~f); }
+
+
+class invalid_access: public std::logic_error
+{
+public:
+       invalid_access(Mode);
+       ~invalid_access() throw() { }
+};
+
 } // namespace IO
 } // namespace Msp