RTI Connext DDS Micro  Version 2.4.6
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cdr_cdr_type.h
1 /*
2  * FILE: cdr_cdr_type.h - CDR types
3  *
4  * (c) Copyright, Real-Time Innovations, 2012-2015.
5  * All rights reserved.
6  *
7  * No duplications, whole or partial, manual or electronic, may be made
8  * without express written permission. Any such copies, or
9  * revisions thereof, must display this notice unaltered.
10  * This code contains trade secrets of Real-Time Innovations, Inc.
11  *
12  *
13  * Modification History
14  * --------------------
15  * 19may2015,as MICRO-1193 Refactoring of Sequence API levels
16  * 23feb2015,eh MICRO-1075: remove and replace macros
17  * 15sep2014,eh Updated documentation
18  * 14aug2012,kaj Written
19  */
20 
21 /*ci
22  * \file
23  * \defgroup CDRTypeClass CDR Types
24  * \ingroup CDRModule
25  * \brief CDR types
26  *
27  * \details
28  * Defines supported primitive CDR types and sequences.
29  *
30  * Note, a sequence of a type B will be defined as another type A when
31  * sizes of type A and B are equal. For example, CDR_BooleanSeq is defined
32  * as CDR_OctetSeq. This is done to minimize the number of lines of code.
33  */
34 
35 /*ci \addtogroup CDRTypeClass
36  * @{
37  */
38 #ifndef cdr_cdr_type_h
39 #define cdr_cdr_type_h
40 
41 #ifndef osapi_types_h
42 #include "osapi/osapi_types.h"
43 #endif
44 #ifndef reda_sequence_h
45 #include "reda/reda_sequence.h"
46 #endif
47 #ifndef cdr_dll_h
48 #include "cdr/cdr_dll.h"
49 #endif
50 
51 #ifdef __cplusplus
52 extern "C"
53 {
54 #endif /* __cplusplus */
55 
56 /* ================================================================= */
57 /* CDR Primitive Types */
58 /* ================================================================= */
59 
60 /*ci \brief Char */
61 typedef RTI_INT8 CDR_Char;
62 
63 /*ci \brief Octet */
64 typedef RTI_UINT8 CDR_Octet;
65 
66 /*ci \brief Boolean */
67 typedef RTI_UINT8 CDR_Boolean;
68 
69 /*ci \brief Short */
70 typedef RTI_INT16 CDR_Short;
71 
72 /*ci \brief Unsigned Short */
73 typedef RTI_UINT16 CDR_UnsignedShort;
74 
75 /*ci \brief Long */
76 typedef RTI_INT32 CDR_Long;
77 
78 /*ci \brief Unsigned Long */
79 typedef RTI_UINT32 CDR_UnsignedLong;
80 
81 /*ci \brief Enum */
82 typedef RTI_UINT32 CDR_Enum;
83 
84 /*ci \brief WChar */
85 typedef RTI_UINT32 CDR_Wchar;
86 
87 /*ci \brief Long Long */
88 typedef RTI_INT64 CDR_LongLong;
89 
90 /*ci \brief Unsigned Long Long */
91 typedef RTI_UINT64 CDR_UnsignedLongLong;
92 
93 /*ci \brief Float */
94 typedef RTI_FLOAT32 CDR_Float;
95 
96 /*ci \brief Double */
97 typedef RTI_DOUBLE64 CDR_Double;
98 
99 /*ci \brief Long Double */
100 typedef RTI_DOUBLE128 CDR_LongDouble;
101 
102 /*ci \brief String */
103 typedef char *CDR_String;
104 
105 /*ci \brief WString */
106 typedef RTI_UINT32 *CDR_Wstring;
107 
108 /*ci \brief Property */
109 struct CDR_Property
110 {
111  /*ci \brief Name */
112  char *name;
113 
114  /*ci \brief Value */
115  char *value;
116 };
117 
118 /* ================================================================= */
119 /* CDR Primitive Type Sequences */
120 /* ================================================================= */
121 
122 /*ci \brief Octet Sequence
123  *
124  * \details
125  * Other CDR types of same length as Octet (i.e. Char, Boolean) have their
126  * sequences aliased to this sequence.
127  */
128 #define T CDR_Octet
129 #define TSeq CDR_OctetSeq
130 #define REDA_SEQUENCE_USER_API
131 #include <reda/reda_sequence_decl.h>
132 
133 /*ci \brief Unsigned Short Sequence
134  *
135  * \details
136  * Other CDR types of same length as Unsigned Short (i.e. Short) have their
137  * sequences aliased to this sequence.
138  */
139 #define T CDR_UnsignedShort
140 #define TSeq CDR_UnsignedShortSeq
141 #define REDA_SEQUENCE_USER_API
142 #include <reda/reda_sequence_decl.h>
143 
144 /*ci \brief Unsigned Long Sequence
145  *
146  * \details
147  * Other CDR types of same length as Unsigned Long (i.e. Long, Enum, Wchar,
148  * Float) have their sequences aliased to this sequence.
149  */
150 #define T CDR_UnsignedLong
151 #define TSeq CDR_UnsignedLongSeq
152 #define REDA_SEQUENCE_USER_API
153 #include <reda/reda_sequence_decl.h>
154 
155 /*ci \brief Unsigned Long Long Sequence
156  *
157  * \details
158  * Other CDR types of same length as Unsigned Long Long (i.e. Long Long,
159  * Double) have their sequences aliased to this sequence.
160  */
161 #define T CDR_UnsignedLongLong
162 #define TSeq CDR_UnsignedLongLongSeq
163 #define REDA_SEQUENCE_USER_API
164 #include <reda/reda_sequence_decl.h>
165 
166 /*ci \brief Unsigned Long Double Sequence */
167 #define T CDR_LongDouble
168 #define TSeq CDR_LongDoubleSeq
169 #define REDA_SEQUENCE_USER_API
170 #include <reda/reda_sequence_decl.h>
171 
172 /*ci \brief String Sequence */
173 #define T CDR_String
174 #define TSeq CDR_StringSeq
175 #define TSeq_isCDRStringType
176 #define REDA_SEQUENCE_USER_API
177 #ifndef RTI_CERT
178 #define TSeq_is_equal
179 #endif
180 #include <reda/reda_sequence_decl.h>
181 
182 /*ci \brief WString Sequence */
183 #define T CDR_Wstring
184 #define TSeq CDR_WstringSeq
185 #define TSeq_isCDRStringType
186 #define REDA_SEQUENCE_USER_API
187 #ifndef RTI_CERT
188 #define TSeq_is_equal
189 #endif
190 #include <reda/reda_sequence_decl.h>
191 
192 /*ci \brief Assign CDR_BooleanSeq as alias of CDR_OctetSeq */
193 #define CDR_BooleanSeq CDR_OctetSeq
194 
195 /*ci \brief Assign CDR_CharSeq as alias of CDR_OctetSeq */
196 #define CDR_CharSeq CDR_OctetSeq
197 
198 /*ci \brief Assign CDR_ShortSeq as alias of CDR_UnsignedShortSeq */
199 #define CDR_ShortSeq CDR_UnsignedShortSeq
200 
201 /*ci \brief Assign CDR_LongSeq as alias of CDR_UnsignedLongSeq */
202 #define CDR_LongSeq CDR_UnsignedLongSeq
203 
204 /*ci \brief Assign CDR_EnumSeq as alias of CDR_UnsignedLongSeq */
205 #define CDR_EnumSeq CDR_UnsignedLongSeq
206 
207 /*ci \brief Assign CDR_WcharSeq as alias of CDR_UnsignedLongSeq */
208 #define CDR_WcharSeq CDR_UnsignedLongSeq
209 
210 /*ci \brief Assign CDR_FloatSeq as alias of CDR_UnsignedLongSeq */
211 #define CDR_FloatSeq CDR_UnsignedLongSeq
212 
213 /*ci \brief Assign CDR_LongLongSeq as alias of CDR_UnsignedLongLongSeq */
214 #define CDR_LongLongSeq CDR_UnsignedLongLongSeq
215 
216 /*ci \brief Assign CDR_DoubleSeq as alias of CDR_UnsignedLongLongSeq */
217 #define CDR_DoubleSeq CDR_UnsignedLongLongSeq
218 
219 
220 /* CDR BooleanSeq operations */
221 
222 /*ci \brief Assign CDR_BooleanSeq_initialize as alias of CDR_OctetSeq_initialize */
223 #define CDR_BooleanSeq_initialize CDR_OctetSeq_initialize
224 
225 /*ci \brief Assign CDR_BooleanSeq_get_maximum as alias of CDR_OctetSeq_get_maximum */
226 #define CDR_BooleanSeq_get_maximum CDR_OctetSeq_get_maximum
227 
228 /*ci \brief Assign CDR_BooleanSeq_set_maximum as alias of CDR_OctetSeq_set_maximum */
229 #define CDR_BooleanSeq_set_maximum CDR_OctetSeq_set_maximum
230 
231 /*ci \brief Assign CDR_BooleanSeq_get_length as alias of CDR_OctetSeq_get_length */
232 #define CDR_BooleanSeq_get_length CDR_OctetSeq_get_length
233 
234 /*ci \brief Assign CDR_BooleanSeq_set_length as alias of CDR_OctetSeq_set_length */
235 #define CDR_BooleanSeq_set_length CDR_OctetSeq_set_length
236 
237 /*ci \brief Assign CDR_BooleanSeq_get_reference as alias of CDR_OctetSeq_get_reference */
238 #define CDR_BooleanSeq_get_reference (CDR_Boolean*)CDR_OctetSeq_get_reference
239 
240 
241 /* CDR_CharSeq operations */
242 
243 /*ci \brief Assign CDR_CharSeq_initialize as alias of CDR_OctetSeq_initialize */
244 #define CDR_CharSeq_initialize CDR_OctetSeq_initialize
245 
246 /*ci \brief Assign CDR_CharSeq_get_maximum as alias of CDR_OctetSeq_get_maximum */
247 #define CDR_CharSeq_get_maximum CDR_OctetSeq_get_maximum
248 
249 /*ci \brief Assign CDR_CharSeq_set_maximum as alias of CDR_OctetSeq_set_maximum */
250 #define CDR_CharSeq_set_maximum CDR_OctetSeq_set_maximum
251 
252 /*ci \brief Assign CDR_CharSeq_get_length as alias of CDR_OctetSeq_get_length */
253 #define CDR_CharSeq_get_length CDR_OctetSeq_get_length
254 
255 /*ci \brief Assign CDR_CharSeq_set_length as alias of CDR_OctetSeq_set_length */
256 #define CDR_CharSeq_set_length CDR_OctetSeq_set_length
257 
258 /*ci \brief Assign CDR_CharSeq_get_reference as alias of CDR_OctetSeq_get_reference */
259 #define CDR_CharSeq_get_reference (CDR_Char*)CDR_OctetSeq_get_reference
260 
261 
262 /* CDR_ShortSeq operations */
263 
264 /*ci \brief Assign CDR_ShortSeq_initialize as alias of CDR_UnsignedShortSeq_initialize */
265 #define CDR_ShortSeq_initialize CDR_UnsignedShortSeq_initialize
266 
267 /*ci \brief Assign CDR_ShortSeq_get_maximum as alias of CDR_UnsignedShortSeq_get_maximum */
268 #define CDR_ShortSeq_get_maximum CDR_UnsignedShortSeq_get_maximum
269 
270 /*ci \brief Assign CDR_ShortSeq_set_maximum as alias of CDR_UnsignedShortSeq_set_maximum */
271 #define CDR_ShortSeq_set_maximum CDR_UnsignedShortSeq_set_maximum
272 
273 /*ci \brief Assign CDR_ShortSeq_get_length as alias of CDR_UnsignedShortSeq_get_length */
274 #define CDR_ShortSeq_get_length CDR_UnsignedShortSeq_get_length
275 
276 /*ci \brief Assign CDR_ShortSeq_set_length as alias of CDR_UnsignedShortSeq_set_length */
277 #define CDR_ShortSeq_set_length CDR_UnsignedShortSeq_set_length
278 
279 /*ci \brief Assign CDR_ShortSeq_get_reference as alias of CDR_UnsignedShortSeq_get_reference */
280 #define CDR_ShortSeq_get_reference (CDR_Short*)CDR_UnsignedShortSeq_get_reference
281 
282 
283 /* CDR_LongSeq operations */
284 
285 /*ci \brief Assign CDR_LongSeq_initialize as alias of CDR_UnsignedLongSeq_initialize */
286 #define CDR_LongSeq_initialize CDR_UnsignedLongSeq_initialize
287 
288 /*ci \brief Assign CDR_LongSeq_get_maximum as alias of CDR_UnsignedLongSeq_get_maximum */
289 #define CDR_LongSeq_get_maximum CDR_UnsignedLongSeq_get_maximum
290 
291 /*ci \brief Assign CDR_LongSeq_set_maximum as alias of CDR_UnsignedLongSeq_set_maximum */
292 #define CDR_LongSeq_set_maximum CDR_UnsignedLongSeq_set_maximum
293 
294 /*ci \brief Assign CDR_LongSeq_get_length as alias of CDR_UnsignedLongSeq_get_length */
295 #define CDR_LongSeq_get_length CDR_UnsignedLongSeq_get_length
296 
297 /*ci \brief Assign CDR_LongSeq_set_length as alias of CDR_UnsignedLongSeq_set_length */
298 #define CDR_LongSeq_set_length CDR_UnsignedLongSeq_set_length
299 
300 /*ci \brief Assign CDR_LongSeq_get_reference as alias of CDR_UnsignedLongSeq_get_reference */
301 #define CDR_LongSeq_get_reference (CDR_Long*)CDR_UnsignedLongSeq_get_reference
302 
303 
304 /* CDR_EnumSeq operations */
305 
306 /*ci \brief Assign CDR_EnumSeq_initialize as alias of CDR_UnsignedLongSeq_initialize */
307 #define CDR_EnumSeq_initialize CDR_UnsignedLongSeq_initialize
308 
309 /*ci \brief Assign CDR_EnumSeq_get_maximum as alias of CDR_UnsignedLongSeq_get_maximum */
310 #define CDR_EnumSeq_get_maximum CDR_UnsignedLongSeq_get_maximum
311 
312 /*ci \brief Assign CDR_EnumSeq_set_maximum as alias of CDR_UnsignedLongSeq_set_maximum */
313 #define CDR_EnumSeq_set_maximum CDR_UnsignedLongSeq_set_maximum
314 
315 /*ci \brief Assign CDR_EnumSeq_get_length as alias of CDR_UnsignedLongSeq_get_length */
316 #define CDR_EnumSeq_get_length CDR_UnsignedLongSeq_get_length
317 
318 /*ci \brief Assign CDR_EnumSeq_set_length as alias of CDR_UnsignedLongSeq_set_length */
319 #define CDR_EnumSeq_set_length CDR_UnsignedLongSeq_set_length
320 
321 /*ci \brief Assign CDR_EnumSeq_get_reference as alias of CDR_UnsignedLongSeq_get_reference */
322 #define CDR_EnumSeq_get_reference (CDR_Enum*)CDR_UnsignedLongSeq_get_reference
323 
324 
325 /* CDR_WcharSeq operations */
326 
327 /*ci \brief Assign CDR_WcharSeq_initialize as alias of CDR_UnsignedLongSeq_initialize */
328 #define CDR_WcharSeq_initialize CDR_UnsignedLongSeq_initialize
329 
330 /*ci \brief Assign CDR_WcharSeq_get_maximum as alias of CDR_UnsignedLongSeq_get_maximum */
331 #define CDR_WcharSeq_get_maximum CDR_UnsignedLongSeq_get_maximum
332 
333 /*ci \brief Assign CDR_WcharSeq_set_maximum as alias of CDR_UnsignedLongSeq_set_maximum */
334 #define CDR_WcharSeq_set_maximum CDR_UnsignedLongSeq_set_maximum
335 
336 /*ci \brief Assign CDR_WcharSeq_get_length as alias of CDR_UnsignedLongSeq_get_length */
337 #define CDR_WcharSeq_get_length CDR_UnsignedLongSeq_get_length
338 
339 /*ci \brief Assign CDR_WcharSeq_set_length as alias of CDR_UnsignedLongSeq_set_length */
340 #define CDR_WcharSeq_set_length CDR_UnsignedLongSeq_set_length
341 
342 /*ci \brief Assign CDR_WcharSeq_get_reference as alias of CDR_UnsignedLongSeq_get_reference */
343 #define CDR_WcharSeq_get_reference (CDR_Wchar*)CDR_UnsignedLongSeq_get_reference
344 
345 
346 /* CDR_FloatSeq operations */
347 
348 /*ci \brief Assign CDR_FloatSeq_initialize as alias of CDR_UnsignedLongSeq_initialize */
349 #define CDR_FloatSeq_initialize CDR_UnsignedLongSeq_initialize
350 
351 /*ci \brief Assign CDR_FloatSeq_get_maximum as alias of CDR_UnsignedLongSeq_get_maximum */
352 #define CDR_FloatSeq_get_maximum CDR_UnsignedLongSeq_get_maximum
353 
354 /*ci \brief Assign CDR_FloatSeq_set_maximum as alias of CDR_UnsignedLongSeq_set_maximum */
355 #define CDR_FloatSeq_set_maximum CDR_UnsignedLongSeq_set_maximum
356 
357 /*ci \brief Assign CDR_FloatSeq_get_length as alias of CDR_UnsignedLongSeq_get_length */
358 #define CDR_FloatSeq_get_length CDR_UnsignedLongSeq_get_length
359 
360 /*ci \brief Assign CDR_FloatSeq_set_length as alias of CDR_UnsignedLongSeq_set_length */
361 #define CDR_FloatSeq_set_length CDR_UnsignedLongSeq_set_length
362 
363 /*ci \brief Assign CDR_FloatSeq_get_reference as alias of CDR_UnsignedLongSeq_get_reference */
364 #define CDR_FloatSeq_get_reference (CDR_Float*)CDR_UnsignedLongSeq_get_reference
365 
366 
367 /* CDR_LongLongSeq operations */
368 
369 /*ci \brief Assign CDR_LongLongSeq_initialize as alias of CDR_UnsignedLongLongSeq_initialize */
370 #define CDR_LongLongSeq_initialize CDR_UnsignedLongLongSeq_initialize
371 
372 /*ci \brief Assign CDR_LongLongSeq_get_maximum as alias of CDR_UnsignedLongLongSeq_get_maximum */
373 #define CDR_LongLongSeq_get_maximum CDR_UnsignedLongLongSeq_get_maximum
374 
375 /*ci \brief Assign CDR_LongLongSeq_set_maximum as alias of CDR_UnsignedLongLongSeq_set_maximum */
376 #define CDR_LongLongSeq_set_maximum CDR_UnsignedLongLongSeq_set_maximum
377 
378 /*ci \brief Assign CDR_LongLongSeq_get_length as alias of CDR_UnsignedLongLongSeq_get_length */
379 #define CDR_LongLongSeq_get_length CDR_UnsignedLongLongSeq_get_length
380 
381 /*ci \brief Assign CDR_LongLongSeq_set_length as alias of CDR_UnsignedLongLongSeq_set_length */
382 #define CDR_LongLongSeq_set_length CDR_UnsignedLongLongSeq_set_length
383 
384 /*ci \brief Assign CDR_LongLongSeq_get_reference as alias of CDR_UnsignedLongLongSeq_get_reference */
385 #define CDR_LongLongSeq_get_reference (CDR_LongLong*)CDR_UnsignedLongLongSeq_get_reference
386 
387 
388 /* CDR_DoubleSeq operations */
389 
390 /*ci \brief Assign CDR_DoubleSeq_initialize as alias of CDR_UnsignedLongLongSeq_initialize */
391 #define CDR_DoubleSeq_initialize CDR_UnsignedLongLongSeq_initialize
392 
393 /*ci \brief Assign CDR_DoubleSeq_get_maximum as alias of CDR_UnsignedLongLongSeq_get_maximum */
394 #define CDR_DoubleSeq_get_maximum CDR_UnsignedLongLongSeq_get_maximum
395 
396 /*ci \brief Assign CDR_DoubleSeq_set_maximum as alias of CDR_UnsignedLongLongSeq_set_maximum */
397 #define CDR_DoubleSeq_set_maximum CDR_UnsignedLongLongSeq_set_maximum
398 
399 /*ci \brief Assign CDR_DoubleSeq_get_length as alias of CDR_UnsignedLongLongSeq_get_length */
400 #define CDR_DoubleSeq_get_length CDR_UnsignedLongLongSeq_get_length
401 
402 /*ci \brief Assign CDR_DoubleSeq_set_length as alias of CDR_UnsignedLongLongSeq_set_length */
403 #define CDR_DoubleSeq_set_length CDR_UnsignedLongLongSeq_set_length
404 
405 /*ci \brief Assign CDR_DoubleSeq_get_reference as alias of CDR_UnsignedLongLongSeq_get_reference */
406 #define CDR_DoubleSeq_get_reference (CDR_Double*)CDR_UnsignedLongLongSeq_get_reference
407 
408 #ifndef RTI_CERT
409 /*ci \brief Assign CDR_BooleanSeq_finalize as alias of CDR_OctetSeq_finalize */
410 #define CDR_BooleanSeq_finalize CDR_OctetSeq_finalize
411 
412 /*ci \brief Assign CDR_CharSeq_finalize as alias of CDR_OctetSeq_finalize */
413 #define CDR_CharSeq_finalize CDR_OctetSeq_finalize
414 
415 /*ci \brief Assign CDR_ShortSeq_finalize as alias of CDR_UnsignedShortSeq_finalize */
416 #define CDR_ShortSeq_finalize CDR_UnsignedShortSeq_finalize
417 
418 /*ci \brief Assign CDR_LongSeq_finalize as alias of CDR_UnsignedLongSeq_finalize */
419 #define CDR_LongSeq_finalize CDR_UnsignedLongSeq_finalize
420 
421 /*ci \brief Assign CDR_EnumSeq_finalize as alias of CDR_UnsignedLongSeq_finalize */
422 #define CDR_EnumSeq_finalize CDR_UnsignedLongSeq_finalize
423 
424 /*ci \brief Assign CDR_WcharSeq_finalize as alias of CDR_UnsignedLongSeq_finalize */
425 #define CDR_WcharSeq_finalize CDR_UnsignedLongSeq_finalize
426 
427 /*ci \brief Assign CDR_FloatSeq_finalize as alias of CDR_UnsignedLongSeq_finalize */
428 #define CDR_FloatSeq_finalize CDR_UnsignedLongSeq_finalize
429 
430 /*ci \brief Assign CDR_LongLongSeq_finalize as alias of CDR_UnsignedLongLongSeq_finalize */
431 #define CDR_LongLongSeq_finalize CDR_UnsignedLongLongSeq_finalize
432 
433 /*ci \brief Assign CDR_DoubleSeq_finalize as alias of CDR_UnsignedLongLongSeq_finalize */
434 #define CDR_DoubleSeq_finalize CDR_UnsignedLongLongSeq_finalize
435 #endif /* !RTI_CERT */
436 
437 /*ci \brief Assign CDR_BooleanSeq_copy as alias of CDR_OctetSeq_copy */
438 #define CDR_BooleanSeq_copy CDR_OctetSeq_copy
439 
440 /*ci \brief Assign CDR_CharSeq_copy as alias of CDR_OctetSeq_copy */
441 #define CDR_CharSeq_copy CDR_OctetSeq_copy
442 
443 /*ci \brief Assign CDR_ShortSeq_copy as alias of CDR_UnsignedShortSeq_copy */
444 #define CDR_ShortSeq_copy CDR_UnsignedShortSeq_copy
445 
446 /*ci \brief Assign CDR_LongSeq_copy as alias of CDR_UnsignedLongSeq_copy */
447 #define CDR_LongSeq_copy CDR_UnsignedLongSeq_copy
448 
449 /*ci \brief Assign CDR_EnumSeq_copy as alias of CDR_UnsignedLongSeq_copy */
450 #define CDR_EnumSeq_copy CDR_UnsignedLongSeq_copy
451 
452 /*ci \brief Assign CDR_WcharSeq_copy as alias of CDR_UnsignedLongSeq_copy */
453 #define CDR_WcharSeq_copy CDR_UnsignedLongSeq_copy
454 
455 /*ci \brief Assign CDR_FloatSeq_copy as alias of CDR_UnsignedLongSeq_copy */
456 #define CDR_FloatSeq_copy CDR_UnsignedLongSeq_copy
457 
458 /*ci \brief Assign CDR_LongLongSeq_copy as alias of CDR_UnsignedLongLongSeq_copy */
459 #define CDR_LongLongSeq_copy CDR_UnsignedLongLongSeq_copy
460 
461 /*ci \brief Assign CDR_DoubleSeq_copy as alias of CDR_UnsignedLongLongSeq_copy */
462 #define CDR_DoubleSeq_copy CDR_UnsignedLongLongSeq_copy
463 
464 
465 /* Define the following aliases if the DEFAULT API is > BASIC */
466 #if REDA_SEQUENCE_API_USER_DEFAULT > REDA_SEQUENCE_API_BASIC
467 
468 /*ci \brief Assign CDR_BooleanSeq_is_equal as alias of CDR_OctetSeq_is_equal */
469 #define CDR_BooleanSeq_is_equal CDR_OctetSeq_is_equal
470 
471 /*ci \brief Assign CDR_BooleanSeq_loan_contiguous as alias of CDR_OctetSeq_loan_contiguous */
472 #define CDR_BooleanSeq_loan_contiguous CDR_OctetSeq_loan_contiguous
473 
474 /*ci \brief Assign CDR_BooleanSeq_loan_discontiguous as alias of CDR_OctetSeq_loan_discontiguous */
475 #define CDR_BooleanSeq_loan_discontiguous CDR_OctetSeq_loan_discontiguous
476 
477 /*ci \brief Assign CDR_BooleanSeq_unloan as alias of CDR_OctetSeq_unloan */
478 #define CDR_BooleanSeq_unloan CDR_OctetSeq_unloan
479 
480 /*ci \brief Assign CDR_BooleanSeq_has_ownership as alias of CDR_OctetSeq_has_ownership */
481 #define CDR_BooleanSeq_has_ownership CDR_OctetSeq_has_ownership
482 
483 /*ci \brief Assign CDR_BooleanSeq_get_buffer as alias of CDR_OctetSeq_get_buffer */
484 #define CDR_BooleanSeq_get_buffer (CDR_Boolean *)CDR_OctetSeq_get_buffer
485 
486 /*ci \brief Assign CDR_BooleanSeq_set_buffer as alias of CDR_OctetSeq_set_buffer */
487 #define CDR_BooleanSeq_set_buffer(self_,buff_) CDR_OctetSeq_set_buffer(self_,(CDR_Octet*)(buff_))
488 
489 /*ci \brief Assign CDR_BooleanSeq_has_discontiguous_buffer as alias of CDR_OctetSeq_has_discontiguous_buffer */
490 #define CDR_BooleanSeq_has_discontiguous_buffer CDR_OctetSeq_has_discontiguous_buffer
491 
492 
493 /* CDR_CharSeq operations */
494 
495 /*ci \brief Assign CDR_CharSeq_is_equal as alias of CDR_OctetSeq_is_equal */
496 #define CDR_CharSeq_is_equal CDR_OctetSeq_is_equal
497 
498 /*ci \brief Assign CDR_CharSeq_loan_contiguous as alias of CDR_OctetSeq_loan_contiguous */
499 #define CDR_CharSeq_loan_contiguous CDR_OctetSeq_loan_contiguous
500 
501 /*ci \brief Assign CDR_CharSeq_loan_discontiguous as alias of CDR_OctetSeq_loan_discontiguous */
502 #define CDR_CharSeq_loan_discontiguous CDR_OctetSeq_loan_discontiguous
503 
504 /*ci \brief Assign CDR_CharSeq_unloan as alias of CDR_OctetSeq_unloan */
505 #define CDR_CharSeq_unloan CDR_OctetSeq_unloan
506 
507 /*ci \brief Assign CDR_CharSeq_has_ownership as alias of CDR_OctetSeq_has_ownership */
508 #define CDR_CharSeq_has_ownership CDR_OctetSeq_has_ownership
509 
510 /*ci \brief Assign CDR_CharSeq_get_buffer as alias of CDR_OctetSeq_get_buffer */
511 #define CDR_CharSeq_get_buffer (CDR_Char*)CDR_OctetSeq_get_buffer
512 
513 /*ci \brief Assign CDR_CharSeq_set_buffer as alias of CDR_OctetSeq_set_buffer */
514 #define CDR_CharSeq_set_buffer(self_,buff_) CDR_OctetSeq_set_buffer(self_,(CDR_Octet*)(buff_))
515 
516 /*ci \brief Assign CDR_CharSeq_has_discontiguous_buffer as alias of CDR_OctetSeq_has_discontiguous_buffer */
517 #define CDR_CharSeq_has_discontiguous_buffer CDR_OctetSeq_has_discontiguous_buffer
518 
519 
520 /* CDR_ShortSeq operations */
521 
522 /*ci \brief Assign CDR_ShortSeq_is_equal as alias of CDR_UnsignedShortSeq_is_equal */
523 #define CDR_ShortSeq_is_equal CDR_UnsignedShortSeq_is_equal
524 
525 /*ci \brief Assign CDR_ShortSeq_loan_contiguous as alias of CDR_UnsignedShortSeq_loan_contiguous */
526 #define CDR_ShortSeq_loan_contiguous CDR_UnsignedShortSeq_loan_contiguous
527 
528 /*ci \brief Assign CDR_ShortSeq_loan_discontiguous as alias of CDR_UnsignedShortSeq_loan_discontiguous */
529 #define CDR_ShortSeq_loan_discontiguous CDR_UnsignedShortSeq_loan_discontiguous
530 
531 /*ci \brief Assign CDR_ShortSeq_unloan as alias of CDR_UnsignedShortSeq_unloan */
532 #define CDR_ShortSeq_unloan CDR_UnsignedShortSeq_unloan
533 
534 /*ci \brief Assign CDR_ShortSeq_has_ownership as alias of CDR_UnsignedShortSeq_has_ownership */
535 #define CDR_ShortSeq_has_ownership CDR_UnsignedShortSeq_has_ownership
536 
537 /*ci \brief Assign CDR_ShortSeq_get_buffer as alias of CDR_UnsignedShortSeq_get_buffer */
538 #define CDR_ShortSeq_get_buffer (CDR_Short*)CDR_UnsignedShortSeq_get_buffer
539 
540 /*ci \brief Assign CDR_ShortSeq_set_buffer as alias of CDR_UnsignedShortSeq_set_buffer */
541 #define CDR_ShortSeq_set_buffer(self_,buff_) CDR_UnsignedShortSeq_set_buffer(self_,(CDR_UnsignedShort*)(buff_))
542 
543 /*ci \brief Assign CDR_ShortSeq_has_discontiguous_buffer as alias of CDR_UnsignedShortSeq_has_discontiguous_buffer */
544 #define CDR_ShortSeq_has_discontiguous_buffer CDR_UnsignedShortSeq_has_discontiguous_buffer
545 
546 
547 /* CDR_LongSeq operations */
548 
549 /*ci \brief Assign CDR_LongSeq_is_equal as alias of CDR_UnsignedLongSeq_is_equal */
550 #define CDR_LongSeq_is_equal CDR_UnsignedLongSeq_is_equal
551 
552 /*ci \brief Assign CDR_LongSeq_loan_contiguous as alias of CDR_UnsignedLongSeq_loan_contiguous */
553 #define CDR_LongSeq_loan_contiguous CDR_UnsignedLongSeq_loan_contiguous
554 
555 /*ci \brief Assign CDR_LongSeq_loan_discontiguous as alias of CDR_UnsignedLongSeq_loan_discontiguous */
556 #define CDR_LongSeq_loan_discontiguous CDR_UnsignedLongSeq_loan_discontiguous
557 
558 /*ci \brief Assign CDR_LongSeq_unloan as alias of CDR_UnsignedLongSeq_unloan */
559 #define CDR_LongSeq_unloan CDR_UnsignedLongSeq_unloan
560 
561 /*ci \brief Assign CDR_LongSeq_has_ownership as alias of CDR_UnsignedLongSeq_has_ownership */
562 #define CDR_LongSeq_has_ownership CDR_UnsignedLongSeq_has_ownership
563 
564 /*ci \brief Assign CDR_LongSeq_get_buffer as alias of CDR_UnsignedLongSeq_get_buffer */
565 #define CDR_LongSeq_get_buffer (CDR_Long *)CDR_UnsignedLongSeq_get_buffer
566 
567 /*ci \brief Assign CDR_LongSeq_set_buffer as alias of CDR_UnsignedLongSeq_set_buffer */
568 #define CDR_LongSeq_set_buffer(self_,buff_) CDR_UnsignedLongSeq_set_buffer(self_,(CDR_UnsignedLong*)(buff_))
569 
570 /*ci \brief Assign CDR_LongSeq_has_discontiguous_buffer as alias of CDR_UnsignedLongSeq_has_discontiguous_buffer */
571 #define CDR_LongSeq_has_discontiguous_buffer CDR_UnsignedLongSeq_has_discontiguous_buffer
572 
573 
574 /* CDR_EnumSeq operations */
575 
576 /*ci \brief Assign CDR_EnumSeq_is_equal as alias of CDR_UnsignedLongSeq_is_equal */
577 #define CDR_EnumSeq_is_equal CDR_UnsignedLongSeq_is_equal
578 
579 /*ci \brief Assign CDR_EnumSeq_loan_contiguous as alias of CDR_UnsignedLongSeq_loan_contiguous */
580 #define CDR_EnumSeq_loan_contiguous CDR_UnsignedLongSeq_loan_contiguous
581 
582 /*ci \brief Assign CDR_EnumSeq_loan_discontiguous as alias of CDR_UnsignedLongSeq_loan_discontiguous */
583 #define CDR_EnumSeq_loan_discontiguous CDR_UnsignedLongSeq_loan_discontiguous
584 
585 /*ci \brief Assign CDR_EnumSeq_unloan as alias of CDR_UnsignedLongSeq_unloan */
586 #define CDR_EnumSeq_unloan CDR_UnsignedLongSeq_unloan
587 
588 /*ci \brief Assign CDR_EnumSeq_has_ownership as alias of CDR_UnsignedLongSeq_has_ownership */
589 #define CDR_EnumSeq_has_ownership CDR_UnsignedLongSeq_has_ownership
590 
591 /*ci \brief Assign CDR_EnumSeq_get_buffer as alias of CDR_UnsignedLongSeq_get_buffer */
592 #define CDR_EnumSeq_get_buffer (CDR_Enum*)CDR_UnsignedLongSeq_get_buffer
593 
594 /*ci \brief Assign CDR_EnumSeq_set_buffer as alias of CDR_UnsignedLongSeq_set_buffer */
595 #define CDR_EnumSeq_set_buffer(self_,buff_) CDR_UnsignedLongSeq_set_buffer(self_,(CDR_UnsignedLong*)(buff_))
596 
597 /*ci \brief Assign CDR_EnumSeq_has_discontiguous_buffer as alias of CDR_UnsignedLongSeq_has_discontiguous_buffer */
598 #define CDR_EnumSeq_has_discontiguous_buffer CDR_UnsignedLongSeq_has_discontiguous_buffer
599 
600 
601 /* CDR_WcharSeq operations */
602 
603 /*ci \brief Assign CDR_WcharSeq_is_equal as alias of CDR_UnsignedLongSeq_is_equal */
604 #define CDR_WcharSeq_is_equal CDR_UnsignedLongSeq_is_equal
605 
606 /*ci \brief Assign CDR_WcharSeq_loan_contiguous as alias of CDR_UnsignedLongSeq_loan_contiguous */
607 #define CDR_WcharSeq_loan_contiguous CDR_UnsignedLongSeq_loan_contiguous
608 
609 /*ci \brief Assign CDR_WcharSeq_loan_discontiguous as alias of CDR_UnsignedLongSeq_loan_discontiguous */
610 #define CDR_WcharSeq_loan_discontiguous CDR_UnsignedLongSeq_loan_discontiguous
611 
612 /*ci \brief Assign CDR_WcharSeq_unloan as alias of CDR_UnsignedLongSeq_unloan */
613 #define CDR_WcharSeq_unloan CDR_UnsignedLongSeq_unloan
614 
615 /*ci \brief Assign CDR_WcharSeq_has_ownership as alias of CDR_UnsignedLongSeq_has_ownership */
616 #define CDR_WcharSeq_has_ownership CDR_UnsignedLongSeq_has_ownership
617 
618 /*ci \brief Assign CDR_WcharSeq_get_buffer as alias of CDR_UnsignedLongSeq_get_buffer */
619 #define CDR_WcharSeq_get_buffer (CDR_Wchar *)CDR_UnsignedLongSeq_get_buffer
620 
621 /*ci \brief Assign CDR_WcharSeq_set_buffer as alias of CDR_UnsignedLongSeq_set_buffer */
622 #define CDR_WcharSeq_set_buffer(self_,buff_) CDR_UnsignedLongSeq_set_buffer(self_,(CDR_UnsignedLong*)(buff_))
623 
624 /*ci \brief Assign CDR_WcharSeq_has_discontiguous_buffer as alias of CDR_UnsignedLongSeq_has_discontiguous_buffer */
625 #define CDR_WcharSeq_has_discontiguous_buffer CDR_UnsignedLongSeq_has_discontiguous_buffer
626 
627 
628 /* CDR_FloatSeq operations */
629 
630 /*ci \brief Assign CDR_FloatSeq_is_equal as alias of CDR_UnsignedLongSeq_is_equal */
631 #define CDR_FloatSeq_is_equal CDR_UnsignedLongSeq_is_equal
632 
633 /*ci \brief Assign CDR_FloatSeq_loan_contiguous as alias of CDR_UnsignedLongSeq_loan_contiguous */
634 #define CDR_FloatSeq_loan_contiguous CDR_UnsignedLongSeq_loan_contiguous
635 
636 /*ci \brief Assign CDR_FloatSeq_loan_discontiguous as alias of CDR_UnsignedLongSeq_loan_discontiguous */
637 #define CDR_FloatSeq_loan_discontiguous CDR_UnsignedLongSeq_loan_discontiguous
638 
639 /*ci \brief Assign CDR_FloatSeq_unloan as alias of CDR_UnsignedLongSeq_unloan */
640 #define CDR_FloatSeq_unloan CDR_UnsignedLongSeq_unloan
641 
642 /*ci \brief Assign CDR_FloatSeq_has_ownership as alias of CDR_UnsignedLongSeq_has_ownership */
643 #define CDR_FloatSeq_has_ownership CDR_UnsignedLongSeq_has_ownership
644 
645 /*ci \brief Assign CDR_FloatSeq_get_buffer as alias of CDR_UnsignedLongSeq_get_buffer */
646 #define CDR_FloatSeq_get_buffer (CDR_Float*)CDR_UnsignedLongSeq_get_buffer
647 
648 /*ci \brief Assign CDR_FloatSeq_set_buffer as alias of CDR_UnsignedLongSeq_set_buffer */
649 #define CDR_FloatSeq_set_buffer(self_,buff_) CDR_UnsignedLongSeq_set_buffer(self_,(CDR_UnsignedLong*)(buff_))
650 
651 /*ci \brief Assign CDR_FloatSeq_has_discontiguous_buffer as alias of CDR_UnsignedLongSeq_has_discontiguous_buffer */
652 #define CDR_FloatSeq_has_discontiguous_buffer CDR_UnsignedLongSeq_has_discontiguous_buffer
653 
654 
655 /* CDR_LongLongSeq operations */
656 
657 /*ci \brief Assign CDR_LongLongSeq_is_equal as alias of CDR_UnsignedLongLongSeq_is_equal */
658 #define CDR_LongLongSeq_is_equal CDR_UnsignedLongLongSeq_is_equal
659 
660 /*ci \brief Assign CDR_LongLongSeq_loan_contiguous as alias of CDR_UnsignedLongLongSeq_loan_contiguous */
661 #define CDR_LongLongSeq_loan_contiguous CDR_UnsignedLongLongSeq_loan_contiguous
662 
663 /*ci \brief Assign CDR_LongLongSeq_loan_discontiguous as alias of CDR_UnsignedLongLongSeq_loan_discontiguous */
664 #define CDR_LongLongSeq_loan_discontiguous CDR_UnsignedLongLongSeq_loan_discontiguous
665 
666 /*ci \brief Assign CDR_LongLongSeq_unloan as alias of CDR_UnsignedLongLongSeq_unloan */
667 #define CDR_LongLongSeq_unloan CDR_UnsignedLongLongSeq_unloan
668 
669 /*ci \brief Assign CDR_LongLongSeq_has_ownership as alias of CDR_UnsignedLongLongSeq_has_ownership */
670 #define CDR_LongLongSeq_has_ownership CDR_UnsignedLongLongSeq_has_ownership
671 
672 /*ci \brief Assign CDR_LongLongSeq_get_buffer as alias of CDR_UnsignedLongLongSeq_get_buffer */
673 #define CDR_LongLongSeq_get_buffer (CDR_LongLong*)CDR_UnsignedLongLongSeq_get_buffer
674 
675 /*ci \brief Assign CDR_LongLongSeq_set_buffer as alias of CDR_UnsignedLongLongSeq_set_buffer */
676 #define CDR_LongLongSeq_set_buffer(self_,buff_) CDR_UnsignedLongLongSeq_set_buffer(self_,(CDR_UnsignedLongLong*)(buff_))
677 
678 /*ci \brief Assign CDR_LongLongSeq_has_discontiguous_buffer as alias of CDR_UnsignedLongLongSeq_has_discontiguous_buffer */
679 #define CDR_LongLongSeq_has_discontiguous_buffer CDR_UnsignedLongLongSeq_has_discontiguous_buffer
680 
681 
682 /* CDR_DoubleSeq operations */
683 
684 /*ci \brief Assign CDR_DoubleSeq_is_equal as alias of CDR_UnsignedLongLongSeq_is_equal */
685 #define CDR_DoubleSeq_is_equal CDR_UnsignedLongLongSeq_is_equal
686 
687 /*ci \brief Assign CDR_DoubleSeq_loan_contiguous as alias of CDR_UnsignedLongLongSeq_loan_contiguous */
688 #define CDR_DoubleSeq_loan_contiguous CDR_UnsignedLongLongSeq_loan_contiguous
689 
690 /*ci \brief Assign CDR_DoubleSeq_loan_discontiguous as alias of CDR_UnsignedLongLongSeq_loan_discontiguous */
691 #define CDR_DoubleSeq_loan_discontiguous CDR_UnsignedLongLongSeq_loan_discontiguous
692 
693 /*ci \brief Assign CDR_DoubleSeq_unloan as alias of CDR_UnsignedLongLongSeq_unloan */
694 #define CDR_DoubleSeq_unloan CDR_UnsignedLongLongSeq_unloan
695 
696 /*ci \brief Assign CDR_DoubleSeq_has_ownership as alias of CDR_UnsignedLongLongSeq_has_ownership */
697 #define CDR_DoubleSeq_has_ownership CDR_UnsignedLongLongSeq_has_ownership
698 
699 /*ci \brief Assign CDR_DoubleSeq_get_buffer as alias of CDR_UnsignedLongLongSeq_get_buffer */
700 #define CDR_DoubleSeq_get_buffer (CDR_Double *)CDR_UnsignedLongLongSeq_get_buffer
701 
702 /*ci \brief Assign CDR_DoubleSeq_set_buffer as alias of CDR_UnsignedLongLongSeq_set_buffer */
703 #define CDR_DoubleSeq_set_buffer(self_,buff_) CDR_UnsignedLongLongSeq_set_buffer(self_,(CDR_UnsignedLongLong*)(buff_))
704 
705 /*ci \brief Assign CDR_DoubleSeq_has_discontiguous_buffer as alias of CDR_UnsignedLongLongSeq_has_discontiguous_buffer */
706 #define CDR_DoubleSeq_has_discontiguous_buffer CDR_UnsignedLongLongSeq_has_discontiguous_buffer
707 
708 #endif /* REDA_SEQUENCE_API_USER_DEFAULT > REDA_SEQUENCE_API_BASIC */
709 
710 #if REDA_SEQUENCE_API > REDA_SEQUENCE_API_FULL
711 #error "REDA_SEQUENCE_API_UNTYPED <= REDA_SEQUENCE_API <= REDA_SEQUENCE_API_FULL"
712 #endif
713 
714 
715 /*ci \brief Property Sequence */
716 #define T struct CDR_Property
717 #define TSeq CDR_PropertySeq
718 #define REDA_SEQUENCE_API REDA_SEQUENCE_API_UNTYPED
719 #define TSeq_initialize
720 #define TSeq_get_length
721 #define TSeq_set_length
722 #define TSeq_get_reference
723 #include <reda/reda_sequence_decl.h>
724 
725 /* ================================================================= */
726 /* CDR Primitive Type Enumeration and Attributes */
727 /* ================================================================= */
728 /*ci \brief Primitive type enum */
729 typedef enum
730 {
731  CDR_CHAR_TYPE,
732  CDR_WCHAR_TYPE,
733  CDR_OCTET_TYPE,
734  CDR_SHORT_TYPE,
735  CDR_UNSIGNED_SHORT_TYPE,
736  CDR_LONG_TYPE,
737  CDR_UNSIGNED_LONG_TYPE,
738  CDR_LONG_LONG_TYPE,
739  CDR_UNSIGNED_LONG_LONG_TYPE,
740  CDR_FLOAT_TYPE,
741  CDR_DOUBLE_TYPE,
742  CDR_LONG_DOUBLE_TYPE,
743  CDR_BOOLEAN_TYPE,
744  CDR_ENUM_TYPE,
745 } CdrPrimitiveType;
746 
747 /*ci \brief Boolean type size */
748 #define CDR_BOOLEAN_SIZE 1
749 
750 /*ci \brief Octet type size */
751 #define CDR_OCTET_SIZE 1
752 
753 /*ci \brief Char type size */
754 #define CDR_CHAR_SIZE 1
755 
756 /*ci \brief Short type size */
757 #define CDR_SHORT_SIZE 2
758 
759 /*ci \brief Unsigned Short type size */
760 #define CDR_UNSIGNED_SHORT_SIZE 2
761 
762 /*ci \brief Long type size */
763 #define CDR_LONG_SIZE 4
764 
765 /*ci \brief Unsigned Long type size */
766 #define CDR_UNSIGNED_LONG_SIZE 4
767 
768 /*ci \brief Float type size */
769 #define CDR_FLOAT_SIZE 4
770 
771 /*ci \brief WChar type size */
772 #define CDR_WCHAR_SIZE 4
773 
774 /*ci \brief Enum type size */
775 #define CDR_ENUM_SIZE 4
776 
777 /*ci \brief Long Long type size */
778 #define CDR_LONG_LONG_SIZE 8
779 
780 /*ci \brief Unsigned Long Long type size */
781 #define CDR_UNSIGNED_LONG_LONG_SIZE 8
782 
783 /*ci \brief Double type size */
784 #define CDR_DOUBLE_SIZE 8
785 
786 /*ci \brief Long Double type size */
787 #define CDR_LONG_DOUBLE_SIZE 16
788 
789 /******************************************************************************/
790 /*ci \brief Octet type alignment */
791 #define CDR_OCTET_ALIGN 1
792 
793 /*ci \brief Short type alignment */
794 #define CDR_SHORT_ALIGN 2
795 
796 /*ci \brief Long type alignment */
797 #define CDR_LONG_ALIGN 4
798 
799 /*ci \brief Float type alignment */
800 #define CDR_FLOAT_ALIGN 4
801 
802 /*ci \brief Long Long type alignment */
803 #define CDR_LONG_LONG_ALIGN 8
804 
805 /*ci \brief Double type alignment */
806 #define CDR_DOUBLE_ALIGN 8
807 
808 /*ci \brief Long Double type alignment */
809 #define CDR_LONG_DOUBLE_ALIGN 8
810 
811 /*ci \brief Get alignment of a given type
812  *
813  * \param[in] type Type to get alignment
814  *
815  * \return Alignment in bytes of input type
816  */
817 RTI_UINT32
818 CDR_Primitive_get_alignment(CdrPrimitiveType type);
819 
820 
821 /*ci \brief Get size of a given type
822  *
823  * \param[in] type Type to get size
824  *
825  * \return Size in bytes of input type
826  */
827 RTI_UINT32
828 CDR_Primitive_get_size(CdrPrimitiveType type);
829 
830 
831 /* ================================================================= */
832 /* Type Specific Initialization & Copy */
833 /* ================================================================= */
834 /* not all types are atomic so we define macros to emulate as needed */
835 
836 /*ci \brief Initialize Char
837  * \param[inout] value Pointer to value to initialize
838  */
839 #define CDR_Primitive_init_char(value) *(value) = 0
840 
841 /*ci \brief Initialize Octet
842  * \param[inout] value Pointer to value to initialize
843  */
844 #define CDR_Primitive_init_octet(value) *(value) = 0
845 
846 /*ci \brief Initialize Boolean
847  * \param[inout] value Pointer to value to initialize
848  */
849 #define CDR_Primitive_init_boolean(value) *(value) = 0
850 
851 /*ci \brief Initialize Short
852  * \param[inout] value Pointer to value to initialize
853  */
854 #define CDR_Primitive_init_short(value) *(value) = 0
855 
856 /*ci \brief Initialize Unsigned Short
857  * \param[inout] value Pointer to value to initialize
858  */
859 #define CDR_Primitive_init_unsigned_short(value) *(value) = 0
860 
861 /*ci \brief Initialize Long
862  * \param[inout] value Pointer to value to initialize
863  */
864 #define CDR_Primitive_init_long(value) *(value) = 0
865 
866 /*ci \brief Initialize Unsigned Long
867  * \param[inout] value Pointer to value to initialize
868  */
869 #define CDR_Primitive_init_unsigned_long(value) *(value) = 0
870 
871 /*ci \brief Initialize WChar
872  * \param[inout] value Pointer to value to initialize
873  */
874 #define CDR_Primitive_init_wchar(value) *(value) = 0
875 
876 /*ci \brief Initialize Enum
877  * \param[inout] value Pointer to value to initialize
878  */
879 #define CDR_Primitive_init_enum(value) *(value) = 0
880 
881 /*ci \brief Initialize Float
882  * \param[inout] value Pointer to value to initialize
883  */
884 #define CDR_Primitive_init_float(value) *(value) = 0
885 
886 /*ci \brief Initialize Long Long
887  * \param[inout] value Pointer to value to initialize
888  */
889 #define CDR_Primitive_init_long_long(value) *(value) = 0
890 
891 /*ci \brief Initialize Unsigned Long Long
892  * \param[inout] value Pointer to value to initialize
893  */
894 #define CDR_Primitive_init_unsigned_long_long(value) *(value) = 0
895 
896 /*ci \brief Initialize Double
897  * \param[inout] value Pointer to value to initialize
898  */
899 #define CDR_Primitive_init_double(value) *(value) = 0
900 
901 /*ci \brief Initialize Long Double
902  * \param[inout] value Pointer to value to initialize
903  */
904 #ifdef RTI_HAVE_LONG_DOUBLE
905 #define CDR_Primitive_init_long_double(value) *(value) = 0
906 #else
907 #define CDR_Primitive_init_long_double(value) \
908  OSAPI_Memory_zero(value,sizeof(RTI_DOUBLE128))
909 #endif
910 
911 /*ci \brief Initialize String
912  * \param[inout] value Pointer to String to initialize
913  * \param[in] maxsize Maximum string size
914  */
915 #define CDR_Primitive_init_string(value,maxsize) \
916  OSAPI_Memory_zero(value,maxsize)
917 
918 /*ci \brief Initialize WString
919  * \param[inout] value Pointer to WString to initialize
920  * \param[in] maxsize Maximum string size
921  */
922 #define CDR_Primitive_init_wstring(value,maxsize) \
923  OSAPI_Memory_zero(value,((maxsize)*CDR_WCHAR_SIZE))
924 
925 /*ci \brief Initialize Array
926  * \param[inout] value Pointer to array to initialize
927  * \param[in] maxsize Maximum Array length
928  */
929 #define CDR_Primitive_init_array(value,maxsize) \
930  OSAPI_Memory_zero(value,maxsize)
931 
932 /******************************************************************************/
933 /*ci \brief Copy Char
934  * \param[inout] dst Destination of copy
935  * \param[in] src Source to copy
936  */
937 #define CDR_Primitive_copy_char(dst,src) *(dst) = *(src)
938 
939 /*ci \brief Copy Octet
940  * \param[inout] dst Destination of copy
941  * \param[in] src Source to copy
942  */
943 #define CDR_Primitive_copy_octet(dst,src) *(dst) = *(src)
944 
945 /*ci \brief Copy Boolean
946  * \param[inout] dst Destination of copy
947  * \param[in] src Source to copy
948  */
949 #define CDR_Primitive_copy_boolean(dst,src) *(dst) = *(src)
950 
951 /*ci \brief Copy Short
952  * \param[inout] dst Destination of copy
953  * \param[in] src Source to copy
954  */
955 #define CDR_Primitive_copy_short(dst,src) *(dst) = *(src)
956 
957 /*ci \brief Copy Unsigned Short
958  * \param[inout] dst Destination of copy
959  * \param[in] src Source to copy
960  */
961 #define CDR_Primitive_copy_unsigned_short(dst,src) *(dst) = *(src)
962 
963 /*ci \brief Copy Long
964  * \param[inout] dst Destination of copy
965  * \param[in] src Source to copy
966  */
967 #define CDR_Primitive_copy_long(dst,src) *(dst) = *(src)
968 
969 /*ci \brief Copy Unsigned Long
970  * \param[inout] dst Destination of copy
971  * \param[in] src Source to copy
972  */
973 #define CDR_Primitive_copy_unsigned_long(dst,src) *(dst) = *(src)
974 
975 /*ci \brief Copy WChar
976  * \param[inout] dst Destination of copy
977  * \param[in] src Source to copy
978  */
979 #define CDR_Primitive_copy_wchar(dst,src) *(dst) = *(src)
980 
981 /*ci \brief Copy Enum
982  * \param[inout] dst Destination of copy
983  * \param[in] src Source to copy
984  */
985 #define CDR_Primitive_copy_enum(dst,src) *(dst) = *(src)
986 
987 /*ci \brief Copy Float
988  * \param[inout] dst Destination of copy
989  * \param[in] src Source to copy
990  */
991 #define CDR_Primitive_copy_float(dst,src) *(dst) = *(src)
992 
993 /*ci \brief Copy Long Long
994  * \param[inout] dst Destination of copy
995  * \param[in] src Source to copy
996  */
997 #define CDR_Primitive_copy_long_long(dst,src) *(dst) = *(src)
998 
999 /*ci \brief Copy Unsigned Long Long
1000  * \param[inout] dst Destination of copy
1001  * \param[in] src Source to copy
1002  */
1003 #define CDR_Primitive_copy_unsigned_long_long(dst,src) *(dst) = *(src)
1004 
1005 /*ci \brief Copy Double
1006  * \param[inout] dst Destination of copy
1007  * \param[in] src Source to copy
1008  */
1009 #define CDR_Primitive_copy_double(dst,src) *(dst) = *(src)
1010 
1011 /*ci \brief Copy Long Double
1012  * \param[inout] dst Destination of copy
1013  * \param[in] src Source to copy
1014  */
1015 #ifdef RTI_HAVE_LONG_DOUBLE
1016 #define CDR_Primitive_copy_long_double(dst,src) *(dst) = *(src)
1017 #else
1018 #define CDR_Primitive_copy_long_double(dst,src) \
1019  OSAPI_Memory_copy((void*)dst,(void*)src,sizeof(RTI_DOUBLE128))
1020 #endif
1021 
1022 /*ci \brief Copy String
1023  * \param[inout] dst Destination of copy
1024  * \param[in] src Source to copy
1025  */
1026 #define CDR_Primitive_copy_string(dst,src,maxsize) \
1027  OSAPI_Memory_copy((void*)dst,(void*)src,maxsize)
1028 
1029 /*ci \brief Copy WString
1030  * \param[inout] dst Destination of copy
1031  * \param[in] src Source to copy
1032  */
1033 #define CDR_Primitive_copy_wstring(dst,src,maxsize) \
1034  OSAPI_Memory_copy((void*)dst,(void*)src,((maxsize)*CDR_WCHAR_SIZE))
1035 
1036 /*ci \brief Copy Array
1037  * \param[inout] dst Destination of copy
1038  * \param[in] src Source to copy
1039  */
1040 #define CDR_Primitive_copy_array(dst,src,maxsize) \
1041  OSAPI_Memory_copy((void*)dst,(void*)src,maxsize)
1042 
1043 /*==============================================================================
1044  * Type Helper Functions and
1045  * String Sequence support wrapper functions to convert from String* to Char*
1046  * ===========================================================================*/
1047 
1048 /*ci
1049  * \brief
1050  * Initialize memory for string
1051  *
1052  * \param[inout] string String to initialize
1053  * \param[in] max_str_len Maximum string length
1054  *
1055  * \return RTI_TRUE on success, RTI_FALSE on failure
1056  */
1057 MUST_CHECK_RETURN CDRDllExport RTI_BOOL
1058 CDR_String_initialize(CDR_String *, RTI_UINT32 max_str_len);
1059 
1060 /*ci
1061  * \brief
1062  * Finalize string
1063  *
1064  * \details
1065  * Note, CDR_String_finalize is required to return an RTI_BOOL to comply with
1066  * the expected interface for finalize functions needed by sequence methods
1067  *
1068  * \param[inout] string String to finalize
1069  *
1070  * \return RTI_TRUE on success, RTI_FALSE on failure
1071  */
1072 SHOULD_CHECK_RETURN CDRDllExport RTI_BOOL
1073 CDR_String_finalize(CDR_String * string);
1074 
1075 /*ci
1076  * \brief
1077  * Copy from source to destination string
1078  *
1079  * \param[inout] dst Destination string
1080  * \param[in] src Source string
1081  * \param[in] max_str_len Maximum length of source string
1082  *
1083  * \return RTI_TRUE on success, RTI_FALSE on failure
1084  */
1085 MUST_CHECK_RETURN CDRDllExport RTI_BOOL
1086 CDR_String_copy(CDR_String * dst, const CDR_String * src, RTI_UINT32 max_str_len);
1087 
1088 /*ci
1089  * \brief
1090  * Compare two strings
1091  *
1092  * \param[in] left Left string
1093  * \param[in] right Right string
1094  *
1095  * \return 1, 0, or -1 if the left string is greater than, equal to, or less
1096  * than the right string, respectively.
1097  */
1098 MUST_CHECK_RETURN CDRDllExport RTI_INT32
1099 CDR_String_compare(const CDR_String * left, const CDR_String * right);
1100 
1101 /*ci
1102  * \brief
1103  * Allocates and initializes memory for a wide char string
1104  *
1105  * \param[inout] Wstring to initialize
1106  * \param[in] max_str_len
1107  *
1108  * \return RTI_BOOL on success with wstring initialized, RTI_FALSE on failure.
1109  */
1110 MUST_CHECK_RETURN CDRDllExport RTI_BOOL
1111 CDR_Wstring_initialize(CDR_Wstring *, RTI_UINT32 max_str_len);
1112 
1113 /*ci
1114  * \brief
1115  * Finalize a wide char string
1116  *
1117  * \details
1118  * Note, CDR_Wstring_finalize is required to return an RTI_BOOL to comply with
1119  * the expected interface for finalize functions needed by sequence methods
1120  *
1121  * \param[in] wstring Wstring to finalize
1122  *
1123  * \return RTI_TRUE
1124  */
1125 SHOULD_CHECK_RETURN CDRDllExport RTI_BOOL
1126 CDR_Wstring_finalize(CDR_Wstring * wstring);
1127 
1128 /*ci
1129  * \brief
1130  * Returns length in bytes of wide char string
1131  *
1132  * \param[in] wstring
1133  *
1134  * \return Length of wstring in bytes
1135  */
1136 CDRDllExport RTI_SIZE_T
1137 CDR_Wstring_length(const CDR_Wchar * wstring);
1138 
1139 /*ci
1140  * \brief
1141  * Copy from source to destination wide char string
1142  *
1143  * \param[inout] dst Destination string
1144  * \param[in] src Source string
1145  * \param[in] max_str_len Maximum length of source string
1146  *
1147  * \return RTI_TRUE on success, RTI_FALSE on failure
1148  */
1149 MUST_CHECK_RETURN CDRDllExport RTI_BOOL
1150 CDR_Wstring_copy(CDR_Wstring * dst, const CDR_Wstring * src,
1151  RTI_UINT32 max_str_len);
1152 
1153 /*ci
1154  * \brief
1155  * Compare two wide char strings
1156  *
1157  * \param[in] left Left string
1158  * \param[in] right Right string
1159  *
1160  * \return 1, 0, or -1 if the left string is greater than, equal to, or less
1161  * than the right string, respectively.
1162  */
1163 MUST_CHECK_RETURN CDRDllExport RTI_INT32
1164 CDR_Wstring_compare(const CDR_Wstring * left, const CDR_Wstring * right);
1165 
1166 /*ci
1167  * \brief
1168  * Initialize an array of char or wide char strings
1169  *
1170  * \param[inout] value Preallocated buffer for array
1171  * \param[in] length Length of array
1172  * \param[in] max_str_len Maximum length of each string
1173  * \param[in] type Char or Wide Char type of string
1174  *
1175  * \return RTI_TRUE on success with each string of array initialized,
1176  * RTI_FALSE on failure
1177  */
1178 MUST_CHECK_RETURN CDRDllExport RTI_BOOL
1179 CDR_StringArray_initialize(void *value, RTI_UINT32 length,
1180  RTI_UINT32 max_str_len,
1181  CdrPrimitiveType type);
1182 
1183 /*ci
1184  * \brief
1185  * Finalize an array of char or wide char strings
1186  *
1187  * \param[inout] value Array pointer
1188  * \param[in] length Length of array
1189  * \param[in] type Char or Wide Char type of string
1190  *
1191  * \return RTI_TRUE on success with each string of array finalized,
1192  * RTI_FALSE on failure
1193  */
1194 SHOULD_CHECK_RETURN CDRDllExport RTI_BOOL
1195 CDR_StringArray_finalize(void *value, RTI_UINT32 length,
1196  CdrPrimitiveType type);
1197 
1198 /*ci
1199  * \brief
1200  * Copy an array of char or wide char strings to another array
1201  *
1202  * \param[out] out Destination array
1203  * \param[in] in Source array
1204  * \param[in] max_str_len Maximum string length of source
1205  * \param[in] type Char or Wide Char type of string
1206  *
1207  * \return RTI_TRUE on success, RTI_FALSE on failure
1208  */
1209 MUST_CHECK_RETURN CDRDllExport RTI_BOOL
1210 CDR_StringArray_copy(void *out, const void* in,
1211  RTI_UINT32 length,
1212  RTI_UINT32 max_str_len,
1213  CdrPrimitiveType type);
1214 
1215 /*==============================================================================
1216  * ===========================================================================*/
1217 
1218 #ifdef __cplusplus
1219 }
1220 #endif /* __cplusplus */
1221 
1222 
1223 #endif /* cdr_cdr_type_h */
1224 
1225 /*ci @} */

RTI Connext DDS Micro Version 2.4.6 Copyright © Sun Jan 24 2016 Real-Time Innovations, Inc