Add get_matched_{publication,subscription}_...
The implementation is provisional (too inefficient), but it works. Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
ffbf3d7843
commit
8ae81db490
3 changed files with 355 additions and 0 deletions
|
@ -3061,6 +3061,140 @@ dds_triggered(dds_entity_t entity);
|
|||
DDS_EXPORT dds_entity_t
|
||||
dds_get_topic(dds_entity_t entity);
|
||||
|
||||
/**
|
||||
* @brief Get instance handles of the data readers matching a writer
|
||||
*
|
||||
* This operation fills the provided array with the instance handles
|
||||
* of the data readers that match the writer. On successful output,
|
||||
* the number of entries of "rds" set is the minimum of the return
|
||||
* value and the value of "nrds".
|
||||
*
|
||||
* @param[in] writer The writer.
|
||||
* @param[in] rds The array to be filled.
|
||||
* @param[in] nrds The size of the rds array, at most the first
|
||||
* nrds entries will be filled. rds = NULL and nrds = 0
|
||||
* is a valid way of determining the number of matched
|
||||
* readers, but inefficient compared to relying on the
|
||||
* matched publication status.
|
||||
*
|
||||
* @returns A dds_return_t indicating the number of matched readers
|
||||
* or failure. The return value may be larger than nrds
|
||||
* if there are more matching readers than the array can
|
||||
* hold.
|
||||
*
|
||||
* @retval >=0
|
||||
* The number of matching readers.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
* The entity parameter is not valid or rds = NULL and
|
||||
* nrds > 0.
|
||||
* @retval DDS_RETCODE_ILLEGAL_OPERATION
|
||||
* The operation is invoked on an inappropriate object.
|
||||
*/
|
||||
DDS_EXPORT dds_return_t
|
||||
dds_get_matched_subscriptions (
|
||||
dds_entity_t writer,
|
||||
dds_instance_handle_t *rds,
|
||||
size_t nrds);
|
||||
|
||||
/**
|
||||
* @brief Get a description of a reader matched with the provided
|
||||
* writer
|
||||
*
|
||||
* This operation looks up the reader instance handle in the set of
|
||||
* readers matched with the specified writer, returning a freshly
|
||||
* allocated sample of the DCPSSubscription built-in topic if found,
|
||||
* and NULL if not. The caller is responsible for freeing the
|
||||
* memory allocated.
|
||||
*
|
||||
* This operation is similar to performing a read of the given
|
||||
* instance handle on a reader of the DCPSSubscription built-in
|
||||
* topic, but this operation additionally filters on whether the
|
||||
* reader is matched by the provided writer.
|
||||
*
|
||||
* @param[in] writer The writer.
|
||||
* @param[in] ih The instance handle of a reader.
|
||||
*
|
||||
* @returns A newly allocated sample containing the information on the
|
||||
* reader, or a NULL pointer for any kind of failure.
|
||||
*
|
||||
* @retval != NULL
|
||||
* The requested data
|
||||
* @retval NULL
|
||||
* The writer is not valid or ih is not an instance handle
|
||||
* of a matched reader.
|
||||
*/
|
||||
DDS_EXPORT dds_builtintopic_endpoint_t *
|
||||
dds_get_matched_subscription_data (
|
||||
dds_entity_t writer,
|
||||
dds_instance_handle_t ih);
|
||||
|
||||
/**
|
||||
* @brief Get instance handles of the data writers matching a reader
|
||||
*
|
||||
* This operation fills the provided array with the instance handles
|
||||
* of the data writers that match the reader. On successful output,
|
||||
* the number of entries of "wrs" set is the minimum of the return
|
||||
* value and the value of "nwrs".
|
||||
*
|
||||
* @param[in] reader The reader.
|
||||
* @param[in] wrs The array to be filled.
|
||||
* @param[in] nwrs The size of the wrs array, at most the first
|
||||
* nwrs entries will be filled. wrs = NULL and wrds = 0
|
||||
* is a valid way of determining the number of matched
|
||||
* readers, but inefficient compared to relying on the
|
||||
* matched publication status.
|
||||
*
|
||||
* @returns A dds_return_t indicating the number of matched writers
|
||||
* or failure. The return value may be larger than nwrs
|
||||
* if there are more matching writers than the array can
|
||||
* hold.
|
||||
*
|
||||
* @retval >=0
|
||||
* The number of matching writers.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
* The entity parameter is not valid or wrs = NULL and
|
||||
* nwrs > 0.
|
||||
* @retval DDS_RETCODE_ILLEGAL_OPERATION
|
||||
* The operation is invoked on an inappropriate object.
|
||||
*/
|
||||
DDS_EXPORT dds_return_t
|
||||
dds_get_matched_publications (
|
||||
dds_entity_t reader,
|
||||
dds_instance_handle_t *wrs,
|
||||
size_t nwrs);
|
||||
|
||||
/**
|
||||
* @brief Get a description of a writer matched with the provided
|
||||
* reader
|
||||
*
|
||||
* This operation looks up the writer instance handle in the set of
|
||||
* writers matched with the specified reader, returning a freshly
|
||||
* allocated sample of the DCPSPublication built-in topic if found,
|
||||
* and NULL if not. The caller is responsible for freeing the
|
||||
* memory allocated.
|
||||
*
|
||||
* This operation is similar to performing a read of the given
|
||||
* instance handle on a reader of the DCPSPublication built-in
|
||||
* topic, but this operation additionally filters on whether the
|
||||
* writer is matched by the provided reader.
|
||||
*
|
||||
* @param[in] reader The reader.
|
||||
* @param[in] ih The instance handle of a writer.
|
||||
*
|
||||
* @returns A newly allocated sample containing the information on the
|
||||
* writer, or a NULL pointer for any kind of failure.
|
||||
*
|
||||
* @retval != NULL
|
||||
* The requested data
|
||||
* @retval NULL
|
||||
* The reader is not valid or ih is not an instance handle
|
||||
* of a matched writer.
|
||||
*/
|
||||
DDS_EXPORT dds_builtintopic_endpoint_t *
|
||||
dds_get_matched_publication_data (
|
||||
dds_entity_t reader,
|
||||
dds_instance_handle_t ih);
|
||||
|
||||
#if defined (__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue