X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fio%2Fmode.h;h=65b408972b4cd6d01f2b140a541bae71e87c19a8;hb=39da82b967c70282973025e4b12186625e29fe26;hp=5500dff613bc5e6a857f66bc9f9e7e4090be9893;hpb=d16185720fa344263367dbd50c61bfc8183d99a4;p=libs%2Fcore.git diff --git a/source/io/mode.h b/source/io/mode.h index 5500dff..65b4089 100644 --- a/source/io/mode.h +++ b/source/io/mode.h @@ -13,7 +13,8 @@ enum Mode M_WRITE = 2, M_RDWR = M_READ|M_WRITE, M_APPEND = 4, - M_NONBLOCK = 8 + M_NONBLOCK = 8, + M_INHERIT = 16 }; inline Mode operator|(Mode m, Mode n) @@ -25,6 +26,9 @@ inline Mode operator&(Mode m, Mode n) inline Mode operator~(Mode m) { return Mode(~static_cast(m)); } +inline void adjust_mode(Mode &m, Mode f, bool b) +{ m = b ? (m|f) : (m&~f); } + class invalid_access: public std::logic_error {