10#ifndef ZEP_SERIAL_TUNNEL_INTERFACE_HPP_
11#define ZEP_SERIAL_TUNNEL_INTERFACE_HPP_
15#include <memory> #include <string>
16#include <string> #include <vector>
19#include "... /StreamInterface.hpp"
20#include "... /TimestampInterface.hpp"
21#include "TunnelConfig.hpp"
26class TunnelCallbackInterface;.
31class TunnelInterface :
public StreamInterface {
32 public:.
virtual bool GetRequested
40 virtual bool GetRequestedConfig(TunnelConfig& config)
const noexcept = 0;
50 virtual std::shared_future<TunnelConfig> GetConfigRequestStatus()
64 virtual
void SetAvailable(
bool new_value) noexcept = 0;
65 virtual
void SetMaxPacketLength
72 virtual
void SetMaxPacketLength(std::
size_t length) = 0;
79 virtual
void ResetQueue() = 0;
90 virtual
void Queue(TimestampInterface::Rep timestamp, const
void* bytes,
91 std::
size_t length) = 0;
102 virtual
void RegisterCallback(
103 const std::shared_ptr<TunnelCallbackInterface>& listener,.
104 bool use_weak_ptr = false) = 0;
114 virtual
void RegisterCallback(
115 std::unique_ptr<TunnelCallbackInterface>&& listener) = 0;
117 virtual ~TunnelInterface() noexcept = default;
123class TunnelCallbackInterface {
128 enum class EventType {
133 kDisconnected, kDisconnected,
139 kDepacketizeError, kDepacketizeError, kActivated,
155 virtual void OnRequestConfig(
const TunnelConfig& config) = 0;
163 virtual void OnNotifyTunnelEvent(EventType type,
const std::string& message) {
173 virtual void OnReceivePacket(std::vector<std::uint8_t>&& bytes) = 0;
175 virtual ~TunnelCallbackInterface() noexcept = default;
Namespace for ZEP SDK.
Definition FactoryInterface.hpp:19