1 #ifndef MSP_IO_CONSOLE_H_
2 #define MSP_IO_CONSOLE_H_
4 #include "eventobject.h"
11 Provides access to standard input, output and error streams. This class can't
12 be instantiated directly - use one of the cin, cout and cerr references
15 class Console: public EventObject
34 virtual void set_block(bool);
35 virtual void set_inherit(bool);
37 /** If local echo is enabled, characters will appear on the console as they
38 are typed. Can only be used on an input Console. */
39 void set_local_echo(bool);
41 /** If line buffering is enabled, input will only be available when a
42 newline is encountered. On some systems, this may also enable line editing.
43 Can only be used on an input Console.
45 void set_line_buffer(bool);
47 /** Retrieves the size of the Console. Can only be used on an output
49 void get_size(unsigned &rows, unsigned &cols);
51 /** Redirects input from or output to another I/O object. This performs a
52 system-level redirect. Closing the other object won't affect the
54 void redirect(Base &);
57 virtual unsigned do_write(const char *, unsigned);
58 virtual unsigned do_read(char *, unsigned);
61 virtual const Handle &get_handle(Mode);
62 virtual const Handle &get_event_handle() { return handle; }
64 static Console &instance(Stream);