ESPHome 2025.6.3
Loading...
Searching...
No Matches
esphome::socket::Socket Class Referenceabstract

#include <socket.h>

Public Member Functions

 Socket ()=default
 
virtual ~Socket ()
 
 Socket (const Socket &)=delete
 
Socketoperator= (const Socket &)=delete
 
virtual std::unique_ptr< Socketaccept (struct sockaddr *addr, socklen_t *addrlen)=0
 
virtual std::unique_ptr< Socketaccept_loop_monitored (struct sockaddr *addr, socklen_t *addrlen)
 Accept a connection and monitor it in the main loop NOTE: This function is NOT thread-safe and must only be called from the main loop.
 
virtual int bind (const struct sockaddr *addr, socklen_t addrlen)=0
 
virtual int close ()=0
 
virtual int connect (const struct sockaddr *addr, socklen_t addrlen)=0
 
virtual int shutdown (int how)=0
 
virtual int getpeername (struct sockaddr *addr, socklen_t *addrlen)=0
 
virtual std::string getpeername ()=0
 
virtual int getsockname (struct sockaddr *addr, socklen_t *addrlen)=0
 
virtual std::string getsockname ()=0
 
virtual int getsockopt (int level, int optname, void *optval, socklen_t *optlen)=0
 
virtual int setsockopt (int level, int optname, const void *optval, socklen_t optlen)=0
 
virtual int listen (int backlog)=0
 
virtual ssize_t read (void *buf, size_t len)=0
 
virtual ssize_t recvfrom (void *buf, size_t len, sockaddr *addr, socklen_t *addr_len)=0
 
virtual ssize_t readv (const struct iovec *iov, int iovcnt)=0
 
virtual ssize_t write (const void *buf, size_t len)=0
 
virtual ssize_t writev (const struct iovec *iov, int iovcnt)=0
 
virtual ssize_t sendto (const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)=0
 
virtual int setblocking (bool blocking)=0
 
virtual int loop ()
 
virtual int get_fd () const
 Get the underlying file descriptor (returns -1 if not supported)
 
bool ready () const
 Check if socket has data ready to read For loop-monitored sockets, checks with the Application's select() results For non-monitored sockets, always returns true (assumes data may be available)
 

Protected Attributes

bool loop_monitored_ {false}
 Whether this socket is monitored by the event loop.
 

Detailed Description

Definition at line 12 of file socket.h.

Constructor & Destructor Documentation

◆ Socket() [1/2]

esphome::socket::Socket::Socket ( )
default

◆ ~Socket()

esphome::socket::Socket::~Socket ( )
virtual

Definition at line 12 of file socket.cpp.

◆ Socket() [2/2]

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

Member Function Documentation

◆ accept()

virtual std::unique_ptr< Socket > esphome::socket::Socket::accept ( struct sockaddr * addr,
socklen_t * addrlen )
pure virtual

◆ accept_loop_monitored()

virtual std::unique_ptr< Socket > esphome::socket::Socket::accept_loop_monitored ( struct sockaddr * addr,
socklen_t * addrlen )
inlinevirtual

Accept a connection and monitor it in the main loop NOTE: This function is NOT thread-safe and must only be called from the main loop.

Definition at line 22 of file socket.h.

◆ bind()

virtual int esphome::socket::Socket::bind ( const struct sockaddr * addr,
socklen_t addrlen )
pure virtual

◆ close()

virtual int esphome::socket::Socket::close ( )
pure virtual

◆ connect()

virtual int esphome::socket::Socket::connect ( const struct sockaddr * addr,
socklen_t addrlen )
pure virtual

◆ get_fd()

virtual int esphome::socket::Socket::get_fd ( ) const
inlinevirtual

Get the underlying file descriptor (returns -1 if not supported)

Definition at line 54 of file socket.h.

◆ getpeername() [1/2]

virtual std::string esphome::socket::Socket::getpeername ( )
pure virtual

◆ getpeername() [2/2]

virtual int esphome::socket::Socket::getpeername ( struct sockaddr * addr,
socklen_t * addrlen )
pure virtual

◆ getsockname() [1/2]

virtual std::string esphome::socket::Socket::getsockname ( )
pure virtual

◆ getsockname() [2/2]

virtual int esphome::socket::Socket::getsockname ( struct sockaddr * addr,
socklen_t * addrlen )
pure virtual

◆ getsockopt()

virtual int esphome::socket::Socket::getsockopt ( int level,
int optname,
void * optval,
socklen_t * optlen )
pure virtual

◆ listen()

virtual int esphome::socket::Socket::listen ( int backlog)
pure virtual

◆ loop()

virtual int esphome::socket::Socket::loop ( )
inlinevirtual

Definition at line 51 of file socket.h.

◆ operator=()

Socket & esphome::socket::Socket::operator= ( const Socket & )
delete

◆ read()

virtual ssize_t esphome::socket::Socket::read ( void * buf,
size_t len )
pure virtual

◆ readv()

virtual ssize_t esphome::socket::Socket::readv ( const struct iovec * iov,
int iovcnt )
pure virtual

◆ ready()

bool esphome::socket::Socket::ready ( ) const

Check if socket has data ready to read For loop-monitored sockets, checks with the Application's select() results For non-monitored sockets, always returns true (assumes data may be available)

Definition at line 14 of file socket.cpp.

◆ recvfrom()

virtual ssize_t esphome::socket::Socket::recvfrom ( void * buf,
size_t len,
sockaddr * addr,
socklen_t * addr_len )
pure virtual

◆ sendto()

virtual ssize_t esphome::socket::Socket::sendto ( const void * buf,
size_t len,
int flags,
const struct sockaddr * to,
socklen_t tolen )
pure virtual

◆ setblocking()

virtual int esphome::socket::Socket::setblocking ( bool blocking)
pure virtual

◆ setsockopt()

virtual int esphome::socket::Socket::setsockopt ( int level,
int optname,
const void * optval,
socklen_t optlen )
pure virtual

◆ shutdown()

virtual int esphome::socket::Socket::shutdown ( int how)
pure virtual

◆ write()

virtual ssize_t esphome::socket::Socket::write ( const void * buf,
size_t len )
pure virtual

◆ writev()

virtual ssize_t esphome::socket::Socket::writev ( const struct iovec * iov,
int iovcnt )
pure virtual

Field Documentation

◆ loop_monitored_

bool esphome::socket::Socket::loop_monitored_ {false}
protected

Whether this socket is monitored by the event loop.

Definition at line 63 of file socket.h.


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