esphome-api-client 0.5.0
Modern C++17 client for the ESPHome native API (plaintext + Noise)
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
esphome::api::Transport Class Referenceabstract

Byte-stream transport: async connect, a continuous read pump and a serialized write queue. More...

#include <transport.hpp>

Public Types

using ConnectHandler = std::function< void(std::error_code)>
 
using ReadHandler = std::function< void(std::error_code, ByteView)>
 
using WriteHandler = std::function< void(std::error_code)>
 

Public Member Functions

virtual ~Transport ()=default
 
virtual void async_connect (const std::string &host, std::uint16_t port, ConnectHandler handler)=0
 Resolve and connect to host:port; handler fires once.
 
virtual void start_read (ReadHandler on_read)=0
 Start the continuous read pump.
 
virtual void async_write (ByteBuffer data, WriteHandler handler)=0
 Queue data for transmission (FIFO). handler fires on completion.
 
virtual void close ()=0
 Close the transport.
 
virtual bool is_open () const =0
 Whether the transport is currently open.
 

Detailed Description

Byte-stream transport: async connect, a continuous read pump and a serialized write queue.

Implementations must invoke every callback on the connection's executor (single-threaded from the connection's perspective).

Member Typedef Documentation

◆ ConnectHandler

using esphome::api::Transport::ConnectHandler = std::function<void(std::error_code)>

◆ ReadHandler

using esphome::api::Transport::ReadHandler = std::function<void(std::error_code, ByteView)>

◆ WriteHandler

using esphome::api::Transport::WriteHandler = std::function<void(std::error_code)>

Constructor & Destructor Documentation

◆ ~Transport()

virtual esphome::api::Transport::~Transport ( )
virtualdefault

Member Function Documentation

◆ async_connect()

virtual void esphome::api::Transport::async_connect ( const std::string &  host,
std::uint16_t  port,
ConnectHandler  handler 
)
pure virtual

Resolve and connect to host:port; handler fires once.

◆ async_write()

virtual void esphome::api::Transport::async_write ( ByteBuffer  data,
WriteHandler  handler 
)
pure virtual

Queue data for transmission (FIFO). handler fires on completion.

◆ close()

virtual void esphome::api::Transport::close ( )
pure virtual

Close the transport.

◆ is_open()

virtual bool esphome::api::Transport::is_open ( ) const
pure virtual

Whether the transport is currently open.

◆ start_read()

virtual void esphome::api::Transport::start_read ( ReadHandler  on_read)
pure virtual

Start the continuous read pump.

on_read is called for each received chunk, or once with a non-zero error_code on failure/EOF.


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