1//===-- SWIG Interface for SBListener ---------------------------*- 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
9namespace lldb {
10
11%feature("docstring",
12"API clients can register its own listener to debugger events.
13
14See aslo SBEvent for example usage of creating and adding a listener."
15) SBListener;
16class SBListener
17{
18public:
19    SBListener ();
20
21    SBListener (const char *name);
22
23    SBListener (const SBListener &rhs);
24
25    ~SBListener ();
26
27    void
28    AddEvent (const lldb::SBEvent &event);
29
30    void
31    Clear ();
32
33    bool
34    IsValid () const;
35
36    explicit operator bool() const;
37
38    uint32_t
39    StartListeningForEventClass (SBDebugger &debugger,
40                                 const char *broadcaster_class,
41                                 uint32_t event_mask);
42
43    uint32_t
44    StopListeningForEventClass (SBDebugger &debugger,
45                                const char *broadcaster_class,
46                                uint32_t event_mask);
47
48    uint32_t
49    StartListeningForEvents (const lldb::SBBroadcaster& broadcaster,
50                             uint32_t event_mask);
51
52    bool
53    StopListeningForEvents (const lldb::SBBroadcaster& broadcaster,
54                            uint32_t event_mask);
55
56    // Returns true if an event was received, false if we timed out.
57    bool
58    WaitForEvent (uint32_t num_seconds,
59                  lldb::SBEvent &event);
60
61    bool
62    WaitForEventForBroadcaster (uint32_t num_seconds,
63                                const lldb::SBBroadcaster &broadcaster,
64                                lldb::SBEvent &sb_event);
65
66    bool
67    WaitForEventForBroadcasterWithType (uint32_t num_seconds,
68                                        const lldb::SBBroadcaster &broadcaster,
69                                        uint32_t event_type_mask,
70                                        lldb::SBEvent &sb_event);
71
72    bool
73    PeekAtNextEvent (lldb::SBEvent &sb_event);
74
75    bool
76    PeekAtNextEventForBroadcaster (const lldb::SBBroadcaster &broadcaster,
77                                   lldb::SBEvent &sb_event);
78
79    bool
80    PeekAtNextEventForBroadcasterWithType (const lldb::SBBroadcaster &broadcaster,
81                                           uint32_t event_type_mask,
82                                           lldb::SBEvent &sb_event);
83
84    bool
85    GetNextEvent (lldb::SBEvent &sb_event);
86
87    bool
88    GetNextEventForBroadcaster (const lldb::SBBroadcaster &broadcaster,
89                                lldb::SBEvent &sb_event);
90
91    bool
92    GetNextEventForBroadcasterWithType (const lldb::SBBroadcaster &broadcaster,
93                                        uint32_t event_type_mask,
94                                        lldb::SBEvent &sb_event);
95
96    bool
97    HandleBroadcastEvent (const lldb::SBEvent &event);
98};
99
100} // namespace lldb
101