Zao SDK for Jetson / libzep API リファレンス  1.0.0.0 (2023-05-08)
ClientInterface.hpp
1 #ifndef ZEP_CLIENT_INTERFACE_HPP_
2 #define ZEP_CLIENT_INTERFACE_HPP_
3 
4 #include <cstdint>
5 #include <future>
6 #include <memory>
7 #include <string>
8 
9 #include "audio/FactoryInterface.hpp"
10 #include "control/FactoryInterface.hpp"
11 #include "serial/FactoryInterface.hpp"
12 #include "video/FactoryInterface.hpp"
13 
14 namespace spdlog { class logger; }
15 
16 namespace zep {
17 
18 class TimestampInterface;
19 class ClientCallbackInterface;
20 
25  public:
32  virtual void SetLinkPath(const std::string& link_path) = 0;
33 
38  virtual const std::string& GetLinkPath() const noexcept = 0;
39 
45  virtual void StartLink() = 0;
46 
50  virtual void StopLink() = 0;
51 
58  virtual bool IsLinked() const noexcept = 0;
59 
66  virtual std::shared_future<std::string> GetLinkStatus() const = 0;
67 
74  virtual bool IsConnectedToCloud() const noexcept = 0;
75 
81  virtual std::shared_future<void /*TODO*/> GetCloudConnectionStatus()
82  const = 0;
83 
87  virtual std::unique_ptr<video::FactoryInterface> CreateVideoFactory() = 0;
88 
92  virtual std::unique_ptr<audio::FactoryInterface> CreateAudioFactory() = 0;
93 
97  virtual std::unique_ptr<serial::FactoryInterface> CreateSerialFactory() = 0;
98 
102  virtual std::unique_ptr<control::FactoryInterface> CreateControlFactory() = 0;
103 
111  virtual std::shared_ptr<TimestampInterface> CreateTimestamp(
112  std::intmax_t numerator, std::intmax_t denominator) = 0;
113 
120  template <class Ratio>
121  std::shared_ptr<TimestampInterface> CreateTimestamp() {
122  return CreateTimestamp(Ratio::num, Ratio::den);
123  }
124 
134  virtual void RegisterCallback(
135  const std::shared_ptr<ClientCallbackInterface>& listener,
136  bool use_weak_ptr = false) = 0;
137 
146  virtual void RegisterCallback(
147  std::unique_ptr<ClientCallbackInterface>&& listener) = 0;
148 
149  virtual ~ClientInterface() noexcept = default;
150 };
151 
156  public:
161  virtual void OnLink() {}
162 
170  virtual void OnUnlink(bool stopped) {}
171 
175  virtual void OnConnectCloud(/*TODO*/) {}
176 
180  virtual void OnDisconnectCloud() {}
181 
182  virtual ~ClientCallbackInterface() noexcept = default;
183 };
184 
185 } // namespace zep
186 
187 #endif // ZEP_CLIENT_INTERFACE_HPP_
クライアント制御のコールバックインターフェース
Definition: ClientInterface.hpp:155
ZEP SDK用名前空間
Definition: FactoryInterface.hpp:10
std::shared_ptr< TimestampInterface > CreateTimestamp()
タイムスタンプ管理オブジェクトをstd::ratioによる比率指示で生成する。
Definition: ClientInterface.hpp:121
virtual void OnLink()
クライアントプロセスとリンク(連携)されたときに 呼び出されるコールバック。
Definition: ClientInterface.hpp:161
Definition: ClientInterface.hpp:14
エンドポイントのクライアント制御インターフェース
Definition: ClientInterface.hpp:24
virtual void OnDisconnectCloud()
クラウド側から切断されたときに呼び出されるコールバック。
Definition: ClientInterface.hpp:180
virtual void OnUnlink(bool stopped)
クライアントプロセスとリンク(連携)が解除された時に 呼び出されるコールバック。
Definition: ClientInterface.hpp:170
virtual void OnConnectCloud()
クラウド側と接続されたときに呼び出されるコールバック。
Definition: ClientInterface.hpp:175