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;
54 typedef struct CDX_DynamicType_EnumConstant {
57 } CDX_DynamicType_EnumConstant_t;
59 typedef struct CDX_DynamicType_BitsetFlag {
62 } CDX_DynamicType_BitsetFlag_t;
81 COREDX_C_ADD_API
DDS_TypeCodeKind CDX_DynamicType_get_type( CDX_DynamicType t );
88 COREDX_C_ADD_API
unsigned char CDX_DynamicType_get_octet( CDX_DynamicType t );
93 COREDX_C_ADD_API
unsigned char CDX_DynamicType_get_boolean( CDX_DynamicType t );
98 COREDX_C_ADD_API
char CDX_DynamicType_get_char( CDX_DynamicType t );
103 COREDX_C_ADD_API int16_t CDX_DynamicType_get_short( CDX_DynamicType t );
108 COREDX_C_ADD_API uint16_t CDX_DynamicType_get_ushort( CDX_DynamicType t );
113 COREDX_C_ADD_API int32_t CDX_DynamicType_get_long( CDX_DynamicType t );
118 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_ulong( CDX_DynamicType t );
123 COREDX_C_ADD_API int64_t CDX_DynamicType_get_longlong( CDX_DynamicType t );
128 COREDX_C_ADD_API uint64_t CDX_DynamicType_get_ulonglong( CDX_DynamicType t );
133 COREDX_C_ADD_API
float CDX_DynamicType_get_float( CDX_DynamicType t );
138 COREDX_C_ADD_API
double CDX_DynamicType_get_double( CDX_DynamicType t );
152 COREDX_C_ADD_API int32_t CDX_DynamicType_enum_get_size( CDX_DynamicType t );
158 COREDX_C_ADD_API int32_t CDX_DynamicType_enum_get_num_constants( CDX_DynamicType t);
167 COREDX_C_ADD_API
void CDX_DynamicType_EnumConstant_delete( CDX_DynamicType_EnumConstant_t * ec);
175 COREDX_C_ADD_API CDX_DynamicType_EnumConstant_t * CDX_DynamicType_enum_get_constant( CDX_DynamicType t,
183 COREDX_C_ADD_API CDX_DynamicType_EnumConstant_t * CDX_DynamicType_enum_get_constant_by_name( CDX_DynamicType t,
191 COREDX_C_ADD_API CDX_DynamicType_EnumConstant_t * CDX_DynamicType_enum_get_constant_by_value( CDX_DynamicType t,
196 COREDX_C_ADD_API uint32_t CDX_DynamicType_enum_get_value( CDX_DynamicType t );
203 COREDX_C_ADD_API int32_t CDX_DynamicType_bitset_get_size( CDX_DynamicType t );
207 COREDX_C_ADD_API uint64_t CDX_DynamicType_bitset_get_value( CDX_DynamicType t );
213 COREDX_C_ADD_API int32_t CDX_DynamicType_bitset_get_num_flags( CDX_DynamicType t);
221 COREDX_C_ADD_API
void CDX_DynamicType_BitsetFlag_delete( CDX_DynamicType_BitsetFlag_t * bf);
229 COREDX_C_ADD_API CDX_DynamicType_BitsetFlag_t * CDX_DynamicType_bitset_get_flag( CDX_DynamicType t,
237 COREDX_C_ADD_API CDX_DynamicType_BitsetFlag_t * CDX_DynamicType_bitset_get_flag_by_name( CDX_DynamicType t,
247 COREDX_C_ADD_API
const char * CDX_DynamicType_get_string( CDX_DynamicType t );
259 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_max_length(CDX_DynamicType t);
269 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_length(CDX_DynamicType t);
277 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_element_type(CDX_DynamicType t);
285 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_element(CDX_DynamicType t, uint32_t n);
288 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_flags( CDX_DynamicType t );
298 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_num_fields(CDX_DynamicType t);
305 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_field(CDX_DynamicType t, uint32_t n);
312 COREDX_C_ADD_API
const char * CDX_DynamicType_get_field_name(CDX_DynamicType t, uint32_t n);
322 COREDX_C_ADD_API
unsigned char CDX_DynamicType_get_field_key(CDX_DynamicType t, uint32_t n);
331 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_discriminator(CDX_DynamicType t);
339 COREDX_C_ADD_API int32_t CDX_DynamicType_get_default_field(CDX_DynamicType t);
347 COREDX_C_ADD_API uint32_t CDX_DynamicType_get_field_num_labels(CDX_DynamicType t, uint32_t field);
356 COREDX_C_ADD_API int32_t CDX_DynamicType_get_field_label(CDX_DynamicType t, uint32_t field, uint32_t label_idx);
362 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_get_selected_field(CDX_DynamicType t);
372 COREDX_C_API CDX_TypeDefinition DDS_create_type_definition(
const unsigned char *typecodes,
374 unsigned char tc_encoding);
383 COREDX_C_API CDX_TypeDefinition DDS_create_type_definition_from_typecode(
const unsigned char *typecodes,
385 unsigned char tc_encoding);
392 COREDX_C_API CDX_TypeDefinition DDS_create_type_definition_from_dynamictype(CDX_DynamicType dtype);
399 COREDX_C_API CDX_DynamicType CDX_TypeDefinition_create_dynamictype(CDX_TypeDefinition type_def);
401 DECLARE_SEQ( CDX_DynamicType , CDX_DynamicTypePtrSeq );
412 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc(
DDS_TypeCodeKind type_code);
418 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_basic(
DDS_TypeCodeKind type_code);
428 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_enum();
437 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_bitset();
443 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_string();
454 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_array();
464 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_sequence();
471 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_struct();
489 COREDX_C_ADD_API CDX_DynamicType CDX_DynamicType_alloc_union();
499 COREDX_C_API
void CDX_DynamicType_free(CDX_DynamicType t);
507 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_octet( CDX_DynamicType t,
unsigned char c );
513 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_boolean( CDX_DynamicType t,
unsigned char c );
519 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_char( CDX_DynamicType t,
char c );
525 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_short( CDX_DynamicType t,
short c );
531 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_ushort( CDX_DynamicType t,
unsigned short c );
537 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_long( CDX_DynamicType t,
long c );
543 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_ulong( CDX_DynamicType t,
unsigned long c );
549 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_longlong( CDX_DynamicType t, int64_t c );
555 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_ulonglong( CDX_DynamicType t, uint64_t c );
561 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_float( CDX_DynamicType t,
float c );
567 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_double( CDX_DynamicType t,
double c );
581 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_enum_set_size( CDX_DynamicType t, int32_t size );
588 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_enum_set_num_constants( CDX_DynamicType t, int32_t num );
597 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_enum_set_constant( CDX_DynamicType t, int32_t n,
598 const char *name, uint32_t val );
604 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_enum_set_value( CDX_DynamicType t, uint32_t val);
611 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_bitset_set_size( CDX_DynamicType t, int32_t size );
618 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_bitset_set_num_flags( CDX_DynamicType t, int32_t num );
626 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_bitset_set_flag( CDX_DynamicType t, int32_t n,
627 const char *name, uint64_t val );
633 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_bitset_set_value( CDX_DynamicType t, uint64_t val);
645 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_string( CDX_DynamicType t,
const char * c );
655 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_max_length(CDX_DynamicType t, uint32_t n);
671 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_length(CDX_DynamicType t, uint32_t n);
677 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_element_type(CDX_DynamicType t, CDX_DynamicType e);
685 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_element(CDX_DynamicType t, uint32_t n, CDX_DynamicType e);
688 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_flags( CDX_DynamicType t, uint32_t f);
694 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_num_fields(CDX_DynamicType t, uint32_t n);
708 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_field(CDX_DynamicType t, uint32_t n,
const char * field_name,
709 CDX_DynamicType e,
unsigned char key);
727 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_discriminator(CDX_DynamicType t, CDX_DynamicType d);
738 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_default_field(CDX_DynamicType t,
int field);
753 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_field_num_labels(CDX_DynamicType t, uint32_t field, uint32_t n);
761 COREDX_C_ADD_API
DDS_ReturnCode_t CDX_DynamicType_set_field_label(CDX_DynamicType t, uint32_t field, uint32_t label, int32_t val);
771 #include <dds/dds_dtype_ts.h> 772 #include <dds/dds_dtype_dr.h> 773 #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.