Zao SDK for Jetson / libzao-endpoint API リファレンス 1.2.0.0 (2023-10-30)
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 "../StreamInterface.hpp"
11#include "../TimestampInterface.hpp"
12#include "TunnelConfig.hpp"
13
14namespace zao {
15namespace endpoint {
16namespace serial {
17
18class TunnelCallbackInterface;
19
24 public:
32 virtual bool GetRequestedConfig(TunnelConfig& config) const noexcept = 0;
33
42 virtual std::shared_future<TunnelConfig> GetConfigRequestStatus()
43 const noexcept = 0;
44
56 virtual void SetAvailable(bool new_value) noexcept = 0;
57
64 virtual void SetMaxPacketLength(std::size_t length) = 0;
65
71 virtual void ResetQueue() = 0;
72
82 virtual void Queue(TimestampInterface::Rep timestamp, const void* bytes,
83 std::size_t length) = 0;
84
95 virtual void RegisterCallback(
96 const std::shared_ptr<TunnelCallbackInterface>& listener,
97 bool use_weak_ptr = false) = 0;
98
108 virtual void RegisterCallback(
109 std::unique_ptr<TunnelCallbackInterface>&& listener) = 0;
110
111 virtual ~TunnelInterface() noexcept = default;
112};
113
118 public:
122 enum class EventType {
124 kUnknown = 0,
125
127 kDisconnected,
128
130 kUnlinked,
131
133 kDepacketizeError,
134
136 kDeactivated,
137
139 kActivated,
140 };
141
149 virtual void OnRequestConfig(const TunnelConfig& config) = 0;
150
157 virtual void OnNotifyTunnelEvent(EventType type, const std::string& message) {
158 }
159
167 virtual void OnReceivePacket(std::vector<std::uint8_t>&& bytes) = 0;
168
169 virtual ~TunnelCallbackInterface() noexcept = default;
170};
171
172} // namespace serial
173} // namespace endpoint
174} // namespace zao
175
176#endif // ZAO_ENDPOINT_SERIAL_TUNNEL_INTERFACE_HPP_
エンドポイント側のストリーム機能インターフェース
Definition StreamInterface.hpp:14
タイムスタンプ管理機能のインターフェース
Definition TimestampInterface.hpp:12
シリアル通信トンネリング機能のコールバックインターフェース
Definition TunnelInterface.hpp:117
EventType
イベントの種類
Definition TunnelInterface.hpp:122
virtual void OnRequestConfig(const TunnelConfig &config)=0
設定要求時に呼び出されるコールバック。
virtual void OnNotifyTunnelEvent(EventType type, const std::string &message)
エラーなどのイベントが発生した時に呼び出されるコールバック。
Definition TunnelInterface.hpp:157
virtual void OnReceivePacket(std::vector< std::uint8_t > &&bytes)=0
パケット受信時に呼び出されるコールバック。
トンネリング設定を格納するクラス。
Definition TunnelConfig.hpp:13
シリアル通信トンネリング機能のインターフェース
Definition TunnelInterface.hpp:23
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 RegisterCallback(const std::shared_ptr< TunnelCallbackInterface > &listener, bool use_weak_ptr=false)=0
コールバックの送信先をshared_ptrまたはweak_ptrで登録する
virtual void ResetQueue()=0
キューされているデータを削除する。
Zao製品共通の名前空間
Definition FactoryInterface.hpp:11