25 #ifndef COREDX_DYNTYPE_H 26 #define COREDX_DYNTYPE_H 28 #include <dds/dds_types.h> 29 #include <dds/dds_typecode.h> 35 typedef struct _TypeDefinition * CDX_TypeDefinition;
55 typedef struct CDX_DynamicType_EnumConstant {
58 } CDX_DynamicType_EnumConstant_t;
60 typedef struct CDX_DynamicType_BitsetFlag {
63 } CDX_DynamicType_BitsetFlag_t;
82 COREDX_C_ADD_API
DDS_TypeCodeKind CDX_DynamicType_get_type( CDX_DynamicType t );
89 COREDX_C_ADD_API
unsigned char CDX_DynamicType_get_octet( CDX_DynamicType t );
94 COREDX_C_ADD_API
unsigned char CDX_DynamicType_get_boolean( CDX_DynamicType t );
99 COREDX_C_ADD_API
char CDX_DynamicType_get_char( CDX_DynamicType t );
104 COREDX_C_ADD_API int16_t CDX_DynamicType_get_short( CDX_DynamicType t );
109 COREDX_C_ADD_API uint16_t CDX_DynamicType_get_ushort( CDX_DynamicType t );
114 COREDX_C_ADD_API int32_t CDX_DynamicType_get_long( CDX_DynamicType t );
119 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_ulong( CDX_DynamicType t );
124 COREDX_C_ADD_API int64_t CDX_DynamicType_get_longlong( CDX_DynamicType t );
129 COREDX_C_ADD_API uint64_t CDX_DynamicType_get_ulonglong( CDX_DynamicType t );
134 COREDX_C_ADD_API
float CDX_DynamicType_get_float( CDX_DynamicType t );
139 COREDX_C_ADD_API
double CDX_DynamicType_get_double( CDX_DynamicType t );
153 COREDX_C_ADD_API int32_t CDX_DynamicType_enum_get_size( CDX_DynamicType t );
159 COREDX_C_ADD_API int32_t CDX_DynamicType_enum_get_num_constants( CDX_DynamicType t);
168 COREDX_C_ADD_API
void CDX_DynamicType_EnumConstant_delete( CDX_DynamicType_EnumConstant_t * ec);
176 COREDX_C_ADD_API CDX_DynamicType_EnumConstant_t * CDX_DynamicType_enum_get_constant( CDX_DynamicType t,
184 COREDX_C_ADD_API CDX_DynamicType_EnumConstant_t * CDX_DynamicType_enum_get_constant_by_name( CDX_DynamicType t,
192 COREDX_C_ADD_API CDX_DynamicType_EnumConstant_t * CDX_DynamicType_enum_get_constant_by_value( CDX_DynamicType t,
197 COREDX_C_ADD_API uint32_t CDX_DynamicType_enum_get_value( CDX_DynamicType t );
204 COREDX_C_ADD_API int32_t CDX_DynamicType_bitset_get_size( CDX_DynamicType t );
208 COREDX_C_ADD_API uint64_t CDX_DynamicType_bitset_get_value( CDX_DynamicType t );
214 COREDX_C_ADD_API int32_t CDX_DynamicType_bitset_get_num_flags( CDX_DynamicType t);
222 COREDX_C_ADD_API
void CDX_DynamicType_BitsetFlag_delete( CDX_DynamicType_BitsetFlag_t * bf);
230 COREDX_C_ADD_API CDX_DynamicType_BitsetFlag_t * CDX_DynamicType_bitset_get_flag( CDX_DynamicType t,
238 COREDX_C_ADD_API CDX_DynamicType_BitsetFlag_t * CDX_DynamicType_bitset_get_flag_by_name( CDX_DynamicType t,
248 COREDX_C_ADD_API
const char * CDX_DynamicType_get_string( CDX_DynamicType t );
260 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_max_length(CDX_DynamicType t);
270 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_length(CDX_DynamicType t);
278 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_element_type(CDX_DynamicType t);
286 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_element(CDX_DynamicType t, uint32_t n);
289 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_flags( CDX_DynamicType t );
299 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_num_fields(CDX_DynamicType t);
306 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_field(CDX_DynamicType t, uint32_t n);
313 COREDX_C_ADD_API
const char * CDX_DynamicType_get_field_name(CDX_DynamicType t, uint32_t n);
323 COREDX_C_ADD_API
unsigned char CDX_DynamicType_get_field_key(CDX_DynamicType t, uint32_t n);
332 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_discriminator(CDX_DynamicType t);
340 COREDX_C_ADD_API int32_t CDX_DynamicType_get_default_field(CDX_DynamicType t);
348 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_field_num_labels(CDX_DynamicType t, uint32_t field);
357 COREDX_C_ADD_API int32_t CDX_DynamicType_get_field_label(CDX_DynamicType t, uint32_t field, uint32_t label_idx);
363 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_selected_field(CDX_DynamicType t);
373 COREDX_C_API CDX_TypeDefinition DDS_create_type_definition(
const unsigned char *typecodes,
375 unsigned char tc_encoding);
384 COREDX_C_API CDX_TypeDefinition DDS_create_type_definition_from_typecode(
const unsigned char *typecodes,
386 unsigned char tc_encoding);
393 COREDX_C_API CDX_TypeDefinition DDS_create_type_definition_from_dynamictype(CDX_DynamicType dtype);
400 COREDX_C_API CDX_DynamicType CDX_TypeDefinition_create_dynamictype(CDX_TypeDefinition type_def);
402 DECLARE_SEQ( CDX_DynamicType , CDX_DynamicTypePtrSeq );
413 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc(
DDS_TypeCodeKind type_code);
419 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_basic(
DDS_TypeCodeKind type_code);
429 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_enum();
438 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_bitset();
444 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_string();
455 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_array();
465 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_sequence();
472 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_struct();
490 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_union();
500 COREDX_C_API
void CDX_DynamicType_free(CDX_DynamicType t);
508 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_octet( CDX_DynamicType t,
unsigned char c );
514 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_boolean( CDX_DynamicType t,
unsigned char c );
520 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_char( CDX_DynamicType t,
char c );
526 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_short( CDX_DynamicType t,
short c );
532 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_ushort( CDX_DynamicType t,
unsigned short c );
538 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_long( CDX_DynamicType t,
long c );
544 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_ulong( CDX_DynamicType t,
unsigned long c );
550 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_longlong( CDX_DynamicType t, int64_t c );
556 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_ulonglong( CDX_DynamicType t, uint64_t c );
562 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_float( CDX_DynamicType t,
float c );
568 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_double( CDX_DynamicType t,
double c );
582 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_enum_set_size( CDX_DynamicType t, int32_t size );
589 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_enum_set_num_constants( CDX_DynamicType t, int32_t num );
598 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_enum_set_constant( CDX_DynamicType t, int32_t n,
599 const char *name, uint32_t val );
605 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_enum_set_value( CDX_DynamicType t, uint32_t val);
612 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_bitset_set_size( CDX_DynamicType t, int32_t size );
619 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_bitset_set_num_flags( CDX_DynamicType t, int32_t num );
627 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_bitset_set_flag( CDX_DynamicType t, int32_t n,
628 const char *name, uint64_t val );
634 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_bitset_set_value( CDX_DynamicType t, uint64_t val);
646 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_string( CDX_DynamicType t,
const char * c );
656 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_max_length(CDX_DynamicType t, uint32_t n);
672 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_length(CDX_DynamicType t, uint32_t n);
678 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_element_type(CDX_DynamicType t, CDX_DynamicType e);
686 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_element(CDX_DynamicType t, uint32_t n, CDX_DynamicType e);
689 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_flags( CDX_DynamicType t, uint32_t f);
695 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_num_fields(CDX_DynamicType t, uint32_t n);
709 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_field(CDX_DynamicType t, uint32_t n,
const char * field_name,
710 CDX_DynamicType e,
unsigned char key);
728 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_discriminator(CDX_DynamicType t, CDX_DynamicType d);
739 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_default_field(CDX_DynamicType t,
int field);
754 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_field_num_labels(CDX_DynamicType t, uint32_t field, uint32_t n);
762 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_field_label(CDX_DynamicType t, uint32_t field, uint32_t label, int32_t val);
772 #include <dds/dds_dtype_ts.h> 773 #include <dds/dds_dtype_dr.h> 774 #include <dds/dds_dtype_dw.h> CDX_DynamicType is an object that enhances CoreDX DDS with the facilities to process dynamic data typ...
int DDS_ReturnCode_t
Definition: dds_types.h:56
DDS_TypeCodeKind
Identifies the different data types supported by DDS_DynamicType objects.
Definition: dds_typecode.h:43
DECLARE_SEQ(DDS_DynamicTypeMember, DDS_DynamicTypeMemberSeq)
A DDS_DynamicTypeMemberSeq instance is a sequence of DDS_DynamicTypeMember's.