OptionGroupWatchpoint.h revision 1e0e73a403ffbbeafa7a98e958909b56be929cf0
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        static bool
30        IsWatchSizeSupported(uint32_t watch_size);
31
32        OptionGroupWatchpoint ();
33
34        virtual
35        ~OptionGroupWatchpoint ();
36
37        virtual uint32_t
38        GetNumDefinitions ();
39
40        virtual const OptionDefinition*
41        GetDefinitions ();
42
43        virtual Error
44        SetOptionValue (CommandInterpreter &interpreter,
45                        uint32_t option_idx,
46                        const char *option_arg);
47
48        virtual void
49        OptionParsingStarting (CommandInterpreter &interpreter);
50
51        // Note:
52        // eWatchRead == LLDB_WATCH_TYPE_READ; and
53        // eWatchWrite == LLDB_WATCH_TYPE_WRITE
54        typedef enum WatchType {
55            eWatchInvalid = 0,
56            eWatchRead,
57            eWatchWrite,
58            eWatchReadWrite
59        } WatchType;
60
61        WatchType watch_type;
62        uint32_t watch_size;
63        bool watch_type_specified;
64
65    private:
66        DISALLOW_COPY_AND_ASSIGN(OptionGroupWatchpoint);
67    };
68
69} // namespace lldb_private
70
71#endif  // liblldb_OptionGroupWatchpoint_h_
72