LLDB mainline
SBBroadcaster.h
Go to the documentation of this file.
1//===-- SBBroadcaster.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_SBBROADCASTER_H
10#define LLDB_API_SBBROADCASTER_H
11
12#include "lldb/API/SBDefines.h"
13
14namespace lldb {
15
17public:
19
20 SBBroadcaster(const char *name);
21
22 SBBroadcaster(const SBBroadcaster &rhs);
23
24 const SBBroadcaster &operator=(const SBBroadcaster &rhs);
25
27
28 explicit operator bool() const;
29
30 bool IsValid() const;
31
32 void Clear();
33
34 void BroadcastEventByType(uint32_t event_type, bool unique = false);
35
36 void BroadcastEvent(const lldb::SBEvent &event, bool unique = false);
37
39 uint32_t requested_events);
40
41 uint32_t AddListener(const lldb::SBListener &listener, uint32_t event_mask);
42
43 const char *GetName() const;
44
45 bool EventTypeHasListeners(uint32_t event_type);
46
47 bool RemoveListener(const lldb::SBListener &listener,
48 uint32_t event_mask = UINT32_MAX);
49
50 // This comparison is checking if the internal opaque pointer value is equal
51 // to that in "rhs".
52 bool operator==(const lldb::SBBroadcaster &rhs) const;
53
54 // This comparison is checking if the internal opaque pointer value is not
55 // equal to that in "rhs".
56 bool operator!=(const lldb::SBBroadcaster &rhs) const;
57
58 // This comparison is checking if the internal opaque pointer value is less
59 // than that in "rhs" so SBBroadcaster objects can be contained in ordered
60 // containers.
61 bool operator<(const lldb::SBBroadcaster &rhs) const;
62
63protected:
65 friend class SBCommunication;
66 friend class SBDebugger;
67 friend class SBEvent;
68 friend class SBListener;
69 friend class SBProcess;
70 friend class SBTarget;
71
72 SBBroadcaster(lldb_private::Broadcaster *broadcaster, bool owns);
73
75
76 void reset(lldb_private::Broadcaster *broadcaster, bool owns);
77
78private:
81};
82
83} // namespace lldb
84
85#endif // LLDB_API_SBBROADCASTER_H
#define LLDB_API
Definition SBDefines.h:28
static llvm::StringRef GetName(XcodeSDK::Type type)
Definition XcodeSDK.cpp:21
bool RemoveListener(const lldb::SBListener &listener, uint32_t event_mask=UINT32_MAX)
void AddInitialEventsToListener(const lldb::SBListener &listener, uint32_t requested_events)
lldb_private::Broadcaster * m_opaque_ptr
friend class SBProcess
void reset(lldb_private::Broadcaster *broadcaster, bool owns)
bool operator!=(const lldb::SBBroadcaster &rhs) const
bool operator==(const lldb::SBBroadcaster &rhs) const
const SBBroadcaster & operator=(const SBBroadcaster &rhs)
friend class SBDebugger
friend class SBTarget
friend class SBListener
friend class SBEvent
void BroadcastEventByType(uint32_t event_type, bool unique=false)
bool operator<(const lldb::SBBroadcaster &rhs) const
uint32_t AddListener(const lldb::SBListener &listener, uint32_t event_mask)
void BroadcastEvent(const lldb::SBEvent &event, bool unique=false)
bool EventTypeHasListeners(uint32_t event_type)
lldb_private::Broadcaster * get() const
friend class SBCommandInterpreter
lldb::BroadcasterSP m_opaque_sp
friend class SBCommunication
An event broadcasting class.
#define UINT32_MAX
std::shared_ptr< lldb_private::Broadcaster > BroadcasterSP