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