]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBEvent.h
Merge llvm, clang, compiler-rt, libc++, lld, and lldb release_80 branch
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / API / SBEvent.h
1 //===-- SBEvent.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 LLDB_SBEvent_h_
11 #define LLDB_SBEvent_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 #include <stdio.h>
16 #include <vector>
17
18 namespace lldb {
19
20 class SBBroadcaster;
21
22 class LLDB_API SBEvent {
23 public:
24   SBEvent();
25
26   SBEvent(const lldb::SBEvent &rhs);
27
28   // Make an event that contains a C string.
29   SBEvent(uint32_t event, const char *cstr, uint32_t cstr_len);
30
31   SBEvent(lldb::EventSP &event_sp);
32
33   SBEvent(lldb_private::Event *event_sp);
34
35   ~SBEvent();
36
37   const SBEvent &operator=(const lldb::SBEvent &rhs);
38
39   bool IsValid() const;
40
41   const char *GetDataFlavor();
42
43   uint32_t GetType() const;
44
45   lldb::SBBroadcaster GetBroadcaster() const;
46
47   const char *GetBroadcasterClass() const;
48
49   bool BroadcasterMatchesPtr(const lldb::SBBroadcaster *broadcaster);
50
51   bool BroadcasterMatchesRef(const lldb::SBBroadcaster &broadcaster);
52
53   void Clear();
54
55   static const char *GetCStringFromEvent(const lldb::SBEvent &event);
56
57   bool GetDescription(lldb::SBStream &description);
58
59   bool GetDescription(lldb::SBStream &description) const;
60
61 protected:
62   friend class SBListener;
63   friend class SBBroadcaster;
64   friend class SBBreakpoint;
65   friend class SBDebugger;
66   friend class SBProcess;
67   friend class SBTarget;
68   friend class SBThread;
69   friend class SBWatchpoint;
70
71   lldb::EventSP &GetSP() const;
72
73   void reset(lldb::EventSP &event_sp);
74
75   void reset(lldb_private::Event *event);
76
77   lldb_private::Event *get() const;
78
79 private:
80   mutable lldb::EventSP m_event_sp;
81   mutable lldb_private::Event *m_opaque_ptr;
82 };
83
84 } // namespace lldb
85
86 #endif // LLDB_SBEvent_h_