blob: 057c86841bcb15731b7ccc9bcfe3988b60f7c247 [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
Johnny Chen120d94d2012-01-19 22:16:06 +000059 // Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
60 virtual bool
61 WantsCompletion() { return true; }
62
Johnny Chena1b0ce12012-01-19 19:22:41 +000063 virtual bool
64 ExecuteRawCommandString (const char *raw_command,
65 CommandReturnObject &result);
Chris Lattner24943d22010-06-08 16:52:24 +000066
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000067 virtual Options *
68 GetOptions ();
69
70 class CommandOptions : public Options
71 {
72 public:
73
Greg Claytonf15996e2011-04-07 22:46:35 +000074 CommandOptions (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000075
76 virtual
77 ~CommandOptions ();
78
79 virtual Error
Greg Clayton143fcc32011-04-13 00:18:08 +000080 SetOptionValue (uint32_t option_idx, const char *option_arg);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000081
82 void
Greg Clayton143fcc32011-04-13 00:18:08 +000083 OptionParsingStarting ();
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000084
Greg Claytonb3448432011-03-24 21:19:54 +000085 const OptionDefinition*
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000086 GetDefinitions ();
87
88 // Options table: Required for subclasses of Options.
89
Greg Claytonb3448432011-03-24 21:19:54 +000090 static OptionDefinition g_option_table[];
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000091
92 // Instance variables to hold the values for command options.
93
94 bool m_override;
95 bool m_reset;
96
97 };
98
99 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000100 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000101 int &cursor_index,
102 int &cursor_char_position,
103 OptionElementVector &opt_element_vector,
104 int match_start_point,
105 int max_return_elements,
106 bool &word_complete,
107 StringList &matches);
108
109private:
110 CommandOptions m_options;
111};
112
113//-------------------------------------------------------------------------
114// CommandObjectSettingsShow -- Show current values
115//-------------------------------------------------------------------------
116
117class CommandObjectSettingsShow : public CommandObject
118{
119public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000120 CommandObjectSettingsShow (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000121
122 virtual
123 ~CommandObjectSettingsShow ();
124
125 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000126 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000127 CommandReturnObject &result);
128
129
130 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000131 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000132 int &cursor_index,
133 int &cursor_char_position,
134 OptionElementVector &opt_element_vector,
135 int match_start_point,
136 int max_return_elements,
137 bool &word_complete,
138 StringList &matches);
139
140private:
141};
142
143//-------------------------------------------------------------------------
144// CommandObjectSettingsList -- List settable variables
145//-------------------------------------------------------------------------
146
147class CommandObjectSettingsList : public CommandObject
148{
149public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000150 CommandObjectSettingsList (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000151
152 virtual
153 ~CommandObjectSettingsList ();
154
155 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000156 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000157 CommandReturnObject &result);
158
Caroline Tice41ae2172010-09-15 06:56:39 +0000159 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000160 HandleArgumentCompletion (Args &input,
Caroline Tice41ae2172010-09-15 06:56:39 +0000161 int &cursor_index,
162 int &cursor_char_position,
163 OptionElementVector &opt_element_vector,
164 int match_start_point,
165 int max_return_elements,
166 bool &word_complete,
167 StringList &matches);
168
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000169private:
170};
171
172//-------------------------------------------------------------------------
173// CommandObjectSettingsRemove
174//-------------------------------------------------------------------------
175
176class CommandObjectSettingsRemove : public CommandObject
177{
178public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000179 CommandObjectSettingsRemove (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000180
181 virtual
182 ~CommandObjectSettingsRemove ();
183
184 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000185 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000186 CommandReturnObject &result);
187
188 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000189 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000190 int &cursor_index,
191 int &cursor_char_position,
192 OptionElementVector &opt_element_vector,
193 int match_start_point,
194 int max_return_elements,
195 bool &word_complete,
196 StringList &matches);
197
198private:
199};
200
201//-------------------------------------------------------------------------
202// CommandObjectSettingsReplace
203//-------------------------------------------------------------------------
204
205class CommandObjectSettingsReplace : public CommandObject
206{
207public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000208 CommandObjectSettingsReplace (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000209
210 virtual
211 ~CommandObjectSettingsReplace ();
212
213 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000214 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000215 CommandReturnObject &result);
216
217 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000218 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000219 int &cursor_index,
220 int &cursor_char_position,
221 OptionElementVector &opt_element_vector,
222 int match_start_point,
223 int max_return_elements,
224 bool &word_complete,
225 StringList &matches);
226
227private:
228};
229
230//-------------------------------------------------------------------------
231// CommandObjectSettingsInsertBefore
232//-------------------------------------------------------------------------
233
234class CommandObjectSettingsInsertBefore : public CommandObject
235{
236public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000237 CommandObjectSettingsInsertBefore (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000238
239 virtual
240 ~CommandObjectSettingsInsertBefore ();
241
242 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000243 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000244 CommandReturnObject &result);
245
246 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000247 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000248 int &cursor_index,
249 int &cursor_char_position,
250 OptionElementVector &opt_element_vector,
251 int match_start_point,
252 int max_return_elements,
253 bool &word_complete,
254 StringList &matches);
255
256private:
257};
258
259//-------------------------------------------------------------------------
260// CommandObjectSettingInsertAfter
261//-------------------------------------------------------------------------
262
263class CommandObjectSettingsInsertAfter : public CommandObject
264{
265public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000266 CommandObjectSettingsInsertAfter (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000267
268 virtual
269 ~CommandObjectSettingsInsertAfter ();
270
271 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000272 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000273 CommandReturnObject &result);
274
275 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000276 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000277 int &cursor_index,
278 int &cursor_char_position,
279 OptionElementVector &opt_element_vector,
280 int match_start_point,
281 int max_return_elements,
282 bool &word_complete,
283 StringList &matches);
284
285private:
286};
287
288//-------------------------------------------------------------------------
289// CommandObjectSettingsAppend
290//-------------------------------------------------------------------------
291
292class CommandObjectSettingsAppend : public CommandObject
293{
294public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000295 CommandObjectSettingsAppend (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000296
297 virtual
298 ~CommandObjectSettingsAppend ();
299
300 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000301 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000302 CommandReturnObject &result);
303
304 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000305 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000306 int &cursor_index,
307 int &cursor_char_position,
308 OptionElementVector &opt_element_vector,
309 int match_start_point,
310 int max_return_elements,
311 bool &word_complete,
312 StringList &matches);
313
314private:
315};
316
317//-------------------------------------------------------------------------
318// CommandObjectSettingsClear
319//-------------------------------------------------------------------------
320
321class CommandObjectSettingsClear : public CommandObject
322{
323public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000324 CommandObjectSettingsClear (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000325
326 virtual
327 ~CommandObjectSettingsClear ();
328
329 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000330 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000331 CommandReturnObject &result);
332
333 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000334 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000335 int &cursor_index,
336 int &cursor_char_position,
337 OptionElementVector &opt_element_vector,
338 int match_start_point,
339 int max_return_elements,
340 bool &word_complete,
341 StringList &matches);
342
343private:
Chris Lattner24943d22010-06-08 16:52:24 +0000344};
345
346} // namespace lldb_private
347
348#endif // liblldb_CommandObjectSettings_h_