X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FTermlib%2FTelnetTerminal.hh;h=650ce1f9288a48faf4cedb92cd0748d2e2803b3f;hb=794b9c2774e19c13ac7eee82ec56fd0f42ede5ff;hp=ed2be42d474be6e87c72ba325cf6d14d3be1cfd2;hpb=27d5a4aaebd8abb6c6bb842af3c170063b206f0f;p=senf.git diff --git a/Utils/Termlib/TelnetTerminal.hh b/Utils/Termlib/TelnetTerminal.hh index ed2be42..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,23 +37,44 @@ 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: - virtual void v_setupFailed() = 0; +# endif + virtual void v_setupFailed() = 0; ///< Called when the telnet setup has failed + private: virtual void v_setupComplete(); virtual void v_charReceived(char ch); virtual void v_windowSizeChanged();