Utils/Termlib: Implement terminfo format string interpretation
[senf.git] / Utils / Termlib / TelnetTerminal.hh
index 0514c63..98cab31 100644 (file)
 #define HH_SENF_Utils_Termlib_TelnetTerminal_ 1
 
 // Custom includes
-#include <senf/Scheduler/TimerEvent.hh>
-#include <senf/Scheduler/ClockService.hh>
 #include "Telnet.hh"
-#include "Terminfo.hh"
+#include "AbstractTerminal.hh"
 
 //#include "TelnetTerminal.mpp"
 ///////////////////////////////hh.p////////////////////////////////////////
@@ -40,31 +38,26 @@ namespace term {
 
     class TelnetTerminal
         : public telnethandler::TerminalType,
-          public telnethandler::NAWS
+          public telnethandler::NAWS,
+          public AbstractTerminal
     {
     public:
-        typedef KeyParser::keycode_t keycode_t;
-
-        static unsigned const DEFAULT_KEY_TIMEOUT_MS = 500u;
-
         TelnetTerminal();
 
-    protected:
-        virtual void v_setupComplete();
+        virtual void setCallbacks(AbstractTerminal::Callbacks & cb);
+        virtual std::string terminalType();
+        virtual unsigned width();
+        virtual unsigned height();
+        virtual void write(char ch);
 
     private:
-        virtual void v_keyReceived(keycode_t key) = 0;
-
-        virtual void v_charReceived(char c);
-        void keySequenceTimeout();
-        void processKeys();
+        virtual void v_setupComplete();
+        virtual void v_charReceived(char ch);
+        virtual void v_windowSizeChanged();
 
-        senf::term::Terminfo tifo_;
-        senf::term::KeyParser keyParser_;
-        std::string inputBuffer_;
-        senf::ClockService::clock_type keyTimeout_;
-        senf::scheduler::TimerEvent timer_;
+        AbstractTerminal::Callbacks * callbacks_;
     };
+
 }}
 
 ///////////////////////////////hh.e////////////////////////////////////////