45 using config::TcpClientConfig;
46 using interface::Channel;
52 std::variant<memory::PooledBuffer, std::vector<uint8_t>, std::shared_ptr<const std::vector<uint8_t>>>;
55 static std::shared_ptr<TcpClient> create(
const TcpClientConfig& cfg, boost::asio::io_context& ioc);
66 void start() override;
68 bool is_connected() const override;
71 void async_write_move(std::vector<uint8_t>&& data) override;
72 void async_write_shared(std::shared_ptr<const std::vector<uint8_t>> data) override;
75 void on_bytes(
OnBytes cb) override;
76 void on_state(
OnState cb) override;
79 std::optional<diagnostics::ErrorInfo> last_error_info() const;
82 void set_retry_interval(
unsigned interval_ms);
90 const
Impl* get_impl()
const {
return impl_.get(); }
91 Impl* get_impl() {
return impl_.get(); }
92 std::unique_ptr<Impl> impl_;
std::function< void(memory::ConstByteSpan)> OnBytes
std::function< void(base::LinkState)> OnState
std::function< void(size_t)> OnBackpressure
std::variant< memory::PooledBuffer, std::vector< uint8_t >, std::shared_ptr< const std::vector< uint8_t > >> BufferVariant
TcpClient(TcpClient &&) noexcept
SafeSpan< const uint8_t > ConstByteSpan
std::function< ReconnectDecision(const diagnostics::ErrorInfo &, uint32_t)> ReconnectPolicy
Function type for determining reconnection policy.