1 //===-- CommandObjectWatchpoint.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_CommandObjectWatchpoint_h_
11 #define liblldb_CommandObjectWatchpoint_h_
12 
13 // C Includes
14 // C++ Includes
15 
16 // Other libraries and framework includes
17 // Project includes
18 #include "lldb/Interpreter/CommandObjectMultiword.h"
19 #include "lldb/Interpreter/Options.h"
20 
21 namespace lldb_private {
22 
23 //-------------------------------------------------------------------------
24 // CommandObjectMultiwordWatchpoint
25 //-------------------------------------------------------------------------
26 
27 class CommandObjectMultiwordWatchpoint : public CommandObjectMultiword
28 {
29 public:
30     CommandObjectMultiwordWatchpoint (CommandInterpreter &interpreter);
31 
32     virtual
33     ~CommandObjectMultiwordWatchpoint ();
34 };
35 
36 //-------------------------------------------------------------------------
37 // CommandObjectWatchpointList
38 //-------------------------------------------------------------------------
39 
40 class CommandObjectWatchpointList : public CommandObject
41 {
42 public:
43     CommandObjectWatchpointList (CommandInterpreter &interpreter);
44 
45     virtual
46     ~CommandObjectWatchpointList ();
47 
48     virtual bool
49     Execute (Args& command,
50              CommandReturnObject &result);
51 
52     virtual Options *
53     GetOptions ();
54 
55     class CommandOptions : public Options
56     {
57     public:
58 
59         CommandOptions (CommandInterpreter &interpreter);
60 
61         virtual
62         ~CommandOptions ();
63 
64         virtual Error
65         SetOptionValue (uint32_t option_idx, const char *option_arg);
66 
67         void
68         OptionParsingStarting ();
69 
70         const OptionDefinition *
71         GetDefinitions ();
72 
73         // Options table: Required for subclasses of Options.
74 
75         static OptionDefinition g_option_table[];
76 
77         // Instance variables to hold the values for command options.
78 
79         lldb::DescriptionLevel m_level;
80     };
81 
82 private:
83     CommandOptions m_options;
84 };
85 
86 //-------------------------------------------------------------------------
87 // CommandObjectWatchpointEnable
88 //-------------------------------------------------------------------------
89 
90 class CommandObjectWatchpointEnable : public CommandObject
91 {
92 public:
93     CommandObjectWatchpointEnable (CommandInterpreter &interpreter);
94 
95     virtual
96     ~CommandObjectWatchpointEnable ();
97 
98     virtual bool
99     Execute (Args& command,
100              CommandReturnObject &result);
101 
102 private:
103 };
104 
105 //-------------------------------------------------------------------------
106 // CommandObjectWatchpointDisable
107 //-------------------------------------------------------------------------
108 
109 class CommandObjectWatchpointDisable : public CommandObject
110 {
111 public:
112     CommandObjectWatchpointDisable (CommandInterpreter &interpreter);
113 
114     virtual
115     ~CommandObjectWatchpointDisable ();
116 
117     virtual bool
118     Execute (Args& command,
119              CommandReturnObject &result);
120 
121 private:
122 };
123 
124 //-------------------------------------------------------------------------
125 // CommandObjectWatchpointDelete
126 //-------------------------------------------------------------------------
127 
128 class CommandObjectWatchpointDelete : public CommandObject
129 {
130 public:
131     CommandObjectWatchpointDelete (CommandInterpreter &interpreter);
132 
133     virtual
134     ~CommandObjectWatchpointDelete ();
135 
136     virtual bool
137     Execute (Args& command,
138              CommandReturnObject &result);
139 
140 private:
141 };
142 
143 //-------------------------------------------------------------------------
144 // CommandObjectWatchpointIgnore
145 //-------------------------------------------------------------------------
146 
147 class CommandObjectWatchpointIgnore : public CommandObject
148 {
149 public:
150     CommandObjectWatchpointIgnore (CommandInterpreter &interpreter);
151 
152     virtual
153     ~CommandObjectWatchpointIgnore ();
154 
155     virtual bool
156     Execute (Args& command,
157              CommandReturnObject &result);
158 
159     virtual Options *
160     GetOptions ();
161 
162     class CommandOptions : public Options
163     {
164     public:
165 
166         CommandOptions (CommandInterpreter &interpreter);
167 
168         virtual
169         ~CommandOptions ();
170 
171         virtual Error
172         SetOptionValue (uint32_t option_idx, const char *option_arg);
173 
174         void
175         OptionParsingStarting ();
176 
177         const OptionDefinition *
178         GetDefinitions ();
179 
180         // Options table: Required for subclasses of Options.
181 
182         static OptionDefinition g_option_table[];
183 
184         // Instance variables to hold the values for command options.
185 
186         uint32_t m_ignore_count;
187     };
188 
189 private:
190     CommandOptions m_options;
191 };
192 
193 } // namespace lldb_private
194 
195 #endif  // liblldb_CommandObjectWatchpoint_h_
196