Promote domains and Cyclone library to entities
This commit adds two entity types: a "domain", which is the parent of participants and which is instantiated for each domain that has at least one participant in it; and "cyclonedds", which is a representation of the (initialized) Cyclone DDS library in the process and that is the parent of all domain entities. The handle of the latter is a compile-constant, DDS_CYCLONEDDS_HANDLE. This changes the return value from dds_get_parent when executed on a participant: it now returns the handle of the entity representing the domain the participant is attached to. Two participants in the same domain self-evidently return the same domain entity. This allows deleting all participants in a domain by calling dds_delete on the domain entity, or tearing down everything and deinitializing the library by calling dds_delete on the top-level entity. Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
c6befb48a7
commit
0b12ff5cfc
23 changed files with 690 additions and 305 deletions
|
@ -66,6 +66,9 @@ struct ddsi_serdata;
|
|||
#define DDS_BUILTIN_TOPIC_DCPSSUBSCRIPTION ((dds_entity_t) (DDS_MIN_PSEUDO_HANDLE + 4))
|
||||
/** @}*/
|
||||
|
||||
/** Special handle representing the entity corresponding to the CycloneDDS library itself */
|
||||
#define DDS_CYCLONEDDS_HANDLE ((dds_entity_t) (DDS_MIN_PSEUDO_HANDLE + 256))
|
||||
|
||||
/** @name Communication Status definitions
|
||||
@{**/
|
||||
typedef enum dds_status_id {
|
||||
|
@ -860,7 +863,8 @@ dds_get_children(dds_entity_t entity, dds_entity_t *children, size_t size);
|
|||
* DataReaders), etc are also attached to that domain.
|
||||
*
|
||||
* This function will return the original domain ID when called on
|
||||
* any of the entities within that hierarchy.
|
||||
* any of the entities within that hierarchy. For entities not associated
|
||||
* with a domain, the id is set to DDS_DOMAIN_DEFAULT.
|
||||
*
|
||||
* @param[in] entity Entity from which to get its children.
|
||||
* @param[out] id Pointer to put the domain ID in.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue