GRPC Core  9.0.0
Data Structures | Public Member Functions | Data Fields
grpc_chttp2_stream Struct Reference

#include <internal.h>

Data Structures

struct  Reffer
 

Public Member Functions

 grpc_chttp2_stream (grpc_chttp2_transport *t, grpc_stream_refcount *refcount, const void *server_data, grpc_core::Arena *arena)
 
 ~grpc_chttp2_stream ()
 

Data Fields

void * context
 
grpc_chttp2_transportt
 
grpc_stream_refcountrefcount
 
struct grpc_chttp2_stream::Reffer reffer
 
grpc_closure destroy_stream
 
grpc_closuredestroy_stream_arg
 
grpc_chttp2_stream_link links [STREAM_LIST_COUNT]
 
uint8_t included [STREAM_LIST_COUNT] = {}
 
uint32_t id = 0
 HTTP2 stream id for this stream, or zero if one has not been assigned. More...
 
grpc_metadata_batchsend_initial_metadata = nullptr
 things the upper layers would like to send More...
 
grpc_closuresend_initial_metadata_finished = nullptr
 
grpc_metadata_batchsend_trailing_metadata = nullptr
 
grpc_closuresend_trailing_metadata_finished = nullptr
 
grpc_core::OrphanablePtr< grpc_core::ByteStreamfetching_send_message
 
uint32_t fetched_send_message_length = 0
 
grpc_slice fetching_slice = grpc_empty_slice()
 
int64_t next_message_end_offset
 
int64_t flow_controlled_bytes_written = 0
 
int64_t flow_controlled_bytes_flowed = 0
 
grpc_closure complete_fetch_locked
 
grpc_closurefetching_send_message_finished = nullptr
 
grpc_metadata_batchrecv_initial_metadata
 
grpc_closurerecv_initial_metadata_ready = nullptr
 
bool * trailing_metadata_available = nullptr
 
grpc_core::OrphanablePtr< grpc_core::ByteStream > * recv_message
 
grpc_closurerecv_message_ready = nullptr
 
grpc_metadata_batchrecv_trailing_metadata
 
grpc_closurerecv_trailing_metadata_finished = nullptr
 
grpc_transport_stream_statscollecting_stats = nullptr
 
grpc_transport_stream_stats stats = grpc_transport_stream_stats()
 
bool write_closed = false
 Is this stream closed for writing. More...
 
bool read_closed = false
 Is this stream reading half-closed. More...
 
bool all_incoming_byte_streams_finished = false
 Are all published incoming byte streams closed. More...
 
bool seen_error = false
 Has this stream seen an error. More...
 
bool write_buffering = false
 Are we buffering writes on this stream? If yes, we won't become writable until there's enough queued up in the flow_controlled_buffer. More...
 
bool eos_received = false
 
bool eos_sent = false
 
grpc_errorread_closed_error = GRPC_ERROR_NONE
 the error that resulted in this stream being read-closed More...
 
grpc_errorwrite_closed_error = GRPC_ERROR_NONE
 the error that resulted in this stream being write-closed More...
 
grpc_published_metadata_method published_metadata [2] = {}
 
bool final_metadata_requested = false
 
grpc_chttp2_incoming_metadata_buffer metadata_buffer [2]
 
grpc_slice_buffer frame_storage
 
grpc_closureon_next = nullptr
 
bool pending_byte_stream = false
 
size_t unprocessed_incoming_frames_buffer_cached_length = 0
 
grpc_slice_buffer unprocessed_incoming_frames_buffer
 
grpc_closure reset_byte_stream
 
grpc_errorbyte_stream_error = GRPC_ERROR_NONE
 
bool received_last_frame = false
 
grpc_millis deadline = GRPC_MILLIS_INF_FUTURE
 
grpc_errorforced_close_error = GRPC_ERROR_NONE
 saw some stream level error More...
 
uint8_t header_frames_received = 0
 how many header frames have we received? More...
 
grpc_chttp2_data_parser data_parser
 parsing state for data frames More...
 
int64_t received_bytes = 0
 number of bytes received - reset at end of parse thread execution More...
 
bool sent_initial_metadata = false
 
bool sent_trailing_metadata = false
 
grpc_core::PolymorphicManualConstructor< grpc_core::chttp2::StreamFlowControlBase, grpc_core::chttp2::StreamFlowControl, grpc_core::chttp2::StreamFlowControlDisabledflow_control
 
grpc_slice_buffer flow_controlled_buffer
 
grpc_chttp2_write_cbon_flow_controlled_cbs = nullptr
 
grpc_chttp2_write_cbon_write_finished_cbs = nullptr
 
grpc_chttp2_write_cbfinish_after_write = nullptr
 
size_t sending_bytes = 0
 
grpc_stream_compression_method stream_compression_method
 
grpc_stream_compression_method stream_decompression_method
 
bool unprocessed_incoming_frames_decompressed = false
 Whether bytes stored in unprocessed_incoming_byte_stream is decompressed. More...
 
bool traced = false
 Whether the bytes needs to be traced using Fathom. More...
 
