extend sertopic interface and move the concept of a type descriptor to just the sertopic definition

Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
Erik Boasson 2018-12-03 17:29:32 +01:00
parent c169df6227
commit e631567c35
11 changed files with 269 additions and 124 deletions

View file

@ -947,7 +947,7 @@ dds_lookup_participant(
_In_ size_t size);
/**
* @brief Creates a new topic.
* @brief Creates a new topic with default type handling.
*
* The type name for the topic is taken from the generated descriptor. Topic
* matching is done on a combination of topic name and type name.
@ -975,6 +975,39 @@ dds_create_topic(
_In_opt_ const dds_qos_t *qos,
_In_opt_ const dds_listener_t *listener);
/**
* @brief Creates a new topic with arbitrary type handling.
*
* The type name for the topic is taken from the provided "sertopic" object. Topic
* matching is done on a combination of topic name and type name.
*
* @param[in] participant Participant on which to create the topic.
* @param[in] sertopic Internal description of the topic type.
* @param[in] name Name of the topic.
* @param[in] qos QoS to set on the new topic (can be NULL).
* @param[in] listener Any listener functions associated with the new topic (can be NULL).
* @param[in] sedp_plist Topic description to be published as part of discovery (if NULL, not published).
*
* @returns A valid topic handle or an error code.
*
* @retval >=0
* A valid topic handle.
* @retval DDS_RETCODE_BAD_PARAMETER
* Either participant, descriptor, name or qos is invalid.
*/
/* TODO: Check list of retcodes is complete. */
struct ddsi_sertopic;
struct nn_plist;
_Pre_satisfies_((participant & DDS_ENTITY_KIND_MASK) == DDS_KIND_PARTICIPANT)
DDS_EXPORT dds_entity_t
dds_create_topic_arbitrary (
_In_ dds_entity_t participant,
_In_ struct ddsi_sertopic *sertopic,
_In_z_ const char *name,
_In_opt_ const dds_qos_t *qos,
_In_opt_ const dds_listener_t *listener,
_In_opt_ const struct nn_plist *sedp_plist);
/**
* @brief Finds a named topic.
*