Update home authored by Alexey Zakharov's avatar Alexey Zakharov
--- ---
title: Classes title: Subscribe
summary: Subscribe class is used to receive continuous parameter updates from motorcortex server. It simplifies creating and removing subscription groups.
---
# Subscribe
[Subscribe](Classes/classmcx__cpp_1_1Subscribe.md) class is used to receive continuous parameter updates from motorcortex server. It simplifies creating and removing subscription groups. [More...](#detailed-description)
## Classes
| | Name |
| -------------- | -------------- |
| class | **[mcx_cpp::Subscription](Classes/classmcx__cpp_1_1Subscription.md)** |
| class | **[mcx_cpp::Subscribe](Classes/classmcx__cpp_1_1Subscribe.md)** |
## Types
| | Name |
| -------------- | -------------- |
| typedef std::shared_ptr< ParameterList > | **[ParameterListPtr](Modules/group__subscribe.md#typedef-parameterlistptr)** |
| typedef std::vector< GetParameter > | **[ParameterList](Modules/group__subscribe.md#typedef-parameterlist)** |
## Functions
| | Name |
| -------------- | -------------- |
| std::string | **[alias](Modules/group__subscribe.md#function-alias)**() const |
| uint32_t | **[id](Modules/group__subscribe.md#function-id)**() const |
| void | **[notify](Modules/group__subscribe.md#function-notify)**(const std::function< void(std::vector< GetParameter >)> & clb) |
| std::vector< GetParameter > | **[read](Modules/group__subscribe.md#function-read)**() const |
| | **[Subscription](Modules/group__subscribe.md#function-subscription)**(const [motorcortex_GroupStatusMsg](Classes/struct__motorcortex__GroupStatusMsg.md) & group_status_msg) |
| | **[Subscription](Modules/group__subscribe.md#function-subscription)**(const McxStatus & status) |
| | **[Subscription](Modules/group__subscribe.md#function-subscription)**() |
| StatusReply | **[unsubscribe](Modules/group__subscribe.md#function-unsubscribe)**(const Subscription & subscription) const <br>Unsubscribes from the group. |
| SubscriptionReply | **[subscribe](Modules/group__subscribe.md#function-subscribe)**(std::vector< std::string > path_list, const std::string & group_alias, size_t frequency_divider) const <br>Create a subscription group for a list of the parameters. |
| void | **[close](Modules/group__subscribe.md#function-close)**() <br>Closes connection to the server. |
| ConnectionReply | **[connect](Modules/group__subscribe.md#function-connect)**(std::string url, const ConnectionOptions & connection_options) <br>Opens a subscribe connection. |
| ConnectionReply | **[connect](Modules/group__subscribe.md#function-connect)**(std::string url) <br>Opens a subscribe connection. |
| std::string | **[url](Modules/group__subscribe.md#function-url)**() const <br>Returns connection URL. |
| | **[~Subscribe](Modules/group__subscribe.md#function-~subscribe)**() <br>Destructor. |
| | **[Subscribe](Modules/group__subscribe.md#function-subscribe)**(const Request & request) <br>Creates new [Subscribe](Classes/classmcx__cpp_1_1Subscribe.md). |
| | **[Subscribe](Modules/group__subscribe.md#function-subscribe)**() |
## Detailed Description
[Subscribe](Classes/classmcx__cpp_1_1Subscribe.md) class is used to receive continuous parameter updates from motorcortex server. It simplifies creating and removing subscription groups.
[Subscription](Classes/classmcx__cpp_1_1Subscription.md) class represents a group of parameters. It returns the latest values and a timestamp of the group. [Subscription](Classes/classmcx__cpp_1_1Subscription.md) class could be used as an observer, which notifies on every update or could be used as polling.
## Types Documentation
### typedef ParameterListPtr
```cpp
typedef std::shared_ptr< ParameterList > ParameterListPtr;
```
### typedef ParameterList
```cpp
typedef std::vector< GetParameter > ParameterList;
```
## Functions Documentation
### function alias
```cpp
std::string alias() const
```
### function id
```cpp
uint32_t id() const
```
### function notify
```cpp
void notify(
const std::function< void(std::vector< GetParameter >)> & clb
)
```
### function read
```cpp
std::vector< GetParameter > read() const
```
### function Subscription
```cpp
explicit Subscription(
const motorcortex_GroupStatusMsg & group_status_msg
)
```
### function Subscription
```cpp
explicit Subscription(
const McxStatus & status
)
```
### function Subscription
```cpp
Subscription()
```
### function unsubscribe
```cpp
StatusReply unsubscribe(
const Subscription & subscription
) const
```
Unsubscribes from the group.
**Return**: a promise, which resolves when the unsubscribe operation is complete, fails otherwise.
### function subscribe
```cpp
SubscriptionReply subscribe(
std::vector< std::string > path_list,
const std::string & group_alias,
size_t frequency_divider
) const
```
Create a subscription group for a list of the parameters.
**Return**: a subscription handle, which acts as a Promise, it is resolved when subscription is ready or failed. After the subscription is ready the handle is used to retrieve latest data.
### function close
```cpp
void close()
```
Closes connection to the server.
### function connect
```cpp
ConnectionReply connect(
std::string url,
const ConnectionOptions & connection_options
)
```
Opens a subscribe connection.
**Return**: status of the connection.
### function connect
```cpp
ConnectionReply connect(
std::string url
)
```
Opens a subscribe connection.
**Return**: status of the connection.
### function url
```cpp
std::string url() const
```
Returns connection URL.
### function ~Subscribe
```cpp
~Subscribe()
```
Destructor.
### function Subscribe
```cpp
explicit Subscribe(
const Request & request
)
```
Creates new [Subscribe](Classes/classmcx__cpp_1_1Subscribe.md).
### function Subscribe
```cpp
Subscribe()
```
---
# Classes
* **struct [_AllTypes](Classes/struct__AllTypes.md)**
* **struct [_EmptyMessage](Classes/struct__EmptyMessage.md)**
* **struct [_Limits](Classes/struct__Limits.md)**
* **struct [_SubMessage](Classes/struct__SubMessage.md)**
* **struct [_motorcortex_ConsoleCmdListMsg](Classes/struct__motorcortex__ConsoleCmdListMsg.md)**
* **struct [_motorcortex_ConsoleCmdMsg](Classes/struct__motorcortex__ConsoleCmdMsg.md)**
* **struct [_motorcortex_CreateGroupMsg](Classes/struct__motorcortex__CreateGroupMsg.md)**
* **struct [_motorcortex_Error](Classes/struct__motorcortex__Error.md)**
* **struct [_motorcortex_ErrorList](Classes/struct__motorcortex__ErrorList.md)**
* **struct [_motorcortex_GetParameterListMsg](Classes/struct__motorcortex__GetParameterListMsg.md)**
* **struct [_motorcortex_GetParameterMsg](Classes/struct__motorcortex__GetParameterMsg.md)**
* **struct [_motorcortex_GetParameterTreeHashMsg](Classes/struct__motorcortex__GetParameterTreeHashMsg.md)**
* **struct [_motorcortex_GetParameterTreeMsg](Classes/struct__motorcortex__GetParameterTreeMsg.md)**
* **struct [_motorcortex_GetSessionTokenMsg](Classes/struct__motorcortex__GetSessionTokenMsg.md)**
* **struct [_motorcortex_GroupMsg](Classes/struct__motorcortex__GroupMsg.md)**
* **struct [_motorcortex_GroupParameterInfo](Classes/struct__motorcortex__GroupParameterInfo.md)**
* **struct [_motorcortex_GroupStatusMsg](Classes/struct__motorcortex__GroupStatusMsg.md)**
* **struct [_motorcortex_Header](Classes/struct__motorcortex__Header.md)**
* **struct [_motorcortex_LoadMsg](Classes/struct__motorcortex__LoadMsg.md)**
* **struct [_motorcortex_LoginMsg](Classes/struct__motorcortex__LoginMsg.md)**
* **struct [_motorcortex_LogoutMsg](Classes/struct__motorcortex__LogoutMsg.md)**
* **struct [_motorcortex_OverwriteParameterMsg](Classes/struct__motorcortex__OverwriteParameterMsg.md)**
* **struct [_motorcortex_ParameterInfo](Classes/struct__motorcortex__ParameterInfo.md)**
* **struct [_motorcortex_ParameterListMsg](Classes/struct__motorcortex__ParameterListMsg.md)**
* **struct [_motorcortex_ParameterMsg](Classes/struct__motorcortex__ParameterMsg.md)**
* **struct [_motorcortex_ParameterOffset](Classes/struct__motorcortex__ParameterOffset.md)**
* **struct [_motorcortex_ParameterTreeHashMsg](Classes/struct__motorcortex__ParameterTreeHashMsg.md)**
* **struct [_motorcortex_ParameterTreeMsg](Classes/struct__motorcortex__ParameterTreeMsg.md)**
* **struct [_motorcortex_ReleaseParameterMsg](Classes/struct__motorcortex__ReleaseParameterMsg.md)**
* **struct [_motorcortex_RemoveGroupMsg](Classes/struct__motorcortex__RemoveGroupMsg.md)**
* **struct [_motorcortex_RestoreSessionMsg](Classes/struct__motorcortex__RestoreSessionMsg.md)**
* **struct [_motorcortex_SaveMsg](Classes/struct__motorcortex__SaveMsg.md)**
* **struct [_motorcortex_SessionTokenMsg](Classes/struct__motorcortex__SessionTokenMsg.md)**
* **struct [_motorcortex_SetParameterListMsg](Classes/struct__motorcortex__SetParameterListMsg.md)**
* **struct [_motorcortex_SetParameterMsg](Classes/struct__motorcortex__SetParameterMsg.md)**
* **struct [_motorcortex_StatusMsg](Classes/struct__motorcortex__StatusMsg.md)**
* **namespace [mcx_cpp](Namespaces/namespacemcx__cpp.md)**
* **struct [ConnectionOptions](Classes/structmcx__cpp_1_1ConnectionOptions.md)**
* **class [ConnectionStatus](Classes/classmcx__cpp_1_1ConnectionStatus.md)**
* **class [GetParameter](Classes/classmcx__cpp_1_1GetParameter.md)**
* **class [McxStatus](Classes/classmcx__cpp_1_1McxStatus.md)**
* **class [ParameterTree](Classes/classmcx__cpp_1_1ParameterTree.md)**
* **class [ParameterTreeMsg](Classes/classmcx__cpp_1_1ParameterTreeMsg.md)**
* **class [Request](Classes/classmcx__cpp_1_1Request.md)**
* **class [SetParameter](Classes/classmcx__cpp_1_1SetParameter.md)**
* **struct [safe_underlying_type](Classes/structmcx__cpp_1_1SetParameter_1_1safe__underlying__type.md)**
* **struct [safe_underlying_type< T, false >](Classes/structmcx__cpp_1_1SetParameter_1_1safe__underlying__type_3_01T_00_01false_01_4.md)**
* **class [Status](Classes/classmcx__cpp_1_1Status.md)**
* **class [Subscribe](Classes/classmcx__cpp_1_1Subscribe.md)**
* **class [Subscription](Classes/classmcx__cpp_1_1Subscription.md)**
* **struct [SharedState](Classes/structmcx__cpp_1_1Subscription_1_1SharedState.md)**
* **struct [Worker](Classes/structmcx__cpp_1_1Worker.md)**
* **class [WorkerHandle](Classes/classmcx__cpp_1_1WorkerHandle.md)**
* **class [WorkerPool](Classes/classmcx__cpp_1_1WorkerPool.md)**
* **struct [measure](Classes/structmeasure.md)**
* **namespace [motorcortex](Namespaces/namespacemotorcortex.md)**
* **struct [pb_bytes_array_s](Classes/structpb__bytes__array__s.md)**
* **struct [pb_callback_s](Classes/structpb__callback__s.md)**
* **struct [pb_extension_s](Classes/structpb__extension__s.md)**
* **struct [pb_extension_type_s](Classes/structpb__extension__type__s.md)**
* **struct [pb_field_iter_s](Classes/structpb__field__iter__s.md)**
* **struct [pb_field_s](Classes/structpb__field__s.md)**
* **struct [pb_istream_s](Classes/structpb__istream__s.md)**
* **struct [pb_ostream_s](Classes/structpb__ostream__s.md)**
* **namespace [std](Namespaces/namespacestd.md)**
------------------------------- -------------------------------
Updated on 7 February 2020 at 16:36:20 CET Updated on 7 February 2020 at 16:36:19 CET
\ No newline at end of file \ No newline at end of file