InputReaderEZ.h revision f0c372a6b5c388889601f5c062f63994d875830f
1//===-- InputReaderEZ.h -----------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef liblldb_InputReaderEZ_h_
11#define liblldb_InputReaderEZ_h_
12
13#include "lldb/Core/InputReader.h"
14
15namespace lldb_private {
16
17class InputReaderEZ : public InputReader
18{
19
20private:
21
22    static size_t Callback_Impl(void *baton,
23                                InputReader &reader,
24                                lldb::InputReaderAction notification,
25                                const char *bytes,
26                                size_t bytes_len);
27public:
28
29    InputReaderEZ (Debugger &debugger) :
30    InputReader(debugger)
31    {}
32
33    virtual
34    ~InputReaderEZ ();
35
36    using InputReader::Initialize;
37    virtual Error
38    Initialize(void* baton,
39               lldb::InputReaderGranularity token_size = lldb::eInputReaderGranularityLine,
40               const char* end_token = "DONE",
41               const char *prompt = "> ",
42               bool echo = true);
43
44    virtual Error
45    Initialize(InitializationParameters& params);
46
47    virtual void
48    ActivateHandler(HandlerData&) {}
49
50    virtual void
51    DeactivateHandler(HandlerData&) {}
52
53    virtual void
54    ReactivateHandler(HandlerData&) {}
55
56    virtual void
57    AsynchronousOutputWrittenHandler(HandlerData&) {}
58
59    virtual void
60    GotTokenHandler(HandlerData&) {}
61
62    virtual void
63    InterruptHandler(HandlerData&) {}
64
65    virtual void
66    EOFHandler(HandlerData&) {}
67
68    virtual void
69    DoneHandler(HandlerData&) {}
70
71    virtual bool
72    GetSaveUserInput()
73    {
74        return m_save_user_input;
75    }
76
77protected:
78    friend class Debugger;
79
80private:
81    DISALLOW_COPY_AND_ASSIGN (InputReaderEZ);
82
83};
84
85} // namespace lldb_private
86
87#endif // #ifndef liblldb_InputReaderEZ_h_
88