Utils/Console: Console UDPServer
[senf.git] / Utils / Console / LineEditor.hh
index 840ce5a..6fe3ea3 100644 (file)
@@ -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<ClientReader> 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,10 +84,13 @@ 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);
         void deleteCharOrExit(term::LineEditor & editor);
+        void completePath(term::LineEditor & editor, unsigned b, unsigned e, 
+                          std::vector<std::string> & completions);
 
         term::LineEditor editor_;
         LineEditorSwitcher * switcher_;