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