Monero
Loading...
Searching...
No Matches
readline_buffer.h
Go to the documentation of this file.
1#pragma once
2
3#include <streambuf>
4#include <sstream>
5#include <vector>
6
7namespace 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 }
20 linestatus get_line(std::string& line) const;
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:
42 };
43
44 void clear_screen();
45}
46
Definition readline_buffer.h:11
static const std::vector< std::string > & get_completions()
Definition readline_buffer.cpp:111
virtual int sync()
Definition readline_buffer.cpp:116
bool is_running() const
Definition readline_buffer.h:16
void set_prompt(const std::string &prompt)
Definition readline_buffer.cpp:92
void start()
Definition readline_buffer.cpp:53
void stop()
Definition readline_buffer.cpp:63
size_t m_prompt_length
Definition readline_buffer.h:30
static void add_completion(const std::string &command)
Definition readline_buffer.cpp:104
std::streambuf * m_cout_buf
Definition readline_buffer.h:29
linestatus get_line(std::string &line) const
Definition readline_buffer.cpp:73
readline_buffer()
Definition readline_buffer.cpp:47
static std::vector< std::string > & completion_commands()
Definition readline_buffer.cpp:41
bool m_restart
Definition readline_buffer.h:41
readline_buffer * m_buffer
Definition readline_buffer.h:40
~suspend_readline()
Definition readline_buffer.cpp:33
suspend_readline()
Definition readline_buffer.cpp:22
Definition readline_buffer.h:8
linestatus
Definition readline_buffer.h:9
@ partial
Definition readline_buffer.h:9
@ full
Definition readline_buffer.h:9
@ empty
Definition readline_buffer.h:9
void clear_screen()
Definition readline_buffer.cpp:258