Go to the documentation of this file.
19 #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FLOW_CONTROL_H
20 #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FLOW_CONTROL_H
29 #include "absl/functional/function_ref.h"
30 #include "absl/status/status.h"
31 #include "absl/types/optional.h"
32 #include "absl/utility/utility.h"
185 if (change == 0)
return;
370 double current_target) = 0;
373 extern TestOnlyTransportTargetWindowEstimatesMocker*
379 #endif // GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FLOW_CONTROL_H
grpc_core::TraceFlag grpc_flowctl_trace
uint32_t min_progress_size() const
int64_t announced_stream_total_over_incoming_window_
TransportFlowControl::IncomingUpdateContext tfc_upd_
uint32_t initial_window_size_
Timestamp last_pid_update_
Urgency send_stream_update_
void SetPendingSize(int64_t pending_size)
int64_t target_frame_size_
FlowControlAction & set_send_transport_update(Urgency u)
uint32_t DesiredAnnounceSize() const
FlowControlAction UpdateAction(FlowControlAction action)
Urgency send_transport_update() const
static constexpr const uint32_t kMaxInitialWindowSize
Urgency send_max_frame_size_update() const
int64_t target_window() const
OPENSSL_EXPORT pem_password_cb void * u
int64_t announced_window() const
static constexpr uint32_t kDefaultWindow
uint32_t max_frame_size() const
IncomingUpdateContext(StreamFlowControl *sfc)
MemoryOwner *const memory_owner_
uint32_t acked_init_window_
double SmoothLogBdp(double value)
void RemoveAnnouncedWindowDelta(int64_t delta)
StreamFlowControl *const sfc_
Urgency send_initial_window_update() const
FlowControlAction MakeAction()
StreamFlowControl *const sfc_
FlowControlAction PeriodicUpdate()
void SentData(int64_t outgoing_frame_size)
int64_t announced_window_delta_
static constexpr const uint32_t kMinInitialWindowSize
int64_t target_initial_window_size_
Urgency send_max_frame_size_update_
FlowControlAction & set_send_stream_update(Urgency u)
bool operator==(const FlowControlAction &other) const
FlowControlAction UpdateAction(FlowControlAction action)
int64_t target_frame_size() const
void StreamSentData(int64_t size)
TransportFlowControl(const char *name, bool enable_bdp_probe, MemoryOwner *memory_owner)
void SetMinProgressSize(uint32_t min_progress_size)
int64_t remote_window_delta_
Urgency send_transport_update_
virtual double ComputeNextTargetInitialWindowSizeFromPeriodicUpdate(double current_target)=0
Urgency send_initial_window_update_
virtual ~TestOnlyTransportTargetWindowEstimatesMocker()
int64_t remote_window() const
static constexpr const int64_t kMaxWindowDelta
FlowControlAction & set_send_initial_window_update(Urgency u, uint32_t update)
void RecvUpdate(uint32_t size)
absl::Status RecvData(int64_t incoming_frame_size, absl::FunctionRef< absl::Status()> stream=[]() { return absl::OkStatus();})
std::ostream & operator<<(std::ostream &out, FlowControlAction::Urgency u)
std::string DebugString() const
uint32_t MaybeSendUpdate(bool writing_anyway)
int64_t announced_window_delta() const
OutgoingUpdateContext(TransportFlowControl *tfc)
IncomingUpdateContext & operator=(const IncomingUpdateContext &)=delete
TestOnlyTransportTargetWindowEstimatesMocker * g_test_only_transport_target_window_estimates_mocker
PidController pid_controller_
void SetAckedInitialWindow(uint32_t value)
static void UpdateSetting(int64_t *desired_value, int64_t new_desired_value, FlowControlAction *action, FlowControlAction &(FlowControlAction::*set)(FlowControlAction::Urgency, uint32_t))
IncomingUpdateContext(TransportFlowControl *tfc)
absl::Status RecvData(int64_t incoming_frame_size)
int64_t announced_window_
OutgoingUpdateContext(StreamFlowControl *sfc)
static constexpr uint32_t kDefaultFrameSize
const bool enable_bdp_probe_
TransportFlowControl *const tfc_
void UpdateAnnouncedWindowDelta(int64_t *delta, int64_t change)
int64_t min_progress_size_
static const char * UrgencyString(Urgency u)
int64_t remote_window_delta() const
BdpEstimator bdp_estimator_
FlowControlAction & set_send_max_frame_size_update(Urgency u, uint32_t update)
Urgency send_stream_update() const
StreamFlowControl(TransportFlowControl *tfc)
TransportFlowControl * tfc_
FlowControlAction MakeAction()
TransportFlowControl * tfc_
void RecvUpdate(uint32_t size)
static constexpr uint32_t kFrameSize
uint32_t initial_window_size() const
TransportFlowControl::OutgoingUpdateContext tfc_upd_
BdpEstimator * bdp_estimator()
absl::optional< XdsClusterResource > update
int64_t announced_stream_total_over_incoming_window() const
uint32_t MaybeSendUpdate()
uint32_t acked_init_window() const
T exchange(T &obj, U &&new_value)
absl::optional< int64_t > pending_size_
static constexpr int64_t kMaxWindow
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:22