size_t decompressed_header_bytes = 0
 gRPC header bytes that are already decompressed More...
 
size_t byte_counter = 0
 Byte counter for number of bytes written. More...
 
size_t uncompressed_data_size
 Amount of uncompressed bytes sent out when compressed_data_buffer is emptied. More...
 
grpc_stream_compression_contextstream_compression_ctx
 Stream compression compress context. More...
 
grpc_slice_buffer compressed_data_buffer
 Buffer storing data that is compressed but not sent. More...
 
grpc_stream_compression_contextstream_decompression_ctx
 Stream compression decompress context. More...
 
grpc_slice_buffer decompressed_data_buffer
 Temporary buffer storing decompressed data. More...
 

Constructor & Destructor Documentation

◆ grpc_chttp2_stream()

grpc_chttp2_stream::grpc_chttp2_stream ( grpc_chttp2_transport t,
grpc_stream_refcount refcount,
const void *  server_data,
grpc_core::Arena arena 
)

◆ ~grpc_chttp2_stream()

grpc_chttp2_stream::~grpc_chttp2_stream ( )

Field Documentation

◆ all_incoming_byte_streams_finished

bool grpc_chttp2_stream::all_incoming_byte_streams_finished = false

Are all published incoming byte streams closed.

◆ byte_counter

size_t grpc_chttp2_stream::byte_counter = 0

Byte counter for number of bytes written.

◆ byte_stream_error

grpc_error* grpc_chttp2_stream::byte_stream_error = GRPC_ERROR_NONE

◆ collecting_stats

grpc_transport_stream_stats* grpc_chttp2_stream::collecting_stats = nullptr

◆ complete_fetch_locked

grpc_closure grpc_chttp2_stream::complete_fetch_locked

◆ compressed_data_buffer

grpc_slice_buffer grpc_chttp2_stream::compressed_data_buffer

Buffer storing data that is compressed but not sent.

◆ context

void* grpc_chttp2_stream::context

◆ data_parser

grpc_chttp2_data_parser grpc_chttp2_stream::data_parser

parsing state for data frames

◆ deadline

grpc_millis grpc_chttp2_stream::deadline = GRPC_MILLIS_INF_FUTURE

◆ decompressed_data_buffer

grpc_slice_buffer grpc_chttp2_stream::decompressed_data_buffer

Temporary buffer storing decompressed data.

Initialized, used, and destroyed only when stream uses (non-identity) compression.

◆ decompressed_header_bytes

size_t grpc_chttp2_stream::decompressed_header_bytes = 0

gRPC header bytes that are already decompressed

◆ destroy_stream

grpc_closure grpc_chttp2_stream::destroy_stream

◆ destroy_stream_arg

grpc_closure* grpc_chttp2_stream::destroy_stream_arg

◆ eos_received

bool grpc_chttp2_stream::eos_received = false

◆ eos_sent

bool grpc_chttp2_stream::eos_sent = false

◆ fetched_send_message_length

uint32_t grpc_chttp2_stream::fetched_send_message_length = 0

◆ fetching_send_message

grpc_core::OrphanablePtr<grpc_core::ByteStream> grpc_chttp2_stream::fetching_send_message

◆ fetching_send_message_finished

grpc_closure* grpc_chttp2_stream::fetching_send_message_finished = nullptr

◆ fetching_slice

grpc_slice grpc_chttp2_stream::fetching_slice = grpc_empty_slice()

◆ final_metadata_requested

bool grpc_chttp2_stream::final_metadata_requested = false

◆ finish_after_write

grpc_chttp2_write_cb* grpc_chttp2_stream::finish_after_write = nullptr

◆ flow_control

◆ flow_controlled_buffer

grpc_slice_buffer grpc_chttp2_stream::flow_controlled_buffer

◆ flow_controlled_bytes_flowed

int64_t grpc_chttp2_stream::flow_controlled_bytes_flowed = 0

◆ flow_controlled_bytes_written

int64_t grpc_chttp2_stream::flow_controlled_bytes_written = 0

◆ forced_close_error

grpc_error* grpc_chttp2_stream::forced_close_error = GRPC_ERROR_NONE

saw some stream level error

◆ frame_storage

grpc_slice_buffer grpc_chttp2_stream::frame_storage

◆ header_frames_received

uint8_t grpc_chttp2_stream::header_frames_received = 0

how many header frames have we received?

◆ id

uint32_t grpc_chttp2_stream::id = 0

HTTP2 stream id for this stream, or zero if one has not been assigned.

◆ included

uint8_t grpc_chttp2_stream::included[STREAM_LIST_COUNT] = {}

◆ links

grpc_chttp2_stream_link grpc_chttp2_stream::links[STREAM_LIST_COUNT]

◆ metadata_buffer

grpc_chttp2_incoming_metadata_buffer grpc_chttp2_stream::metadata_buffer[2]

◆ next_message_end_offset

int64_t grpc_chttp2_stream::next_message_end_offset

◆ on_flow_controlled_cbs

