X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fconsole.cpp;h=0ac05c6b8c9fd08c0d813ed45d4435c15384b84e;hp=aee02e262d08609964c8b818b5a49ae7996b8661;hb=HEAD;hpb=8091a3071918d4cd30f2b9ab903e1d73d12dcb36 diff --git a/source/io/console.cpp b/source/io/console.cpp index aee02e2..0ac05c6 100644 --- a/source/io/console.cpp +++ b/source/io/console.cpp @@ -18,21 +18,28 @@ Console::Console(Stream s): void Console::set_block(bool b) { + adjust_mode(mode, M_NONBLOCK, !b); sys_set_blocking(handle, b); } -unsigned Console::do_write(const char *buf, unsigned len) +void Console::set_inherit(bool i) +{ + adjust_mode(mode, M_INHERIT, i); + sys_set_inherit(handle, i); +} + +size_t Console::do_write(const char *buf, size_t len) { check_access(M_WRITE); return sys_write(handle, buf, len); } -unsigned Console::do_read(char *buf, unsigned len) +size_t Console::do_read(char *buf, size_t len) { check_access(M_READ); - unsigned ret = sys_read(handle, buf, len); + size_t ret = sys_read(handle, buf, len); if(ret==0) set_eof(); @@ -61,9 +68,5 @@ Console &Console::instance(Stream s) throw invalid_argument("Console::instance"); } -Console &cin = Console::instance(Console::CIN); -Console &cout = Console::instance(Console::COUT); -Console &cerr = Console::instance(Console::CERR); - } // namespace IO } // namespace Msp