Update home authored by Alexey Zakharov's avatar Alexey Zakharov
# group `request` {#group__request} # group `subscribe` {#group__subscribe}
Request/Reply communication is used to send commands to a motorcortex server. [Subscribe](api-subscribe.md#classmcx__cpp_1_1Subscribe) class is used to receive continuous parameter updates from motorcortex server. It simplifies creating and removing subscription groups.
[Subscription](api-subscribe.md#classmcx__cpp_1_1Subscription) class represents a group of parameters. It returns the latest values and a timestamp of the group. [Subscription](api-subscribe.md#classmcx__cpp_1_1Subscription) class could be used as an observer, which notifies on every update or could be used as polling.
## Summary ## Summary
Members | Descriptions Members | Descriptions
--------------------------------|--------------------------------------------- --------------------------------|---------------------------------------------
`public `[`Request`](#group__request_1ga0bf696d0a423087fbe17c221307636fd)`() = delete` | `public `[`Subscribe`](#group__subscribe_1gac12c65d1f31eb82da508703bf2fcf33a)`() = delete` |
`public explicit `[`Request`](#group__request_1ga44c87d666fa137904e56bc5d1944d434)`(const ParameterTree & parameter_tree)` | `public explicit `[`Subscribe`](#group__subscribe_1gaa08311096d99de2bb2a8fa7a5c89868e)`(const Request & request)` | Creates new [Subscribe](api-subscribe.md#classmcx__cpp_1_1Subscribe).
`public `[`~Request`](#group__request_1gac16054e325ff15f7d640dddef1c20567)`()` | `public `[`~Subscribe`](#group__subscribe_1gaa4046923c47d2e34bf98722ec3409765)`()` | Destructor.
`public std::string `[`url`](#group__request_1gacfcdd3adb2b1211f4e44290ba169e3e0)`() const` | `public std::string `[`url`](#group__subscribe_1ga21378cbaf16bcdcd1de51a55fa52769f)`() const` | Returns connection URL.
`public StatusReply `[`connect`](#group__request_1ga8ae078bcf939fb1f2b3cbdb384a6eeab)`(std::string url)` | `public StatusReply `[`connect`](#group__subscribe_1ga85535612b83d8198695a04f281485683)`(std::string url)` | Opens a subscribe connection.
`public StatusReply `[`connect`](#group__request_1gaac5973995efa60ffb14b5bc0d6dc4df0)`(std::string url,ConnectionOptions connection_options)` | `public StatusReply `[`connect`](#group__subscribe_1ga96cae01189b9ae60848cc6dde4466d7b)`(std::string url,ConnectionOptions connection_options)` | Opens a subscribe connection.
`public void `[`close`](#group__request_1ga27321c84e73a5cb48f279858c8c01191)`()` | `public void `[`close`](#group__subscribe_1ga9f2a81da4076999ead76c802c8583043)`()` | Closes connection to the server.
`public StatusReply `[`login`](#group__request_1ga563ffd90d911f4501b0cfd38a5d67cb6)`(std::string login,std::string password) const` | `public SubscriptionReply `[`subscribe`](#group__subscribe_1gafb213ffb792de4fc6d3c2656ee64666d)`(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.
`public ParameterTreeReply `[`getParameterTree`](#group__request_1gab8a65a4360c11bc5c9f945242400972f)`() const` | `public StatusReply `[`unsubscribe`](#group__subscribe_1gaf7b3173f6fbd1ce9128e26e3e3a7e575)`(const Subscription & subscription) const` | Unsubscribes from the group.
`public StatusReply `[`setParameter`](#group__request_1gaafe3905a109847c73bcdbd7a82dac92b)`(SetParameter value) const` | `public `[`Subscription`](#group__subscribe_1gaa8d1cd42785d3d717f41281aeab0b9e0)`()` |
`public template<>` <br/>`inline StatusReply `[`setParameter`](#group__request_1gaf8c7e702165817675f352e5b364a3d5d)`(const std::string & path,const T & value) const` | `public explicit `[`Subscription`](#group__subscribe_1ga561e819d903760bbde7aacb10cd450d6)`(Status status)` |
`public template<>` <br/>`inline StatusReply `[`setParameter`](#group__request_1ga9bfa52fa512e4bb457693fd18e07315b)`(const std::string & path,const std::initializer_list< T > & value) const` | `public explicit `[`Subscription`](#group__subscribe_1gafb1fc2a9d7827741630b632dc331a9c4)`(const `[`motorcortex_GroupStatusMsg`](api-undefined.md#struct__motorcortex__GroupStatusMsg)` & group_status_msg)` |
`public template<>` <br/>`inline StatusReply `[`setParameter`](#group__request_1ga5d80f31b02f2580c2876abc749125499)`(const std::string & path,const std::vector< T > & value) const` | `public std::vector< GetParameter > `[`read`](#group__subscribe_1gacab9468f4efd9f06f01981748b9b1b2c)`() const` |
`public GetParameterReply `[`getParameter`](#group__request_1ga4fe8fa3391225c2790479d38ee6e8ec9)`(const std::string & path) const` | `public static void `[`notify`](#group__subscribe_1ga61e648d5109217a424fbe6713b47c05f)`(const std::function< void(std::vector< GetParameter >)> & clb)` |
`public SubscriptionReply `[`createGroup`](#group__request_1gaf43939dd894f40759279cdae2db1fc4b)`(std::vector< std::string > path_list,const std::string & group_alias,size_t frequency_divider) const` | `public uint32_t `[`id`](#group__subscribe_1ga1efe7e1df7a5b98765e5df2aad7af8c1)`() const` |
`public StatusReply `[`removeGroup`](#group__request_1ga2265e5c93d801c6d458936c0c225d002)`(const std::string & group_alias) const` | `public std::string `[`alias`](#group__subscribe_1ga8f803530e658663f60c099e14700a9bc)`() const` |
`class `[`mcx_cpp::Request`](#classmcx__cpp_1_1Request) | `class `[`mcx_cpp::Subscribe`](#classmcx__cpp_1_1Subscribe) |
`struct `[`mcx_cpp::ConnectionOptions`](#structmcx__cpp_1_1ConnectionOptions) | `class `[`mcx_cpp::Subscription`](#classmcx__cpp_1_1Subscription) |
## Members ## Members
#### `public `[`Request`](#group__request_1ga0bf696d0a423087fbe17c221307636fd)`() = delete` {#group__request_1ga0bf696d0a423087fbe17c221307636fd} #### `public `[`Subscribe`](#group__subscribe_1gac12c65d1f31eb82da508703bf2fcf33a)`() = delete` {#group__subscribe_1gac12c65d1f31eb82da508703bf2fcf33a}
#### `public explicit `[`Subscribe`](#group__subscribe_1gaa08311096d99de2bb2a8fa7a5c89868e)`(const Request & request)` {#group__subscribe_1gaa08311096d99de2bb2a8fa7a5c89868e}
Creates new [Subscribe](api-subscribe.md#classmcx__cpp_1_1Subscribe).
#### Parameters
* `request` - reference to a [Request](api-request.md#classmcx__cpp_1_1Request) instance.
#### `public `[`~Subscribe`](#group__subscribe_1gaa4046923c47d2e34bf98722ec3409765)`()` {#group__subscribe_1gaa4046923c47d2e34bf98722ec3409765}
Destructor.
#### `public std::string `[`url`](#group__subscribe_1ga21378cbaf16bcdcd1de51a55fa52769f)`() const` {#group__subscribe_1ga21378cbaf16bcdcd1de51a55fa52769f}
Returns connection URL.
#### `public StatusReply `[`connect`](#group__subscribe_1ga85535612b83d8198695a04f281485683)`(std::string url)` {#group__subscribe_1ga85535612b83d8198695a04f281485683}
Opens a subscribe connection.
#### Parameters
* `url` - motorcortex server URL
#### `public explicit `[`Request`](#group__request_1ga44c87d666fa137904e56bc5d1944d434)`(const ParameterTree & parameter_tree)` {#group__request_1ga44c87d666fa137904e56bc5d1944d434} #### Returns
status of the connection.
#### `public `[`~Request`](#group__request_1gac16054e325ff15f7d640dddef1c20567)`()` {#group__request_1gac16054e325ff15f7d640dddef1c20567} #### `public StatusReply `[`connect`](#group__subscribe_1ga96cae01189b9ae60848cc6dde4466d7b)`(std::string url,ConnectionOptions connection_options)` {#group__subscribe_1ga96cae01189b9ae60848cc6dde4466d7b}
#### `public std::string `[`url`](#group__request_1gacfcdd3adb2b1211f4e44290ba169e3e0)`() const` {#group__request_1gacfcdd3adb2b1211f4e44290ba169e3e0} Opens a subscribe connection.
#### `public StatusReply `[`connect`](#group__request_1ga8ae078bcf939fb1f2b3cbdb384a6eeab)`(std::string url)` {#group__request_1ga8ae078bcf939fb1f2b3cbdb384a6eeab} #### Parameters
* `url` - motorcortex server URL
#### `public StatusReply `[`connect`](#group__request_1gaac5973995efa60ffb14b5bc0d6dc4df0)`(std::string url,ConnectionOptions connection_options)` {#group__request_1gaac5973995efa60ffb14b5bc0d6dc4df0} * `connection_options` - additional options
#### `public void `[`close`](#group__request_1ga27321c84e73a5cb48f279858c8c01191)`()` {#group__request_1ga27321c84e73a5cb48f279858c8c01191} #### Returns
status of the connection.
#### `public StatusReply `[`login`](#group__request_1ga563ffd90d911f4501b0cfd38a5d67cb6)`(std::string login,std::string password) const` {#group__request_1ga563ffd90d911f4501b0cfd38a5d67cb6} #### `public void `[`close`](#group__subscribe_1ga9f2a81da4076999ead76c802c8583043)`()` {#group__subscribe_1ga9f2a81da4076999ead76c802c8583043}
#### `public ParameterTreeReply `[`getParameterTree`](#group__request_1gab8a65a4360c11bc5c9f945242400972f)`() const` {#group__request_1gab8a65a4360c11bc5c9f945242400972f} Closes connection to the server.
#### `public StatusReply `[`setParameter`](#group__request_1gaafe3905a109847c73bcdbd7a82dac92b)`(SetParameter value) const` {#group__request_1gaafe3905a109847c73bcdbd7a82dac92b} #### `public SubscriptionReply `[`subscribe`](#group__subscribe_1gafb213ffb792de4fc6d3c2656ee64666d)`(std::vector< std::string > path_list,const std::string & group_alias,size_t frequency_divider) const` {#group__subscribe_1gafb213ffb792de4fc6d3c2656ee64666d}
#### `public template<>` <br/>`inline StatusReply `[`setParameter`](#group__request_1gaf8c7e702165817675f352e5b364a3d5d)`(const std::string & path,const T & value) const` {#group__request_1gaf8c7e702165817675f352e5b364a3d5d} Create a subscription group for a list of the parameters.
#### `public template<>` <br/>`inline StatusReply `[`setParameter`](#group__request_1ga9bfa52fa512e4bb457693fd18e07315b)`(const std::string & path,const std::initializer_list< T > & value) const` {#group__request_1ga9bfa52fa512e4bb457693fd18e07315b} #### Parameters
* `path_list` - list of the parameters to subscribe to
#### `public template<>` <br/>`inline StatusReply `[`setParameter`](#group__request_1ga5d80f31b02f2580c2876abc749125499)`(const std::string & path,const std::vector< T > & value) const` {#group__request_1ga5d80f31b02f2580c2876abc749125499} * `group_alias` - name of the group
#### `public GetParameterReply `[`getParameter`](#group__request_1ga4fe8fa3391225c2790479d38ee6e8ec9)`(const std::string & path) const` {#group__request_1ga4fe8fa3391225c2790479d38ee6e8ec9} * `frq_divider` - frequency divider is a downscaling factor for the group publish rate
#### `public SubscriptionReply `[`createGroup`](#group__request_1gaf43939dd894f40759279cdae2db1fc4b)`(std::vector< std::string > path_list,const std::string & group_alias,size_t frequency_divider) const` {#group__request_1gaf43939dd894f40759279cdae2db1fc4b} #### Returns
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.
#### `public StatusReply `[`removeGroup`](#group__request_1ga2265e5c93d801c6d458936c0c225d002)`(const std::string & group_alias) const` {#group__request_1ga2265e5c93d801c6d458936c0c225d002} #### `public StatusReply `[`unsubscribe`](#group__subscribe_1gaf7b3173f6fbd1ce9128e26e3e3a7e575)`(const Subscription & subscription) const` {#group__subscribe_1gaf7b3173f6fbd1ce9128e26e3e3a7e575}
# class `mcx_cpp::Request` {#classmcx__cpp_1_1Request} Unsubscribes from the group.
#### Parameters
* `subscription` - subscription handle
#### Returns
a promise, which resolves when the unsubscribe operation is complete, fails otherwise.
#### `public `[`Subscription`](#group__subscribe_1gaa8d1cd42785d3d717f41281aeab0b9e0)`()` {#group__subscribe_1gaa8d1cd42785d3d717f41281aeab0b9e0}
#### `public explicit `[`Subscription`](#group__subscribe_1ga561e819d903760bbde7aacb10cd450d6)`(Status status)` {#group__subscribe_1ga561e819d903760bbde7aacb10cd450d6}
#### `public explicit `[`Subscription`](#group__subscribe_1gafb1fc2a9d7827741630b632dc331a9c4)`(const `[`motorcortex_GroupStatusMsg`](api-undefined.md#struct__motorcortex__GroupStatusMsg)` & group_status_msg)` {#group__subscribe_1gafb1fc2a9d7827741630b632dc331a9c4}
#### `public std::vector< GetParameter > `[`read`](#group__subscribe_1gacab9468f4efd9f06f01981748b9b1b2c)`() const` {#group__subscribe_1gacab9468f4efd9f06f01981748b9b1b2c}
#### `public static void `[`notify`](#group__subscribe_1ga61e648d5109217a424fbe6713b47c05f)`(const std::function< void(std::vector< GetParameter >)> & clb)` {#group__subscribe_1ga61e648d5109217a424fbe6713b47c05f}
#### `public uint32_t `[`id`](#group__subscribe_1ga1efe7e1df7a5b98765e5df2aad7af8c1)`() const` {#group__subscribe_1ga1efe7e1df7a5b98765e5df2aad7af8c1}
#### `public std::string `[`alias`](#group__subscribe_1ga8f803530e658663f60c099e14700a9bc)`() const` {#group__subscribe_1ga8f803530e658663f60c099e14700a9bc}
# class `mcx_cpp::Subscribe` {#classmcx__cpp_1_1Subscribe}
## Summary ## Summary
...@@ -68,7 +119,12 @@ Request/Reply communication is used to send commands to a motorcortex server. ...@@ -68,7 +119,12 @@ Request/Reply communication is used to send commands to a motorcortex server.
## Members ## Members
# struct `mcx_cpp::ConnectionOptions` {#structmcx__cpp_1_1ConnectionOptions} # class `mcx_cpp::Subscription` {#classmcx__cpp_1_1Subscription}
```
class mcx_cpp::Subscription
: public mcx_cpp::Status
```
## Summary ## Summary
... ...
......