Add a dds_readcdr analogous to dds_takecdr
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
9aef05542f
commit
0006e09566
5 changed files with 87 additions and 1 deletions
|
@ -2756,6 +2756,53 @@ dds_take_mask_wl(
|
|||
uint32_t maxs,
|
||||
uint32_t mask);
|
||||
|
||||
#define DDS_HAS_READCDR 1
|
||||
/**
|
||||
* @brief Access the collection of serialized data values (of same type) and
|
||||
* sample info from the data reader, readcondition or querycondition.
|
||||
*
|
||||
* This call accesses the serialized data from the data reader, readcondition or
|
||||
* querycondition and makes it available to the application. The serialized data
|
||||
* is made available through \ref ddsi_serdata structures. Returned samples are
|
||||
* marked as READ.
|
||||
*
|
||||
* Return value provides information about the number of samples read, which will
|
||||
* be <= maxs. Based on the count, the buffer will contain serialized data to be
|
||||
* read only when valid_data bit in sample info structure is set.
|
||||
* The buffer required for data values, could be allocated explicitly or can
|
||||
* use the memory from data reader to prevent copy. In the latter case, buffer and
|
||||
* sample_info should be returned back, once it is no longer using the data.
|
||||
*
|
||||
* @param[in] reader_or_condition Reader, readcondition or querycondition entity.
|
||||
* @param[out] buf An array of pointers to \ref ddsi_serdata structures that contain
|
||||
* the serialized data. The pointers can be NULL.
|
||||
* @param[in] maxs Maximum number of samples to read.
|
||||
* @param[out] si Pointer to an array of \ref dds_sample_info_t returned for each data value.
|
||||
* @param[in] mask Filter the data based on dds_sample_state_t|dds_view_state_t|dds_instance_state_t.
|
||||
*
|
||||
* @returns A dds_return_t with the number of samples read or an error code.
|
||||
*
|
||||
* @retval >=0
|
||||
* Number of samples read.
|
||||
* @retval DDS_RETCODE_ERROR
|
||||
* An internal error has occurred.
|
||||
* @retval DDS_RETCODE_BAD_PARAMETER
|
||||
* One of the given arguments is not valid.
|
||||
* @retval DDS_RETCODE_ILLEGAL_OPERATION
|
||||
* The operation is invoked on an inappropriate object.
|
||||
* @retval DDS_RETCODE_ALREADY_DELETED
|
||||
* The entity has already been deleted.
|
||||
* @retval DDS_RETCODE_PRECONDITION_NOT_MET
|
||||
* The precondition for this operation is not met.
|
||||
*/
|
||||
DDS_EXPORT dds_return_t
|
||||
dds_readcdr(
|
||||
dds_entity_t reader_or_condition,
|
||||
struct ddsi_serdata **buf,
|
||||
uint32_t maxs,
|
||||
dds_sample_info_t *si,
|
||||
uint32_t mask);
|
||||
|
||||
/**
|
||||
* @brief Access the collection of serialized data values (of same type) and
|
||||
* sample info from the data reader, readcondition or querycondition.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue