1 //===-- InputReaderEZ.cpp ---------------------------------------*- 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 #include "lldb/Core/InputReaderEZ.h" 11 12 using namespace lldb; 13 using namespace lldb_private; 14 15 size_t 16 InputReaderEZ::Callback_Impl(void *baton, 17 InputReader &reader, 18 lldb::InputReaderAction notification, 19 const char *bytes, 20 size_t bytes_len) 21 22 { 23 HandlerData hand_data(reader, 24 bytes, 25 bytes_len, 26 baton); 27 28 switch (notification) 29 { 30 case eInputReaderActivate: 31 reader.ActivateHandler(hand_data); 32 break; 33 case eInputReaderDeactivate: 34 reader.DeactivateHandler(hand_data); 35 break; 36 case eInputReaderReactivate: 37 reader.ReactivateHandler(hand_data); 38 break; 39 case eInputReaderAsynchronousOutputWritten: 40 reader.AsynchronousOutputWrittenHandler(hand_data); 41 break; 42 case eInputReaderGotToken: 43 { 44 if (reader.GetSaveUserInput()) 45 reader.GetUserInput().AppendString(bytes, bytes_len); 46 reader.GotTokenHandler(hand_data); 47 } 48 break; 49 case eInputReaderInterrupt: 50 reader.InterruptHandler(hand_data); 51 break; 52 case eInputReaderEndOfFile: 53 reader.EOFHandler(hand_data); 54 break; 55 case eInputReaderDone: 56 reader.DoneHandler(hand_data); 57 break; 58 } 59 return bytes_len; 60 } 61 62 Error 63 InputReaderEZ::Initialize(void* baton, 64 lldb::InputReaderGranularity token_size, 65 const char* end_token, 66 const char *prompt, 67 bool echo) 68 { 69 return InputReader::Initialize(Callback_Impl, 70 baton, 71 token_size, 72 end_token, 73 prompt, 74 echo); 75 } 76 77 Error 78 InputReaderEZ::Initialize(InitializationParameters& params) 79 { 80 Error ret = Initialize(params.m_baton, 81 params.m_token_size, 82 params.m_end_token, 83 params.m_prompt, 84 params.m_echo); 85 m_save_user_input = params.m_save_user_input; 86 return ret; 87 } 88 89 InputReaderEZ::~InputReaderEZ () 90 { 91 } 92