QUIC Protocol Implementation 1.0
A Python implementation of the QUIC (Quick UDP Internet Connections) protocol.
Loading...
Searching...
No Matches
stream.StreamEndpointABC Class Reference
Inheritance diagram for stream.StreamEndpointABC:
Collaboration diagram for stream.StreamEndpointABC:

Public Member Functions

 __init__ (self, int stream_id, bool is_usable)
 
bool has_data (self)
 
bool is_terminal_state (self)
 

Protected Member Functions

bool _set_state (self, int state)
 
 _add_data_to_buffer (self, bytes data)
 

Protected Attributes

 _state
 
 _buffer
 

Detailed Description

@brief Abstract base class for stream endpoints.

@details Provides common functionality for sending and receiving endpoints
         of a QUIC stream.

Definition at line 130 of file stream.py.

Constructor & Destructor Documentation

◆ __init__()

stream.StreamEndpointABC.__init__ (   self,
int  stream_id,
bool  is_usable 
)
@brief Abstract Constructor for StreamEndpointABC abstract class.

@param stream_id The stream ID of this endpoint.
@param is_usable Specifies if the stream endpoint is 'usable'.

Reimplemented in stream.StreamSender, and stream.StreamReceiver.

Definition at line 138 of file stream.py.

References stream.StreamEndpointABC._buffer, stream.StreamSender._buffer, stream.StreamEndpointABC._state, stream.StreamSender._state, stream.StreamReceiver._state, and stream.Stream._stream_id.

Member Function Documentation

◆ _add_data_to_buffer()

stream.StreamEndpointABC._add_data_to_buffer (   self,
bytes  data 
)
protected
@brief Add data to the buffer.

@param data The data to add to the buffer.

Reimplemented in stream.StreamSender, and stream.StreamReceiver.

Definition at line 166 of file stream.py.

Referenced by stream.StreamSender.add_data_to_buffer().

◆ _set_state()

bool stream.StreamEndpointABC._set_state (   self,
int  state 
)
protected
@brief Set the state of the endpoint.

@param state New state.
@return True if _state was set successfully, False otherwise.

Definition at line 151 of file stream.py.

Referenced by stream.StreamReceiver._fin_recvd(), stream.StreamSender.generate_fin_frame(), stream.StreamReceiver.get_data_from_buffer(), and stream.StreamSender.send_next_frame().

◆ has_data()

bool stream.StreamEndpointABC.has_data (   self)
@brief Check if the buffer contains data.

@return True if the buffer has data, False otherwise.

Definition at line 174 of file stream.py.

◆ is_terminal_state()

bool stream.StreamEndpointABC.is_terminal_state (   self)
@brief Check if the endpoint has reached a terminal state.

@return True if the state is DATA_RECVD, False otherwise.

Definition at line 182 of file stream.py.

References stream.StreamEndpointABC._state, stream.StreamSender._state, and stream.StreamReceiver._state.

Member Data Documentation

◆ _buffer

◆ _state


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