blob: b83af5eb98ede2fcac27658ade1308b95a896819 [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,
Johnny Chenc8bba452012-01-21 01:45:18 +0000215 CommandReturnObject &result)
216 { return false; }
217
218 virtual bool
219 WantsRawCommandString() { return true; }
220
221 // Overrides base class's behavior where WantsCompletion = !WantsRawCommandString.
222 virtual bool
223 WantsCompletion() { return true; }
224
225 virtual bool
226 ExecuteRawCommandString (const char *raw_command,
227 CommandReturnObject &result);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000228
229 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000230 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000231 int &cursor_index,
232 int &cursor_char_position,
233 OptionElementVector &opt_element_vector,
234 int match_start_point,
235 int max_return_elements,
236 bool &word_complete,
237 StringList &matches);
238
239private:
240};
241
242//-------------------------------------------------------------------------
243// CommandObjectSettingsInsertBefore
244//-------------------------------------------------------------------------
245
246class CommandObjectSettingsInsertBefore : public CommandObject
247{
248public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000249 CommandObjectSettingsInsertBefore (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000250
251 virtual
252 ~CommandObjectSettingsInsertBefore ();
253
254 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000255 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000256 CommandReturnObject &result);
257
258 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000259 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000260 int &cursor_index,
261 int &cursor_char_position,
262 OptionElementVector &opt_element_vector,
263 int match_start_point,
264 int max_return_elements,
265 bool &word_complete,
266 StringList &matches);
267
268private:
269};
270
271//-------------------------------------------------------------------------
272// CommandObjectSettingInsertAfter
273//-------------------------------------------------------------------------
274
275class CommandObjectSettingsInsertAfter : public CommandObject
276{
277public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000278 CommandObjectSettingsInsertAfter (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000279
280 virtual
281 ~CommandObjectSettingsInsertAfter ();
282
283 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000284 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000285 CommandReturnObject &result);
286
287 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000288 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000289 int &cursor_index,
290 int &cursor_char_position,
291 OptionElementVector &opt_element_vector,
292 int match_start_point,
293 int max_return_elements,
294 bool &word_complete,
295 StringList &matches);
296
297private:
298};
299
300//-------------------------------------------------------------------------
301// CommandObjectSettingsAppend
302//-------------------------------------------------------------------------
303
304class CommandObjectSettingsAppend : public CommandObject
305{
306public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000307 CommandObjectSettingsAppend (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000308
309 virtual
310 ~CommandObjectSettingsAppend ();
311
312 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000313 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000314 CommandReturnObject &result);
315
316 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000317 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000318 int &cursor_index,
319 int &cursor_char_position,
320 OptionElementVector &opt_element_vector,
321 int match_start_point,
322 int max_return_elements,
323 bool &word_complete,
324 StringList &matches);
325
326private:
327};
328
329//-------------------------------------------------------------------------
330// CommandObjectSettingsClear
331//-------------------------------------------------------------------------
332
333class CommandObjectSettingsClear : public CommandObject
334{
335public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000336 CommandObjectSettingsClear (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000337
338 virtual
339 ~CommandObjectSettingsClear ();
340
341 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000342 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000343 CommandReturnObject &result);
344
345 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000346 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000347 int &cursor_index,
348 int &cursor_char_position,
349 OptionElementVector &opt_element_vector,
350 int match_start_point,
351 int max_return_elements,
352 bool &word_complete,
353 StringList &matches);
354
355private:
Chris Lattner24943d22010-06-08 16:52:24 +0000356};
357
358} // namespace lldb_private
359
360#endif // liblldb_CommandObjectSettings_h_