X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FLineEditor.hh;h=6fe3ea33bb1bbc432739c790cdee1ee7fce70f3a;hb=1d95912e59f822e19e4972727fa2fa6db6b2bf63;hp=39e13b65c3214b757cf774abcb76c2e3db29d3d7;hpb=0461eef93912cb9d454d726b4a7b4ccf50ed31bd;p=senf.git diff --git a/Utils/Console/LineEditor.hh b/Utils/Console/LineEditor.hh index 39e13b6..6fe3ea3 100644 --- a/Utils/Console/LineEditor.hh +++ b/Utils/Console/LineEditor.hh @@ -39,6 +39,15 @@ namespace senf { namespace console { namespace detail { + /** \brief Internal: Client reader switching between LineEditorClientReader or DumbClientReader + + This ClientReader implementation will try to initialize a LineEditorClientReader. If the + setup fails, a DumbClientReader is initialized instead. LineEditor support may fail to be + initialized if + + \li The telnet client does not support necessary functionality + \li or the terminal type of the client is missing some functionality. + */ class LineEditorSwitcher : public ClientReader { @@ -51,10 +60,15 @@ namespace detail { virtual void v_disablePrompt(); virtual void v_enablePrompt(); virtual void v_write(std::string const & data); + virtual unsigned v_width() const; boost::scoped_ptr reader_; }; + /** \brief Internal: ClientReader using senf::term::LineEditor for interactive input + + This ClientReader implementation uses a senf::term::LineEditor for interactive input. + */ class LineEditorClientReader : public ClientReader, public term::TelnetTerminal { @@ -70,6 +84,7 @@ namespace detail { virtual void v_disablePrompt(); virtual void v_enablePrompt(); virtual void v_write(std::string const & data); + virtual unsigned v_width() const; // Editor callbacks void executeLine(std::string const & text);