1 //===-- SBBroadcaster.h -----------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBBroadcaster_h_
11 #define LLDB_SBBroadcaster_h_
13 #include "lldb/API/SBDefines.h"
17 class LLDB_API SBBroadcaster {
21 SBBroadcaster(const char *name);
23 SBBroadcaster(const SBBroadcaster &rhs);
25 const SBBroadcaster &operator=(const SBBroadcaster &rhs);
33 void BroadcastEventByType(uint32_t event_type, bool unique = false);
35 void BroadcastEvent(const lldb::SBEvent &event, bool unique = false);
37 void AddInitialEventsToListener(const lldb::SBListener &listener,
38 uint32_t requested_events);
40 uint32_t AddListener(const lldb::SBListener &listener, uint32_t event_mask);
42 const char *GetName() const;
44 bool EventTypeHasListeners(uint32_t event_type);
46 bool RemoveListener(const lldb::SBListener &listener,
47 uint32_t event_mask = UINT32_MAX);
49 // This comparison is checking if the internal opaque pointer value is equal
51 bool operator==(const lldb::SBBroadcaster &rhs) const;
53 // This comparison is checking if the internal opaque pointer value is not
54 // equal to that in "rhs".
55 bool operator!=(const lldb::SBBroadcaster &rhs) const;
57 // This comparison is checking if the internal opaque pointer value is less
58 // than that in "rhs" so SBBroadcaster objects can be contained in ordered
60 bool operator<(const lldb::SBBroadcaster &rhs) const;
63 friend class SBCommandInterpreter;
64 friend class SBCommunication;
66 friend class SBListener;
67 friend class SBProcess;
68 friend class SBTarget;
70 SBBroadcaster(lldb_private::Broadcaster *broadcaster, bool owns);
72 lldb_private::Broadcaster *get() const;
74 void reset(lldb_private::Broadcaster *broadcaster, bool owns);
77 lldb::BroadcasterSP m_opaque_sp;
78 lldb_private::Broadcaster *m_opaque_ptr;
83 #endif // LLDB_SBBroadcaster_h_