blob: c44f610d970c4b5db918d59fc8b8d88aee27864f [file] [log] [blame]
Chris Lattner24943d22010-06-08 16:52:24 +00001//===-- CommandObjectFile.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_CommandObjectFile_h_
11#define liblldb_CommandObjectFile_h_
12
13// C Includes
14// C++ Includes
15// Other libraries and framework includes
16// Project includes
17#include "lldb/Core/Options.h"
18#include "lldb/Core/ArchSpec.h"
19#include "lldb/Interpreter/CommandObject.h"
20
21namespace lldb_private {
22
23//-------------------------------------------------------------------------
24// CommandObjectFile
25//-------------------------------------------------------------------------
26
27class CommandObjectFile : public CommandObject
28{
29public:
30
31 CommandObjectFile ();
32
33 virtual
34 ~CommandObjectFile ();
35
36 virtual bool
37 Execute (Args& command,
38 CommandContext *context,
39 CommandInterpreter *interpreter,
40 CommandReturnObject &result);
41
42 virtual Options *
43 GetOptions ();
44
45 class CommandOptions : public Options
46 {
47 public:
48
49 CommandOptions ();
50
51 virtual
52 ~CommandOptions ();
53
54 virtual Error
55 SetOptionValue (int option_idx, const char *option_arg);
56
57 void
58 ResetOptionValues ();
59
60 const lldb::OptionDefinition*
61 GetDefinitions ();
62
63 // Options table: Required for subclasses of Options.
64
65 static lldb::OptionDefinition g_option_table[];
66
67 // Instance variables to hold the values for command options.
68
69 ArchSpec m_arch;
70 };
71
72private:
73 CommandOptions m_options;
74
75};
76
77} // namespace lldb_private
78
79#endif // liblldb_CommandObjectFile_h_