*/
class Console: public EventObject
{
+public:
+ enum Stream
+ {
+ CIN = 0,
+ COUT = 1,
+ CERR = 2
+ };
+
private:
+ Stream stream;
Handle handle;
- Console(unsigned);
+ Console(Stream);
+ void platform_init();
public:
~Console();
virtual void set_block(bool);
+ virtual void set_inherit(bool);
/** If local echo is enabled, characters will appear on the console as they
are typed. Can only be used on an input Console. */
Console. */
void get_size(unsigned &rows, unsigned &cols);
+ /** Redirects input from or output to another I/O object. This performs a
+ system-level redirect. Closing the other object won't affect the
+ redirection. */
+ void redirect(Base &);
+
protected:
virtual unsigned do_write(const char *, unsigned);
virtual unsigned do_read(char *, unsigned);
public:
+ virtual const Handle &get_handle(Mode);
virtual const Handle &get_event_handle() { return handle; }
- static Console &instance(unsigned);
+ static Console &instance(Stream);
};
extern Console &cin;