46template <
typename T,
typename F>
52 if constexpr (std::is_convertible_v<F, NotifyCallbackType>) {
55 static_assert(std::is_convertible_v<F, ValueCallbackType<T>>,
56 "The cb_value callback must have a signature compatible with"
57 " void(const DataPointPath&, T&, const MetaData&).");
58 cb_val = [buf = std::make_shared<T>(), cb_value, cb_error,
this](
const DataPointPath& path2,
64 if (md.Contains(
"sequence_id")) {
68 if (sequence_id_expected == sequence_id_actual) {
69 cb_value(path2, *buf, md);
71 auto eptr = std::make_exception_ptr(CII_MAKE_EXCEPTION(
77 cb_value(path2, *buf, md);
82 auto id = req.
Subscribe(path, cb_val, cb_error);
This class provides a wrapper for a data point path.
Definition dataPointPath.hpp:76
void ReadDataPoint(const DataPointPath &path, T &buffer, std::optional< std::reference_wrapper< MetaData > > metadata=std::nullopt, const CallbackType &callback=nullptr) const
Definition repositoryIf.ipp:1459
void Wait()
Definition repositoryIf.cpp:650
BatchResponse SendRequest(const BatchRequest &request)
Definition repositoryIf.cpp:674
std::function< void(const DataPointPath &)> CallbackType
Signature of the callback functions that can be registered with the repository requests.
Definition repositoryIf.hpp:60
Definition repositorySubscriberIf.hpp:82
void Unsubscribe(SubscriptionId) const
Definition repositorySubscriberIf.cpp:52
SubscriptionId Subscribe(const DataPointPath &, NotifyCallbackType, ErrorCallbackType) const
Definition repositorySubscriberIf.cpp:29
Definition repositorySubscriberIf.hpp:39
RAII wrapper class used to manage the life-time of individual subscriptions.
Definition repositorySubscriberIf.hpp:63
std::function< void(std::exception_ptr)> ErrorCallbackType
Definition repositorySubscriberIf.hpp:48
Subscription Subscribe(const DataPointPath &path, const F &cb_value, const ErrorCallbackType &cb_error) const
Subscribes to datapoint values change events by registering callbacks.
Definition repositorySubscriberIf.ipp:48
std::function< void(const DataPointPath &, const MetaData &)> NotifyCallbackType
Definition repositorySubscriberIf.hpp:47
size_t SubscriptionId
Definition repositorySubscriberIf.hpp:50
Definition measurable.hpp:25
Definition commandReplier.cpp:21
std::uint64_t RtcUInt64
Definition basicTypes.hpp:44
Definition repositorySubscriberIf.ipp:33
RepositorySubscriberIf::CallbackType cb_created
Definition repositorySubscriberIf.ipp:35
RepositorySubscriberIf::SubscriptionId id
Definition repositorySubscriberIf.ipp:34
RepositorySubscriberIf::ErrorCallbackType cb_error
Definition repositorySubscriberIf.ipp:37
RepositorySubscriberIf::CallbackType cb_deleted
Definition repositorySubscriberIf.ipp:36
Definition repositorySubscriberIf.ipp:40
RepositorySubscriberIf::SubscriptionId id
Definition repositorySubscriberIf.ipp:41
Definition repositorySubscriberIf.ipp:26
RepositorySubscriberIf::ErrorCallbackType cb_error
Definition repositorySubscriberIf.ipp:30
RepositorySubscriberIf::SubscriptionId id
Definition repositorySubscriberIf.ipp:27
RepositorySubscriberIf::NotifyCallbackType cb_value
Definition repositorySubscriberIf.ipp:29
DataPointPath path
Definition repositorySubscriberIf.ipp:28