Zao SDK for Jetson / libzao-endpoint API リファレンス 1.5.0.0 (2024-09-25)
Loading...
Searching...
No Matches
EventSourceInterface.hpp
1#ifndef ZAO_ENDPOINT_EVENT_SOURCE_INTERFACE_HPP_
2#define ZAO_ENDPOINT_EVENT_SOURCE_INTERFACE_HPP_
3
4#include <memory>
5#include <type_traits>
6
7namespace zao {
8namespace endpoint {
9
14 explicit StoreAsWeakPtrType() = default;
15};
16
21
26template <class T>
28 public:
55 [[deprecated(
56 "Please use RegisterCallback(shared) or RegisterCallback(weak, "
57 "StoreAsWeakPtr)")]] inline void
58 RegisterCallback(const std::shared_ptr<T>& listener, bool use_weak_ptr) {
59 if (use_weak_ptr) {
60 return RegisterCallback(listener, StoreAsWeakPtr);
61 } else {
62 return RegisterCallback(listener);
63 }
64 }
65
83 virtual void RegisterCallback(const std::shared_ptr<T>& listener) = 0;
84
102 virtual void RegisterCallback(const std::weak_ptr<T>& listener_weak,
104
122 virtual void RegisterCallback(std::unique_ptr<T>&& listener) = 0;
123
124 virtual ~EventSourceInterface() noexcept = default;
125};
126
127} // namespace endpoint
128} // namespace zao
129
130#endif // ZAO_ENDPOINT_EVENT_SOURCE_INTERFACE_HPP_
イベントを生成するクラスの共通インターフェース
Definition EventSourceInterface.hpp:27
virtual void RegisterCallback(const std::weak_ptr< T > &listener_weak, StoreAsWeakPtrType)=0
コールバックの送信先をweak_ptrで登録する
virtual void RegisterCallback(std::unique_ptr< T > &&listener)=0
コールバックの送信先をunique_ptrで登録する
void RegisterCallback(const std::shared_ptr< T > &listener, bool use_weak_ptr)
コールバックの送信先をshared_ptrまたはweak_ptrで登録する
Definition EventSourceInterface.hpp:58
virtual void RegisterCallback(const std::shared_ptr< T > &listener)=0
コールバックの送信先をshared_ptrで登録する
constexpr StoreAsWeakPtrType StoreAsWeakPtr
所有権を持たずweak_ptrとして記憶することを明示するためのタグ。
Definition EventSourceInterface.hpp:20
Zao製品共通の名前空間
Definition FactoryInterface.hpp:11
所有権を持たずweak_ptrとして記憶することを明示するためのタグの型。
Definition EventSourceInterface.hpp:13