ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
esphome::socket::LWIPRawImpl Class Reference

Connected socket implementation for LWIP raw TCP. More...

#include <lwip_raw_tcp_impl.h>

Inheritance diagram for esphome::socket::LWIPRawImpl:
esphome::socket::LWIPRawCommon

Public Member Functions

 ~LWIPRawImpl ()
 
void init ()
 
std::unique_ptr< LWIPRawImplaccept (struct sockaddr *, socklen_t *)
 
std::unique_ptr< LWIPRawImplaccept_loop_monitored (struct sockaddr *addr, socklen_t *addrlen)
 
int listen (int)
 
ssize_t read (void *buf, size_t len)
 
ssize_t readv (const struct iovec *iov, int iovcnt)
 
ssize_t recvfrom (void *, size_t, sockaddr *, socklen_t *)
 
ssize_t write (const void *buf, size_t len)
 
ssize_t writev (const struct iovec *iov, int iovcnt)
 
ssize_t sendto (const void *, size_t, int, const struct sockaddr *, socklen_t)
 
bool ready () const
 
int setblocking (bool blocking)
 
int loop ()
 
err_t recv_fn (struct pbuf *pb, err_t err)
 
 LWIPRawCommon (sa_family_t family, struct tcp_pcb *pcb)
 
 LWIPRawCommon (const LWIPRawCommon &)=delete
 
- Public Member Functions inherited from esphome::socket::LWIPRawCommon
 LWIPRawCommon (sa_family_t family, struct tcp_pcb *pcb)
 
 ~LWIPRawCommon ()
 
 LWIPRawCommon (const LWIPRawCommon &)=delete
 
LWIPRawCommonoperator= (const LWIPRawCommon &)=delete
 
int bind (const struct sockaddr *name, socklen_t addrlen)
 
int close ()
 
int shutdown (int how)
 
int getpeername (struct sockaddr *name, socklen_t *addrlen)
 
int getsockname (struct sockaddr *name, socklen_t *addrlen)
 
size_t getpeername_to (std::span< char, SOCKADDR_STR_LEN > buf)
 Format peer address into a fixed-size buffer (no heap allocation)
 
size_t getsockname_to (std::span< char, SOCKADDR_STR_LEN > buf)
 Format local address into a fixed-size buffer (no heap allocation)
 
int getsockopt (int level, int optname, void *optval, socklen_t *optlen)
 
int setsockopt (int level, int optname, const void *optval, socklen_t optlen)
 
int get_fd () const
 

Static Public Member Functions

static void s_err_fn (void *arg, err_t err)
 
static err_t s_recv_fn (void *arg, struct tcp_pcb *pcb, struct pbuf *pb, err_t err)
 

Protected Member Functions

ssize_t internal_write_ (const void *buf, size_t len)
 
int internal_output_ ()
 
- Protected Member Functions inherited from esphome::socket::LWIPRawCommon
int ip2sockaddr_ (ip_addr_t *ip, uint16_t port, struct sockaddr *name, socklen_t *addrlen)
 

Protected Attributes

pbuf * rx_buf_ = nullptr
 
size_t rx_buf_offset_ = 0
 
bool rx_closed_ = false
 
- Protected Attributes inherited from esphome::socket::LWIPRawCommon
struct tcp_pcb * pcb_
 
bool nodelay_ = false
 
sa_family_t family_ = 0
 

Detailed Description

Connected socket implementation for LWIP raw TCP.

No virtual methods — callers always use the concrete type.

Definition at line 64 of file lwip_raw_tcp_impl.h.

Constructor & Destructor Documentation

◆ ~LWIPRawImpl()

esphome::socket::LWIPRawImpl::~LWIPRawImpl ( )

Definition at line 321 of file lwip_raw_tcp_impl.cpp.

Member Function Documentation

◆ accept()

std::unique_ptr< LWIPRawImpl > esphome::socket::LWIPRawImpl::accept ( struct sockaddr * ,
socklen_t *  )
inline

Definition at line 72 of file lwip_raw_tcp_impl.h.

◆ accept_loop_monitored()

std::unique_ptr< LWIPRawImpl > esphome::socket::LWIPRawImpl::accept_loop_monitored ( struct sockaddr * addr,
socklen_t * addrlen )
inline

