LLDB mainline
lldb_private::transport::Binder< Proto >::ReplyOnce Class Reference

Function object to reply to a call. More...

Public Member Functions

 ReplyOnce (const Req req, Transport *transport, MessageHandler *handler)
 ReplyOnce (ReplyOnce &&other)
ReplyOnceoperator= (ReplyOnce &&)=delete
 ReplyOnce (const ReplyOnce &)=delete
ReplyOnceoperator= (const ReplyOnce &)=delete
 ~ReplyOnce ()
void operator() (const Resp &resp)

Private Attributes

std::atomic< boolreplied = {false}
const Req req
Transporttransport
MessageHandlerhandler

Detailed Description

template<typename Proto>
class lldb_private::transport::Binder< Proto >::ReplyOnce

Function object to reply to a call.

Each instance must be called exactly once, otherwise:

  • the bug is logged, and (in debug mode) an assert will fire
  • if there was no reply, an error reply is sent
  • if there were multiple replies, only the first is sent

Definition at line 608 of file JSONTransport.h.

Constructor & Destructor Documentation

◆ ReplyOnce() [1/3]

template<typename Proto>
lldb_private::transport::Binder< Proto >::ReplyOnce::ReplyOnce ( const Req req,
Transport * transport,
MessageHandler * handler )
inline

Definition at line 615 of file JSONTransport.h.

References handler, req, and transport.

Referenced by operator=(), operator=(), ReplyOnce(), and ReplyOnce().

◆ ReplyOnce() [2/3]

template<typename Proto>
lldb_private::transport::Binder< Proto >::ReplyOnce::ReplyOnce ( ReplyOnce && other)
inline

Definition at line 619 of file JSONTransport.h.

References handler, replied, ReplyOnce(), req, and transport.

◆ ReplyOnce() [3/3]

template<typename Proto>
lldb_private::transport::Binder< Proto >::ReplyOnce::ReplyOnce ( const ReplyOnce & )
delete

References ReplyOnce().

◆ ~ReplyOnce()

template<typename Proto>
lldb_private::transport::Binder< Proto >::ReplyOnce::~ReplyOnce ( )
inline

Definition at line 629 of file JSONTransport.h.

References handler, replied, req, and transport.

Member Function Documentation

◆ operator()()

template<typename Proto>
void lldb_private::transport::Binder< Proto >::ReplyOnce::operator() ( const Resp & resp)
inline

Definition at line 636 of file JSONTransport.h.

References error(), handler, replied, and transport.

◆ operator=() [1/2]

template<typename Proto>
ReplyOnce & lldb_private::transport::Binder< Proto >::ReplyOnce::operator= ( const ReplyOnce & )
delete

References ReplyOnce().

◆ operator=() [2/2]

template<typename Proto>
ReplyOnce & lldb_private::transport::Binder< Proto >::ReplyOnce::operator= ( ReplyOnce && )
delete

References ReplyOnce().

Member Data Documentation

◆ handler

template<typename Proto>
MessageHandler* lldb_private::transport::Binder< Proto >::ReplyOnce::handler
private

Definition at line 612 of file JSONTransport.h.

Referenced by operator()(), ReplyOnce(), ReplyOnce(), and ~ReplyOnce().

◆ replied

template<typename Proto>
std::atomic<bool> lldb_private::transport::Binder< Proto >::ReplyOnce::replied = {false}
private

Definition at line 609 of file JSONTransport.h.

Referenced by operator()(), ReplyOnce(), and ~ReplyOnce().

◆ req

template<typename Proto>
const Req lldb_private::transport::Binder< Proto >::ReplyOnce::req
private

Definition at line 610 of file JSONTransport.h.

Referenced by ReplyOnce(), ReplyOnce(), and ~ReplyOnce().

◆ transport

template<typename Proto>
Transport* lldb_private::transport::Binder< Proto >::ReplyOnce::transport
private

Definition at line 611 of file JSONTransport.h.

Referenced by operator()(), ReplyOnce(), ReplyOnce(), and ~ReplyOnce().


The documentation for this class was generated from the following file: