OptionGroupWatchpoint.h revision 42404d284b22750851b26ae9a4ab42101f673089
1//===-- OptionGroupWatchpoint.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_OptionGroupWatchpoint_h_
11#define liblldb_OptionGroupWatchpoint_h_
12
13// C Includes
14// C++ Includes
15// Other libraries and framework includes
16// Project includes
17#include "lldb/Interpreter/Options.h"
18
19namespace lldb_private {
20
21//-------------------------------------------------------------------------
22// OptionGroupWatchpoint
23//-------------------------------------------------------------------------
24
25    class OptionGroupWatchpoint : public OptionGroup
26    {
27    public:
28
29        OptionGroupWatchpoint ();
30
31        virtual
32        ~OptionGroupWatchpoint ();
33
34        virtual uint32_t
35        GetNumDefinitions ();
36
37        virtual const OptionDefinition*
38        GetDefinitions ();
39
40        virtual Error
41        SetOptionValue (CommandInterpreter &interpreter,
42                        uint32_t option_idx,
43                        const char *option_arg);
44
45        virtual void
46        OptionParsingStarting (CommandInterpreter &interpreter);
47
48        // Note:
49        // eWatchRead == LLDB_WATCH_TYPE_READ; and
50        // eWatchWrite == LLDB_WATCH_TYPE_WRITE
51        typedef enum WatchType {
52            eWatchInvalid = 0,
53            eWatchRead,
54            eWatchWrite,
55            eWatchReadWrite
56        } WatchType;
57
58        WatchType watch_type;
59        uint32_t watch_size;
60        bool watch_type_specified;
61
62    private:
63        DISALLOW_COPY_AND_ASSIGN(OptionGroupWatchpoint);
64    };
65
66} // namespace lldb_private
67
68#endif  // liblldb_OptionGroupWatchpoint_h_
69