Classes | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
grpc_binder::WireWriterImpl Class Referenceabstract

#include <wire_writer.h>

Inheritance diagram for grpc_binder::WireWriterImpl:
Inheritance graph
[legend]

Classes

struct  RunScheduledTxArgs
 

Public Member Functions

void OnAckReceived (int64_t num_bytes) override
 
absl::Status RpcCall (std::unique_ptr< Transaction > tx) override
 
void RunScheduledTxInternal (RunScheduledTxArgs *arg)
 
absl::Status SendAck (int64_t num_bytes) override
 
 WireWriterImpl (std::unique_ptr< Binder > binder)
 
 ~WireWriterImpl () override
 
- Public Member Functions inherited from grpc_binder::WireWriter
virtual ~WireWriter ()=default
 

Static Public Attributes

static const int64_t kBlockSize = 16 * 1024
 
static const int64_t kFlowControlWindowSize = 128 * 1024
 

Private Member Functions

std::queue< RunScheduledTxArgs * > pending_outgoing_tx_ ABSL_GUARDED_BY (flow_control_mu_)
 
int64_t num_acknowledged_bytes_ ABSL_GUARDED_BY (flow_control_mu_)=0
 
int num_non_acked_tx_in_combiner_ ABSL_GUARDED_BY (flow_control_mu_)=0
 
std::unique_ptr< Binder > binder_ ABSL_GUARDED_BY (write_mu_)
 
absl::flat_hash_map< int, int > next_seq_num_ ABSL_GUARDED_BY (write_mu_)
 
absl::Status MakeBinderTransaction (BinderTransportTxCode tx_code, std::function< absl::Status(WritableParcel *)> fill_parcel)
 
absl::Status RpcCallFastPath (std::unique_ptr< Transaction > tx)
 
absl::Status RunStreamTx (RunScheduledTxArgs::StreamTx *stream_tx, WritableParcel *parcel, bool *is_last_chunk) ABSL_EXCLUSIVE_LOCKS_REQUIRED(write_mu_)
 
void TryScheduleTransaction ()
 

Private Attributes

grpc_core::Combinercombiner_
 
grpc_core::Mutex flow_control_mu_
 
std::atomic_bool is_transacting_ {false}
 
std::atomic< int64_tnum_outgoing_bytes_ {0}
 
grpc_core::Mutex write_mu_
 

Detailed Description

Definition at line 42 of file wire_writer.h.

Constructor & Destructor Documentation

◆ WireWriterImpl()

grpc_binder::WireWriterImpl::WireWriterImpl ( std::unique_ptr< Binder binder)
explicit

Definition at line 83 of file wire_writer.cc.

◆ ~WireWriterImpl()

grpc_binder::WireWriterImpl::~WireWriterImpl ( )
override

Definition at line 89 of file wire_writer.cc.

Member Function Documentation

◆ ABSL_GUARDED_BY() [1/5]

std::queue<RunScheduledTxArgs*> pending_outgoing_tx_ grpc_binder::WireWriterImpl::ABSL_GUARDED_BY ( flow_control_mu_  )
private

◆ ABSL_GUARDED_BY() [2/5]

int64_t num_acknowledged_bytes_ grpc_binder::WireWriterImpl::ABSL_GUARDED_BY ( flow_control_mu_  )
privatepure virtual

◆ ABSL_GUARDED_BY() [3/5]

int num_non_acked_tx_in_combiner_ grpc_binder::WireWriterImpl::ABSL_GUARDED_BY ( flow_control_mu_  )
privatepure virtual

◆ ABSL_GUARDED_BY() [4/5]

std::unique_ptr<Binder> binder_ grpc_binder::WireWriterImpl::ABSL_GUARDED_BY ( write_mu_  )
private

◆ ABSL_GUARDED_BY() [5/5]

absl::flat_hash_map<int, int> next_seq_num_ grpc_binder::WireWriterImpl::ABSL_GUARDED_BY ( write_mu_  )
private

◆ MakeBinderTransaction()

absl::Status grpc_binder::WireWriterImpl::MakeBinderTransaction ( BinderTransportTxCode  tx_code,
std::function< absl::Status(WritableParcel *)>  fill_parcel 
)
private

Definition at line 102 of file wire_writer.cc.

◆ OnAckReceived()

void grpc_binder::WireWriterImpl::OnAckReceived ( int64_t  num_bytes)
overridevirtual

Implements grpc_binder::WireWriter.

Definition at line 324 of file wire_writer.cc.

◆ RpcCall()

absl::Status grpc_binder::WireWriterImpl::RpcCall ( std::unique_ptr< Transaction tx)
overridevirtual

Implements grpc_binder::WireWriter.

Definition at line 270 of file wire_writer.cc.

◆ RpcCallFastPath()

absl::Status grpc_binder::WireWriterImpl::RpcCallFastPath ( std::unique_ptr< Transaction tx)
private

Definition at line 130 of file wire_writer.cc.

◆ RunScheduledTxInternal()

void grpc_binder::WireWriterImpl::RunScheduledTxInternal ( RunScheduledTxArgs arg)

Definition at line 206 of file wire_writer.cc.

◆ RunStreamTx()

absl::Status grpc_binder::WireWriterImpl::RunStreamTx ( RunScheduledTxArgs::StreamTx stream_tx,
WritableParcel parcel,
bool is_last_chunk 
)
private

Definition at line 151 of file wire_writer.cc.

◆ SendAck()

absl::Status grpc_binder::WireWriterImpl::SendAck ( int64_t  num_bytes)
overridevirtual

Implements grpc_binder::WireWriter.

Definition at line 286 of file wire_writer.cc.

◆ TryScheduleTransaction()

void grpc_binder::WireWriterImpl::TryScheduleTransaction ( )
private

Definition at line 347 of file wire_writer.cc.

Member Data Documentation

◆ combiner_

grpc_core::Combiner* grpc_binder::WireWriterImpl::combiner_
private

Definition at line 122 of file wire_writer.h.

◆ flow_control_mu_

grpc_core::Mutex grpc_binder::WireWriterImpl::flow_control_mu_
private

Definition at line 109 of file wire_writer.h.

◆ is_transacting_

std::atomic_bool grpc_binder::WireWriterImpl::is_transacting_ {false}
private

Definition at line 120 of file wire_writer.h.

◆ kBlockSize

const int64_t grpc_binder::WireWriterImpl::kBlockSize = 16 * 1024
static

Definition at line 71 of file wire_writer.h.

◆ kFlowControlWindowSize

const int64_t grpc_binder::WireWriterImpl::kFlowControlWindowSize = 128 * 1024
static

Definition at line 74 of file wire_writer.h.

◆ num_outgoing_bytes_

std::atomic<int64_t> grpc_binder::WireWriterImpl::num_outgoing_bytes_ {0}
private

Definition at line 106 of file wire_writer.h.

◆ write_mu_

grpc_core::Mutex grpc_binder::WireWriterImpl::write_mu_
private

Definition at line 97 of file wire_writer.h.


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


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:34