blob: 7d78c08f65d637ab52e4698506c666244fdabcef [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,
Chris Lattner24943d22010-06-08 16:52:24 +000053 CommandReturnObject &result);
54
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000055 virtual Options *
56 GetOptions ();
57
58 class CommandOptions : public Options
59 {
60 public:
61
62 CommandOptions ();
63
64 virtual
65 ~CommandOptions ();
66
67 virtual Error
68 SetOptionValue (int option_idx, const char *option_arg);
69
70 void
71 ResetOptionValues ();
72
Greg Claytonb3448432011-03-24 21:19:54 +000073 const OptionDefinition*
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000074 GetDefinitions ();
75
76 // Options table: Required for subclasses of Options.
77
Greg Claytonb3448432011-03-24 21:19:54 +000078 static OptionDefinition g_option_table[];
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000079
80 // Instance variables to hold the values for command options.
81
82 bool m_override;
83 bool m_reset;
84
85 };
86
87 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +000088 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +000089 int &cursor_index,
90 int &cursor_char_position,
91 OptionElementVector &opt_element_vector,
92 int match_start_point,
93 int max_return_elements,
94 bool &word_complete,
95 StringList &matches);
96
97private:
98 CommandOptions m_options;
99};
100
101//-------------------------------------------------------------------------
102// CommandObjectSettingsShow -- Show current values
103//-------------------------------------------------------------------------
104
105class CommandObjectSettingsShow : public CommandObject
106{
107public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000108 CommandObjectSettingsShow (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000109
110 virtual
111 ~CommandObjectSettingsShow ();
112
113 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000114 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000115 CommandReturnObject &result);
116
117
118 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000119 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000120 int &cursor_index,
121 int &cursor_char_position,
122 OptionElementVector &opt_element_vector,
123 int match_start_point,
124 int max_return_elements,
125 bool &word_complete,
126 StringList &matches);
127
128private:
129};
130
131//-------------------------------------------------------------------------
132// CommandObjectSettingsList -- List settable variables
133//-------------------------------------------------------------------------
134
135class CommandObjectSettingsList : public CommandObject
136{
137public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000138 CommandObjectSettingsList (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000139
140 virtual
141 ~CommandObjectSettingsList ();
142
143 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000144 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000145 CommandReturnObject &result);
146
Caroline Tice41ae2172010-09-15 06:56:39 +0000147 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000148 HandleArgumentCompletion (Args &input,
Caroline Tice41ae2172010-09-15 06:56:39 +0000149 int &cursor_index,
150 int &cursor_char_position,
151 OptionElementVector &opt_element_vector,
152 int match_start_point,
153 int max_return_elements,
154 bool &word_complete,
155 StringList &matches);
156
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000157private:
158};
159
160//-------------------------------------------------------------------------
161// CommandObjectSettingsRemove
162//-------------------------------------------------------------------------
163
164class CommandObjectSettingsRemove : public CommandObject
165{
166public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000167 CommandObjectSettingsRemove (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000168
169 virtual
170 ~CommandObjectSettingsRemove ();
171
172 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000173 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000174 CommandReturnObject &result);
175
176 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000177 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000178 int &cursor_index,
179 int &cursor_char_position,
180 OptionElementVector &opt_element_vector,
181 int match_start_point,
182 int max_return_elements,
183 bool &word_complete,
184 StringList &matches);
185
186private:
187};
188
189//-------------------------------------------------------------------------
190// CommandObjectSettingsReplace
191//-------------------------------------------------------------------------
192
193class CommandObjectSettingsReplace : public CommandObject
194{
195public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000196 CommandObjectSettingsReplace (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000197
198 virtual
199 ~CommandObjectSettingsReplace ();
200
201 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000202 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000203 CommandReturnObject &result);
204
205 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000206 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000207 int &cursor_index,
208 int &cursor_char_position,
209 OptionElementVector &opt_element_vector,
210 int match_start_point,
211 int max_return_elements,
212 bool &word_complete,
213 StringList &matches);
214
215private:
216};
217
218//-------------------------------------------------------------------------
219// CommandObjectSettingsInsertBefore
220//-------------------------------------------------------------------------
221
222class CommandObjectSettingsInsertBefore : public CommandObject
223{
224public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000225 CommandObjectSettingsInsertBefore (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000226
227 virtual
228 ~CommandObjectSettingsInsertBefore ();
229
230 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000231 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000232 CommandReturnObject &result);
233
234 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000235 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000236 int &cursor_index,
237 int &cursor_char_position,
238 OptionElementVector &opt_element_vector,
239 int match_start_point,
240 int max_return_elements,
241 bool &word_complete,
242 StringList &matches);
243
244private:
245};
246
247//-------------------------------------------------------------------------
248// CommandObjectSettingInsertAfter
249//-------------------------------------------------------------------------
250
251class CommandObjectSettingsInsertAfter : public CommandObject
252{
253public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000254 CommandObjectSettingsInsertAfter (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000255
256 virtual
257 ~CommandObjectSettingsInsertAfter ();
258
259 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000260 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000261 CommandReturnObject &result);
262
263 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000264 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000265 int &cursor_index,
266 int &cursor_char_position,
267 OptionElementVector &opt_element_vector,
268 int match_start_point,
269 int max_return_elements,
270 bool &word_complete,
271 StringList &matches);
272
273private:
274};
275
276//-------------------------------------------------------------------------
277// CommandObjectSettingsAppend
278//-------------------------------------------------------------------------
279
280class CommandObjectSettingsAppend : public CommandObject
281{
282public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000283 CommandObjectSettingsAppend (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000284
285 virtual
286 ~CommandObjectSettingsAppend ();
287
288 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000289 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000290 CommandReturnObject &result);
291
292 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000293 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000294 int &cursor_index,
295 int &cursor_char_position,
296 OptionElementVector &opt_element_vector,
297 int match_start_point,
298 int max_return_elements,
299 bool &word_complete,
300 StringList &matches);
301
302private:
303};
304
305//-------------------------------------------------------------------------
306// CommandObjectSettingsClear
307//-------------------------------------------------------------------------
308
309class CommandObjectSettingsClear : public CommandObject
310{
311public:
Greg Clayton238c0a12010-09-18 01:14:36 +0000312 CommandObjectSettingsClear (CommandInterpreter &interpreter);
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000313
314 virtual
315 ~CommandObjectSettingsClear ();
316
317 virtual bool
Greg Clayton238c0a12010-09-18 01:14:36 +0000318 Execute (Args& command,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000319 CommandReturnObject &result);
320
321 virtual int
Greg Clayton238c0a12010-09-18 01:14:36 +0000322 HandleArgumentCompletion (Args &input,
Caroline Tice6e4c5ce2010-09-04 00:03:46 +0000323 int &cursor_index,
324 int &cursor_char_position,
325 OptionElementVector &opt_element_vector,
326 int match_start_point,
327 int max_return_elements,
328 bool &word_complete,
329 StringList &matches);
330
331private:
Chris Lattner24943d22010-06-08 16:52:24 +0000332};
333
334} // namespace lldb_private
335
336#endif // liblldb_CommandObjectSettings_h_