xref: /llvm-project/lldb/include/lldb/API/SBWatchpointOptions.h (revision 75e862077834c06e574d34e8958dd2ee7cc1d334)
1*75e86207SDavid Spickett //===-- SBWatchpointOptions.h -----------------------------------*- C++ -*-===//
2*75e86207SDavid Spickett //
3*75e86207SDavid Spickett // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*75e86207SDavid Spickett // See https://llvm.org/LICENSE.txt for license information.
5*75e86207SDavid Spickett // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*75e86207SDavid Spickett //
7*75e86207SDavid Spickett //===----------------------------------------------------------------------===//
8*75e86207SDavid Spickett 
9*75e86207SDavid Spickett #ifndef LLDB_API_SBWATCHPOINTOPTIONS_H
10*75e86207SDavid Spickett #define LLDB_API_SBWATCHPOINTOPTIONS_H
11*75e86207SDavid Spickett 
12*75e86207SDavid Spickett #include "lldb/API/SBDefines.h"
13*75e86207SDavid Spickett 
14*75e86207SDavid Spickett class WatchpointOptionsImpl;
15*75e86207SDavid Spickett 
16*75e86207SDavid Spickett namespace lldb {
17*75e86207SDavid Spickett 
18*75e86207SDavid Spickett class LLDB_API SBWatchpointOptions {
19*75e86207SDavid Spickett public:
20*75e86207SDavid Spickett   SBWatchpointOptions();
21*75e86207SDavid Spickett 
22*75e86207SDavid Spickett   SBWatchpointOptions(const lldb::SBWatchpointOptions &rhs);
23*75e86207SDavid Spickett 
24*75e86207SDavid Spickett   ~SBWatchpointOptions();
25*75e86207SDavid Spickett 
26*75e86207SDavid Spickett   const SBWatchpointOptions &operator=(const lldb::SBWatchpointOptions &rhs);
27*75e86207SDavid Spickett 
28*75e86207SDavid Spickett   /// Stop when the watched memory region is read.
29*75e86207SDavid Spickett   void SetWatchpointTypeRead(bool read);
30*75e86207SDavid Spickett   bool GetWatchpointTypeRead() const;
31*75e86207SDavid Spickett 
32*75e86207SDavid Spickett   /// Stop when the watched memory region is written to/modified
33*75e86207SDavid Spickett   void SetWatchpointTypeWrite(lldb::WatchpointWriteType write_type);
34*75e86207SDavid Spickett   lldb::WatchpointWriteType GetWatchpointTypeWrite() const;
35*75e86207SDavid Spickett 
36*75e86207SDavid Spickett private:
37*75e86207SDavid Spickett   // This auto_pointer is made in the constructor and is always valid.
38*75e86207SDavid Spickett   mutable std::unique_ptr<WatchpointOptionsImpl> m_opaque_up;
39*75e86207SDavid Spickett };
40*75e86207SDavid Spickett 
41*75e86207SDavid Spickett } // namespace lldb
42*75e86207SDavid Spickett 
43*75e86207SDavid Spickett #endif // LLDB_API_SBWATCHPOINTOPTIONS_H
44