LLDB mainline
SBEvent.h
Go to the documentation of this file.
1//===-- SBEvent.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_API_SBEVENT_H
10#define LLDB_API_SBEVENT_H
11
12#include "lldb/API/SBDefines.h"
13
14#include <cstdio>
15#include <vector>
16
17namespace lldb_private {
19namespace python {
20class SWIGBridge;
21}
22} // namespace lldb_private
23
24namespace lldb {
25
26class SBBroadcaster;
27
29public:
30 SBEvent();
31
32 SBEvent(const lldb::SBEvent &rhs);
33
34 // Make an event that contains a C string.
35 SBEvent(uint32_t event, const char *cstr, uint32_t cstr_len);
36
38
39 const SBEvent &operator=(const lldb::SBEvent &rhs);
40
41 explicit operator bool() const;
42
43 bool IsValid() const;
44
45 const char *GetDataFlavor();
46
47 uint32_t GetType() const;
48
50
51 const char *GetBroadcasterClass() const;
52
53#ifndef SWIG
54 bool BroadcasterMatchesPtr(const lldb::SBBroadcaster *broadcaster);
55#endif
56
57 bool BroadcasterMatchesRef(const lldb::SBBroadcaster &broadcaster);
58
59 void Clear();
60
61 static const char *GetCStringFromEvent(const lldb::SBEvent &event);
62
63 bool GetDescription(lldb::SBStream &description);
64
65 bool GetDescription(lldb::SBStream &description) const;
66
67protected:
68 friend class SBListener;
69 friend class SBBroadcaster;
70 friend class SBBreakpoint;
71 friend class SBDebugger;
72 friend class SBProcess;
73 friend class SBTarget;
74 friend class SBThread;
75 friend class SBWatchpoint;
76
78 friend class lldb_private::python::SWIGBridge;
79
80 SBEvent(lldb::EventSP &event_sp);
81
83
84 lldb::EventSP &GetSP() const;
85
86 void reset(lldb::EventSP &event_sp);
87
88 void reset(lldb_private::Event *event);
89
90 lldb_private::Event *get() const;
91
92private:
95};
96
97} // namespace lldb
98
99#endif // LLDB_API_SBEVENT_H
#define LLDB_API
Definition SBDefines.h:28
lldb_private::Event * m_opaque_ptr
Definition SBEvent.h:94
friend class SBWatchpoint
Definition SBEvent.h:75
uint32_t GetType() const
Definition SBEvent.cpp:71
friend class SBProcess
Definition SBEvent.h:72
const char * GetDataFlavor()
Definition SBEvent.cpp:59
bool GetDescription(lldb::SBStream &description)
Definition SBEvent.cpp:175
friend class SBDebugger
Definition SBEvent.h:71
friend class SBTarget
Definition SBEvent.h:73
friend class SBBreakpoint
Definition SBEvent.h:70
lldb::EventSP m_event_sp
Definition SBEvent.h:93
friend class SBListener
Definition SBEvent.h:68
friend class SBThread
Definition SBEvent.h:74
lldb_private::Event * get() const
Definition SBEvent.cpp:134
bool BroadcasterMatchesPtr(const lldb::SBBroadcaster *broadcaster)
Definition SBEvent.cpp:104
lldb::SBBroadcaster GetBroadcaster() const
Definition SBEvent.cpp:83
bool BroadcasterMatchesRef(const lldb::SBBroadcaster &broadcaster)
Definition SBEvent.cpp:112
const char * GetBroadcasterClass() const
Definition SBEvent.cpp:93
void reset(lldb::EventSP &event_sp)
Definition SBEvent.cpp:145
bool IsValid() const
Definition SBEvent.cpp:155
static const char * GetCStringFromEvent(const lldb::SBEvent &event)
Definition SBEvent.cpp:167
friend class SBBroadcaster
Definition SBEvent.h:69
const SBEvent & operator=(const lldb::SBEvent &rhs)
Definition SBEvent.cpp:47
lldb::EventSP & GetSP() const
Definition SBEvent.cpp:132
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Event > EventSP