grpc_chttp2_write_cb* grpc_chttp2_stream::on_flow_controlled_cbs = nullptr

◆ on_next

grpc_closure* grpc_chttp2_stream::on_next = nullptr

◆ on_write_finished_cbs

grpc_chttp2_write_cb* grpc_chttp2_stream::on_write_finished_cbs = nullptr

◆ pending_byte_stream

bool grpc_chttp2_stream::pending_byte_stream = false

◆ published_metadata

grpc_published_metadata_method grpc_chttp2_stream::published_metadata[2] = {}

◆ read_closed

bool grpc_chttp2_stream::read_closed = false

Is this stream reading half-closed.

◆ read_closed_error

grpc_error* grpc_chttp2_stream::read_closed_error = GRPC_ERROR_NONE

the error that resulted in this stream being read-closed

◆ received_bytes

int64_t grpc_chttp2_stream::received_bytes = 0

number of bytes received - reset at end of parse thread execution

◆ received_last_frame

bool grpc_chttp2_stream::received_last_frame = false

◆ recv_initial_metadata

grpc_metadata_batch* grpc_chttp2_stream::recv_initial_metadata

◆ recv_initial_metadata_ready

grpc_closure* grpc_chttp2_stream::recv_initial_metadata_ready = nullptr

◆ recv_message

grpc_core::OrphanablePtr<grpc_core::ByteStream>* grpc_chttp2_stream::recv_message

◆ recv_message_ready

grpc_closure* grpc_chttp2_stream::recv_message_ready = nullptr

◆ recv_trailing_metadata

grpc_metadata_batch* grpc_chttp2_stream::recv_trailing_metadata

◆ recv_trailing_metadata_finished

grpc_closure* grpc_chttp2_stream::recv_trailing_metadata_finished = nullptr

◆ refcount

grpc_stream_refcount* grpc_chttp2_stream::refcount

◆ reffer

struct grpc_chttp2_stream::Reffer grpc_chttp2_stream::reffer

◆ reset_byte_stream

grpc_closure grpc_chttp2_stream::reset_byte_stream

◆ seen_error

bool grpc_chttp2_stream::seen_error = false

Has this stream seen an error.

If true, then pending incoming frames can be thrown away.

◆ send_initial_metadata

grpc_metadata_batch* grpc_chttp2_stream::send_initial_metadata = nullptr

things the upper layers would like to send

◆ send_initial_metadata_finished

grpc_closure* grpc_chttp2_stream::send_initial_metadata_finished = nullptr

◆ send_trailing_metadata

grpc_metadata_batch* grpc_chttp2_stream::send_trailing_metadata = nullptr

◆ send_trailing_metadata_finished

grpc_closure* grpc_chttp2_stream::send_trailing_metadata_finished = nullptr

◆ sending_bytes

size_t grpc_chttp2_stream::sending_bytes = 0

◆ sent_initial_metadata

bool grpc_chttp2_stream::sent_initial_metadata = false

◆ sent_trailing_metadata

bool grpc_chttp2_stream::sent_trailing_metadata = false

◆ stats

◆ stream_compression_ctx

grpc_stream_compression_context* grpc_chttp2_stream::stream_compression_ctx

Stream compression compress context.

◆ stream_compression_method

grpc_stream_compression_method grpc_chttp2_stream::stream_compression_method

◆ stream_decompression_ctx

grpc_stream_compression_context* grpc_chttp2_stream::stream_decompression_ctx

Stream compression decompress context.

◆ stream_decompression_method

grpc_stream_compression_method grpc_chttp2_stream::stream_decompression_method

◆ t

grpc_chttp2_transport* grpc_chttp2_stream::t

◆ traced

bool grpc_chttp2_stream::traced = false

Whether the bytes needs to be traced using Fathom.

◆ trailing_metadata_available

bool* grpc_chttp2_stream::trailing_metadata_available = nullptr

◆ uncompressed_data_size

size_t grpc_chttp2_stream::uncompressed_data_size

Amount of uncompressed bytes sent out when compressed_data_buffer is emptied.

◆ unprocessed_incoming_frames_buffer

grpc_slice_buffer grpc_chttp2_stream::unprocessed_incoming_frames_buffer

◆ unprocessed_incoming_frames_buffer_cached_length

size_t grpc_chttp2_stream::unprocessed_incoming_frames_buffer_cached_length = 0

◆ unprocessed_incoming_frames_decompressed

bool grpc_chttp2_stream::unprocessed_incoming_frames_decompressed = false

Whether bytes stored in unprocessed_incoming_byte_stream is decompressed.

◆ write_buffering

bool grpc_chttp2_stream::write_buffering = false

Are we buffering writes on this stream? If yes, we won't become writable until there's enough queued up in the flow_controlled_buffer.

◆ write_closed

bool grpc_chttp2_stream::write_closed = false

Is this stream closed for writing.

◆ write_closed_error

grpc_error* grpc_chttp2_stream::write_closed_error = GRPC_ERROR_NONE

the error that resulted in this stream being write-closed


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