1f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata//===-- InputReaderEZ.h -----------------------------------------*- C++ -*-===// 2f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata// 3f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata// The LLVM Compiler Infrastructure 4f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata// 5f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata// This file is distributed under the University of Illinois Open Source 6f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata// License. See LICENSE.TXT for details. 7f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata// 8f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata//===----------------------------------------------------------------------===// 9f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 10f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata#ifndef liblldb_InputReaderEZ_h_ 11f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata#define liblldb_InputReaderEZ_h_ 12f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 13f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata#include "lldb/Core/InputReader.h" 14f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 15f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granatanamespace lldb_private { 16f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 17f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granataclass InputReaderEZ : public InputReader 18f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata{ 19f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 20f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granataprivate: 21f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 222bc9eb3ba78efc64a273729b480bafc3bbaa433aJohnny Chen static size_t Callback_Impl(void *baton, 232bc9eb3ba78efc64a273729b480bafc3bbaa433aJohnny Chen InputReader &reader, 242bc9eb3ba78efc64a273729b480bafc3bbaa433aJohnny Chen lldb::InputReaderAction notification, 252bc9eb3ba78efc64a273729b480bafc3bbaa433aJohnny Chen const char *bytes, 262bc9eb3ba78efc64a273729b480bafc3bbaa433aJohnny Chen size_t bytes_len); 27f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granatapublic: 2890d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata 29f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata InputReaderEZ (Debugger &debugger) : 30f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata InputReader(debugger) 31f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata {} 32f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 33f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual 34f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata ~InputReaderEZ (); 35f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 362bc9eb3ba78efc64a273729b480bafc3bbaa433aJohnny Chen using InputReader::Initialize; 3790d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata virtual Error 3890d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata Initialize(void* baton, 3990d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata lldb::InputReaderGranularity token_size = lldb::eInputReaderGranularityLine, 4090d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata const char* end_token = "DONE", 4190d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata const char *prompt = "> ", 4290d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata bool echo = true); 4390d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata 4490d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata virtual Error 4590d207ede88604e278f68ee1b02600a35e56dd14Enrico Granata Initialize(InitializationParameters& params); 46f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 47f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual void 48f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata ActivateHandler(HandlerData&) {} 49f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 50f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual void 51f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata DeactivateHandler(HandlerData&) {} 52f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 53f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual void 54f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata ReactivateHandler(HandlerData&) {} 55f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 56f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual void 57f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata AsynchronousOutputWrittenHandler(HandlerData&) {} 58f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 59f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual void 60f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata GotTokenHandler(HandlerData&) {} 61f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 62f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual void 63f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata InterruptHandler(HandlerData&) {} 64f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 65f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual void 66f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata EOFHandler(HandlerData&) {} 67f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 68f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata virtual void 69f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata DoneHandler(HandlerData&) {} 70f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 71e89ab7b58d2542f4f42e923fa65ef8984840a90cEnrico Granata virtual bool 72e89ab7b58d2542f4f42e923fa65ef8984840a90cEnrico Granata GetSaveUserInput() 73e89ab7b58d2542f4f42e923fa65ef8984840a90cEnrico Granata { 74e89ab7b58d2542f4f42e923fa65ef8984840a90cEnrico Granata return m_save_user_input; 75e89ab7b58d2542f4f42e923fa65ef8984840a90cEnrico Granata } 76e89ab7b58d2542f4f42e923fa65ef8984840a90cEnrico Granata 77f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granataprotected: 78f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata friend class Debugger; 79f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 80f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granataprivate: 81f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata DISALLOW_COPY_AND_ASSIGN (InputReaderEZ); 82f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 83f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata}; 84f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 85f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata} // namespace lldb_private 86f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 87f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata#endif // #ifndef liblldb_InputReaderEZ_h_ 88