8 Console::Console(Stream s):
11 mode = (stream==CIN ? M_READ : M_WRITE);
19 void Console::set_block(bool b)
21 adjust_mode(mode, M_NONBLOCK, !b);
22 sys_set_blocking(handle, b);
25 unsigned Console::do_write(const char *buf, unsigned len)
27 check_access(M_WRITE);
29 return sys_write(handle, buf, len);
32 unsigned Console::do_read(char *buf, unsigned len)
36 unsigned ret = sys_read(handle, buf, len);
43 const Handle &Console::get_handle(Mode m)
49 Console &Console::instance(Stream s)
51 static Console in(CIN);
52 static Console out(COUT);
53 static Console err(CERR);
58 case COUT: return out;
59 case CERR: return err;
62 throw invalid_argument("Console::instance");
65 Console &cin = Console::instance(Console::CIN);
66 Console &cout = Console::instance(Console::COUT);
67 Console &cerr = Console::instance(Console::CERR);