39 #ifndef cdr_serialize_h
40 #define cdr_serialize_h
42 #ifndef reda_sequence_h
43 #include "reda/reda_sequence.h"
45 #ifndef reda_sequenceNumber_h
46 #include "reda/reda_sequenceNumber.h"
49 #include "cdr/cdr_dll.h"
51 #ifndef cdr_cdr_type_h
52 #include "cdr/cdr_cdr_type.h"
55 #include "cdr/cdr_stream.h"
57 #ifndef cdr_serialize_impl_h
58 #include "cdr/cdr_serialize_impl.h"
67 #define CDR_DEFAULT_PARAMETER_ALIGNMENT (4)
70 #define CDR_get_max_size_serialized_octet CDR_get_1_byte_max_size_serialized
73 #define CDR_get_max_size_serialized_char CDR_get_1_byte_max_size_serialized
76 #define CDR_get_max_size_serialized_boolean CDR_get_1_byte_max_size_serialized
79 #define CDR_get_max_size_serialized_short CDR_get_2_byte_max_size_serialized
82 #define CDR_get_max_size_serialized_unsigned_short \
83 CDR_get_2_byte_max_size_serialized
86 #define CDR_get_max_size_serialized_long CDR_get_4_byte_max_size_serialized
89 #define CDR_get_max_size_serialized_unsigned_long \
90 CDR_get_4_byte_max_size_serialized
93 #define CDR_get_max_size_serialized_wchar CDR_get_4_byte_max_size_serialized
96 #define CDR_get_max_size_serialized_enum CDR_get_4_byte_max_size_serialized
99 #define CDR_get_max_size_serialized_float CDR_get_4_byte_max_size_serialized
102 #define CDR_get_max_size_serialized_long_long CDR_get_8_byte_max_size_serialized
105 #define CDR_get_max_size_serialized_unsigned_long_long \
106 CDR_get_8_byte_max_size_serialized
109 #define CDR_get_max_size_serialized_double CDR_get_8_byte_max_size_serialized
112 #define CDR_get_max_size_serialized_long_double CDR_get_16_byte_max_size_serialized
130 CDR_serialize_unsigned_short(
char **dest_buffer,
const RTI_UINT16 * instance,
143 CDR_deserialize_unsigned_short(
char **src_buffer, RTI_UINT16 * instance,
156 CDR_serialize_unsigned_long(
char **dest_buffer,
const RTI_UINT32 * instance,
169 CDR_deserialize_unsigned_long(
char **src_buffer, RTI_UINT32 * instance,
181 CDR_serialize_unsigned_long_to_big_endian(
char **dest_buffer,
182 const RTI_UINT32 * instance);
193 CDR_deserialize_unsigned_long_from_big_endian(
char **src_buffer,
194 RTI_UINT32 * instance);
206 CDR_serialize_unsigned_long_long(
char **dest_buffer,
const RTI_UINT64 * instance,
219 CDR_deserialize_unsigned_long_long(
char **src_buffer, RTI_UINT64 * instance,
232 CDR_serialize_long_double(
char **dest_buffer,
const RTI_DOUBLE128 * instance,
245 CDR_deserialize_long_double(
char **src_buffer, RTI_DOUBLE128 * instance,
254 #define CDR_deserialize_long(__buf,__inst,_b) \
255 CDR_deserialize_unsigned_long(__buf,((RTI_UINT32*)__inst),_b)
272 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
273 CDR_Stream_serialize_char(
struct CDR_Stream_t *cdrs,
const RTI_INT8 * instance);
284 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
285 CDR_Stream_deserialize_char(
struct CDR_Stream_t *cdrs, RTI_INT8 * instance);
296 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
297 CDR_Stream_serialize_unsigned_short(
struct CDR_Stream_t *cdrs,
298 const RTI_UINT16 * instance);
309 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
310 CDR_Stream_deserialize_unsigned_short(
struct CDR_Stream_t *cdrs,
311 RTI_UINT16 * instance);
322 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
323 CDR_Stream_serialize_unsigned_short_to_big_endian(
struct CDR_Stream_t *cdrs,
324 const RTI_UINT16 * instance);
335 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
336 CDR_Stream_deserialize_unsigned_short_from_big_endian(
struct CDR_Stream_t *cdrs,
337 RTI_UINT16* instance);
348 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
349 CDR_Stream_serialize_unsigned_long(
struct CDR_Stream_t *cdrs,
350 const RTI_UINT32 * instance);
361 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
362 CDR_Stream_deserialize_unsigned_long(
struct CDR_Stream_t *cdrs,
363 RTI_UINT32 * instance);
374 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
375 CDR_Stream_serialize_unsigned_long_to_big_endian(
struct CDR_Stream_t *cdrs,
376 const RTI_UINT32 * instance);
387 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
388 CDR_Stream_deserialize_unsigned_long_from_big_endian(
struct CDR_Stream_t *cdrs,
389 RTI_UINT32 * instance);
400 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
401 CDR_Stream_serialize_unsigned_long_long(
struct CDR_Stream_t *cdrs,
402 const RTI_UINT64 * instance);
413 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
414 CDR_Stream_deserialize_unsigned_long_long(
struct CDR_Stream_t *cdrs,
415 RTI_UINT64 * instance);
426 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
427 CDR_Stream_serialize_long_double(
struct CDR_Stream_t *cdrs,
428 const RTI_DOUBLE128 * in);
439 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
440 CDR_Stream_deserialize_long_double(
struct CDR_Stream_t *cdrs,
441 RTI_DOUBLE128 * out);
453 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
454 CDR_Stream_serialize_string(
struct CDR_Stream_t *cdrs,
455 const char *in, RTI_UINT32 max_length);
467 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
468 CDR_Stream_deserialize_string(
struct CDR_Stream_t *cdrs,
469 char *out, RTI_UINT32 max_length);
481 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
482 CDR_Stream_serialize_wstring(
struct CDR_Stream_t *cdrs,
483 const RTI_UINT32 *in, RTI_UINT32 max_length);
495 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
496 CDR_Stream_deserialize_wstring(
struct CDR_Stream_t *cdrs,
497 RTI_UINT32 *out, RTI_UINT32 max_length);
508 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
509 CDR_Stream_serialize_2_octets_big_endian(
struct CDR_Stream_t *cdrs,
510 const RTI_UINT16 * in);
521 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
522 CDR_Stream_deserialize_2_octets_big_endian(
struct CDR_Stream_t *cdrs,
531 #define CDR_Stream_serialize_boolean(__s,__i) \
532 CDR_Stream_serialize_char(__s,((RTI_INT8*)__i))
535 #define CDR_Stream_deserialize_boolean(__s,__i) \
536 CDR_Stream_deserialize_char(__s,((RTI_INT8*)__i))
539 #define CDR_Stream_serialize_octet(__s,__i) \
540 CDR_Stream_serialize_char(__s,((RTI_INT8*)__i))
543 #define CDR_Stream_deserialize_octet(__s,__i) \
544 CDR_Stream_deserialize_char(__s,((RTI_INT8*)__i))
547 #define CDR_Stream_serialize_short(__s,__i) \
548 CDR_Stream_serialize_unsigned_short(__s,((RTI_UINT16*)__i))
551 #define CDR_Stream_deserialize_short(__s,__i) \
552 CDR_Stream_deserialize_unsigned_short(__s,((RTI_UINT16*)__i))
555 #define CDR_Stream_serialize_wchar(__s,__i) \
556 CDR_Stream_serialize_unsigned_long(__s,(RTI_UINT32*)__i)
559 #define CDR_Stream_deserialize_wchar(__s,__i) \
560 CDR_Stream_deserialize_unsigned_long(__s,(RTI_UINT32*)__i)
563 #define CDR_Stream_serialize_enum(__s,__i) \
564 CDR_Stream_serialize_unsigned_long(__s,(RTI_UINT32*)__i)
567 #define CDR_Stream_deserialize_enum(__s,__i) \
568 CDR_Stream_deserialize_unsigned_long(__s,(RTI_UINT32*)__i)
571 #define CDR_Stream_serialize_long(__s,__i) \
572 CDR_Stream_serialize_unsigned_long(__s,((RTI_UINT32*)__i))
575 #define CDR_Stream_deserialize_long(__s,__i) \
576 CDR_Stream_deserialize_unsigned_long(__s,((RTI_UINT32*)__i))
579 #define CDR_Stream_serialize_float(__s,__i) \
580 CDR_Stream_serialize_unsigned_long(__s,((RTI_UINT32*)__i))
583 #define CDR_Stream_deserialize_float(__s,__i) \
584 CDR_Stream_deserialize_unsigned_long(__s,((RTI_UINT32*)__i))
587 #define CDR_Stream_serialize_long_long(__s,__i) \
588 CDR_Stream_serialize_unsigned_long_long(__s,((RTI_UINT64*)__i))
591 #define CDR_Stream_deserialize_long_long(__s,__i) \
592 CDR_Stream_deserialize_unsigned_long_long(__s,((RTI_UINT64*)__i))
595 #define CDR_Stream_serialize_double(__s,__i) \
596 CDR_Stream_serialize_unsigned_long_long(__s,((RTI_UINT64*)__i))
599 #define CDR_Stream_deserialize_double(__s,__i) \
600 CDR_Stream_deserialize_unsigned_long_long(__s,((RTI_UINT64*)__i))
611 (*CDR_Stream_SerializeFunction) (
struct CDR_Stream_t * stream,
624 (*CDR_Stream_DeserializeFunction) (
struct CDR_Stream_t * stream,
641 RTI_UINT32 current_alignment,
655 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
656 CDR_Stream_serialize_byte_array(
struct CDR_Stream_t *cdrs,
657 const unsigned char *in_array,
670 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
671 CDR_Stream_deserialize_byte_array(
struct CDR_Stream_t *cdrs,
676 #define CDR_get_max_size_serialized_byte_array(current_alignment, length, type) \
691 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
692 CDR_Stream_serialize_string_array(
struct CDR_Stream_t *cdrs,
695 RTI_UINT32 max_string_length,
696 CdrPrimitiveType type);
710 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
711 CDR_Stream_deserialize_string_array(
struct CDR_Stream_t *cdrs,
714 RTI_UINT32 max_string_length,
715 CdrPrimitiveType type);
728 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
729 CDR_get_max_size_serialized_string_array(RTI_UINT32 current_alignment,
731 RTI_UINT32 max_string_length,
732 CdrPrimitiveType type);
745 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
746 CDR_Stream_serialize_primitive_array(
struct CDR_Stream_t *cdrs,
749 CdrPrimitiveType type);
762 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
763 CDR_Stream_deserialize_primitive_array(
struct CDR_Stream_t *cdrs,
766 CdrPrimitiveType type);
776 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
777 CDR_get_max_size_serialized_primitive_array(RTI_UINT8 alignment,
779 CdrPrimitiveType type);
794 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
795 CDR_Stream_serialize_non_primitive_array(
struct CDR_Stream_t *stream,
798 RTI_UINT32 element_size,
799 CDR_Stream_SerializeFunction
816 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
817 CDR_Stream_deserialize_non_primitive_array(
struct CDR_Stream_t *stream,
820 RTI_UINT32 element_size,
821 CDR_Stream_DeserializeFunction
822 deserialize_function,
837 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
838 CDR_get_max_size_serialized_non_primitive_array(RTI_UINT32 current_alignment,
840 CDR_Stream_GetSerializedSizeFunction
841 get_serialized_size_func,
855 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
856 CDR_Stream_serialize_string_sequence(
struct CDR_Stream_t *cdrs,
857 const struct REDA_Sequence* in,
858 RTI_UINT32 max_string_length,
859 CdrPrimitiveType type);
872 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
873 CDR_Stream_deserialize_string_sequence(
struct CDR_Stream_t *cdrs,
874 struct REDA_Sequence* out,
875 RTI_UINT32 max_string_length,
876 CdrPrimitiveType type);
889 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
890 CDR_get_max_size_serialized_string_sequence(RTI_UINT32 current_alignment,
892 RTI_UINT32 max_string_length,
893 CdrPrimitiveType type);
905 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
906 CDR_Stream_serialize_primitive_sequence(
struct CDR_Stream_t *stream,
907 const struct REDA_Sequence* in,
908 CdrPrimitiveType type);
920 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
921 CDR_Stream_deserialize_primitive_sequence(
struct CDR_Stream_t *stream,
922 struct REDA_Sequence* out,
923 CdrPrimitiveType type);
935 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
936 CDR_get_max_size_serialized_primitive_sequence(RTI_UINT32 current_alignment,
938 CdrPrimitiveType type);
951 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
952 CDR_Stream_serialize_non_primitive_sequence(
struct CDR_Stream_t *stream,
953 const struct REDA_Sequence* in,
954 CDR_Stream_SerializeFunction
970 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
971 CDR_Stream_deserialize_non_primitive_sequence(
struct CDR_Stream_t *stream,
972 struct REDA_Sequence* out,
973 CDR_Stream_DeserializeFunction
974 deserialize_function,
991 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
992 CDR_get_max_size_serialized_non_primitive_sequence(RTI_UINT32 current_alignment,
994 CDR_Stream_GetSerializedSizeFunction
995 get_serialized_size_func,
1008 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
1009 CDR_Stream_serialize_property_sequence(
struct CDR_Stream_t *stream,
1023 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
1024 CDR_get_pad_size(RTI_UINT32 current_size, RTI_UINT32 align);
1034 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
1035 CDR_align_upwards(RTI_UINT32 location,
1036 RTI_UINT8 alignment);
1044 CDR_Stream_serialize_1_byte(
struct CDR_Stream_t *me,
1045 const RTI_INT8 *in);
1053 CDR_Stream_deserialize_1_byte(
struct CDR_Stream_t *me,
1062 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
1063 CDR_get_2_byte_max_size_serialized(RTI_UINT32 current_size);
1070 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
1071 CDR_get_4_byte_max_size_serialized(RTI_UINT32 current_size);
1078 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
1079 CDR_get_8_byte_max_size_serialized(RTI_UINT32 current_size);
1086 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
1087 CDR_get_16_byte_max_size_serialized(RTI_UINT32 current_size);
1095 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
1096 CDR_get_max_size_serialized_string(RTI_UINT32 current_size,
1105 MUST_CHECK_RETURN CDRDllExport RTI_UINT32
1106 CDR_get_max_size_serialized_wstring(RTI_UINT32 current_size,
1120 MUST_CHECK_RETURN CDRDllExport
RTI_BOOL
1121 CDR_Stream_has_remaining_space(
struct CDR_Stream_t *cdrs,
1122 RTI_UINT32 needed_space);