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
38 void AddInitialEventsToListener(const lldb::SBListener &listener,
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
74 lldb_private::Broadcaster *get() const;
75
76 void reset(lldb_private::Broadcaster *broadcaster, bool owns);
77
78private:
80 lldb_private::Broadcaster *m_opaque_ptr = nullptr;
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
lldb::BroadcasterSP m_opaque_sp
Definition: SBBroadcaster.h:79
An event broadcasting class.
Definition: Broadcaster.h:146
#define UINT32_MAX
Definition: lldb-defines.h:19
Definition: SBAddress.h:15
std::shared_ptr< lldb_private::Broadcaster > BroadcasterSP
Definition: lldb-forward.h:329
bool LLDB_API operator==(const SBAddress &lhs, const SBAddress &rhs)
Definition: SBAddress.cpp:60