LLDB mainline
SBListener.h
Go to the documentation of this file.
1//===-- SBListener.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_SBLISTENER_H
10#define LLDB_API_SBLISTENER_H
11
12#include "lldb/API/SBDefines.h"
13
14namespace lldb {
15
17public:
18 SBListener();
19
20 SBListener(const char *name);
21
22 SBListener(const SBListener &rhs);
23
25
27
28 void AddEvent(const lldb::SBEvent &event);
29
30 void Clear();
31
32 explicit operator bool() const;
33
34 bool IsValid() const;
35
36 uint32_t StartListeningForEventClass(SBDebugger &debugger,
37 const char *broadcaster_class,
38 uint32_t event_mask);
39
41 const char *broadcaster_class,
42 uint32_t event_mask);
43
44 uint32_t StartListeningForEvents(const lldb::SBBroadcaster &broadcaster,
45 uint32_t event_mask);
46
47 bool StopListeningForEvents(const lldb::SBBroadcaster &broadcaster,
48 uint32_t event_mask);
49
50 // Returns true if an event was received, false if we timed out.
51 bool WaitForEvent(uint32_t num_seconds, lldb::SBEvent &event);
52
53 bool WaitForEventForBroadcaster(uint32_t num_seconds,
54 const lldb::SBBroadcaster &broadcaster,
55 lldb::SBEvent &sb_event);
56
58 uint32_t num_seconds, const lldb::SBBroadcaster &broadcaster,
59 uint32_t event_type_mask, lldb::SBEvent &sb_event);
60
61 bool PeekAtNextEvent(lldb::SBEvent &sb_event);
62
64 lldb::SBEvent &sb_event);
65
66 bool
68 uint32_t event_type_mask,
69 lldb::SBEvent &sb_event);
70
71 bool GetNextEvent(lldb::SBEvent &sb_event);
72
73 bool GetNextEventForBroadcaster(const lldb::SBBroadcaster &broadcaster,
74 lldb::SBEvent &sb_event);
75
76 bool
78 uint32_t event_type_mask,
79 lldb::SBEvent &sb_event);
80
81 bool HandleBroadcastEvent(const lldb::SBEvent &event);
82
83protected:
84 friend class SBAttachInfo;
85 friend class SBBroadcaster;
87 friend class SBDebugger;
88 friend class SBLaunchInfo;
89 friend class SBTarget;
90
91 SBListener(const lldb::ListenerSP &listener_sp);
92
94
95private:
97
99
100 void reset(lldb::ListenerSP listener_sp);
101
104};
105
106} // namespace lldb
107
108#endif // LLDB_API_SBLISTENER_H
#define LLDB_API
Definition SBDefines.h:28
lldb_private::Listener * operator->() const
bool GetNextEvent(lldb::SBEvent &sb_event)
friend class SBLaunchInfo
Definition SBListener.h:88
bool PeekAtNextEventForBroadcaster(const lldb::SBBroadcaster &broadcaster, lldb::SBEvent &sb_event)
void reset(lldb::ListenerSP listener_sp)
friend class SBDebugger
Definition SBListener.h:87
friend class SBTarget
Definition SBListener.h:89
bool StopListeningForEvents(const lldb::SBBroadcaster &broadcaster, uint32_t event_mask)
lldb::ListenerSP GetSP()
uint32_t StartListeningForEvents(const lldb::SBBroadcaster &broadcaster, uint32_t event_mask)
void AddEvent(const lldb::SBEvent &event)
lldb_private::Listener * m_unused_ptr
Definition SBListener.h:103
lldb::ListenerSP m_opaque_sp
Definition SBListener.h:102
bool PeekAtNextEvent(lldb::SBEvent &sb_event)
bool WaitForEvent(uint32_t num_seconds, lldb::SBEvent &event)
bool HandleBroadcastEvent(const lldb::SBEvent &event)
const lldb::SBListener & operator=(const lldb::SBListener &rhs)
bool GetNextEventForBroadcasterWithType(const lldb::SBBroadcaster &broadcaster, uint32_t event_type_mask, lldb::SBEvent &sb_event)
bool PeekAtNextEventForBroadcasterWithType(const lldb::SBBroadcaster &broadcaster, uint32_t event_type_mask, lldb::SBEvent &sb_event)
bool WaitForEventForBroadcaster(uint32_t num_seconds, const lldb::SBBroadcaster &broadcaster, lldb::SBEvent &sb_event)
lldb_private::Listener * get() const
bool IsValid() const
friend class SBBroadcaster
Definition SBListener.h:85
bool GetNextEventForBroadcaster(const lldb::SBBroadcaster &broadcaster, lldb::SBEvent &sb_event)
friend class SBAttachInfo
Definition SBListener.h:84
friend class SBCommandInterpreter
Definition SBListener.h:86
bool StopListeningForEventClass(SBDebugger &debugger, const char *broadcaster_class, uint32_t event_mask)
uint32_t StartListeningForEventClass(SBDebugger &debugger, const char *broadcaster_class, uint32_t event_mask)
bool WaitForEventForBroadcasterWithType(uint32_t num_seconds, const lldb::SBBroadcaster &broadcaster, uint32_t event_type_mask, lldb::SBEvent &sb_event)
std::shared_ptr< lldb_private::Listener > ListenerSP