Monero
readline_buffer.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <streambuf>
4 #include <sstream>
5 #include <vector>
6 
7 namespace rdln
8 {
9  typedef enum { empty, partial, full } linestatus;
10  class readline_buffer : public std::stringbuf
11  {
12  public:
14  void start();
15  void stop();
16  bool is_running() const
17  {
18  return m_cout_buf != NULL;
19  }
21  void set_prompt(const std::string& prompt);
22  static void add_completion(const std::string& command);
23  static const std::vector<std::string>& get_completions();
24 
25  protected:
26  virtual int sync();
27 
28  private:
29  std::streambuf* m_cout_buf;
31  static std::vector<std::string>& completion_commands();
32  };
33 
35  {
36  public:
39  private:
41  bool m_restart;
42  };
43 
44  void clear_screen();
45 }
46 
void start()
Definition: readline_buffer.cpp:53
static void add_completion(const std::string &command)
Definition: readline_buffer.cpp:104
static std::vector< std::string > & completion_commands()
Definition: readline_buffer.cpp:41
::std::string string
Definition: gtest-port.h:1097
void set_prompt(const std::string &prompt)
Definition: readline_buffer.cpp:92
linestatus
Definition: readline_buffer.h:9
readline_buffer * m_buffer
Definition: readline_buffer.h:40
readline_buffer()
Definition: readline_buffer.cpp:47
size_t m_prompt_length
Definition: readline_buffer.h:30
Definition: readline_buffer.h:10
Definition: readline_buffer.h:34
static const std::vector< std::string > & get_completions()
Definition: readline_buffer.cpp:111
void stop()
Definition: readline_buffer.cpp:63
Definition: readline_buffer.h:9
Definition: readline_buffer.h:9
Definition: readline_buffer.h:7
bool is_running() const
Definition: readline_buffer.h:16
bool m_restart
Definition: readline_buffer.h:41
~suspend_readline()
Definition: readline_buffer.cpp:33
suspend_readline()
Definition: readline_buffer.cpp:22
Definition: readline_buffer.h:9
linestatus get_line(std::string &line) const
Definition: readline_buffer.cpp:73
virtual int sync()
Definition: readline_buffer.cpp:116
line
Definition: check.py:23
std::streambuf * m_cout_buf
Definition: readline_buffer.h:29
void clear_screen()
Definition: readline_buffer.cpp:258