X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FTermlib%2FTelnetTerminal.hh;h=650ce1f9288a48faf4cedb92cd0748d2e2803b3f;hb=8d0f36a502bf65b88b5225ffaba25e5d4488df4d;hp=98cab315518e7a80a05ba5b46cf59765af06a5e7;hpb=844c117cb04bc73a5b920c2c49efbf14515da3e2;p=senf.git diff --git a/Utils/Termlib/TelnetTerminal.hh b/Utils/Termlib/TelnetTerminal.hh index 98cab31..650ce1f 100644 --- a/Utils/Termlib/TelnetTerminal.hh +++ b/Utils/Termlib/TelnetTerminal.hh @@ -29,6 +29,7 @@ // Custom includes #include "Telnet.hh" #include "AbstractTerminal.hh" +#include "../Logger.hh" //#include "TelnetTerminal.mpp" ///////////////////////////////hh.p//////////////////////////////////////// @@ -36,19 +37,42 @@ namespace senf { namespace term { + /** \brief AbstractTerminal interface implementation based on telnet + + This class provides a telnet server implementation implementing the AbstractTerminal + interface. + + TelnetTerminal provides one additional callback which needs to be implemented in a derived + class: v_setupFailed(). This member will be called, when not all required telnet options are + supported by the telnet client. In this case, the communication will be switched back into + line-oriented mode and v_setupFailed() is called. + + \ingroup telnet_group + */ class TelnetTerminal : public telnethandler::TerminalType, public telnethandler::NAWS, public AbstractTerminal { + SENF_LOG_CLASS_AREA(); public: TelnetTerminal(); + ///\name AbstractTerminal interface implementation + ///\{ virtual void setCallbacks(AbstractTerminal::Callbacks & cb); virtual std::string terminalType(); virtual unsigned width(); virtual unsigned height(); virtual void write(char ch); + ///\} + + protected: + +# ifndef DOXYGEN + private: +# endif + virtual void v_setupFailed() = 0; ///< Called when the telnet setup has failed private: virtual void v_setupComplete(); @@ -56,6 +80,7 @@ namespace term { virtual void v_windowSizeChanged(); AbstractTerminal::Callbacks * callbacks_; + bool setupFailed_; }; }}