1 //===-- Stoppoint.h ---------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_BREAKPOINT_STOPPOINT_H
10 #define LLDB_BREAKPOINT_STOPPOINT_H
11 
12 #include "lldb/Utility/UserID.h"
13 #include "lldb/lldb-private.h"
14 
15 namespace lldb_private {
16 
17 class Stoppoint {
18 public:
19   // Constructors and Destructors
20   Stoppoint();
21 
22   virtual ~Stoppoint();
23 
24   // Methods
25   virtual void Dump(Stream *) = 0;
26 
27   virtual bool IsEnabled() = 0;
28 
29   virtual void SetEnabled(bool enable) = 0;
30 
31   lldb::break_id_t GetID() const;
32 
33   void SetID(lldb::break_id_t bid);
34 
35 protected:
36   lldb::break_id_t m_bid = LLDB_INVALID_BREAK_ID;
37 
38 private:
39   // For Stoppoint only
40   Stoppoint(const Stoppoint &) = delete;
41   const Stoppoint &operator=(const Stoppoint &) = delete;
42 };
43 
44 } // namespace lldb_private
45 
46 #endif // LLDB_BREAKPOINT_STOPPOINT_H
47