LLDB mainline
|
#include <MainLoopBase.h>
Classes | |
class | ReadHandle |
Public Types | |
using | TimePoint = std::chrono::time_point< std::chrono::steady_clock, std::chrono::nanoseconds > |
typedef std::unique_ptr< ReadHandle > | ReadHandleUP |
typedef std::function< void(MainLoopBase &)> | Callback |
Public Member Functions | |
MainLoopBase () | |
virtual | ~MainLoopBase ()=default |
virtual ReadHandleUP | RegisterReadObject (const lldb::IOObjectSP &object_sp, const Callback &callback, Status &error)=0 |
void | AddPendingCallback (const Callback &callback) |
void | AddCallback (const Callback &callback, std::chrono::nanoseconds delay) |
void | AddCallback (const Callback &callback, TimePoint point) |
virtual Status | Run () |
virtual void | RequestTermination () |
Protected Member Functions | |
ReadHandleUP | CreateReadHandle (const lldb::IOObjectSP &object_sp) |
virtual void | UnregisterReadObject (IOObject::WaitableHandle handle)=0 |
virtual void | Interrupt ()=0 |
void | ProcessCallbacks () |
std::optional< TimePoint > | GetNextWakeupTime () |
Protected Attributes | |
std::mutex | m_callback_mutex |
std::priority_queue< std::pair< TimePoint, Callback >, std::vector< std::pair< TimePoint, Callback > >, llvm::on_first< std::greater< TimePoint > > > | m_callbacks |
bool | m_terminate_request: 1 |
Private Member Functions | |
MainLoopBase (const MainLoopBase &)=delete | |
const MainLoopBase & | operator= (const MainLoopBase &)=delete |
Definition at line 38 of file MainLoopBase.h.
typedef std::function<void(MainLoopBase &)> lldb_private::MainLoopBase::Callback |
Definition at line 51 of file MainLoopBase.h.
typedef std::unique_ptr<ReadHandle> lldb_private::MainLoopBase::ReadHandleUP |
Definition at line 49 of file MainLoopBase.h.
using lldb_private::MainLoopBase::TimePoint = std::chrono::time_point<std::chrono::steady_clock, std::chrono::nanoseconds> |
Definition at line 43 of file MainLoopBase.h.
|
inline |
Definition at line 46 of file MainLoopBase.h.
|
virtualdefault |
|
privatedelete |
|
inline |
Definition at line 66 of file MainLoopBase.h.
References AddCallback().
Referenced by lldb_private::Socket::Accept(), AddCallback(), and AddPendingCallback().
Definition at line 15 of file MainLoopBase.cpp.
References Interrupt(), m_callback_mutex, and m_callbacks.
|
inline |
Definition at line 60 of file MainLoopBase.h.
References AddCallback().
Referenced by lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::HandleInferiorState_Exited().
|
inlineprotected |
Definition at line 82 of file MainLoopBase.h.
Referenced by lldb_private::MainLoopPosix::RegisterReadObject(), and lldb_private::MainLoopWindows::RegisterReadObject().
|
protected |
Definition at line 44 of file MainLoopBase.cpp.
References m_callback_mutex, and m_callbacks.
Referenced by lldb_private::MainLoopWindows::Poll().
|
protectedpure virtual |
Implemented in lldb_private::MainLoopPosix, and lldb_private::MainLoopWindows.
Referenced by AddCallback().
|
privatedelete |
|
protected |
Definition at line 28 of file MainLoopBase.cpp.
References m_callback_mutex, and m_callbacks.
Referenced by lldb_private::MainLoopPosix::Run(), and lldb_private::MainLoopWindows::Run().
|
pure virtual |
Implemented in lldb_private::MainLoopPosix, and lldb_private::MainLoopWindows.
Referenced by lldb_private::TCPSocket::Accept(), and lldb_private::DomainSocket::Accept().
|
inlinevirtual |
Definition at line 79 of file MainLoopBase.h.
References m_terminate_request.
Referenced by lldb_private::Socket::Accept(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::DataAvailableCallback(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_vStopped(), and lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::HandleInferiorState_Exited().
|
inlinevirtual |
Reimplemented in lldb_private::MainLoopPosix, and lldb_private::MainLoopWindows.
Definition at line 75 of file MainLoopBase.h.
|
protectedpure virtual |
Implemented in lldb_private::MainLoopPosix, and lldb_private::MainLoopWindows.
Referenced by lldb_private::MainLoopBase::ReadHandle::~ReadHandle().
|
protected |
Definition at line 95 of file MainLoopBase.h.
Referenced by AddCallback(), GetNextWakeupTime(), and ProcessCallbacks().
|
protected |
Definition at line 99 of file MainLoopBase.h.
Referenced by AddCallback(), GetNextWakeupTime(), and ProcessCallbacks().
|
protected |
Definition at line 100 of file MainLoopBase.h.
Referenced by lldb_private::MainLoopPosix::ProcessSignals(), RequestTermination(), lldb_private::MainLoopPosix::Run(), and lldb_private::MainLoopWindows::Run().