27 #ifndef PDCOM5_SUBSCRIPTION_H 28 #define PDCOM5_SUBSCRIPTION_H 33 #include "visibility.h" 57 using CopyFunctionType = std::function<
58 void(
void * ,
const void * )>;
65 virtual std::unique_ptr<Selector> clone()
const;
70 virtual std::size_t getRequiredSize(
const Variable &variable)
const;
76 virtual CopyFunctionType getCopyFunction(
const Variable &variable)
const;
138 Subscriber &subscriber,
140 const std::string &path,
141 const Selector &selector = {});
154 const void *getData()
const;
162 template <
typename T>
163 typename std::enable_if<!std::is_arithmetic<T>::value,
void>::type
169 getData(), getVariable().getTypeInfo().type,
172 getVariable().getSizeInfo().totalElements()));
180 template <
typename T>
181 typename std::enable_if<std::is_arithmetic<T>::value,
void>::type
186 getVariable().getTypeInfo().type, 1);
194 Variable getVariable() const noexcept;
201 void print(std::ostream &os,
char delimiter) const;
206 bool empty() const noexcept {
return !(pimpl); }
213 friend impl::Subscription;
216 void operator()(impl::Subscription *)
const;
218 std::unique_ptr<impl::Subscription, ImplDeleter> pimpl;
219 State state_ = State::Invalid;
225 #endif // PDCOM5_SUBSCRIPTION_H
Definition: Exception.h:33
Selector base class for creating views on multidimensional data.
Definition: Subscription.h:55
PdCom Variable interface.
Definition: Variable.h:56
Definition: Subscription.h:96
PdCom Subscription interface.
Definition: Subscription.h:93
std::enable_if< std::is_arithmetic< T >::value, void >::type getValue(T &dest) const
Copy the values into a custom buffer.
Definition: Subscription.h:182
State getState() const noexcept
Get the current state.
Definition: Subscription.h:210
Definition: Subscriber.h:91
SubscriberState
Definition: Subscription.h:107
library version string as "major.minor.patch"
Definition: details.h:37
std::enable_if<!std::is_arithmetic< T >::value, void >::type getValue(T &dest) const
Copy the values into a custom buffer.
Definition: Subscription.h:164