1 //===-- 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" 18 #include "lldb/Interpreter/CommandObjectMultiword.h" 19 #include "lldb/Interpreter/Options.h" 20 21 22 namespace lldb_private { 23 24 //------------------------------------------------------------------------- 25 // CommandObjectMultiwordSettings 26 //------------------------------------------------------------------------- 27 28 class CommandObjectMultiwordSettings : public CommandObjectMultiword 29 { 30 public: 31 32 CommandObjectMultiwordSettings (CommandInterpreter &interpreter); 33 34 virtual 35 ~CommandObjectMultiwordSettings (); 36 37 }; 38 39 //------------------------------------------------------------------------- 40 // CommandObjectSettingsSet 41 //------------------------------------------------------------------------- 42 43 class CommandObjectSettingsSet : public CommandObject 44 { 45 public: 46 CommandObjectSettingsSet (CommandInterpreter &interpreter); 47 48 virtual 49 ~CommandObjectSettingsSet (); 50 51 virtual bool 52 Execute (Args& command, 53 CommandReturnObject &result) 54 { return false; } 55 56 virtual bool 57 WantsRawCommandString() { return true; } 58 59 // Overrides base class's behavior where WantsCompletion = !WantsRawCommandString. 60 virtual bool 61 WantsCompletion() { return true; } 62 63 virtual bool 64 ExecuteRawCommandString (const char *raw_command, 65 CommandReturnObject &result); 66 67 virtual Options * 68 GetOptions (); 69 70 class CommandOptions : public Options 71 { 72 public: 73 74 CommandOptions (CommandInterpreter &interpreter); 75 76 virtual 77 ~CommandOptions (); 78 79 virtual Error 80 SetOptionValue (uint32_t option_idx, const char *option_arg); 81 82 void 83 OptionParsingStarting (); 84 85 const OptionDefinition* 86 GetDefinitions (); 87 88 // Options table: Required for subclasses of Options. 89 90 static OptionDefinition g_option_table[]; 91 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 100 HandleArgumentCompletion (Args &input, 101 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 109 private: 110 CommandOptions m_options; 111 }; 112 113 //------------------------------------------------------------------------- 114 // CommandObjectSettingsShow -- Show current values 115 //------------------------------------------------------------------------- 116 117 class CommandObjectSettingsShow : public CommandObject 118 { 119 public: 120 CommandObjectSettingsShow (CommandInterpreter &interpreter); 121 122 virtual 123 ~CommandObjectSettingsShow (); 124 125 virtual bool 126 Execute (Args& command, 127 CommandReturnObject &result); 128 129 130 virtual int 131 HandleArgumentCompletion (Args &input, 132 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 140 private: 141 }; 142 143 //------------------------------------------------------------------------- 144 // CommandObjectSettingsList -- List settable variables 145 //------------------------------------------------------------------------- 146 147 class CommandObjectSettingsList : public CommandObject 148 { 149 public: 150 CommandObjectSettingsList (CommandInterpreter &interpreter); 151 152 virtual 153 ~CommandObjectSettingsList (); 154 155 virtual bool 156 Execute (Args& command, 157 CommandReturnObject &result); 158 159 virtual int 160 HandleArgumentCompletion (Args &input, 161 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 169 private: 170 }; 171 172 //------------------------------------------------------------------------- 173 // CommandObjectSettingsRemove 174 //------------------------------------------------------------------------- 175 176 class CommandObjectSettingsRemove : public CommandObject 177 { 178 public: 179 CommandObjectSettingsRemove (CommandInterpreter &interpreter); 180 181 virtual 182 ~CommandObjectSettingsRemove (); 183 184 virtual bool 185 Execute (Args& command, 186 CommandReturnObject &result); 187 188 virtual int 189 HandleArgumentCompletion (Args &input, 190 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 198 private: 199 }; 200 201 //------------------------------------------------------------------------- 202 // CommandObjectSettingsReplace 203 //------------------------------------------------------------------------- 204 205 class CommandObjectSettingsReplace : public CommandObject 206 { 207 public: 208 CommandObjectSettingsReplace (CommandInterpreter &interpreter); 209 210 virtual 211 ~CommandObjectSettingsReplace (); 212 213 virtual bool 214 Execute (Args& command, 215 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); 228 229 virtual int 230 HandleArgumentCompletion (Args &input, 231 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 239 private: 240 }; 241 242 //------------------------------------------------------------------------- 243 // CommandObjectSettingsInsertBefore 244 //------------------------------------------------------------------------- 245 246 class CommandObjectSettingsInsertBefore : public CommandObject 247 { 248 public: 249 CommandObjectSettingsInsertBefore (CommandInterpreter &interpreter); 250 251 virtual 252 ~CommandObjectSettingsInsertBefore (); 253 254 virtual bool 255 Execute (Args& command, 256 CommandReturnObject &result) 257 { return false; } 258 259 virtual bool 260 WantsRawCommandString() { return true; } 261 262 // Overrides base class's behavior where WantsCompletion = !WantsRawCommandString. 263 virtual bool 264 WantsCompletion() { return true; } 265 266 virtual bool 267 ExecuteRawCommandString (const char *raw_command, 268 CommandReturnObject &result); 269 270 virtual int 271 HandleArgumentCompletion (Args &input, 272 int &cursor_index, 273 int &cursor_char_position, 274 OptionElementVector &opt_element_vector, 275 int match_start_point, 276 int max_return_elements, 277 bool &word_complete, 278 StringList &matches); 279 280 private: 281 }; 282 283 //------------------------------------------------------------------------- 284 // CommandObjectSettingInsertAfter 285 //------------------------------------------------------------------------- 286 287 class CommandObjectSettingsInsertAfter : public CommandObject 288 { 289 public: 290 CommandObjectSettingsInsertAfter (CommandInterpreter &interpreter); 291 292 virtual 293 ~CommandObjectSettingsInsertAfter (); 294 295 virtual bool 296 Execute (Args& command, 297 CommandReturnObject &result) 298 { return false; } 299 300 virtual bool 301 WantsRawCommandString() { return true; } 302 303 // Overrides base class's behavior where WantsCompletion = !WantsRawCommandString. 304 virtual bool 305 WantsCompletion() { return true; } 306 307 virtual bool 308 ExecuteRawCommandString (const char *raw_command, 309 CommandReturnObject &result); 310 311 virtual int 312 HandleArgumentCompletion (Args &input, 313 int &cursor_index, 314 int &cursor_char_position, 315 OptionElementVector &opt_element_vector, 316 int match_start_point, 317 int max_return_elements, 318 bool &word_complete, 319 StringList &matches); 320 321 private: 322 }; 323 324 //------------------------------------------------------------------------- 325 // CommandObjectSettingsAppend 326 //------------------------------------------------------------------------- 327 328 class CommandObjectSettingsAppend : public CommandObject 329 { 330 public: 331 CommandObjectSettingsAppend (CommandInterpreter &interpreter); 332 333 virtual 334 ~CommandObjectSettingsAppend (); 335 336 virtual bool 337 Execute (Args& command, 338 CommandReturnObject &result) 339 { return false; } 340 341 virtual bool 342 WantsRawCommandString() { return true; } 343 344 // Overrides base class's behavior where WantsCompletion = !WantsRawCommandString. 345 virtual bool 346 WantsCompletion() { return true; } 347 348 virtual bool 349 ExecuteRawCommandString (const char *raw_command, 350 CommandReturnObject &result); 351 352 virtual int 353 HandleArgumentCompletion (Args &input, 354 int &cursor_index, 355 int &cursor_char_position, 356 OptionElementVector &opt_element_vector, 357 int match_start_point, 358 int max_return_elements, 359 bool &word_complete, 360 StringList &matches); 361 362 private: 363 }; 364 365 //------------------------------------------------------------------------- 366 // CommandObjectSettingsClear 367 //------------------------------------------------------------------------- 368 369 class CommandObjectSettingsClear : public CommandObject 370 { 371 public: 372 CommandObjectSettingsClear (CommandInterpreter &interpreter); 373 374 virtual 375 ~CommandObjectSettingsClear (); 376 377 virtual bool 378 Execute (Args& command, 379 CommandReturnObject &result); 380 381 virtual int 382 HandleArgumentCompletion (Args &input, 383 int &cursor_index, 384 int &cursor_char_position, 385 OptionElementVector &opt_element_vector, 386 int match_start_point, 387 int max_return_elements, 388 bool &word_complete, 389 StringList &matches); 390 391 private: 392 }; 393 394 } // namespace lldb_private 395 396 #endif // liblldb_CommandObjectSettings_h_ 397