Definition at line 76 of file lwip_raw_tcp_impl.h.

◆ init()

void esphome::socket::LWIPRawImpl::init ( )

Definition at line 332 of file lwip_raw_tcp_impl.cpp.

◆ internal_output_()

int esphome::socket::LWIPRawImpl::internal_output_ ( )
protected

Definition at line 490 of file lwip_raw_tcp_impl.cpp.

◆ internal_write_()

ssize_t esphome::socket::LWIPRawImpl::internal_write_ ( const void * buf,
size_t len )
protected

Definition at line 458 of file lwip_raw_tcp_impl.cpp.

◆ listen()

int esphome::socket::LWIPRawImpl::listen ( int )
inline

Definition at line 81 of file lwip_raw_tcp_impl.h.

◆ loop()

int esphome::socket::LWIPRawImpl::loop ( )
inline

Definition at line 112 of file lwip_raw_tcp_impl.h.

◆ LWIPRawCommon() [1/2]

esphome::socket::LWIPRawCommon::LWIPRawCommon ( const LWIPRawCommon & )
delete

◆ LWIPRawCommon() [2/2]

esphome::socket::LWIPRawCommon::LWIPRawCommon ( sa_family_t family,
struct tcp_pcb * pcb )
inline

Definition at line 29 of file lwip_raw_tcp_impl.h.

◆ read()

ssize_t esphome::socket::LWIPRawImpl::read ( void * buf,
size_t len )

Definition at line 381 of file lwip_raw_tcp_impl.cpp.

◆ readv()

ssize_t esphome::socket::LWIPRawImpl::readv ( const struct iovec * iov,
int iovcnt )

Definition at line 440 of file lwip_raw_tcp_impl.cpp.

◆ ready()

bool esphome::socket::LWIPRawImpl::ready ( ) const
inline

Definition at line 98 of file lwip_raw_tcp_impl.h.

◆ recv_fn()

err_t esphome::socket::LWIPRawImpl::recv_fn ( struct pbuf * pb,
err_t err )

Definition at line 355 of file lwip_raw_tcp_impl.cpp.

◆ recvfrom()

ssize_t esphome::socket::LWIPRawImpl::recvfrom ( void * ,
size_t ,
sockaddr * ,
socklen_t *  )
inline

Definition at line 87 of file lwip_raw_tcp_impl.h.

◆ s_err_fn()

void esphome::socket::LWIPRawImpl::s_err_fn ( void * arg,
err_t err )
static

Definition at line 339 of file lwip_raw_tcp_impl.cpp.

◆ s_recv_fn()

err_t esphome::socket::LWIPRawImpl::s_recv_fn ( void * arg,
struct tcp_pcb * pcb,
struct pbuf * pb,
err_t err )
static

Definition at line 350 of file lwip_raw_tcp_impl.cpp.

◆ sendto()

ssize_t esphome::socket::LWIPRawImpl::sendto ( const void * ,
size_t ,
int ,
const struct sockaddr * ,
socklen_t  )
inline

Definition at line 93 of file lwip_raw_tcp_impl.h.

◆ setblocking()

int esphome::socket::LWIPRawImpl::setblocking ( bool blocking)
inline

Definition at line 100 of file lwip_raw_tcp_impl.h.

◆ write()

ssize_t esphome::socket::LWIPRawImpl::write ( const void * buf,
size_t len )

Definition at line 509 of file lwip_raw_tcp_impl.cpp.

◆ writev()

ssize_t esphome::socket::LWIPRawImpl::writev ( const struct iovec * iov,
int iovcnt )

Definition at line 525 of file lwip_raw_tcp_impl.cpp.

Field Documentation

◆ rx_buf_

pbuf* esphome::socket::LWIPRawImpl::rx_buf_ = nullptr
protected

Definition at line 123 of file lwip_raw_tcp_impl.h.

◆ rx_buf_offset_

size_t esphome::socket::LWIPRawImpl::rx_buf_offset_ = 0
protected

Definition at line 124 of file lwip_raw_tcp_impl.h.

◆ rx_closed_

bool esphome::socket::LWIPRawImpl::rx_closed_ = false
protected

Definition at line 125 of file lwip_raw_tcp_impl.h.


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