#include <wire_writer.h>
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 | |
![]() | |
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::Combiner * | combiner_ |
grpc_core::Mutex | flow_control_mu_ |
std::atomic_bool | is_transacting_ {false} |
std::atomic< int64_t > | num_outgoing_bytes_ {0} |
grpc_core::Mutex | write_mu_ |
Definition at line 42 of file wire_writer.h.
|
explicit |
Definition at line 83 of file wire_writer.cc.
|
override |
Definition at line 89 of file wire_writer.cc.
|
private |
|
privatepure virtual |
|
privatepure virtual |
|
private |
|
private |
Definition at line 102 of file wire_writer.cc.
|
overridevirtual |
Implements grpc_binder::WireWriter.
Definition at line 324 of file wire_writer.cc.
|
overridevirtual |
Implements grpc_binder::WireWriter.
Definition at line 270 of file wire_writer.cc.
|
private |
Definition at line 130 of file wire_writer.cc.
void grpc_binder::WireWriterImpl::RunScheduledTxInternal | ( | RunScheduledTxArgs * | arg | ) |
Definition at line 206 of file wire_writer.cc.
|
private |
Definition at line 151 of file wire_writer.cc.
|
overridevirtual |
Implements grpc_binder::WireWriter.
Definition at line 286 of file wire_writer.cc.
|
private |
Definition at line 347 of file wire_writer.cc.
|
private |
Definition at line 122 of file wire_writer.h.
|
private |
Definition at line 109 of file wire_writer.h.
|
private |
Definition at line 120 of file wire_writer.h.
Definition at line 71 of file wire_writer.h.
Definition at line 74 of file wire_writer.h.
|
private |
Definition at line 106 of file wire_writer.h.
|
private |
Definition at line 97 of file wire_writer.h.