*/
class Console: public EventObject
{
+public:
+ enum Stream
+ {
+ INPUT = 0,
+ OUTPUT = 1,
+ ERROR = 2
+ };
+
private:
+ Stream stream;
Handle handle;
- Console(unsigned);
+ Console(Stream);
public:
~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_event_handle() { return handle; }
- static Console &instance(unsigned);
+ static Console &instance(Stream);
};
extern Console &cin;