X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FTermlib%2FTelnetTerminal.hh;h=09aea80847cbdd70d37824349dd7fbfaccf5ae6f;hb=b89e3166f7680755683dccee5e48cb3a820185c0;hp=ed2be42d474be6e87c72ba325cf6d14d3be1cfd2;hpb=27d5a4aaebd8abb6c6bb842af3c170063b206f0f;p=senf.git diff --git a/Utils/Termlib/TelnetTerminal.hh b/Utils/Termlib/TelnetTerminal.hh index ed2be42..09aea80 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 unsigned width() const; + virtual unsigned height() const; 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();