1#ifndef ZAO_ENDPOINT_SERIAL_TUNNEL_INTERFACE_HPP_
2#define ZAO_ENDPOINT_SERIAL_TUNNEL_INTERFACE_HPP_
12#include "../EventSourceInterface.hpp"
13#include "../StreamInterface.hpp"
14#include "../TimestampInterface.hpp"
15#include "ChunkSinkBufferDequeueResult.hpp"
16#include "ChunkSinkBufferEnqueueResult.hpp"
17#include "ChunkSinkBufferInterface.hpp"
18#include "ChunkSourceBufferDequeueResult.hpp"
19#include "ChunkSourceBufferEnqueueResult.hpp"
20#include "ChunkSourceBufferInterface.hpp"
21#include "TunnelConfig.hpp"
27class TunnelCallbackInterface;
57 [[deprecated(
"Please use GetRequestedConfigAsync")]]
113 [[deprecated(
"Please use ConfigureQueue")]]
128 std::size_t num_of_buffers) = 0;
152 std::unique_ptr<ChunkSourceBufferInterface> buffer) = 0;
177 std::unique_ptr<ChunkSinkBufferInterface> buffer) = 0;
213 [[deprecated(
"Please use DequeueSourceBuffer/EnqueueSourceBuffer")]]
215 std::size_t length) {
217 auto buffer = result.TakeBuffer();
221 assert(buffer->GetCapacity() >= length);
222 std::memcpy(buffer->GetPointer(), bytes, length);
223 buffer->SetLength(length);
224 buffer->SetTimestamp(timestamp);
320#ifndef LIBZAO_ENDPOINT_INTERNAL
321 [[deprecated(
"Never called when new pull-type API is selected.")]]
イベントを生成するクラスの共通インターフェース
Definition EventSourceInterface.hpp:31
エンドポイント側のストリーム機能インターフェース
Definition StreamInterface.hpp:15
std::uint64_t Rep
タイムスタンプの表現に用いる整数型
Definition TimestampInterface.hpp:19
シリアルデータ断片受信用バッファの取り出し結果を示す型。
Definition ChunkSinkBufferDequeueResult.hpp:17
シリアルデータ断片受信用バッファの格納結果を示す型。
Definition ChunkSinkBufferEnqueueResult.hpp:13
シリアルデータ断片送信用バッファの取り出し結果を示す型。
Definition ChunkSourceBufferDequeueResult.hpp:17
シリアルデータ断片送信用バッファの格納結果を示す型。
Definition ChunkSourceBufferEnqueueResult.hpp:13
シリアル通信トンネリング機能のコールバックインターフェース
Definition TunnelInterface.hpp:239
EventType
イベントの種類
Definition TunnelInterface.hpp:245
virtual void OnRequestConfig(const TunnelConfig &config)=0
設定要求時に呼び出されるコールバック。
virtual ~TunnelCallbackInterface() noexcept=default
TunnelCallbackInterface オブジェクトを破棄する。
virtual void OnReceivePacket(std::vector< std::uint8_t > &&bytes)
パケット受信時に呼び出されるコールバック。
Definition TunnelInterface.hpp:323
virtual void OnNotifyTunnelEvent(EventType type, const std::string &message)
エラーなどのイベントが発生した時に呼び出されるコールバック
Definition TunnelInterface.hpp:304
トンネリング設定を格納するクラス
Definition TunnelConfig.hpp:14
シリアル通信トンネリング機能のインターフェース
Definition TunnelInterface.hpp:34
virtual void SetAvailable(bool new_value)=0
アクティブ状態にできるか否かを設定する。
void SetMaxPacketLength(std::size_t length)
最大パケット長を設定する。
Definition TunnelInterface.hpp:114
virtual ~TunnelInterface() noexcept=default
TunnelInterface オブジェクトを破棄する。
void ResetQueue()
キューされているデータを削除する。
Definition TunnelInterface.hpp:196
virtual ChunkSourceBufferEnqueueResult EnqueueSourceBuffer(std::unique_ptr< ChunkSourceBufferInterface > buffer)=0
シリアルデータ断片送信用バッファをキューに格納する。
virtual std::shared_future< TunnelConfig > GetRequestedConfigAsync() const =0
設定要求状態を取得するshared_futureを取得する。
void Queue(TimestampInterface::Rep timestamp, const void *bytes, std::size_t length)
送信データをキューする。
Definition TunnelInterface.hpp:214
virtual ChunkSourceBufferDequeueResult DequeueSourceBuffer()=0
シリアルデータ断片送信用バッファをキューから取り出す。
virtual ChunkSinkBufferEnqueueResult EnqueueSinkBuffer(std::unique_ptr< ChunkSinkBufferInterface > buffer)=0
シリアルデータ断片受信用バッファをキューに返却する。
virtual ChunkSinkBufferDequeueResult DequeueSinkBuffer()=0
シリアルデータ断片受信用バッファをキューから取得する。
virtual bool GetRequestedConfig(TunnelConfig &config) const =0
要求されたシリアルトンネリング設定を取得する。
virtual void FlushQueue()=0
送受信キューの内容を破棄する。
virtual void ConfigureQueue(std::size_t bytes_per_buffer, std::size_t num_of_buffers)=0
キューの設定を行う(送受信両方)。
std::shared_future< TunnelConfig > GetConfigRequestStatus() const
設定要求状態を取得するshared_futureを取得する。
Definition TunnelInterface.hpp:58
Zao製品共通の名前空間
Definition FactoryInterface.hpp:11