CoreDX DDS C Reference Manual
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-2016 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 
382  /***********************************************************
383  * DynamicTypeBuilderFactory *
384  ***********************************************************/
394  COREDX_C_ADD_API DDS_DynamicTypeBuilderFactory
395  DDS_DynamicTypeBuilderFactory_get_instance ( void );
402  COREDX_C_ADD_API DDS_ReturnCode_t
403  DDS_DynamicTypeBuilderFactory_delete_instance ( void );
410  COREDX_C_ADD_API DDS_DynamicType
411  DDS_DynamicTypeBuilderFactory_get_primitive_type ( DDS_DynamicTypeBuilderFactory dtbf,
412  const DDS_TypeKind kind );
424  COREDX_C_ADD_API DDS_DynamicTypeBuilder
425  DDS_DynamicTypeBuilderFactory_create_type ( DDS_DynamicTypeBuilderFactory dtbf,
426  const DDS_TypeDescriptor * descriptor );
435  COREDX_C_ADD_API DDS_DynamicTypeBuilder
436  DDS_DynamicTypeBuilderFactory_create_type_copy ( DDS_DynamicTypeBuilderFactory dtbf,
437  const DDS_DynamicType type );
448  COREDX_C_ADD_API DDS_DynamicTypeBuilder
449  DDS_DynamicTypeBuilderFactory_create_type_w_type_object ( DDS_DynamicTypeBuilderFactory dtbf,
450  const DDS_TypeObject * type_object );
467  COREDX_C_ADD_API DDS_DynamicTypeBuilder
468  DDS_DynamicTypeBuilderFactory_create_string_type ( DDS_DynamicTypeBuilderFactory dtbf,
469  const unsigned int bound );
486  COREDX_C_ADD_API DDS_DynamicTypeBuilder
487  DDS_DynamicTypeBuilderFactory_create_wstring_type ( DDS_DynamicTypeBuilderFactory dtbf,
488  const unsigned int bound );
510  COREDX_C_ADD_API DDS_DynamicTypeBuilder
511  DDS_DynamicTypeBuilderFactory_create_sequence_type ( DDS_DynamicTypeBuilderFactory dtbf,
512  const DDS_DynamicType element_type,
513  const unsigned int bound );
536  COREDX_C_ADD_API DDS_DynamicTypeBuilder
537  DDS_DynamicTypeBuilderFactory_create_array_type (DDS_DynamicTypeBuilderFactory dtbf,
538  const DDS_DynamicType element_type,
539  const DDS_BoundSeq * bound );
563  COREDX_C_ADD_API DDS_DynamicTypeBuilder
564  DDS_DynamicTypeBuilderFactory_create_map_type ( DDS_DynamicTypeBuilderFactory dtbf,
565  const DDS_DynamicType key_element_type,
566  const DDS_DynamicType element_type,
567  const unsigned int bound );
579  COREDX_C_ADD_API DDS_DynamicTypeBuilder
580  DDS_DynamicTypeBuilderFactory_create_bitset_type ( DDS_DynamicTypeBuilderFactory dtbf,
581  const unsigned int bound );
611  COREDX_C_ADD_API DDS_DynamicTypeBuilder
612  DDS_DynamicTypeBuilderFactory_create_type_w_uri ( DDS_DynamicTypeBuilderFactory dtbf,
613  const char * document_url,
614  const char * type_name,
615  const DDS_IncludePathSeq * include_paths );
646  COREDX_C_ADD_API DDS_DynamicTypeBuilder
647  DDS_DynamicTypeBuilderFactory_create_type_w_document ( DDS_DynamicTypeBuilderFactory dtbf,
648  const char * document,
649  const char * type_name,
650  const DDS_IncludePathSeq * include_paths );
651  /* CDX API: This seems to be missing from standard API */
659  COREDX_C_ADD_API DDS_ReturnCode_t
660  DDS_DynamicTypeBuilderFactory_delete_type_builder ( DDS_DynamicTypeBuilderFactory dtbf,
661  DDS_DynamicTypeBuilder type_builder );
670  COREDX_C_ADD_API DDS_ReturnCode_t
671  DDS_DynamicTypeBuilderFactory_delete_type ( DDS_DynamicTypeBuilderFactory dtbf,
672  DDS_DynamicType type );
673  /* CDX Helpers: (could use DDS_DynamicTypeBuilderFactory_create_type() directly */
686  COREDX_C_ADD_API DDS_DynamicTypeBuilder
687  DDS_DynamicTypeBuilderFactory_create_structure_type( DDS_DynamicTypeBuilderFactory dtbf,
688  DDS_DynamicType base_type);
699  COREDX_C_ADD_API DDS_DynamicTypeBuilder
700  DDS_DynamicTypeBuilderFactory_create_union_type ( DDS_DynamicTypeBuilderFactory dtbf);
710  COREDX_C_ADD_API DDS_DynamicTypeBuilder
711  DDS_DynamicTypeBuilderFactory_create_alias_type ( DDS_DynamicTypeBuilderFactory dtbf,
712  const DDS_DynamicType base_type );
723  COREDX_C_ADD_API DDS_DynamicTypeBuilder
724  DDS_DynamicTypeBuilderFactory_create_enumeration_type ( DDS_DynamicTypeBuilderFactory dtbf,
725  const unsigned int bound);
726 
736  COREDX_C_ADD_API DDS_ReturnCode_t
737  DDS_DynamicTypeBuilderFactory_create_extensibility_annotation( DDS_DynamicTypeBuilderFactory dtbf,
739  DDS_ExtensibilityKind ekind );
749  COREDX_C_ADD_API DDS_ReturnCode_t
750  DDS_DynamicTypeBuilderFactory_create_optional_annotation( DDS_DynamicTypeBuilderFactory dtbf,
752 
753 
754  /***********************************************************
755  * DynamicTypeBuilder *
756  ***********************************************************/
764  COREDX_C_ADD_API DDS_ReturnCode_t
765  DDS_DynamicTypeBuilder_get_descriptor ( DDS_DynamicTypeBuilder dtb,
766  DDS_TypeDescriptor * descriptor );
772  COREDX_C_ADD_API const char *
773  DDS_DynamicTypeBuilder_get_name ( DDS_DynamicTypeBuilder dtb );
780  COREDX_C_ADD_API DDS_TypeKind
781  DDS_DynamicTypeBuilder_get_kind ( DDS_DynamicTypeBuilder dtb );
795  COREDX_C_ADD_API DDS_ReturnCode_t
796  DDS_DynamicTypeBuilder_get_member_by_name ( DDS_DynamicTypeBuilder dtb,
797  DDS_DynamicTypeMember * member,
798  const DDS_ObjectName name );
807  COREDX_C_ADD_API DDS_ReturnCode_t
808  DDS_DynamicTypeBuilder_get_all_members_by_name ( DDS_DynamicTypeBuilder dtb,
809  DDS_DynamicTypeMembersByName * member );
823  COREDX_C_ADD_API DDS_ReturnCode_t
824  DDS_DynamicTypeBuilder_get_member ( DDS_DynamicTypeBuilder dtb,
825  DDS_DynamicTypeMember * member,
826  const DDS_MemberId id );
835  COREDX_C_ADD_API DDS_ReturnCode_t
836  DDS_DynamicTypeBuilder_get_all_members ( DDS_DynamicTypeBuilder dtb,
837  DDS_DynamicTypeMembersById * member );
844  COREDX_C_ADD_API unsigned int
845  DDS_DynamicTypeBuilder_get_annotation_count ( DDS_DynamicTypeBuilder dtb );
852  COREDX_C_ADD_API DDS_ReturnCode_t
853  DDS_DynamicTypeBuilder_get_annotation ( DDS_DynamicTypeBuilder dtb,
854  DDS_AnnotationDescriptor * descriptor,
855  const unsigned int idx );
863  COREDX_C_ADD_API unsigned char
864  DDS_DynamicTypeBuilder_equals ( DDS_DynamicTypeBuilder dtb,
865  const DDS_DynamicType other );
875  COREDX_C_ADD_API DDS_ReturnCode_t
876  DDS_DynamicTypeBuilder_add_member ( DDS_DynamicTypeBuilder dtb,
877  const DDS_MemberDescriptor * descriptor );
888  COREDX_C_ADD_API DDS_ReturnCode_t
889  DDS_DynamicTypeBuilder_apply_annotation ( DDS_DynamicTypeBuilder dtb,
890  const DDS_AnnotationDescriptor * descriptor );
891 
900  COREDX_C_ADD_API DDS_ReturnCode_t
901  DDS_DynamicTypeBuilder_set_extensibility ( DDS_DynamicTypeBuilder dtb,
902  uint32_t ext );
910  COREDX_C_ADD_API DDS_DynamicType
911  DDS_DynamicTypeBuilder_build ( DDS_DynamicTypeBuilder dtb );
912  /* CDX API: This seems to be missing from standard API */
919  COREDX_C_ADD_API DDS_ReturnCode_t
920  DDS_DynamicTypeBuilder_delete_type ( DDS_DynamicTypeBuilder dtb,
921  DDS_DynamicType type );
922 
923  /***********************************************************
924  * DynamicTypeSupport *
925  ***********************************************************/
942  COREDX_C_ADD_API DDS_DynamicTypeSupport
943  DDS_DynamicTypeSupport_create_type_support ( const DDS_DynamicType type );
953  COREDX_C_ADD_API DDS_ReturnCode_t
954  DDS_DynamicTypeSupport_delete_type_support ( DDS_DynamicTypeSupport type_support );
959  COREDX_C_ADD_API DDS_ReturnCode_t
960  DDS_DynamicTypeSupport_register_type ( DDS_DynamicTypeSupport dts,
961  const DDS_DomainParticipant participant,
962  const char *type_name );
968  COREDX_C_ADD_API const char *
969  DDS_DynamicTypeSupport_get_type_name ( DDS_DynamicTypeSupport dts );
975  COREDX_C_ADD_API DDS_DynamicType
976  DDS_DynamicTypeSupport_get_type ( DDS_DynamicTypeSupport dts );
977 
978 
979  /***********************************************************
980  * DynamicType *
981  ***********************************************************/
989  COREDX_C_ADD_API DDS_ReturnCode_t
990  DDS_DynamicType_get_descriptor ( DDS_DynamicType dt,
991  DDS_TypeDescriptor * descriptor );
998  COREDX_C_ADD_API const char *
999  DDS_DynamicType_get_name ( DDS_DynamicType dt );
1005  COREDX_C_ADD_API DDS_TypeKind
1006  DDS_DynamicType_get_kind ( DDS_DynamicType dt );
1020  COREDX_C_ADD_API DDS_ReturnCode_t
1021  DDS_DynamicType_get_member_by_name ( DDS_DynamicType dt,
1022  DDS_DynamicTypeMember * member,
1023  const DDS_ObjectName name );
1032  COREDX_C_ADD_API DDS_ReturnCode_t
1033  DDS_DynamicType_get_all_members_by_name ( DDS_DynamicType dt,
1034  DDS_DynamicTypeMembersByName * member );
1048  COREDX_C_ADD_API DDS_ReturnCode_t
1049  DDS_DynamicType_get_member ( DDS_DynamicType dt,
1050  DDS_DynamicTypeMember * member,
1051  const DDS_MemberId id );
1060  COREDX_C_ADD_API DDS_ReturnCode_t
1061  DDS_DynamicType_get_all_members ( DDS_DynamicType dt,
1062  DDS_DynamicTypeMembersById * member );
1069  COREDX_C_ADD_API unsigned int
1070  DDS_DynamicType_get_annotation_count ( DDS_DynamicType dt );
1077  COREDX_C_ADD_API DDS_ReturnCode_t
1078  DDS_DynamicType_get_annotation ( DDS_DynamicType dt,
1079  DDS_AnnotationDescriptor * descriptor,
1080  const unsigned int idx );
1088  COREDX_C_ADD_API unsigned char
1089  DDS_DynamicType_equals ( DDS_DynamicType dt,
1090  const DDS_DynamicType other );
1091 
1092  /***********************************************************
1093  * AnnotationDescriptor *
1094  ***********************************************************/
1098  COREDX_C_ADD_API void
1099  DDS_AnnotationDescriptor_init ( DDS_AnnotationDescriptor * ad );
1103  COREDX_C_ADD_API DDS_ReturnCode_t
1104  DDS_AnnotationDescriptor_clear ( DDS_AnnotationDescriptor * ad );
1105 
1124  COREDX_C_ADD_API DDS_ReturnCode_t
1126  DDS_ObjectName * value,
1127  const DDS_ObjectName key );
1134  COREDX_C_ADD_API DDS_ReturnCode_t
1136  DDS_Parameters * value );
1142  COREDX_C_ADD_API DDS_ReturnCode_t
1144  const DDS_ObjectName key,
1145  const DDS_ObjectName value );
1151  COREDX_C_ADD_API DDS_ReturnCode_t
1153  const DDS_AnnotationDescriptor * other );
1159  COREDX_C_ADD_API unsigned char
1161  const DDS_AnnotationDescriptor * other );
1167  COREDX_C_ADD_API unsigned char
1174  COREDX_C_ADD_API DDS_DynamicType
1176 
1177  /***********************************************************
1178  * TypeDescriptor *
1179  ***********************************************************/
1180  COREDX_C_ADD_API void
1181  DDS_TypeDescriptor_init ( DDS_TypeDescriptor * td );
1182  COREDX_C_ADD_API DDS_ReturnCode_t
1183  DDS_TypeDescriptor_clear ( DDS_TypeDescriptor * td );
1184 
1196  COREDX_C_ADD_API DDS_ReturnCode_t
1197  DDS_TypeDescriptor_copy_from ( DDS_TypeDescriptor * to,
1198  const DDS_TypeDescriptor * from );
1206  COREDX_C_ADD_API unsigned char
1207  DDS_TypeDescriptor_equals ( const DDS_TypeDescriptor * td,
1208  const DDS_TypeDescriptor * other );
1218  COREDX_C_ADD_API unsigned char
1219  DDS_TypeDescriptor_is_consistent ( const DDS_TypeDescriptor * td );
1220 
1221  /***********************************************************
1222  * MemberDescriptor *
1223  ***********************************************************/
1224  COREDX_C_ADD_API void DDS_MemberDescriptor_init ( DDS_MemberDescriptor * md );
1225  COREDX_C_ADD_API DDS_ReturnCode_t DDS_MemberDescriptor_clear ( DDS_MemberDescriptor * md );
1226 
1239  COREDX_C_ADD_API DDS_ReturnCode_t
1240  DDS_MemberDescriptor_copy_from ( DDS_MemberDescriptor * to,
1241  const DDS_MemberDescriptor * from );
1249  COREDX_C_ADD_API unsigned char
1250  DDS_MemberDescriptor_equals ( DDS_MemberDescriptor * md,
1251  const DDS_MemberDescriptor * other );
1261  COREDX_C_ADD_API unsigned char
1262  DDS_MemberDescriptor_is_consistent ( DDS_MemberDescriptor * md );
1263 
1264  /***********************************************************
1265  * DynamicTypeMember *
1266  ***********************************************************/
1275  COREDX_C_ADD_API DDS_ReturnCode_t
1276  DDS_DynamicTypeMember_get_descriptor ( DDS_DynamicTypeMember dtm,
1277  DDS_MemberDescriptor * descriptor );
1284  COREDX_C_ADD_API unsigned int
1285  DDS_DynamicTypeMember_get_annotation_count ( DDS_DynamicTypeMember dtm );
1292  COREDX_C_ADD_API DDS_ReturnCode_t
1293  DDS_DynamicTypeMember_get_annotation ( DDS_DynamicTypeMember dtm,
1294  DDS_AnnotationDescriptor * descriptor,
1295  const unsigned int idx );
1303  COREDX_C_ADD_API unsigned char
1304  DDS_DynamicTypeMember_equals ( DDS_DynamicTypeMember dtm,
1305  const DDS_DynamicTypeMember other );
1312  COREDX_C_ADD_API DDS_MemberId
1313  DDS_DynamicTypeMember_get_id ( DDS_DynamicTypeMember dtm );
1320  COREDX_C_ADD_API const char *
1321  DDS_DynamicTypeMember_get_name ( DDS_DynamicTypeMember dtm );
1326  COREDX_C_ADD_API DDS_MemberFlag
1327  DDS_DynamicTypeMember_get_flags ( DDS_DynamicTypeMember dtm );
1332  COREDX_C_ADD_API DDS_ReturnCode_t
1333  DDS_DynamicTypeMember_set_flags ( DDS_DynamicTypeMember dtm, DDS_MemberFlag f );
1334 
1335  /***********************************************************
1336  * DynamicDataFactory *
1337  ***********************************************************/
1343  COREDX_C_ADD_API DDS_DynamicDataFactory
1344  DDS_DynamicDataFactory_get_instance ( void );
1350  COREDX_C_ADD_API DDS_ReturnCode_t
1351  DDS_DynamicDataFactory_delete_instance ( void );
1360  COREDX_C_ADD_API DDS_DynamicData
1361  DDS_DynamicDataFactory_create_data ( DDS_DynamicDataFactory ddf,
1362  DDS_DynamicType dt );
1367  COREDX_C_ADD_API DDS_ReturnCode_t
1368  DDS_DynamicDataFactory_delete_data ( DDS_DynamicDataFactory ddf,
1369  DDS_DynamicData data );
1370 
1371 
1372  /***********************************************************
1373  * DynamicData *
1374  ***********************************************************/
1380  COREDX_C_ADD_API DDS_ReturnCode_t
1381  DDS_DynamicData_get_type ( DDS_DynamicData dd,
1382  DDS_DynamicType * /* out, readonly */dyn_type );
1390  COREDX_C_ADD_API DDS_ReturnCode_t
1391  DDS_DynamicData_get_descriptor ( DDS_DynamicData dd,
1392  DDS_MemberDescriptor * value,
1393  const DDS_MemberId id );
1398  COREDX_C_ADD_API DDS_ReturnCode_t
1399  DDS_DynamicData_set_descriptor ( DDS_DynamicData dd,
1400  const DDS_MemberId id,
1401  const DDS_MemberDescriptor * value );
1416  COREDX_C_ADD_API unsigned char
1417  DDS_DynamicData_equals ( DDS_DynamicData dd,
1418  const DDS_DynamicData * other );
1423  COREDX_C_ADD_API DDS_MemberId
1424  DDS_DynamicData_get_member_id_by_name ( DDS_DynamicData dd,
1425  const DDS_ObjectName name );
1430  COREDX_C_ADD_API DDS_MemberId
1431  DDS_DynamicData_get_member_id_at_index ( DDS_DynamicData dd,
1432  const unsigned int index );
1455  COREDX_C_ADD_API unsigned int
1456  DDS_DynamicData_get_item_count ( DDS_DynamicData dd );
1483  COREDX_C_ADD_API DDS_ReturnCode_t
1484  DDS_DynamicData_clear_all_values ( DDS_DynamicData dd );
1490  COREDX_C_ADD_API DDS_ReturnCode_t
1491  DDS_DynamicData_clear_nonkey_values ( DDS_DynamicData dd );
1497  COREDX_C_ADD_API DDS_ReturnCode_t
1498  DDS_DynamicData_clear_value ( DDS_DynamicData dd,
1499  const DDS_MemberId id );
1517  COREDX_C_ADD_API DDS_DynamicData
1518  DDS_DynamicData_loan_value ( DDS_DynamicData dd,
1519  const DDS_MemberId id );
1530  COREDX_C_ADD_API DDS_ReturnCode_t
1531  DDS_DynamicData_return_loaned_value ( DDS_DynamicData dd,
1532  const DDS_DynamicData value );
1539  COREDX_C_ADD_API DDS_DynamicData
1540  DDS_DynamicData_clone ( DDS_DynamicData dd);
1552  COREDX_C_ADD_API DDS_ReturnCode_t
1553  DDS_DynamicData_get_int32_value ( DDS_DynamicData dd,
1554  int * value,
1555  const DDS_MemberId id );
1567  COREDX_C_ADD_API DDS_ReturnCode_t
1568  DDS_DynamicData_set_int32_value ( DDS_DynamicData dd,
1569  const DDS_MemberId id,
1570  const int value );
1582  COREDX_C_ADD_API DDS_ReturnCode_t
1583  DDS_DynamicData_get_uint32_value ( DDS_DynamicData dd,
1584  unsigned int * value,
1585  const DDS_MemberId id );
1597  COREDX_C_ADD_API DDS_ReturnCode_t
1598  DDS_DynamicData_set_uint32_value ( DDS_DynamicData dd,
1599  const DDS_MemberId id,
1600  const unsigned int value );
1612  COREDX_C_ADD_API DDS_ReturnCode_t
1613  DDS_DynamicData_get_int16_value ( DDS_DynamicData dd,
1614  short * value,
1615  const DDS_MemberId id );
1627  COREDX_C_ADD_API DDS_ReturnCode_t
1628  DDS_DynamicData_set_int16_value ( DDS_DynamicData dd,
1629  const DDS_MemberId id,
1630  const short value );
1642  COREDX_C_ADD_API DDS_ReturnCode_t
1643  DDS_DynamicData_get_uint16_value ( DDS_DynamicData dd,
1644  unsigned short * value,
1645  const DDS_MemberId id );
1657  COREDX_C_ADD_API DDS_ReturnCode_t
1658  DDS_DynamicData_set_uint16_value ( DDS_DynamicData dd,
1659  const DDS_MemberId id,
1660  const unsigned short value );
1672  COREDX_C_ADD_API DDS_ReturnCode_t
1673  DDS_DynamicData_get_int64_value ( DDS_DynamicData dd,
1674  int64_t * value,
1675  const DDS_MemberId id );
1687  COREDX_C_ADD_API DDS_ReturnCode_t
1688  DDS_DynamicData_set_int64_value ( DDS_DynamicData dd,
1689  const DDS_MemberId id,
1690  const int64_t value );
1702  COREDX_C_ADD_API DDS_ReturnCode_t
1703  DDS_DynamicData_get_uint64_value ( DDS_DynamicData dd,
1704  uint64_t * value,
1705  const DDS_MemberId id );
1717  COREDX_C_ADD_API DDS_ReturnCode_t
1718  DDS_DynamicData_set_uint64_value ( DDS_DynamicData dd,
1719  const DDS_MemberId id,
1720  const uint64_t value );
1732  COREDX_C_ADD_API DDS_ReturnCode_t
1733  DDS_DynamicData_get_float32_value ( DDS_DynamicData dd,
1734  float * value,
1735  const DDS_MemberId id );
1747  COREDX_C_ADD_API DDS_ReturnCode_t
1748  DDS_DynamicData_set_float32_value ( DDS_DynamicData dd,
1749  const DDS_MemberId id,
1750  const float value );
1762  COREDX_C_ADD_API DDS_ReturnCode_t
1763  DDS_DynamicData_get_float64_value ( DDS_DynamicData dd,
1764  double * value,
1765  const DDS_MemberId id );
1777  COREDX_C_ADD_API DDS_ReturnCode_t
1778  DDS_DynamicData_set_float64_value ( DDS_DynamicData dd,
1779  const DDS_MemberId id,
1780  const double value );
1792  COREDX_C_ADD_API DDS_ReturnCode_t
1793  DDS_DynamicData_get_char8_value ( DDS_DynamicData dd,
1794  char * value,
1795  const DDS_MemberId id );
1807  COREDX_C_ADD_API DDS_ReturnCode_t
1808  DDS_DynamicData_set_char8_value ( DDS_DynamicData dd,
1809  const DDS_MemberId id,
1810  const char value );
1822  COREDX_C_ADD_API DDS_ReturnCode_t
1823  DDS_DynamicData_get_char32_value ( DDS_DynamicData dd,
1824  cdx_char32_t * value,
1825  const DDS_MemberId id );
1837  COREDX_C_ADD_API DDS_ReturnCode_t
1838  DDS_DynamicData_set_char32_value ( DDS_DynamicData dd,
1839  const DDS_MemberId id,
1840  const cdx_char32_t value );
1852  COREDX_C_ADD_API DDS_ReturnCode_t
1853  DDS_DynamicData_get_byte_value ( DDS_DynamicData dd,
1854  unsigned char * value,
1855  const DDS_MemberId id );
1867  COREDX_C_ADD_API DDS_ReturnCode_t
1868  DDS_DynamicData_set_byte_value ( DDS_DynamicData dd,
1869  const DDS_MemberId id,
1870  const unsigned char value );
1882  COREDX_C_ADD_API DDS_ReturnCode_t
1883  DDS_DynamicData_get_boolean_value ( DDS_DynamicData dd,
1884  unsigned char * value,
1885  const DDS_MemberId id );
1897  COREDX_C_ADD_API DDS_ReturnCode_t
1898  DDS_DynamicData_set_boolean_value ( DDS_DynamicData dd,
1899  const DDS_MemberId id,
1900  const unsigned char value );
1912  COREDX_C_ADD_API DDS_ReturnCode_t
1913  DDS_DynamicData_get_string_value ( DDS_DynamicData dd,
1914  char * * value,
1915  const DDS_MemberId id );
1927  COREDX_C_ADD_API DDS_ReturnCode_t
1928  DDS_DynamicData_set_string_value ( DDS_DynamicData dd,
1929  const DDS_MemberId id,
1930  const char * value );
1942  COREDX_C_ADD_API DDS_ReturnCode_t
1943  DDS_DynamicData_get_wstring_value ( DDS_DynamicData dd,
1944  cdx_char32_t * * value,
1945  const DDS_MemberId id );
1957  COREDX_C_ADD_API DDS_ReturnCode_t
1958  DDS_DynamicData_set_wstring_value ( DDS_DynamicData dd,
1959  const DDS_MemberId id,
1960  const cdx_char32_t * value );
1972  COREDX_C_ADD_API DDS_ReturnCode_t
1973  DDS_DynamicData_get_complex_value ( DDS_DynamicData dd,
1974  DDS_DynamicData * value,
1975  const DDS_MemberId id );
1987  COREDX_C_ADD_API DDS_ReturnCode_t
1988  DDS_DynamicData_set_complex_value ( DDS_DynamicData dd,
1989  const DDS_MemberId id,
1990  const DDS_DynamicData value ); /* copies 'value' */
1991  /* CoreDX DDS addition: */
2001  COREDX_C_ADD_API DDS_ReturnCode_t
2002  DDS_DynamicData_get_map_key_value ( DDS_DynamicData dd,
2003  const char ** key_str,
2004  const DDS_MemberId id );
2005 
2016  COREDX_C_ADD_API DDS_ReturnCode_t
2017  DDS_DynamicData_get_int32_values ( DDS_DynamicData dd,
2018  DDS_Int32Seq * value,
2019  const DDS_MemberId id );
2030  COREDX_C_ADD_API DDS_ReturnCode_t
2031  DDS_DynamicData_set_int32_values ( DDS_DynamicData dd,
2032  const DDS_MemberId id,
2033  const DDS_Int32Seq * value );
2044  COREDX_C_ADD_API DDS_ReturnCode_t
2045  DDS_DynamicData_get_uint32_values ( DDS_DynamicData dd,
2046  DDS_UInt32Seq * value,
2047  const DDS_MemberId id );
2057  COREDX_C_ADD_API DDS_ReturnCode_t
2058  DDS_DynamicData_set_uint32_values ( DDS_DynamicData dd,
2059  const DDS_MemberId id,
2060  const DDS_UInt32Seq * value );
2071  COREDX_C_ADD_API DDS_ReturnCode_t
2072  DDS_DynamicData_get_int16_values ( DDS_DynamicData dd,
2073  DDS_Int16Seq * value,
2074  const DDS_MemberId id );
2084  COREDX_C_ADD_API DDS_ReturnCode_t
2085  DDS_DynamicData_set_int16_values ( DDS_DynamicData dd,
2086  const DDS_MemberId id,
2087  const DDS_Int16Seq * value );
2098  COREDX_C_ADD_API DDS_ReturnCode_t
2099  DDS_DynamicData_get_uint16_values ( DDS_DynamicData dd,
2100  DDS_UInt16Seq * value,
2101  const DDS_MemberId id );
2111  COREDX_C_ADD_API DDS_ReturnCode_t
2112  DDS_DynamicData_set_uint16_values ( DDS_DynamicData dd,
2113  const DDS_MemberId id,
2114  const DDS_UInt16Seq * value );
2125  COREDX_C_ADD_API DDS_ReturnCode_t
2126  DDS_DynamicData_get_int64_values ( DDS_DynamicData dd,
2127  DDS_Int64Seq * value,
2128  const DDS_MemberId id );
2138  COREDX_C_ADD_API DDS_ReturnCode_t
2139  DDS_DynamicData_set_int64_values ( DDS_DynamicData dd,
2140  const DDS_MemberId id,
2141  const DDS_Int64Seq * value );
2152  COREDX_C_ADD_API DDS_ReturnCode_t
2153  DDS_DynamicData_get_uint64_values ( DDS_DynamicData dd,
2154  DDS_UInt64Seq * value,
2155  const DDS_MemberId id );
2165  COREDX_C_ADD_API DDS_ReturnCode_t
2166  DDS_DynamicData_set_uint64_values ( DDS_DynamicData dd,
2167  const DDS_MemberId id,
2168  const DDS_UInt64Seq * value );
2179  COREDX_C_ADD_API DDS_ReturnCode_t
2180  DDS_DynamicData_get_float32_values ( DDS_DynamicData dd,
2181  DDS_Float32Seq * value,
2182  const DDS_MemberId id );
2192  COREDX_C_ADD_API DDS_ReturnCode_t
2193  DDS_DynamicData_set_float32_values ( DDS_DynamicData dd,
2194  const DDS_MemberId id,
2195  const DDS_Float32Seq * value );
2206  COREDX_C_ADD_API DDS_ReturnCode_t
2207  DDS_DynamicData_get_float64_values ( DDS_DynamicData dd,
2208  DDS_Float64Seq * value,
2209  const DDS_MemberId id );
2219  COREDX_C_ADD_API DDS_ReturnCode_t
2220  DDS_DynamicData_set_float64_values ( DDS_DynamicData dd,
2221  const DDS_MemberId id,
2222  const DDS_Float64Seq * value );
2233  COREDX_C_ADD_API DDS_ReturnCode_t
2234  DDS_DynamicData_get_char8_values ( DDS_DynamicData dd,
2235  DDS_CharSeq * value,
2236  const DDS_MemberId id );
2246  COREDX_C_ADD_API DDS_ReturnCode_t
2247  DDS_DynamicData_set_char8_values ( DDS_DynamicData dd,
2248  const DDS_MemberId id,
2249  const DDS_CharSeq * value );
2260  COREDX_C_ADD_API DDS_ReturnCode_t
2261  DDS_DynamicData_get_char32_values ( DDS_DynamicData dd,
2262  DDS_WcharSeq * value,
2263  const DDS_MemberId id );
2273  COREDX_C_ADD_API DDS_ReturnCode_t
2274  DDS_DynamicData_set_char32_values ( DDS_DynamicData dd,
2275  const DDS_MemberId id,
2276  const DDS_WcharSeq * value );
2287  COREDX_C_ADD_API DDS_ReturnCode_t
2288  DDS_DynamicData_get_byte_values ( DDS_DynamicData dd,
2289  DDS_ByteSeq * value,
2290  const DDS_MemberId id );
2300  COREDX_C_ADD_API DDS_ReturnCode_t
2301  DDS_DynamicData_set_byte_values ( DDS_DynamicData dd,
2302  const DDS_MemberId id,
2303  const DDS_ByteSeq * value );
2314  COREDX_C_ADD_API DDS_ReturnCode_t
2315  DDS_DynamicData_get_boolean_values ( DDS_DynamicData dd,
2316  DDS_BooleanSeq * value,
2317  const DDS_MemberId id );
2327  COREDX_C_ADD_API DDS_ReturnCode_t
2328  DDS_DynamicData_set_boolean_values ( DDS_DynamicData dd,
2329  const DDS_MemberId id,
2330  const DDS_BooleanSeq * value );
2341  COREDX_C_ADD_API DDS_ReturnCode_t
2342  DDS_DynamicData_get_string_values ( DDS_DynamicData dd,
2343  DDS_StringSeq * value,
2344  const DDS_MemberId id );
2354  COREDX_C_ADD_API DDS_ReturnCode_t
2355  DDS_DynamicData_set_string_values ( DDS_DynamicData dd,
2356  const DDS_MemberId id,
2357  const DDS_StringSeq * value );
2368  COREDX_C_ADD_API DDS_ReturnCode_t
2369  DDS_DynamicData_get_wstring_values ( DDS_DynamicData dd,
2370  DDS_WstringSeq * value,
2371  const DDS_MemberId id );
2381  COREDX_C_ADD_API DDS_ReturnCode_t
2382  DDS_DynamicData_set_wstring_values ( DDS_DynamicData dd,
2383  const DDS_MemberId id,
2384  const DDS_WstringSeq * value );
2385 
2386  /* CDX API: This seems to be missing from standard API: */
2395  COREDX_C_ADD_API DDS_ReturnCode_t
2396  DDS_DynamicDataFactory_create_value ( DDS_DynamicDataFactory ddf,
2397  const DDS_DynamicData data,
2398  const DDS_MemberId id,
2399  DDS_DynamicData * value /* OUT */ );
2400 #ifdef __cplusplus
2401 };
2402 #endif /* __cplusplus */
2403 
2404 #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...
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
unsigned char DDS_AnnotationDescriptor_equals(DDS_AnnotationDescriptor *ad, const DDS_AnnotationDescriptor *other)
DDS_DynamicType DDS_AnnotationDescriptor_get_type(const DDS_AnnotationDescriptor *ad)
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
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
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
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.
unsigned char DDS_AnnotationDescriptor_is_consistent(const DDS_AnnotationDescriptor *ad)
DDS_Parameters parameters
Definition: xtypes_dtype.h:191
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
DDS_ReturnCode_t DDS_AnnotationDescriptor_set_value(DDS_AnnotationDescriptor *ad, const DDS_ObjectName key, const DDS_ObjectName value)
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_ReturnCode_t DDS_AnnotationDescriptor_get_all_value(const DDS_AnnotationDescriptor *ad, DDS_Parameters *value)
Access the map of all key-value pairs.
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
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.
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
DDS_ReturnCode_t DDS_AnnotationDescriptor_copy_from(DDS_AnnotationDescriptor *ad, const DDS_AnnotationDescriptor *other)

© 2009-2017 Twin Oaks Computing, Inc
Castle Rock, CO 80108
All rights reserved.