CoreDX Data Distribution Service
The High Performance, Small Footprint DDS from Twin Oaks Computing, Inc
xtypes_dtype.h
Go to the documentation of this file.
1 /*****************************************************************
2  *
3  * file: xtypes_dtype.h
4  * desc: This file provides the C language binding for
5  * CoreDX DDS X-Types DynamicType and related.
6  *
7  *****************************************************************
8  *
9  * Copyright(C) 2013-2020 Twin Oaks Computing, Inc
10  * All rights reserved. Castle Rock, CO 80108
11  *
12  *****************************************************************
13  *
14  * This software has been provided pursuant to a License Agreement
15  * containing restrictions on its use. This software contains
16  * valuable trade secrets and proprietary information of
17  * Twin Oaks Computing, Inc and is protected by law. It may not be
18  * copied or distributed in any form or medium, disclosed to third
19  * parties, reverse engineered or used in any manner not provided
20  * for in said License Agreement except with the prior written
21  * authorization from Twin Oaks Computing, Inc.
22  *
23  *****************************************************************/
24 
25 #ifndef _DDS_XTYPES_DTYPE_H
26 #define _DDS_XTYPES_DTYPE_H
27 
28 #include <dds/dds.h>
29 #include <dds/xtypes_typeobject.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif /* __cplusplus */
34 
35  /******************************************/
36  /* DDS_DynamicType and DynamicData API */
37  /******************************************/
157  /* User Defined SEQUENCE: sequence DDS_stringSeq */
158 #ifndef _DDS_SEQ_c_DDS_DDS_stringSeq_defined
159 #define _DDS_SEQ_c_DDS_DDS_stringSeq_defined
160  DECLARE_SEQ( char *, DDS_DDS_stringSeq );
161 #endif /* User Defined SEQUENCE: sequence DDS_stringSeq */
162 
163  DECLARE_SEQ( char *, DDS_IncludePathSeq );
164 
165  typedef struct _DynamicTypeBuilderFactory * DDS_DynamicTypeBuilderFactory;
166  typedef struct _DynamicTypeBuilder * DDS_DynamicTypeBuilder;
167  typedef struct _DynamicTypeSupport * DDS_DynamicTypeSupport;
168  typedef struct _DynamicType * DDS_DynamicType;
169  typedef struct _DynamicTypeMember * DDS_DynamicTypeMember;
170  typedef struct _DynamicDataFactory * DDS_DynamicDataFactory;
171  typedef struct _DynamicData * DDS_DynamicData;
172 
173  typedef uint32_t DDS_ExtensibilityKind;
174 # define DDS_FINAL_EXTENSIBILITY (0)
175 # define DDS_EXTENSIBLE_EXTENSIBILITY (1)
176 # define DDS_MUTABLE_EXTENSIBILITY (2)
177 
182  DDS_MAP_DECLARE(DDS_ObjectName, DDS_ObjectName, DDS_Parameters);
183 
189  typedef struct DDS_AnnotationDescriptor {
190  DDS_DynamicType type;
191  DDS_Parameters parameters;
193 
198  typedef struct DDS_TypeDescriptor {
199  DDS_TypeKind kind;
200  DDS_ObjectName name;
212  DDS_DynamicType base_type;
216  DDS_DynamicType discriminator_type;
230  DDS_BoundSeq bound;
244  DDS_DynamicType element_type;
252  DDS_DynamicType key_element_type;
254 
259  typedef struct DDS_MemberDescriptor {
260  DDS_ObjectName name;
277  DDS_MemberId id;
283  DDS_DynamicType type;
324  unsigned int index;
335  DDS_UnionCaseLabelSeq label;
346  unsigned char default_label;
348 
354  DDS_MAP_DECLARE(char *, DDS_DynamicTypeMember, DDS_DynamicTypeMembersByName);
360  DDS_MAP_DECLARE(DDS_MemberId, DDS_DynamicTypeMember, DDS_DynamicTypeMembersById);
361 
366  DECLARE_SEQ( DDS_DynamicTypeMember, DDS_DynamicTypeMemberSeq );
367 
368  DECLARE_SEQ( int, DDS_Int32Seq );
369  DECLARE_SEQ( unsigned int, DDS_UInt32Seq );
370  DECLARE_SEQ( short, DDS_Int16Seq );
371  DECLARE_SEQ( unsigned short, DDS_UInt16Seq );
372  DECLARE_SEQ( int64_t, DDS_Int64Seq );
373  DECLARE_SEQ( uint64_t, DDS_UInt64Seq );
374  DECLARE_SEQ( float, DDS_Float32Seq );
375  DECLARE_SEQ( double, DDS_Float64Seq );
376  DECLARE_SEQ( char, DDS_CharSeq );
377  DECLARE_SEQ( cdx_char32_t, DDS_WcharSeq );
378  DECLARE_SEQ( unsigned char, DDS_BooleanSeq );
379  DECLARE_SEQ( unsigned char, DDS_ByteSeq );
380  DECLARE_SEQ( cdx_char32_t *, DDS_WstringSeq );
381  DECLARE_SEQ( DDS_DynamicData, DDS_DynamicDataSeq );
382 
383  /***********************************************************
384  * DynamicTypeBuilderFactory *
385  ***********************************************************/
395  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilderFactory
396  DDS_DynamicTypeBuilderFactory_get_instance ( void );
403  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
404  DDS_DynamicTypeBuilderFactory_delete_instance ( void );
411  COREDX_C_DYNTYPE_API DDS_DynamicType
412  DDS_DynamicTypeBuilderFactory_get_primitive_type ( DDS_DynamicTypeBuilderFactory dtbf,
413  const DDS_TypeKind kind );
425  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
426  DDS_DynamicTypeBuilderFactory_create_type ( DDS_DynamicTypeBuilderFactory dtbf,
427  const DDS_TypeDescriptor * descriptor );
436  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
437  DDS_DynamicTypeBuilderFactory_create_type_copy ( DDS_DynamicTypeBuilderFactory dtbf,
438  const DDS_DynamicType type );
449  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
450  DDS_DynamicTypeBuilderFactory_create_type_w_type_object ( DDS_DynamicTypeBuilderFactory dtbf,
451  const DDS_TypeObject * type_object );
468  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
469  DDS_DynamicTypeBuilderFactory_create_string_type ( DDS_DynamicTypeBuilderFactory dtbf,
470  const unsigned int bound );
487  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
488  DDS_DynamicTypeBuilderFactory_create_wstring_type ( DDS_DynamicTypeBuilderFactory dtbf,
489  const unsigned int bound );
511  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
512  DDS_DynamicTypeBuilderFactory_create_sequence_type ( DDS_DynamicTypeBuilderFactory dtbf,
513  const DDS_DynamicType element_type,
514  const unsigned int bound );
537  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
538  DDS_DynamicTypeBuilderFactory_create_array_type (DDS_DynamicTypeBuilderFactory dtbf,
539  const DDS_DynamicType element_type,
540  const DDS_BoundSeq * bound );
564  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
565  DDS_DynamicTypeBuilderFactory_create_map_type ( DDS_DynamicTypeBuilderFactory dtbf,
566  const DDS_DynamicType key_element_type,
567  const DDS_DynamicType element_type,
568  const unsigned int bound );
580  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
581  DDS_DynamicTypeBuilderFactory_create_bitset_type ( DDS_DynamicTypeBuilderFactory dtbf,
582  const unsigned int bound );
612  COREDX_C_DYNTYPE_XML_API DDS_DynamicTypeBuilder
613  DDS_DynamicTypeBuilderFactory_create_type_w_uri ( DDS_DynamicTypeBuilderFactory dtbf,
614  const char * document_url,
615  const char * type_name,
616  const DDS_IncludePathSeq * include_paths );
647  COREDX_C_DYNTYPE_XML_API DDS_DynamicTypeBuilder
648  DDS_DynamicTypeBuilderFactory_create_type_w_document ( DDS_DynamicTypeBuilderFactory dtbf,
649  const char * document,
650  const char * type_name,
651  const DDS_IncludePathSeq * include_paths );
652  /* CDX API: This seems to be missing from standard API */
660  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
661  DDS_DynamicTypeBuilderFactory_delete_type_builder ( DDS_DynamicTypeBuilderFactory dtbf,
662  DDS_DynamicTypeBuilder type_builder );
671  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
672  DDS_DynamicTypeBuilderFactory_delete_type ( DDS_DynamicTypeBuilderFactory dtbf,
673  DDS_DynamicType type );
674  /* CDX Helpers: (could use DDS_DynamicTypeBuilderFactory_create_type() directly */
687  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
688  DDS_DynamicTypeBuilderFactory_create_structure_type( DDS_DynamicTypeBuilderFactory dtbf,
689  DDS_DynamicType base_type);
700  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
701  DDS_DynamicTypeBuilderFactory_create_union_type ( DDS_DynamicTypeBuilderFactory dtbf);
711  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
712  DDS_DynamicTypeBuilderFactory_create_alias_type ( DDS_DynamicTypeBuilderFactory dtbf,
713  const DDS_DynamicType base_type );
724  COREDX_C_DYNTYPE_API DDS_DynamicTypeBuilder
725  DDS_DynamicTypeBuilderFactory_create_enumeration_type ( DDS_DynamicTypeBuilderFactory dtbf,
726  const unsigned int bound);
727 
737  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
738  DDS_DynamicTypeBuilderFactory_create_extensibility_annotation( DDS_DynamicTypeBuilderFactory dtbf,
740  DDS_ExtensibilityKind ekind );
750  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
751  DDS_DynamicTypeBuilderFactory_create_optional_annotation( DDS_DynamicTypeBuilderFactory dtbf,
753 
763  DDS_DynamicTypeBuilderFactory_create_key_annotation( DDS_DynamicTypeBuilderFactory dtbf,
765 
766 
767  /***********************************************************
768  * DynamicTypeBuilder *
769  ***********************************************************/
777  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
778  DDS_DynamicTypeBuilder_get_descriptor ( DDS_DynamicTypeBuilder dtb,
779  DDS_TypeDescriptor * descriptor );
785  COREDX_C_DYNTYPE_API const char *
786  DDS_DynamicTypeBuilder_get_name ( DDS_DynamicTypeBuilder dtb );
793  COREDX_C_DYNTYPE_API DDS_TypeKind
794  DDS_DynamicTypeBuilder_get_kind ( DDS_DynamicTypeBuilder dtb );
808  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
809  DDS_DynamicTypeBuilder_get_member_by_name ( DDS_DynamicTypeBuilder dtb,
810  DDS_DynamicTypeMember * member,
811  const DDS_ObjectName name );
820  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
821  DDS_DynamicTypeBuilder_get_all_members_by_name ( DDS_DynamicTypeBuilder dtb,
822  DDS_DynamicTypeMembersByName * member );
836  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
837  DDS_DynamicTypeBuilder_get_member ( DDS_DynamicTypeBuilder dtb,
838  DDS_DynamicTypeMember * member,
839  const DDS_MemberId id );
848  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
849  DDS_DynamicTypeBuilder_get_all_members ( DDS_DynamicTypeBuilder dtb,
850  DDS_DynamicTypeMembersById * member );
857  COREDX_C_DYNTYPE_API unsigned int
858  DDS_DynamicTypeBuilder_get_annotation_count ( DDS_DynamicTypeBuilder dtb );
865  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
866  DDS_DynamicTypeBuilder_get_annotation ( DDS_DynamicTypeBuilder dtb,
867  DDS_AnnotationDescriptor * descriptor,
868  const unsigned int idx );
876  COREDX_C_DYNTYPE_API unsigned char
877  DDS_DynamicTypeBuilder_equals ( DDS_DynamicTypeBuilder dtb,
878  const DDS_DynamicType other );
888  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
889  DDS_DynamicTypeBuilder_add_member ( DDS_DynamicTypeBuilder dtb,
890  const DDS_MemberDescriptor * descriptor );
901  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
902  DDS_DynamicTypeBuilder_apply_annotation ( DDS_DynamicTypeBuilder dtb,
903  const DDS_AnnotationDescriptor * descriptor );
904 
917  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
918  DDS_DynamicTypeBuilder_apply_annotation_to_member ( DDS_DynamicTypeBuilder dtb,
919  DDS_MemberId member_id,
920  const DDS_AnnotationDescriptor * descriptor );
921 
922 
931  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
932  DDS_DynamicTypeBuilder_set_extensibility ( DDS_DynamicTypeBuilder dtb,
933  uint32_t ext );
941  COREDX_C_DYNTYPE_API DDS_DynamicType
942  DDS_DynamicTypeBuilder_build ( DDS_DynamicTypeBuilder dtb );
943  /* CDX API: This seems to be missing from standard API */
950  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
951  DDS_DynamicTypeBuilder_delete_type ( DDS_DynamicTypeBuilder dtb,
952  DDS_DynamicType type );
953 
966  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
967  DDS_DynamicTypeBuilder_apply_flags_to_member ( DDS_DynamicTypeBuilder dtb,
968  DDS_MemberId member_id,
969  DDS_MemberFlag flags );
970 
971  /***********************************************************
972  * DynamicTypeSupport *
973  ***********************************************************/
990  COREDX_C_DYNTYPE_API DDS_DynamicTypeSupport
991  DDS_DynamicTypeSupport_create_type_support ( const DDS_DynamicType type );
1001  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1002  DDS_DynamicTypeSupport_delete_type_support ( DDS_DynamicTypeSupport type_support );
1007  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1008  DDS_DynamicTypeSupport_register_type ( DDS_DynamicTypeSupport dts,
1009  const DDS_DomainParticipant participant,
1010  const char *type_name );
1016  COREDX_C_DYNTYPE_API const char *
1017  DDS_DynamicTypeSupport_get_type_name ( DDS_DynamicTypeSupport dts );
1023  COREDX_C_DYNTYPE_API DDS_DynamicType
1024  DDS_DynamicTypeSupport_get_type ( DDS_DynamicTypeSupport dts );
1025 
1031  COREDX_C_DYNTYPE_API DDS_DynamicData
1032  DDS_DynamicTypeSupport_create_dynamic_sample ( DDS_DynamicTypeSupport dts );
1033 
1034 
1035  /***********************************************************
1036  * DynamicType *
1037  ***********************************************************/
1045  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1046  DDS_DynamicType_get_descriptor ( DDS_DynamicType dt,
1047  DDS_TypeDescriptor * descriptor );
1054  COREDX_C_DYNTYPE_API const char *
1055  DDS_DynamicType_get_name ( DDS_DynamicType dt );
1061  COREDX_C_DYNTYPE_API DDS_TypeKind
1062  DDS_DynamicType_get_kind ( DDS_DynamicType dt );
1076  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1077  DDS_DynamicType_get_member_by_name ( DDS_DynamicType dt,
1078  DDS_DynamicTypeMember * member,
1079  const DDS_ObjectName name );
1088  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1089  DDS_DynamicType_get_all_members_by_name ( DDS_DynamicType dt,
1090  DDS_DynamicTypeMembersByName * member );
1104  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1105  DDS_DynamicType_get_member ( DDS_DynamicType dt,
1106  DDS_DynamicTypeMember * member,
1107  const DDS_MemberId id );
1116  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1117  DDS_DynamicType_get_all_members ( DDS_DynamicType dt,
1118  DDS_DynamicTypeMembersById * member );
1125  COREDX_C_DYNTYPE_API unsigned int
1126  DDS_DynamicType_get_annotation_count ( DDS_DynamicType dt );
1133  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1134  DDS_DynamicType_get_annotation ( DDS_DynamicType dt,
1135  DDS_AnnotationDescriptor * descriptor,
1136  const unsigned int idx );
1144  COREDX_C_DYNTYPE_API unsigned char
1145  DDS_DynamicType_equals ( DDS_DynamicType dt,
1146  const DDS_DynamicType other );
1147 
1148  /***********************************************************
1149  * AnnotationDescriptor *
1150  ***********************************************************/
1154  COREDX_C_DYNTYPE_API void
1155  DDS_AnnotationDescriptor_init ( DDS_AnnotationDescriptor * ad );
1159  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1160  DDS_AnnotationDescriptor_clear ( DDS_AnnotationDescriptor * ad );
1161 
1180  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1182  DDS_ObjectName * value,
1183  const DDS_ObjectName key );
1190  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1192  DDS_Parameters * value );
1198  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1200  const DDS_ObjectName key,
1201  const DDS_ObjectName value );
1207  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1209  const DDS_AnnotationDescriptor * other );
1215  COREDX_C_DYNTYPE_API unsigned char
1217  const DDS_AnnotationDescriptor * other );
1223  COREDX_C_DYNTYPE_API unsigned char
1230  COREDX_C_DYNTYPE_API DDS_DynamicType
1232 
1233  /***********************************************************
1234  * TypeDescriptor *
1235  ***********************************************************/
1236  COREDX_C_DYNTYPE_API void
1237  DDS_TypeDescriptor_init ( DDS_TypeDescriptor * td );
1238  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1239  DDS_TypeDescriptor_clear ( DDS_TypeDescriptor * td );
1240 
1252  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1253  DDS_TypeDescriptor_copy_from ( DDS_TypeDescriptor * to,
1254  const DDS_TypeDescriptor * from );
1262  COREDX_C_DYNTYPE_API unsigned char
1263  DDS_TypeDescriptor_equals ( const DDS_TypeDescriptor * td,
1264  const DDS_TypeDescriptor * other );
1274  COREDX_C_DYNTYPE_API unsigned char
1275  DDS_TypeDescriptor_is_consistent ( const DDS_TypeDescriptor * td );
1276 
1277  /***********************************************************
1278  * MemberDescriptor *
1279  ***********************************************************/
1280  COREDX_C_DYNTYPE_API void DDS_MemberDescriptor_init ( DDS_MemberDescriptor * md );
1281  COREDX_C_DYNTYPE_API DDS_ReturnCode_t DDS_MemberDescriptor_clear ( DDS_MemberDescriptor * md );
1282 
1295  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1296  DDS_MemberDescriptor_copy_from ( DDS_MemberDescriptor * to,
1297  const DDS_MemberDescriptor * from );
1305  COREDX_C_DYNTYPE_API unsigned char
1306  DDS_MemberDescriptor_equals ( DDS_MemberDescriptor * md,
1307  const DDS_MemberDescriptor * other );
1317  COREDX_C_DYNTYPE_API unsigned char
1318  DDS_MemberDescriptor_is_consistent ( DDS_MemberDescriptor * md );
1319 
1320  /***********************************************************
1321  * DynamicTypeMember *
1322  ***********************************************************/
1331  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1332  DDS_DynamicTypeMember_get_descriptor ( DDS_DynamicTypeMember dtm,
1333  DDS_MemberDescriptor * descriptor );
1340  COREDX_C_DYNTYPE_API unsigned int
1341  DDS_DynamicTypeMember_get_annotation_count ( DDS_DynamicTypeMember dtm );
1348  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1349  DDS_DynamicTypeMember_get_annotation ( DDS_DynamicTypeMember dtm,
1350  DDS_AnnotationDescriptor * descriptor,
1351  const unsigned int idx );
1359  COREDX_C_DYNTYPE_API unsigned char
1360  DDS_DynamicTypeMember_equals ( DDS_DynamicTypeMember dtm,
1361  const DDS_DynamicTypeMember other );
1368  COREDX_C_DYNTYPE_API DDS_MemberId
1369  DDS_DynamicTypeMember_get_id ( DDS_DynamicTypeMember dtm );
1376  COREDX_C_DYNTYPE_API const char *
1377  DDS_DynamicTypeMember_get_name ( DDS_DynamicTypeMember dtm );
1382  COREDX_C_DYNTYPE_API DDS_MemberFlag
1383  DDS_DynamicTypeMember_get_flags ( DDS_DynamicTypeMember dtm );
1388  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1389  DDS_DynamicTypeMember_set_flags ( DDS_DynamicTypeMember dtm, DDS_MemberFlag f );
1390 
1391  /***********************************************************
1392  * DynamicDataFactory *
1393  ***********************************************************/
1399  COREDX_C_DYNTYPE_API DDS_DynamicDataFactory
1400  DDS_DynamicDataFactory_get_instance ( void );
1406  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1407  DDS_DynamicDataFactory_delete_instance ( void );
1416  COREDX_C_DYNTYPE_API DDS_DynamicData
1417  DDS_DynamicDataFactory_create_data ( DDS_DynamicDataFactory ddf,
1418  DDS_DynamicType dt );
1423  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1424  DDS_DynamicDataFactory_delete_data ( DDS_DynamicDataFactory ddf,
1425  DDS_DynamicData data );
1426 
1427 
1428  /***********************************************************
1429  * DynamicData *
1430  ***********************************************************/
1436  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1437  DDS_DynamicData_get_type ( DDS_DynamicData dd,
1438  DDS_DynamicType * /* out, readonly */dyn_type );
1446  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1447  DDS_DynamicData_get_descriptor ( DDS_DynamicData dd,
1448  DDS_MemberDescriptor * value,
1449  const DDS_MemberId id );
1454  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1455  DDS_DynamicData_set_descriptor ( DDS_DynamicData dd,
1456  const DDS_MemberId id,
1457  const DDS_MemberDescriptor * value );
1472  COREDX_C_DYNTYPE_API unsigned char
1473  DDS_DynamicData_equals ( DDS_DynamicData dd,
1474  const DDS_DynamicData * other );
1479  COREDX_C_DYNTYPE_API DDS_MemberId
1480  DDS_DynamicData_get_member_id_by_name ( DDS_DynamicData dd,
1481  const DDS_ObjectName name );
1486  COREDX_C_DYNTYPE_API DDS_MemberId
1487  DDS_DynamicData_get_member_id_at_index ( DDS_DynamicData dd,
1488  const unsigned int index );
1511  COREDX_C_DYNTYPE_API unsigned int
1512  DDS_DynamicData_get_item_count ( DDS_DynamicData dd );
1539  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1540  DDS_DynamicData_clear_all_values ( DDS_DynamicData dd );
1546  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1547  DDS_DynamicData_clear_nonkey_values ( DDS_DynamicData dd );
1553  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1554  DDS_DynamicData_clear_value ( DDS_DynamicData dd,
1555  const DDS_MemberId id );
1573  COREDX_C_DYNTYPE_API DDS_DynamicData
1574  DDS_DynamicData_loan_value ( DDS_DynamicData dd,
1575  const DDS_MemberId id );
1586  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1587  DDS_DynamicData_return_loaned_value ( DDS_DynamicData dd,
1588  const DDS_DynamicData value );
1595  COREDX_C_DYNTYPE_API DDS_DynamicData
1596  DDS_DynamicData_clone ( DDS_DynamicData dd);
1608  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1609  DDS_DynamicData_get_int32_value ( DDS_DynamicData dd,
1610  int * value,
1611  const DDS_MemberId id );
1623  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1624  DDS_DynamicData_set_int32_value ( DDS_DynamicData dd,
1625  const DDS_MemberId id,
1626  const int value );
1638  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1639  DDS_DynamicData_get_uint32_value ( DDS_DynamicData dd,
1640  unsigned int * value,
1641  const DDS_MemberId id );
1653  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1654  DDS_DynamicData_set_uint32_value ( DDS_DynamicData dd,
1655  const DDS_MemberId id,
1656  const unsigned int value );
1668  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1669  DDS_DynamicData_get_int16_value ( DDS_DynamicData dd,
1670  short * value,
1671  const DDS_MemberId id );
1683  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1684  DDS_DynamicData_set_int16_value ( DDS_DynamicData dd,
1685  const DDS_MemberId id,
1686  const short value );
1698  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1699  DDS_DynamicData_get_uint16_value ( DDS_DynamicData dd,
1700  unsigned short * value,
1701  const DDS_MemberId id );
1713  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1714  DDS_DynamicData_set_uint16_value ( DDS_DynamicData dd,
1715  const DDS_MemberId id,
1716  const unsigned short value );
1728  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1729  DDS_DynamicData_get_int64_value ( DDS_DynamicData dd,
1730  int64_t * value,
1731  const DDS_MemberId id );
1743  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1744  DDS_DynamicData_set_int64_value ( DDS_DynamicData dd,
1745  const DDS_MemberId id,
1746  const int64_t value );
1758  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1759  DDS_DynamicData_get_uint64_value ( DDS_DynamicData dd,
1760  uint64_t * value,
1761  const DDS_MemberId id );
1773  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1774  DDS_DynamicData_set_uint64_value ( DDS_DynamicData dd,
1775  const DDS_MemberId id,
1776  const uint64_t value );
1788  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1789  DDS_DynamicData_get_float32_value ( DDS_DynamicData dd,
1790  float * value,
1791  const DDS_MemberId id );
1803  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1804  DDS_DynamicData_set_float32_value ( DDS_DynamicData dd,
1805  const DDS_MemberId id,
1806  const float value );
1818  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1819  DDS_DynamicData_get_float64_value ( DDS_DynamicData dd,
1820  double * value,
1821  const DDS_MemberId id );
1833  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1834  DDS_DynamicData_set_float64_value ( DDS_DynamicData dd,
1835  const DDS_MemberId id,
1836  const double value );
1848  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1849  DDS_DynamicData_get_char8_value ( DDS_DynamicData dd,
1850  char * value,
1851  const DDS_MemberId id );
1863  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1864  DDS_DynamicData_set_char8_value ( DDS_DynamicData dd,
1865  const DDS_MemberId id,
1866  const char value );
1878  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1879  DDS_DynamicData_get_char32_value ( DDS_DynamicData dd,
1880  cdx_char32_t * value,
1881  const DDS_MemberId id );
1893  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1894  DDS_DynamicData_set_char32_value ( DDS_DynamicData dd,
1895  const DDS_MemberId id,
1896  const cdx_char32_t value );
1908  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1909  DDS_DynamicData_get_byte_value ( DDS_DynamicData dd,
1910  unsigned char * value,
1911  const DDS_MemberId id );
1923  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1924  DDS_DynamicData_set_byte_value ( DDS_DynamicData dd,
1925  const DDS_MemberId id,
1926  const unsigned char value );
1938  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1939  DDS_DynamicData_get_boolean_value ( DDS_DynamicData dd,
1940  unsigned char * value,
1941  const DDS_MemberId id );
1953  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1954  DDS_DynamicData_set_boolean_value ( DDS_DynamicData dd,
1955  const DDS_MemberId id,
1956  const unsigned char value );
1968  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1969  DDS_DynamicData_get_string_value ( DDS_DynamicData dd,
1970  char * * value,
1971  const DDS_MemberId id );
1983  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1984  DDS_DynamicData_set_string_value ( DDS_DynamicData dd,
1985  const DDS_MemberId id,
1986  const char * value );
1998  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
1999  DDS_DynamicData_get_wstring_value ( DDS_DynamicData dd,
2000  cdx_char32_t * * value,
2001  const DDS_MemberId id );
2013  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2014  DDS_DynamicData_set_wstring_value ( DDS_DynamicData dd,
2015  const DDS_MemberId id,
2016  const cdx_char32_t * value );
2028  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2029  DDS_DynamicData_get_complex_value ( DDS_DynamicData dd,
2030  DDS_DynamicData * value,
2031  const DDS_MemberId id );
2043  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2044  DDS_DynamicData_set_complex_value ( DDS_DynamicData dd,
2045  const DDS_MemberId id,
2046  const DDS_DynamicData value ); /* copies 'value' */
2047  /* CoreDX DDS addition: */
2057  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2058  DDS_DynamicData_get_map_key_value ( DDS_DynamicData dd,
2059  const char ** key_str,
2060  const DDS_MemberId id );
2061 
2072  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2073  DDS_DynamicData_get_int32_values ( DDS_DynamicData dd,
2074  DDS_Int32Seq * value,
2075  const DDS_MemberId id );
2086  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2087  DDS_DynamicData_set_int32_values ( DDS_DynamicData dd,
2088  const DDS_MemberId id,
2089  const DDS_Int32Seq * value );
2100  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2101  DDS_DynamicData_get_uint32_values ( DDS_DynamicData dd,
2102  DDS_UInt32Seq * value,
2103  const DDS_MemberId id );
2113  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2114  DDS_DynamicData_set_uint32_values ( DDS_DynamicData dd,
2115  const DDS_MemberId id,
2116  const DDS_UInt32Seq * value );
2127  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2128  DDS_DynamicData_get_int16_values ( DDS_DynamicData dd,
2129  DDS_Int16Seq * value,
2130  const DDS_MemberId id );
2140  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2141  DDS_DynamicData_set_int16_values ( DDS_DynamicData dd,
2142  const DDS_MemberId id,
2143  const DDS_Int16Seq * value );
2154  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2155  DDS_DynamicData_get_uint16_values ( DDS_DynamicData dd,
2156  DDS_UInt16Seq * value,
2157  const DDS_MemberId id );
2167  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2168  DDS_DynamicData_set_uint16_values ( DDS_DynamicData dd,
2169  const DDS_MemberId id,
2170  const DDS_UInt16Seq * value );
2181  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2182  DDS_DynamicData_get_int64_values ( DDS_DynamicData dd,
2183  DDS_Int64Seq * value,
2184  const DDS_MemberId id );
2194  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2195  DDS_DynamicData_set_int64_values ( DDS_DynamicData dd,
2196  const DDS_MemberId id,
2197  const DDS_Int64Seq * value );
2208  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2209  DDS_DynamicData_get_uint64_values ( DDS_DynamicData dd,
2210  DDS_UInt64Seq * value,
2211  const DDS_MemberId id );
2221  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2222  DDS_DynamicData_set_uint64_values ( DDS_DynamicData dd,
2223  const DDS_MemberId id,
2224  const DDS_UInt64Seq * value );
2235  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2236  DDS_DynamicData_get_float32_values ( DDS_DynamicData dd,
2237  DDS_Float32Seq * value,
2238  const DDS_MemberId id );
2248  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2249  DDS_DynamicData_set_float32_values ( DDS_DynamicData dd,
2250  const DDS_MemberId id,
2251  const DDS_Float32Seq * value );
2262  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2263  DDS_DynamicData_get_float64_values ( DDS_DynamicData dd,
2264  DDS_Float64Seq * value,
2265  const DDS_MemberId id );
2275  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2276  DDS_DynamicData_set_float64_values ( DDS_DynamicData dd,
2277  const DDS_MemberId id,
2278  const DDS_Float64Seq * value );
2289  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2290  DDS_DynamicData_get_char8_values ( DDS_DynamicData dd,
2291  DDS_CharSeq * value,
2292  const DDS_MemberId id );
2302  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2303  DDS_DynamicData_set_char8_values ( DDS_DynamicData dd,
2304  const DDS_MemberId id,
2305  const DDS_CharSeq * value );
2316  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2317  DDS_DynamicData_get_char32_values ( DDS_DynamicData dd,
2318  DDS_WcharSeq * value,
2319  const DDS_MemberId id );
2329  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2330  DDS_DynamicData_set_char32_values ( DDS_DynamicData dd,
2331  const DDS_MemberId id,
2332  const DDS_WcharSeq * value );
2343  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2344  DDS_DynamicData_get_byte_values ( DDS_DynamicData dd,
2345  DDS_ByteSeq * value,
2346  const DDS_MemberId id );
2356  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2357  DDS_DynamicData_set_byte_values ( DDS_DynamicData dd,
2358  const DDS_MemberId id,
2359  const DDS_ByteSeq * value );
2370  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2371  DDS_DynamicData_get_boolean_values ( DDS_DynamicData dd,
2372  DDS_BooleanSeq * value,
2373  const DDS_MemberId id );
2383  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2384  DDS_DynamicData_set_boolean_values ( DDS_DynamicData dd,
2385  const DDS_MemberId id,
2386  const DDS_BooleanSeq * value );
2397  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2398  DDS_DynamicData_get_string_values ( DDS_DynamicData dd,
2399  DDS_StringSeq * value,
2400  const DDS_MemberId id );
2410  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2411  DDS_DynamicData_set_string_values ( DDS_DynamicData dd,
2412  const DDS_MemberId id,
2413  const DDS_StringSeq * value );
2424  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2425  DDS_DynamicData_get_wstring_values ( DDS_DynamicData dd,
2426  DDS_WstringSeq * value,
2427  const DDS_MemberId id );
2437  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2438  DDS_DynamicData_set_wstring_values ( DDS_DynamicData dd,
2439  const DDS_MemberId id,
2440  const DDS_WstringSeq * value );
2441 
2442  /* CDX API: This seems to be missing from standard API: */
2451  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2452  DDS_DynamicDataFactory_create_value ( DDS_DynamicDataFactory ddf,
2453  const DDS_DynamicData data,
2454  const DDS_MemberId id,
2455  DDS_DynamicData * value /* OUT */ );
2456 
2457 
2477  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2478  DDS_DynamicData_get_int32_ref ( DDS_DynamicData dd,
2479  int32_t ** value_ref,
2480  const DDS_MemberId id );
2481  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2482  DDS_DynamicData_get_uint32_ref ( DDS_DynamicData dd,
2483  uint32_t ** value_ref,
2484  const DDS_MemberId id );
2485  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2486  DDS_DynamicData_get_int64_ref ( DDS_DynamicData dd,
2487  int64_t ** value_ref,
2488  const DDS_MemberId id );
2489  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2490  DDS_DynamicData_get_uint64_ref ( DDS_DynamicData dd,
2491  uint64_t ** value_ref,
2492  const DDS_MemberId id );
2493  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2494  DDS_DynamicData_get_int16_ref ( DDS_DynamicData dd,
2495  int16_t ** value_ref,
2496  const DDS_MemberId id );
2497  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2498  DDS_DynamicData_get_uint16_ref ( DDS_DynamicData dd,
2499  uint16_t ** value_ref,
2500  const DDS_MemberId id );
2501  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2502  DDS_DynamicData_get_float32_ref ( DDS_DynamicData dd,
2503  float ** value_ref,
2504  const DDS_MemberId id );
2505  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2506  DDS_DynamicData_get_float64_ref ( DDS_DynamicData dd,
2507  double ** value_ref,
2508  const DDS_MemberId id );
2509  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2510  DDS_DynamicData_get_char8_ref ( DDS_DynamicData dd,
2511  char ** value_ref,
2512  const DDS_MemberId id );
2513  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2514  DDS_DynamicData_get_char32_ref ( DDS_DynamicData dd,
2515  cdx_char32_t ** value_ref,
2516  const DDS_MemberId id );
2517  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2518  DDS_DynamicData_get_byte_ref ( DDS_DynamicData dd,
2519  unsigned char ** value_ref,
2520  const DDS_MemberId id );
2521  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2522  DDS_DynamicData_get_boolean_ref ( DDS_DynamicData dd,
2523  unsigned char ** value_ref,
2524  const DDS_MemberId id );
2525  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2526  DDS_DynamicData_get_string_ref ( DDS_DynamicData dd,
2527  char* ** value_ref,
2528  const DDS_MemberId id );
2529  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2530  DDS_DynamicData_get_wstring_ref ( DDS_DynamicData dd,
2531  cdx_char32_t* ** value_ref,
2532  const DDS_MemberId id );
2533 
2538  COREDX_C_DYNTYPE_API DDS_ReturnCode_t
2539  DDS_DynamicData_copy ( DDS_DynamicData dest_dd,
2540  DDS_DynamicData src_dd );
2541 
2542 
2543 #ifdef __cplusplus
2544 }
2545 #endif /* __cplusplus */
2546 
2547 #endif
DDS_MemberId id
If this member belongs to an aggregated type, this property indicates the member’s ID...
Definition: xtypes_dtype.h:277
DDS_TypeKind kind
the &#39;kind&#39; of this type
Definition: xtypes_dtype.h:199
The DDS_DomainParticipant is used to configure, create and destroy Publisher, Subscriber and Topic ob...
COREDX_C_DYNTYPE_API unsigned char DDS_AnnotationDescriptor_equals(DDS_AnnotationDescriptor *ad, const DDS_AnnotationDescriptor *other)
COREDX_C_DYNTYPE_API DDS_ReturnCode_t DDS_AnnotationDescriptor_set_value(DDS_AnnotationDescriptor *ad, const DDS_ObjectName key, const DDS_ObjectName value)
A DDS_AnnotationDescriptor object comprises the state of an annotation as it is applied to some eleme...
Definition: xtypes_dtype.h:189
DDS_DynamicType type
Definition: xtypes_dtype.h:190
DDS_DynamicType key_element_type
If this descriptor represents a map type, this property indicates the value element type of the map...
Definition: xtypes_dtype.h:252
COREDX_C_DYNTYPE_API DDS_ReturnCode_t DDS_AnnotationDescriptor_get_all_value(const DDS_AnnotationDescriptor *ad, DDS_Parameters *value)
Access the map of all key-value pairs.
DDS_MAP_DECLARE(DDS_ObjectName, DDS_ObjectName, DDS_Parameters)
A DDS_Parameters instance is a key-value map.
DDS_DynamicType base_type
the &#39;base_type&#39; of this type
Definition: xtypes_dtype.h:212
unsigned int index
This property indicates the order of definition of this member within its type, relative to the typeâ€...
Definition: xtypes_dtype.h:324
int DDS_ReturnCode_t
Definition: dds_types.h:56
DDS_BoundSeq bound
The bound property indicates the bound of collection and similar types.
Definition: xtypes_dtype.h:230
COREDX_C_DYNTYPE_API DDS_DynamicType DDS_AnnotationDescriptor_get_type(const DDS_AnnotationDescriptor *ad)
DDS_UnionCaseLabelSeq label
If the type to which the member belongs is a union, this property indicates the case labels that appl...
Definition: xtypes_dtype.h:335
COREDX_C_DYNTYPE_API unsigned char DDS_AnnotationDescriptor_is_consistent(const DDS_AnnotationDescriptor *ad)
DDS_ObjectName name
the &#39;name&#39; of this type
Definition: xtypes_dtype.h:200
The DDS_DynamicTypeSupport interface extends the DDS_TypeSupport interface defined by the DDS specifi...
This type is responsible for creating DDS_DynamicData instances.
DDS_Parameters parameters
Definition: xtypes_dtype.h:191
COREDX_C_DYNTYPE_API DDS_ReturnCode_t DDS_AnnotationDescriptor_copy_from(DDS_AnnotationDescriptor *ad, const DDS_AnnotationDescriptor *other)
A DDS_TypeDescriptor comprises the state of a type.
Definition: xtypes_dtype.h:198
An instance of DDS_DynamicType represent a type’s schema: its physical name, kind, member definitions (if any), and so on.
A DDS_DynamicTypeMember represents a "member" of a type. A "member" in this sense may be a member of ...
A DDS_MemberDescriptor comprises the state of a DDS_DynamicTypeMember.
Definition: xtypes_dtype.h:259
DECLARE_SEQ(DDS_DynamicTypeMember, DDS_DynamicTypeMemberSeq)
A DDS_DynamicTypeMemberSeq instance is a sequence of DDS_DynamicTypeMember&#39;s.
DDS_DynamicType element_type
If this descriptor represents an array, sequence, or string type, this property indicates the element...
Definition: xtypes_dtype.h:244
unsigned char default_label
For this descriptor to be consistent, this property must be true if this descriptor identifies the de...
Definition: xtypes_dtype.h:346
DDS_DynamicType discriminator_type
If this descriptor represents a union type, this field indicates the type of the discriminator of the...
Definition: xtypes_dtype.h:216
DDS_ObjectName name
the &#39;name&#39; of this type
Definition: xtypes_dtype.h:260
A DDS_DynamicData object represents an individual data sample. It provides reflective getters and set...
A DDS_DynamicTypeBuilder object represents the state of a particular type defined according to the Ty...
DDS_DynamicType type
This property indicates the type of the member’s value.
Definition: xtypes_dtype.h:283
An instance of this type is responsible for creating DDS_DynamicType and DDS_DynamicTypeSupport objec...
char * default_value
This property provides the member’s default value in string form.
Definition: xtypes_dtype.h:302
COREDX_C_DYNTYPE_API DDS_ReturnCode_t DDS_AnnotationDescriptor_get_value(const DDS_AnnotationDescriptor *ad, DDS_ObjectName *value, const DDS_ObjectName key)
This accesses an annotation property &#39;value&#39; associated with the &#39;key&#39; name.

© 2009-2020 Twin Oaks Computing, Inc
Castle Rock, CO 80104
All rights reserved.