SBBroadcaster.h revision 422b1ae11aaec0bea88d3d2d1f4cdb0147cef0ae
1//===-- SBBroadcaster.h -----------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_SBBroadcaster_h_
11#define LLDB_SBBroadcaster_h_
12
13#include "lldb/API/SBDefines.h"
14
15namespace lldb {
16
17class SBBroadcaster
18{
19public:
20    SBBroadcaster ();
21
22    SBBroadcaster (const char *name);
23
24    SBBroadcaster (const SBBroadcaster &rhs);
25
26#ifndef SWIG
27    const SBBroadcaster &
28    operator = (const SBBroadcaster &rhs);
29#endif
30
31    ~SBBroadcaster();
32
33    bool
34    IsValid () const;
35
36    void
37    Clear ();
38
39    void
40    BroadcastEventByType (uint32_t event_type, bool unique = false);
41
42    void
43    BroadcastEvent (const lldb::SBEvent &event, bool unique = false);
44
45    void
46    AddInitialEventsToListener (const lldb::SBListener &listener, uint32_t requested_events);
47
48    uint32_t
49    AddListener (const lldb::SBListener &listener, uint32_t event_mask);
50
51    const char *
52    GetName () const;
53
54    bool
55    EventTypeHasListeners (uint32_t event_type);
56
57    bool
58    RemoveListener (const lldb::SBListener &listener, uint32_t event_mask = UINT32_MAX);
59
60#ifndef SWIG
61    // This comparison is checking if the internal opaque pointer value
62    // is equal to that in "rhs".
63    bool
64    operator == (const lldb::SBBroadcaster &rhs) const;
65
66    // This comparison is checking if the internal opaque pointer value
67    // is not equal to that in "rhs".
68    bool
69    operator != (const lldb::SBBroadcaster &rhs) const;
70
71    // This comparison is checking if the internal opaque pointer value
72    // is less than that in "rhs" so SBBroadcaster objects can be contained
73    // in ordered containers.
74    bool
75    operator < (const lldb::SBBroadcaster &rhs) const;
76
77#endif
78
79protected:
80    friend class SBCommandInterpreter;
81    friend class SBCommunication;
82    friend class SBEvent;
83    friend class SBListener;
84    friend class SBProcess;
85    friend class SBTarget;
86
87    SBBroadcaster (lldb_private::Broadcaster *broadcaster, bool owns);
88
89#ifndef SWIG
90
91    lldb_private::Broadcaster *
92    get () const;
93
94    void
95    reset (lldb_private::Broadcaster *broadcaster, bool owns);
96
97#endif
98
99private:
100    lldb::BroadcasterSP m_opaque_sp;
101    lldb_private::Broadcaster *m_opaque_ptr;
102};
103
104} // namespace lldb
105
106#endif  // LLDB_SBBroadcaster_h_
107