//===-- SBEvent.h -----------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LLDB_SBEvent_h_ #define LLDB_SBEvent_h_ #include "lldb/API/SBDefines.h" #include #include namespace lldb { class SBBroadcaster; class LLDB_API SBEvent { public: SBEvent(); SBEvent (const lldb::SBEvent &rhs); // Make an event that contains a C string. SBEvent (uint32_t event, const char *cstr, uint32_t cstr_len); SBEvent (lldb::EventSP &event_sp); SBEvent (lldb_private::Event *event_sp); ~SBEvent(); const SBEvent & operator = (const lldb::SBEvent &rhs); bool IsValid() const; const char * GetDataFlavor (); uint32_t GetType () const; lldb::SBBroadcaster GetBroadcaster () const; const char * GetBroadcasterClass () const; bool BroadcasterMatchesPtr (const lldb::SBBroadcaster *broadcaster); bool BroadcasterMatchesRef (const lldb::SBBroadcaster &broadcaster); void Clear(); static const char * GetCStringFromEvent (const lldb::SBEvent &event); bool GetDescription (lldb::SBStream &description); bool GetDescription (lldb::SBStream &description) const; protected: friend class SBListener; friend class SBBroadcaster; friend class SBBreakpoint; friend class SBDebugger; friend class SBProcess; friend class SBTarget; friend class SBThread; friend class SBWatchpoint; lldb::EventSP & GetSP () const; void reset (lldb::EventSP &event_sp); void reset (lldb_private::Event* event); lldb_private::Event * get () const; private: mutable lldb::EventSP m_event_sp; mutable lldb_private::Event *m_opaque_ptr; }; } // namespace lldb #endif // LLDB_SBEvent_h_