LLDB API Documentation

SBListener.h
Go to the documentation of this file.
1 //===-- SBListener.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_SBListener_h_
11 #define LLDB_SBListener_h_
12 
13 #include "lldb/API/SBDefines.h"
14 
15 namespace lldb {
16 
18 {
19 public:
20  SBListener ();
21 
22  SBListener (const char *name);
23 
24  SBListener (const SBListener &rhs);
25 
26  ~SBListener ();
27 
28  const lldb::SBListener &
29  operator = (const lldb::SBListener &rhs);
30 
31  void
32  AddEvent (const lldb::SBEvent &event);
33 
34  void
35  Clear ();
36 
37  bool
38  IsValid () const;
39 
40  uint32_t
42  const char *broadcaster_class,
43  uint32_t event_mask);
44 
45  bool
47  const char *broadcaster_class,
48  uint32_t event_mask);
49 
50  uint32_t
51  StartListeningForEvents (const lldb::SBBroadcaster& broadcaster,
52  uint32_t event_mask);
53 
54  bool
55  StopListeningForEvents (const lldb::SBBroadcaster& broadcaster,
56  uint32_t event_mask);
57 
58  // Returns true if an event was received, false if we timed out.
59  bool
60  WaitForEvent (uint32_t num_seconds,
61  lldb::SBEvent &event);
62 
63  bool
64  WaitForEventForBroadcaster (uint32_t num_seconds,
65  const lldb::SBBroadcaster &broadcaster,
66  lldb::SBEvent &sb_event);
67 
68  bool
69  WaitForEventForBroadcasterWithType (uint32_t num_seconds,
70  const lldb::SBBroadcaster &broadcaster,
71  uint32_t event_type_mask,
72  lldb::SBEvent &sb_event);
73 
74  bool
75  PeekAtNextEvent (lldb::SBEvent &sb_event);
76 
77  bool
79  lldb::SBEvent &sb_event);
80 
81  bool
83  uint32_t event_type_mask,
84  lldb::SBEvent &sb_event);
85 
86  bool
87  GetNextEvent (lldb::SBEvent &sb_event);
88 
89  bool
91  lldb::SBEvent &sb_event);
92 
93  bool
95  uint32_t event_type_mask,
96  lldb::SBEvent &sb_event);
97 
98  bool
99  HandleBroadcastEvent (const lldb::SBEvent &event);
100 
101 protected:
102  friend class SBBroadcaster;
103  friend class SBCommandInterpreter;
104  friend class SBDebugger;
105  friend class SBTarget;
106 
107  SBListener (lldb_private::Listener &listener);
108 
109 private:
110 
111  lldb_private::Listener *
112  operator->() const;
113 
114  lldb_private::Listener *
115  get() const;
116 
117  lldb_private::Listener &
118  ref() const;
119 
120  lldb_private::Listener &
121  operator *();
122 
123  const lldb_private::Listener &
124  operator *() const;
125 
126  void
127  reset(lldb_private::Listener *listener, bool transfer_ownership);
128 
129  lldb::ListenerSP m_opaque_sp;
130  lldb_private::Listener *m_opaque_ptr;
131 };
132 
133 } // namespace lldb
134 
135 #endif // LLDB_SBListener_h_