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