|
PdCom
5.0
Process data communication client
|
PdCom Subscription interface. More...
#include <Subscription.h>
Classes | |
| struct | invalid_subscription |
Public Types | |
| enum | State { Invalid = 0, Pending, Active } |
| enum | SubscriberState { SubscriberState::FullyConstructed, SubscriberState::UnderConstruction } |
Public Member Functions | |
| Subscription ()=default | |
| Default constructor for an empty subscription. | |
| Subscription (Subscription &&) noexcept | |
| Subscription & | operator= (Subscription &&) noexcept |
| Subscription (Subscriber &subscriber, const Variable &variable, const Selector &selector={}) | |
| Constructor for a known variable. More... | |
| Subscription (Subscriber &subscriber, Process &process, const std::string &path, const Selector &selector={}) | |
| Constructor for an unknown variable. More... | |
| void | poll () |
| Poll values from the server. More... | |
| const void * | getData () const |
| Get the data Pointer. More... | |
| template<typename T > | |
| std::enable_if<!std::is_arithmetic< T >::value, void >::type | getValue (T &dest) const |
| Copy the values into a custom buffer. More... | |
| template<typename T > | |
| std::enable_if< std::is_arithmetic< T >::value, void >::type | getValue (T &dest) const |
| Copy the values into a custom buffer. More... | |
| Variable | getVariable () const noexcept |
| Access the subscribed variable. More... | |
| void | print (std::ostream &os, char delimiter) const |
| Print the value(s). More... | |
| bool | empty () const noexcept |
| Check whether the subscription is default-constructed. More... | |
| State | getState () const noexcept |
| Get the current state. More... | |
PdCom Subscription interface.
This class represents a subscription to a variable. It is updated eighter on a periodic base, on an external event (e.g. the value has changed) or as requested with poll().
To cancel a subscription, you have to delete the corresponding subscription instance.
Calling getState() is always allowed, the other member functions need the subscription to be Active.
|
strong |
| PdCom::Subscription::Subscription | ( | Subscriber & | subscriber, |
| const Variable & | variable, | ||
| const Selector & | selector = {} |
||
| ) |
Constructor for a known variable.
| subscriber | Subscriber which will recieve the status updates. |
| variable | The variable to subscribe. |
| substate | (Dis)allow immediate callbacks. |
| invalid_subscription | Subscription is already known to be invalid. |
| PdCom::Subscription::Subscription | ( | Subscriber & | subscriber, |
| Process & | process, | ||
| const std::string & | path, | ||
| const Selector & | selector = {} |
||
| ) |
Constructor for an unknown variable.
| subscriber | Subscriber which will recieve the status updates. |
| process | The process. |
| path | Path of the variable to subscribe. |
| substate | (Dis)allow immediate callbacks. |
| invalid_subscription | Subscription is already known to be invalid. |
|
inlinenoexcept |
Check whether the subscription is default-constructed.
| const void* PdCom::Subscription::getData | ( | ) | const |
Get the data Pointer.
The subscription has to be Active.
|
inlinenoexcept |
|
inline |
Copy the values into a custom buffer.
Up to buf.size() values are converted into the type of the buffer. The subscription has to be Active.
| dest | Custom buffer. |
|
inline |
Copy the values into a custom buffer.
The subscription has to be Active.
| dest | Custom buffer. |
|
noexcept |
Access the subscribed variable.
The subscription must not be empty().
| void PdCom::Subscription::poll | ( | ) |
Poll values from the server.
The subscription has to be Active.
| void PdCom::Subscription::print | ( | std::ostream & | os, |
| char | delimiter | ||
| ) | const |
Print the value(s).
| os | Stream to print into. |
| delimiter | Delimiter which separates the values. |
1.8.14