blob: e446da7edee15b0b9a9e01f8c7494cde25b6f7d2 [file] [log] [blame]
Chris Lattner24943d22010-06-08 16:52:24 +00001//===-- CommandObjectSettings.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_CommandObjectSettings_h_
11#define liblldb_CommandObjectSettings_h_
12
13// C Includes
14// C++ Includes
15// Other libraries and framework includes
16// Project includes
17#include "lldb/Interpreter/CommandObject.h"
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000018#include "lldb/Interpreter/CommandObjectMultiword.h"
19#include "lldb/Interpreter/Options.h"
20
Chris Lattner24943d22010-06-08 16:52:24 +000021
22namespace lldb_private {
23
24//-------------------------------------------------------------------------
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000025// CommandObjectMultiwordSettings
Chris Lattner24943d22010-06-08 16:52:24 +000026//-------------------------------------------------------------------------
27
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000028class CommandObjectMultiwordSettings : public CommandObjectMultiword
Chris Lattner24943d22010-06-08 16:52:24 +000029{
30public:
31
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000032 CommandObjectMultiwordSettings (CommandInterpreter &interpreter);
Chris Lattner24943d22010-06-08 16:52:24 +000033
34 virtual
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000035 ~CommandObjectMultiwordSettings ();
36
37};
38
39//-------------------------------------------------------------------------
40// CommandObjectSettingsSet
41//-------------------------------------------------------------------------
42
43class CommandObjectSettingsSet : public CommandObject
44{
45public:
Greg Clayton238c0a12010-09-18 01:14:36 +000046 CommandObjectSettingsSet (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000047
48 virtual
49 ~CommandObjectSettingsSet ();
Chris Lattner24943d22010-06-08 16:52:24 +000050
51 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +000052 Execute (Args& command,
Johnny Chena1b0ce12012-01-19 19:22:41 +000053 CommandReturnObject &result)
54 { return false; }
55
56 virtual bool
57 WantsRawCommandString() { return true; }
58
59 virtual bool
60 ExecuteRawCommandString (const char *raw_command,
61 CommandReturnObject &result);
Chris Lattner24943d22010-06-08 16:52:24 +000062
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000063 virtual Options *
64 GetOptions ();
65
66 class CommandOptions : public Options
67 {
68 public:
69
Greg Claytonf15996e2011-04-07 22:46:35 +000070 CommandOptions (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000071
72 virtual
73 ~CommandOptions ();
74
75 virtual Error
Greg Clayton143fcc32011-04-13 00:18:08 +000076 SetOptionValue (uint32_t option_idx, const char *option_arg);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000077
78 void
Greg Clayton143fcc32011-04-13 00:18:08 +000079 OptionParsingStarting ();
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000080
Greg Claytonb3448432011-03-24 21:19:54 +000081 const OptionDefinition*
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000082 GetDefinitions ();
83
84 // Options table: Required for subclasses of Options.
85
Greg Claytonb3448432011-03-24 21:19:54 +000086 static OptionDefinition g_option_table[];
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000087
88 // Instance variables to hold the values for command options.
89
90 bool m_override;
91 bool m_reset;
92
93 };
94
95 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +000096 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000097 int &cursor_index,
98 int &cursor_char_position,
99 OptionElementVector &opt_element_vector,
100 int match_start_point,
101 int max_return_elements,
102 bool &word_complete,
103 StringList &matches);
104
105private:
106 CommandOptions m_options;
107};
108
109//-------------------------------------------------------------------------
110// CommandObjectSettingsShow -- Show current values
111//-------------------------------------------------------------------------
112
113class CommandObjectSettingsShow : public CommandObject
114{
115public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000116 CommandObjectSettingsShow (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000117
118 virtual
119 ~CommandObjectSettingsShow ();
120
121 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000122 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000123 CommandReturnObject &result);
124
125
126 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000127 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000128 int &cursor_index,
129 int &cursor_char_position,
130 OptionElementVector &opt_element_vector,
131 int match_start_point,
132 int max_return_elements,
133 bool &word_complete,
134 StringList &matches);
135
136private:
137};
138
139//-------------------------------------------------------------------------
140// CommandObjectSettingsList -- List settable variables
141//-------------------------------------------------------------------------
142
143class CommandObjectSettingsList : public CommandObject
144{
145public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000146 CommandObjectSettingsList (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000147
148 virtual
149 ~CommandObjectSettingsList ();
150
151 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000152 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000153 CommandReturnObject &result);
154
Caroline Tice41ae2172010-09-15 06:56:39 +0000155 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000156 HandleArgumentCompletion (Args &input,
Caroline Tice41ae2172010-09-15 06:56:39 +0000157 int &cursor_index,
158 int &cursor_char_position,
159 OptionElementVector &opt_element_vector,
160 int match_start_point,
161 int max_return_elements,
162 bool &word_complete,
163 StringList &matches);
164
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000165private:
166};
167
168//-------------------------------------------------------------------------
169// CommandObjectSettingsRemove
170//-------------------------------------------------------------------------
171
172class CommandObjectSettingsRemove : public CommandObject
173{
174public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000175 CommandObjectSettingsRemove (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000176
177 virtual
178 ~CommandObjectSettingsRemove ();
179
180 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000181 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000182 CommandReturnObject &result);
183
184 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000185 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000186 int &cursor_index,
187 int &cursor_char_position,
188 OptionElementVector &opt_element_vector,
189 int match_start_point,
190 int max_return_elements,
191 bool &word_complete,
192 StringList &matches);
193
194private:
195};
196
197//-------------------------------------------------------------------------
198// CommandObjectSettingsReplace
199//-------------------------------------------------------------------------
200
201class CommandObjectSettingsReplace : public CommandObject
202{
203public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000204 CommandObjectSettingsReplace (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000205
206 virtual
207 ~CommandObjectSettingsReplace ();
208
209 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000210 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000211 CommandReturnObject &result);
212
213 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000214 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000215 int &cursor_index,
216 int &cursor_char_position,
217 OptionElementVector &opt_element_vector,
218 int match_start_point,
219 int max_return_elements,
220 bool &word_complete,
221 StringList &matches);
222
223private:
224};
225
226//-------------------------------------------------------------------------
227// CommandObjectSettingsInsertBefore
228//-------------------------------------------------------------------------
229
230class CommandObjectSettingsInsertBefore : public CommandObject
231{
232public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000233 CommandObjectSettingsInsertBefore (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000234
235 virtual
236 ~CommandObjectSettingsInsertBefore ();
237
238 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000239 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000240 CommandReturnObject &result);
241
242 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000243 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000244 int &cursor_index,
245 int &cursor_char_position,
246 OptionElementVector &opt_element_vector,
247 int match_start_point,
248 int max_return_elements,
249 bool &word_complete,
250 StringList &matches);
251
252private:
253};
254
255//-------------------------------------------------------------------------
256// CommandObjectSettingInsertAfter
257//-------------------------------------------------------------------------
258
259class CommandObjectSettingsInsertAfter : public CommandObject
260{
261public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000262 CommandObjectSettingsInsertAfter (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000263
264 virtual
265 ~CommandObjectSettingsInsertAfter ();
266
267 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000268 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000269 CommandReturnObject &result);
270
271 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000272 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000273 int &cursor_index,
274 int &cursor_char_position,
275 OptionElementVector &opt_element_vector,
276 int match_start_point,
277 int max_return_elements,
278 bool &word_complete,
279 StringList &matches);
280
281private:
282};
283
284//-------------------------------------------------------------------------
285// CommandObjectSettingsAppend
286//-------------------------------------------------------------------------
287
288class CommandObjectSettingsAppend : public CommandObject
289{
290public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000291 CommandObjectSettingsAppend (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000292
293 virtual
294 ~CommandObjectSettingsAppend ();
295
296 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000297 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000298 CommandReturnObject &result);
299
300 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000301 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000302 int &cursor_index,
303 int &cursor_char_position,
304 OptionElementVector &opt_element_vector,
305 int match_start_point,
306 int max_return_elements,
307 bool &word_complete,
308 StringList &matches);
309
310private:
311};
312
313//-------------------------------------------------------------------------
314// CommandObjectSettingsClear
315//-------------------------------------------------------------------------
316
317class CommandObjectSettingsClear : public CommandObject
318{
319public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000320 CommandObjectSettingsClear (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000321
322 virtual
323 ~CommandObjectSettingsClear ();
324
325 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000326 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000327 CommandReturnObject &result);
328
329 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000330 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000331 int &cursor_index,
332 int &cursor_char_position,
333 OptionElementVector &opt_element_vector,
334 int match_start_point,
335 int max_return_elements,
336 bool &word_complete,
337 StringList &matches);
338
339private:
Chris Lattner24943d22010-06-08 16:52:24 +0000340};
341
342} // namespace lldb_private
343
344#endif // liblldb_CommandObjectSettings_h_