00001 /* Copyright (c) 2006, Gennady Bystritsky <bystr@mac.com> 00002 * 00003 * Distributed under the MIT Licence. 00004 * This is free software. See 'LICENSE' for details. 00005 * You must read and accept the license prior to use. 00006 */ 00007 00008 #ifndef _SK_IO_TTYFILEDESCRIPTOR_ 00009 #define _SK_IO_TTYFILEDESCRIPTOR_ 00010 00011 #include <sk/io/FileDescriptor.h> 00012 #include <sk/io/Tty.h> 00013 00014 namespace sk { 00015 namespace io { 00016 class TtyFileDescriptor 00017 : public sk::io::FileDescriptor, 00018 public virtual sk::io::Tty 00019 { 00020 public: 00021 TtyFileDescriptor(int fd); 00022 TtyFileDescriptor(const sk::io::FileDescriptor& descriptor); 00023 // Enabling copy constructor, the default one will do for now. 00024 // TtyFileDescriptor(const TtyFileDescriptor& other); 00025 virtual ~TtyFileDescriptor(); 00026 00027 // sk::io::Tty implementation. 00028 void setLines(int lines); 00029 void setColumns(int columns); 00030 00031 // sk::util::Object re-implementation. 00032 const sk::util::Class getClass() const; 00033 00034 private: 00035 TtyFileDescriptor& operator = (const TtyFileDescriptor& other); 00036 00037 void ensureTty(); 00038 }; 00039 } 00040 } 00041 00042 #endif /* _SK_IO_TTYFILEDESCRIPTOR_ */