Zao SDK for Jetson / libzao-endpoint API リファレンス 1.5.0.0 (2024-09-25)
Loading...
Searching...
No Matches
TunnelInterface.hpp
1#ifndef ZAO_ENDPOINT_SERIAL_TUNNEL_INTERFACE_HPP_
2#define ZAO_ENDPOINT_SERIAL_TUNNEL_INTERFACE_HPP_
3
4#include <cstdint>
5#include <future>
6#include <memory>
7#include <string>
8#include <vector>
9
10#include "../EventSourceInterface.hpp"
11#include "../StreamInterface.hpp"
12#include "../TimestampInterface.hpp"
13#include "TunnelConfig.hpp"
14
15namespace zao {
16namespace endpoint {
17namespace serial {
18
19class TunnelCallbackInterface;
20
26 public EventSourceInterface<TunnelCallbackInterface> {
27 public:
41 virtual bool GetRequestedConfig(TunnelConfig& config) const noexcept = 0;
42
56 virtual std::shared_future<TunnelConfig> GetConfigRequestStatus()
57 const noexcept = 0;
58
81 virtual void SetAvailable(bool new_value) noexcept = 0;
82
92 virtual void SetMaxPacketLength(std::size_t length) = 0;
93
102 virtual void ResetQueue() = 0;
103
119 virtual void Queue(TimestampInterface::Rep timestamp, const void* bytes,
120 std::size_t length) = 0;
121
122 virtual ~TunnelInterface() noexcept = default;
123};
124
130 public:
135 enum class EventType {
140 kUnknown = 0,
141
146 kDisconnected,
147
152 kUnlinked,
153
158 kDepacketizeError,
159
164 kDeactivated,
165
170 kActivated,
171 };
172
183 virtual void OnRequestConfig(const TunnelConfig& config) = 0;
184
194 virtual void OnNotifyTunnelEvent(EventType type, const std::string& message) {
195 }
196
208 virtual void OnReceivePacket(std::vector<std::uint8_t>&& bytes) = 0;
209
210 virtual ~TunnelCallbackInterface() noexcept = default;
211};
212
213} // namespace serial
214} // namespace endpoint
215} // namespace zao
216
217#endif // ZAO_ENDPOINT_SERIAL_TUNNEL_INTERFACE_HPP_
イベントを生成するクラスの共通インターフェース
Definition EventSourceInterface.hpp:27
エンドポイント側のストリーム機能インターフェース
Definition StreamInterface.hpp:15
タイムスタンプ管理機能のインターフェース
Definition TimestampInterface.hpp:13
シリアル通信トンネリング機能のコールバックインターフェース
Definition TunnelInterface.hpp:129
EventType
イベントの種類
Definition TunnelInterface.hpp:135
virtual void OnRequestConfig(const TunnelConfig &config)=0
設定要求時に呼び出されるコールバック。
virtual void OnNotifyTunnelEvent(EventType type, const std::string &message)
エラーなどのイベントが発生した時に呼び出されるコールバック
Definition TunnelInterface.hpp:194
virtual void OnReceivePacket(std::vector< std::uint8_t > &&bytes)=0
パケット受信時に呼び出されるコールバック。
トンネリング設定を格納するクラス
Definition TunnelConfig.hpp:14
シリアル通信トンネリング機能のインターフェース
Definition TunnelInterface.hpp:26
virtual bool GetRequestedConfig(TunnelConfig &config) const noexcept=0
要求されたシリアルトンネリング設定を取得する。
virtual void Queue(TimestampInterface::Rep timestamp, const void *bytes, std::size_t length)=0
送信データをキューする。
virtual void SetAvailable(bool new_value) noexcept=0
アクティブ状態にできるか否かを設定する。
virtual std::shared_future< TunnelConfig > GetConfigRequestStatus() const noexcept=0
設定要求状態を取得するshared_futureを取得する。
virtual void SetMaxPacketLength(std::size_t length)=0
最大パケット長を設定する。
virtual void ResetQueue()=0
キューされているデータを削除する。
Zao製品共通の名前空間
Definition FactoryInterface.hpp:11