IDA C++ SDK 9.2
Loading...
Searching...
No Matches
rpc_engine_t Class Referenceabstract

#include <network.hpp>

Inheritance diagram for rpc_engine_t:
recording_rpc_engine_t

Public Member Functions

 rpc_engine_t (bool _is_client, const rpc_pkt_timeout_t *_pkt_timeouts=nullptr, size_t _n_pkt_timeouts=0)
virtual ~rpc_engine_t ()
int handle_ioctl_packet (bytevec_t &pkt, const uchar *ptr, const uchar *end)
int send_data (bytevec_t &data)
rpc_packet_trecv_packet (uchar pkt_code)
virtual rpc_packet_tsend_request_and_receive_reply (uchar pkt_code, bytevec_t &pkt)=0
virtual idarpc_stream_t * get_irs () const =0
 AS_PRINTF (3, 0) virtual ssize_t send_notif(int code
virtual bool get_broken_connection (void)
virtual void set_broken_connection (void)
int send_ioctl (int fn, const void *buf, size_t size, void **poutbuf, ssize_t *poutsize)
void set_ioctl_handler (ioctl_handler_t *h)
void set_pkt_timeouts (const rpc_pkt_timeout_t *_pkt_timeouts, size_t _n_pkt_timeouts)
 DEFINE_ALL_NOTIFICATION_FUNCTIONS (this)

Public Attributes

bool network_error = false
qstring last_errstr
ioctl_handler_tioctl_handler = nullptr
const rpc_pkt_timeout_tpkt_timeouts = nullptr
size_t n_pkt_timeouts = 0
int recv_timeout
bool is_client
bool logged_in = false
const char * format
const char va_list va

Protected Member Functions

void register_packet_type_descs (const rpc_packet_type_desc_t *ptypes, size_t cnt)
const rpc_packet_type_desc_tfind_packet_type_desc (int code) const
const rpc_packet_type_desc_tfind_packet_type_desc (const char *name) const
int get_timeout_for_request (uchar pkt_code) const

Constructor & Destructor Documentation

◆ rpc_engine_t()

rpc_engine_t::rpc_engine_t ( bool _is_client,
const rpc_pkt_timeout_t * _pkt_timeouts = nullptr,
size_t _n_pkt_timeouts = 0 )

◆ ~rpc_engine_t()

virtual rpc_engine_t::~rpc_engine_t ( )
inlinevirtual

Member Function Documentation

◆ register_packet_type_descs()

void rpc_engine_t::register_packet_type_descs ( const rpc_packet_type_desc_t * ptypes,
size_t cnt )
protected

◆ find_packet_type_desc() [1/2]

const rpc_packet_type_desc_t * rpc_engine_t::find_packet_type_desc ( int code) const
protected

◆ find_packet_type_desc() [2/2]

const rpc_packet_type_desc_t * rpc_engine_t::find_packet_type_desc ( const char * name) const
protected

◆ get_timeout_for_request()

int rpc_engine_t::get_timeout_for_request ( uchar pkt_code) const
protected

◆ handle_ioctl_packet()

int rpc_engine_t::handle_ioctl_packet ( bytevec_t & pkt,
const uchar * ptr,
const uchar * end )

◆ send_data()

int rpc_engine_t::send_data ( bytevec_t & data)

◆ recv_packet()

rpc_packet_t * rpc_engine_t::recv_packet ( uchar pkt_code)

◆ send_request_and_receive_reply()

virtual rpc_packet_t * rpc_engine_t::send_request_and_receive_reply ( uchar pkt_code,
bytevec_t & pkt )
pure virtual

Implemented in recording_rpc_engine_t.

◆ get_irs()

virtual idarpc_stream_t * rpc_engine_t::get_irs ( ) const
pure virtual

Implemented in recording_rpc_engine_t.

◆ AS_PRINTF()

rpc_engine_t::AS_PRINTF ( 3 ,
0  )

◆ get_broken_connection()

virtual bool rpc_engine_t::get_broken_connection ( void )
inlinevirtual

◆ set_broken_connection()

virtual void rpc_engine_t::set_broken_connection ( void )
inlinevirtual

◆ send_ioctl()

int rpc_engine_t::send_ioctl ( int fn,
const void * buf,
size_t size,
void ** poutbuf,
ssize_t * poutsize )

◆ set_ioctl_handler()

void rpc_engine_t::set_ioctl_handler ( ioctl_handler_t * h)
inline

◆ set_pkt_timeouts()

void rpc_engine_t::set_pkt_timeouts ( const rpc_pkt_timeout_t * _pkt_timeouts,
size_t _n_pkt_timeouts )
inline

◆ DEFINE_ALL_NOTIFICATION_FUNCTIONS()

rpc_engine_t::DEFINE_ALL_NOTIFICATION_FUNCTIONS ( this )

Member Data Documentation

◆ network_error

bool rpc_engine_t::network_error = false

◆ last_errstr

qstring rpc_engine_t::last_errstr

◆ ioctl_handler

ioctl_handler_t* rpc_engine_t::ioctl_handler = nullptr

◆ pkt_timeouts

const rpc_pkt_timeout_t* rpc_engine_t::pkt_timeouts = nullptr

◆ n_pkt_timeouts

size_t rpc_engine_t::n_pkt_timeouts = 0

◆ recv_timeout

int rpc_engine_t::recv_timeout

◆ is_client

bool rpc_engine_t::is_client

◆ logged_in

bool rpc_engine_t::logged_in = false

◆ format

const char* rpc_engine_t::format

◆ va

const char va_list rpc_engine_t::va

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