Go to the documentation of this file.
9 #ifndef LLDB_UTILITY_LISTENER_H
10 #define LLDB_UTILITY_LISTENER_H
17 #include <condition_variable>
36 class Listener :
public std::enable_shared_from_this<Listener> {
74 void *callback_user_data);
93 lldb::EventSP &event_sp,
111 std::owner_less<Broadcaster::BroadcasterImplWP>>
114 typedef std::vector<lldb::BroadcasterManagerWP>
122 lldb::EventSP &event_sp,
bool remove);
128 lldb::EventSP &event_sp);
154 #endif // LLDB_UTILITY_LISTENER_H
std::recursive_mutex m_broadcasters_mutex
bool FindNextEventInternal(std::unique_lock< std::mutex > &lock, Broadcaster *broadcaster, const ConstString *sources, uint32_t num_sources, uint32_t event_type_mask, lldb::EventSP &event_sp, bool remove)
std::mutex m_events_mutex
size_t HandleBroadcastEvent(lldb::EventSP &event_sp)
const Listener & operator=(const Listener &)=delete
broadcaster_collection m_broadcasters
uint32_t StartListeningForEventSpec(const lldb::BroadcasterManagerSP &manager_sp, const BroadcastEventSpec &event_spec)
void * callback_user_data
bool GetEventInternal(const Timeout< std::micro > &timeout, Broadcaster *broadcaster, const ConstString *sources, uint32_t num_sources, uint32_t event_type_mask, lldb::EventSP &event_sp)
Event * PeekAtNextEventForBroadcasterWithType(Broadcaster *broadcaster, uint32_t event_type_mask)
std::weak_ptr< BroadcasterImpl > BroadcasterImplWP
bool GetEventForBroadcasterWithType(Broadcaster *broadcaster, uint32_t event_type_mask, lldb::EventSP &event_sp, const Timeout< std::micro > &timeout)
std::multimap< Broadcaster::BroadcasterImplWP, BroadcasterInfo, std::owner_less< Broadcaster::BroadcasterImplWP > > broadcaster_collection
uint32_t StartListeningForEvents(Broadcaster *broadcaster, uint32_t event_mask)
void AddEvent(lldb::EventSP &event)
Event * PeekAtNextEventForBroadcaster(Broadcaster *broadcaster)
string(SUBSTRING ${p} 10 -1 pStripped) if($
Event * PeekAtNextEvent()
bool StopListeningForEventSpec(const lldb::BroadcasterManagerSP &manager_sp, const BroadcastEventSpec &event_spec)
Listener(const char *name)
BroadcasterInfo(uint32_t mask, HandleBroadcastCallback cb=nullptr, void *ud=nullptr)
bool GetEvent(lldb::EventSP &event_sp, const Timeout< std::micro > &timeout)
void BroadcasterManagerWillDestruct(lldb::BroadcasterManagerSP manager_sp)
event_collection m_events
std::list< lldb::EventSP > event_collection
bool StopListeningForEvents(Broadcaster *broadcaster, uint32_t event_mask)
void BroadcasterWillDestruct(Broadcaster *)
bool(* HandleBroadcastCallback)(lldb::EventSP &event_sp, void *baton)
std::vector< lldb::BroadcasterManagerWP > broadcaster_manager_collection
A class that represents a running process on the host machine.
HandleBroadcastCallback callback
broadcaster_manager_collection m_broadcaster_managers
static lldb::ListenerSP MakeListener(const char *name)
bool GetEventForBroadcaster(Broadcaster *broadcaster, lldb::EventSP &event_sp, const Timeout< std::micro > &timeout)
std::condition_variable m_events_condition