File indexing completed on 2026-05-10 08:42:42
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLDB_API_SBLISTENER_H
0010 #define LLDB_API_SBLISTENER_H
0011
0012 #include "lldb/API/SBDefines.h"
0013
0014 namespace lldb {
0015
0016 class LLDB_API SBListener {
0017 public:
0018 SBListener();
0019
0020 SBListener(const char *name);
0021
0022 SBListener(const SBListener &rhs);
0023
0024 ~SBListener();
0025
0026 const lldb::SBListener &operator=(const lldb::SBListener &rhs);
0027
0028 void AddEvent(const lldb::SBEvent &event);
0029
0030 void Clear();
0031
0032 explicit operator bool() const;
0033
0034 bool IsValid() const;
0035
0036 uint32_t StartListeningForEventClass(SBDebugger &debugger,
0037 const char *broadcaster_class,
0038 uint32_t event_mask);
0039
0040 bool StopListeningForEventClass(SBDebugger &debugger,
0041 const char *broadcaster_class,
0042 uint32_t event_mask);
0043
0044 uint32_t StartListeningForEvents(const lldb::SBBroadcaster &broadcaster,
0045 uint32_t event_mask);
0046
0047 bool StopListeningForEvents(const lldb::SBBroadcaster &broadcaster,
0048 uint32_t event_mask);
0049
0050
0051 bool WaitForEvent(uint32_t num_seconds, lldb::SBEvent &event);
0052
0053 bool WaitForEventForBroadcaster(uint32_t num_seconds,
0054 const lldb::SBBroadcaster &broadcaster,
0055 lldb::SBEvent &sb_event);
0056
0057 bool WaitForEventForBroadcasterWithType(
0058 uint32_t num_seconds, const lldb::SBBroadcaster &broadcaster,
0059 uint32_t event_type_mask, lldb::SBEvent &sb_event);
0060
0061 bool PeekAtNextEvent(lldb::SBEvent &sb_event);
0062
0063 bool PeekAtNextEventForBroadcaster(const lldb::SBBroadcaster &broadcaster,
0064 lldb::SBEvent &sb_event);
0065
0066 bool
0067 PeekAtNextEventForBroadcasterWithType(const lldb::SBBroadcaster &broadcaster,
0068 uint32_t event_type_mask,
0069 lldb::SBEvent &sb_event);
0070
0071 bool GetNextEvent(lldb::SBEvent &sb_event);
0072
0073 bool GetNextEventForBroadcaster(const lldb::SBBroadcaster &broadcaster,
0074 lldb::SBEvent &sb_event);
0075
0076 bool
0077 GetNextEventForBroadcasterWithType(const lldb::SBBroadcaster &broadcaster,
0078 uint32_t event_type_mask,
0079 lldb::SBEvent &sb_event);
0080
0081 bool HandleBroadcastEvent(const lldb::SBEvent &event);
0082
0083 protected:
0084 friend class SBAttachInfo;
0085 friend class SBBroadcaster;
0086 friend class SBCommandInterpreter;
0087 friend class SBDebugger;
0088 friend class SBLaunchInfo;
0089 friend class SBTarget;
0090
0091 SBListener(const lldb::ListenerSP &listener_sp);
0092
0093 lldb::ListenerSP GetSP();
0094
0095 private:
0096 lldb_private::Listener *operator->() const;
0097
0098 lldb_private::Listener *get() const;
0099
0100 void reset(lldb::ListenerSP listener_sp);
0101
0102 lldb::ListenerSP m_opaque_sp;
0103 lldb_private::Listener *m_unused_ptr = nullptr;
0104 };
0105
0106 }
0107
0108 #endif