ESPHome 2025.6.3
|
#include <api_frame_helper.h>
Public Member Functions | |
APIPlaintextFrameHelper (std::unique_ptr< socket::Socket > socket) | |
~APIPlaintextFrameHelper () override=default | |
APIError | init () override |
Initialize the frame helper, returns OK if successful. | |
APIError | loop () override |
Not used for plaintext. | |
APIError | read_packet (ReadPacketBuffer *buffer) override |
APIError | write_protobuf_packet (uint16_t type, ProtoWriteBuffer buffer) override |
APIError | write_protobuf_packets (ProtoWriteBuffer buffer, const std::vector< PacketInfo > &packets) override |
uint8_t | frame_header_padding () override |
uint8_t | frame_footer_size () override |
![]() | |
APIFrameHelper ()=default | |
APIFrameHelper (std::unique_ptr< socket::Socket > socket) | |
virtual | ~APIFrameHelper ()=default |
bool | can_write_without_blocking () |
std::string | getpeername () |
int | getpeername (struct sockaddr *addr, socklen_t *addrlen) |
APIError | close () |
APIError | shutdown (int how) |
void | set_log_info (std::string info) |
bool | is_socket_ready () const |
Protected Member Functions | |
APIError | try_read_frame_ (ParsedFrame *frame) |
Read a packet into the rx_buf_. | |
![]() | |
APIError | write_raw_ (const struct iovec *iov, int iovcnt) |
APIError | try_send_tx_buf_ () |
void | buffer_data_from_iov_ (const struct iovec *iov, int iovcnt, uint16_t total_write_len) |
template<typename StateEnum > | |
APIError | write_raw_ (const struct iovec *iov, int iovcnt, socket::Socket *socket, std::vector< uint8_t > &tx_buf, const std::string &info, StateEnum &state, StateEnum failed_state) |
APIError | init_common_ () |
Protected Attributes | |
uint8_t | rx_header_buf_ [6] |
uint8_t | rx_header_buf_pos_ = 0 |
bool | rx_header_parsed_ = false |
uint16_t | rx_header_parsed_type_ = 0 |
uint16_t | rx_header_parsed_len_ = 0 |
![]() | |
std::deque< SendBuffer > | tx_buf_ |
State | state_ {State::INITIALIZE} |
std::string | info_ |
socket::Socket * | socket_ {nullptr} |
std::unique_ptr< socket::Socket > | socket_owned_ |
uint8_t | frame_header_padding_ {0} |
uint8_t | frame_footer_size_ {0} |
std::vector< struct iovec > | reusable_iovs_ |
std::vector< uint8_t > | rx_buf_ |
uint16_t | rx_buf_len_ = 0 |
Additional Inherited Members | |
![]() | |
enum class | State { INITIALIZE = 1 , CLIENT_HELLO = 2 , SERVER_HELLO = 3 , HANDSHAKE = 4 , DATA = 5 , CLOSED = 6 , FAILED = 7 , EXPLICIT_REJECT = 8 } |
Definition at line 233 of file api_frame_helper.h.
|
inline |
Definition at line 235 of file api_frame_helper.h.
|
overridedefault |
|
inlineoverridevirtual |
Implements esphome::api::APIFrameHelper.
Definition at line 251 of file api_frame_helper.h.
|
inlineoverridevirtual |
Implements esphome::api::APIFrameHelper.
Definition at line 249 of file api_frame_helper.h.
|
overridevirtual |
Initialize the frame helper, returns OK if successful.
Implements esphome::api::APIFrameHelper.
Definition at line 816 of file api_frame_helper.cpp.
|
overridevirtual |
Not used for plaintext.
Implements esphome::api::APIFrameHelper.
Definition at line 826 of file api_frame_helper.cpp.
|
overridevirtual |
Implements esphome::api::APIFrameHelper.
Definition at line 990 of file api_frame_helper.cpp.
|
protected |
Read a packet into the rx_buf_.
If successful, stores frame data in the frame parameter
frame | The struct to hold the frame information in. msg: store the parsed frame in that struct |
error API_ERROR_BAD_INDICATOR: Bad indicator byte at start of frame.
Definition at line 848 of file api_frame_helper.cpp.
|
overridevirtual |
Implements esphome::api::APIFrameHelper.
Definition at line 1028 of file api_frame_helper.cpp.
|
overridevirtual |
Implements esphome::api::APIFrameHelper.
Definition at line 1039 of file api_frame_helper.cpp.
|
protected |
Definition at line 263 of file api_frame_helper.h.
|
protected |
Definition at line 264 of file api_frame_helper.h.
|
protected |
Definition at line 265 of file api_frame_helper.h.
|
protected |
Definition at line 267 of file api_frame_helper.h.
|
protected |
Definition at line 266 of file api_frame_helper.h.