SBListener.h revision 271a5db096ae183e9235ebd273c4a6aab6130b3e
124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBListener.h --------------------------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef LLDB_SBListener_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_SBListener_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 135f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBDefines.h" 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb { 1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBListener 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 20538eb82a89a68dbc57251915080bd5152b333978Greg Clayton SBListener (); 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 22538eb82a89a68dbc57251915080bd5152b333978Greg Clayton SBListener (const char *name); 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 24538eb82a89a68dbc57251915080bd5152b333978Greg Clayton SBListener (const SBListener &rhs); 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~SBListener (); 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 28538eb82a89a68dbc57251915080bd5152b333978Greg Clayton#ifndef SWIG 29538eb82a89a68dbc57251915080bd5152b333978Greg Clayton const lldb::SBListener & 30538eb82a89a68dbc57251915080bd5152b333978Greg Clayton operator = (const lldb::SBListener &rhs); 31538eb82a89a68dbc57251915080bd5152b333978Greg Clayton#endif 32538eb82a89a68dbc57251915080bd5152b333978Greg Clayton 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner AddEvent (const lldb::SBEvent &event); 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Clear (); 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsValid () const; 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner StartListeningForEvents (const lldb::SBBroadcaster& broadcaster, 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t event_mask); 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner StopListeningForEvents (const lldb::SBBroadcaster& broadcaster, 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t event_mask); 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Returns true if an event was recieved, false if we timed out. 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner WaitForEvent (uint32_t num_seconds, 5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBEvent &event); 5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner WaitForEventForBroadcaster (uint32_t num_seconds, 5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const lldb::SBBroadcaster &broadcaster, 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBEvent &sb_event); 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner WaitForEventForBroadcasterWithType (uint32_t num_seconds, 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const lldb::SBBroadcaster &broadcaster, 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t event_type_mask, 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBEvent &sb_event); 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PeekAtNextEvent (lldb::SBEvent &sb_event); 6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PeekAtNextEventForBroadcaster (const lldb::SBBroadcaster &broadcaster, 7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBEvent &sb_event); 7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PeekAtNextEventForBroadcasterWithType (const lldb::SBBroadcaster &broadcaster, 7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t event_type_mask, 7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBEvent &sb_event); 7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 7924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetNextEvent (lldb::SBEvent &sb_event); 8024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 8224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetNextEventForBroadcaster (const lldb::SBBroadcaster &broadcaster, 8324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBEvent &sb_event); 8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetNextEventForBroadcasterWithType (const lldb::SBBroadcaster &broadcaster, 8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t event_type_mask, 8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBEvent &sb_event); 8924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 9024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 9124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner HandleBroadcastEvent (const lldb::SBEvent &event); 9224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 93538eb82a89a68dbc57251915080bd5152b333978Greg Claytonprotected: 943f5ee7fd6991891f0892bd71537763d9b59acd12Greg Clayton friend class SBBroadcaster; 953f5ee7fd6991891f0892bd71537763d9b59acd12Greg Clayton friend class SBCommandInterpreter; 963f5ee7fd6991891f0892bd71537763d9b59acd12Greg Clayton friend class SBDebugger; 973f5ee7fd6991891f0892bd71537763d9b59acd12Greg Clayton friend class SBTarget; 9824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 99538eb82a89a68dbc57251915080bd5152b333978Greg Clayton SBListener (lldb_private::Listener &listener); 100538eb82a89a68dbc57251915080bd5152b333978Greg Clayton 101538eb82a89a68dbc57251915080bd5152b333978Greg Claytonprivate: 102538eb82a89a68dbc57251915080bd5152b333978Greg Clayton 10324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef SWIG 10424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 10524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb_private::Listener * 10624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator->() const; 10724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 10824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb_private::Listener * 10924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner get() const; 11024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb_private::Listener & 112271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton ref() const; 113271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton 114271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton lldb_private::Listener & 11524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator *(); 11624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const lldb_private::Listener & 11824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator *() const; 11924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 12063094e0bb161580564954dee512955c1c79d3476Greg Clayton void 12163094e0bb161580564954dee512955c1c79d3476Greg Clayton reset(lldb_private::Listener *listener, bool transfer_ownership); 12263094e0bb161580564954dee512955c1c79d3476Greg Clayton 12324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif 12424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 125538eb82a89a68dbc57251915080bd5152b333978Greg Clayton lldb::ListenerSP m_opaque_sp; 12663094e0bb161580564954dee512955c1c79d3476Greg Clayton lldb_private::Listener *m_opaque_ptr; 12724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 12824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 12924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb 13024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 13124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // LLDB_SBListener_h_ 132