8 #ifdef OPENDDS_SAFETY_PROFILE 18 namespace OpenDDS {
namespace DCPS {
22 ACE_UNUSED_ARG(encoding);
26 if (seq.length() == 0) {
36 const Encoding& encoding = strm.encoding();
37 ACE_UNUSED_ARG(encoding);
39 if (!(strm << length)) {
45 return strm.write_boolean_array(seq.get_buffer(), length);
52 const Encoding& encoding = strm.encoding();
53 ACE_UNUSED_ARG(encoding);
55 if (!(strm >> length)) {
58 if (length > strm.length()) {
60 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
65 seq.length(new_length);
69 return strm.read_boolean_array(seq.get_buffer(), length);
72 void serialized_size(
const Encoding& encoding,
size_t& size,
const CORBASeq::CharSeq& seq)
74 ACE_UNUSED_ARG(encoding);
78 if (seq.length() == 0) {
84 bool operator<<(Serializer& strm,
const CORBASeq::CharSeq& seq)
88 const Encoding& encoding = strm.encoding();
89 ACE_UNUSED_ARG(encoding);
91 if (!(strm << length)) {
97 return strm.write_char_array(seq.get_buffer(), length);
100 bool operator>>(Serializer& strm, CORBASeq::CharSeq& seq)
102 ACE_UNUSED_ARG(strm);
104 const Encoding& encoding = strm.encoding();
105 ACE_UNUSED_ARG(encoding);
107 if (!(strm >> length)) {
110 if (length > strm.length()) {
112 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
117 seq.length(new_length);
121 return strm.read_char_array(seq.get_buffer(), length);
126 ACE_UNUSED_ARG(encoding);
127 ACE_UNUSED_ARG(size);
130 if (seq.length() == 0) {
133 encoding.align(size, 8);
139 ACE_UNUSED_ARG(strm);
141 const Encoding& encoding = strm.encoding();
142 ACE_UNUSED_ARG(encoding);
144 if (!(strm << length)) {
150 return strm.write_double_array(seq.get_buffer(), length);
155 ACE_UNUSED_ARG(strm);
157 const Encoding& encoding = strm.encoding();
158 ACE_UNUSED_ARG(encoding);
160 if (!(strm >> length)) {
163 if (length > strm.length()) {
165 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
170 seq.length(new_length);
174 return strm.read_double_array(seq.get_buffer(), length);
179 ACE_UNUSED_ARG(encoding);
180 ACE_UNUSED_ARG(size);
183 if (seq.length() == 0) {
191 ACE_UNUSED_ARG(strm);
193 const Encoding& encoding = strm.encoding();
194 ACE_UNUSED_ARG(encoding);
196 if (!(strm << length)) {
202 return strm.write_float_array(seq.get_buffer(), length);
207 ACE_UNUSED_ARG(strm);
209 const Encoding& encoding = strm.encoding();
210 ACE_UNUSED_ARG(encoding);
212 if (!(strm >> length)) {
215 if (length > strm.length()) {
217 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
222 seq.length(new_length);
226 return strm.read_float_array(seq.get_buffer(), length);
229 void serialized_size(
const Encoding& encoding,
size_t& size,
const CORBASeq::Int8Seq& seq)
231 ACE_UNUSED_ARG(encoding);
232 ACE_UNUSED_ARG(size);
235 if (seq.length() == 0) {
238 primitive_serialized_size_int8(encoding, size, seq.length());
241 bool operator<<(Serializer& strm,
const CORBASeq::Int8Seq& seq)
243 ACE_UNUSED_ARG(strm);
245 const Encoding& encoding = strm.encoding();
246 ACE_UNUSED_ARG(encoding);
248 if (!(strm << length)) {
254 return strm.write_int8_array(seq.get_buffer(), length);
257 bool operator>>(Serializer& strm, CORBASeq::Int8Seq& seq)
259 ACE_UNUSED_ARG(strm);
261 const Encoding& encoding = strm.encoding();
262 ACE_UNUSED_ARG(encoding);
264 if (!(strm >> length)) {
267 if (length > strm.length()) {
269 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
274 seq.length(new_length);
278 return strm.read_int8_array(seq.get_buffer(), length);
281 void serialized_size(
const Encoding& encoding,
size_t& size,
const CORBASeq::LongDoubleSeq& seq)
283 ACE_UNUSED_ARG(encoding);
284 ACE_UNUSED_ARG(size);
287 if (seq.length() == 0) {
290 encoding.align(size, 8);
294 bool operator<<(Serializer& strm,
const CORBASeq::LongDoubleSeq& seq)
296 ACE_UNUSED_ARG(strm);
298 const Encoding& encoding = strm.encoding();
299 ACE_UNUSED_ARG(encoding);
301 if (!(strm << length)) {
307 return strm.write_longdouble_array(seq.get_buffer(), length);
310 bool operator>>(Serializer& strm, CORBASeq::LongDoubleSeq& seq)
312 ACE_UNUSED_ARG(strm);
314 const Encoding& encoding = strm.encoding();
315 ACE_UNUSED_ARG(encoding);
317 if (!(strm >> length)) {
320 if (length > strm.length()) {
322 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
327 seq.length(new_length);
331 return strm.read_longdouble_array(seq.get_buffer(), length);
334 void serialized_size(
const Encoding& encoding,
size_t& size,
const CORBASeq::LongLongSeq& seq)
336 ACE_UNUSED_ARG(encoding);
337 ACE_UNUSED_ARG(size);
340 if (seq.length() == 0) {
343 encoding.align(size, 8);
347 bool operator<<(Serializer& strm,
const CORBASeq::LongLongSeq& seq)
349 ACE_UNUSED_ARG(strm);
351 const Encoding& encoding = strm.encoding();
352 ACE_UNUSED_ARG(encoding);
354 if (!(strm << length)) {
360 return strm.write_longlong_array(seq.get_buffer(), length);
363 bool operator>>(Serializer& strm, CORBASeq::LongLongSeq& seq)
365 ACE_UNUSED_ARG(strm);
367 const Encoding& encoding = strm.encoding();
368 ACE_UNUSED_ARG(encoding);
370 if (!(strm >> length)) {
373 if (length > strm.length()) {
375 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
380 seq.length(new_length);
384 return strm.read_longlong_array(seq.get_buffer(), length);
389 ACE_UNUSED_ARG(encoding);
390 ACE_UNUSED_ARG(size);
393 if (seq.length() == 0) {
401 ACE_UNUSED_ARG(strm);
403 const Encoding& encoding = strm.encoding();
404 ACE_UNUSED_ARG(encoding);
406 if (!(strm << length)) {
412 return strm.write_long_array(seq.get_buffer(), length);
417 ACE_UNUSED_ARG(strm);
419 const Encoding& encoding = strm.encoding();
420 ACE_UNUSED_ARG(encoding);
422 if (!(strm >> length)) {
425 if (length > strm.length()) {
427 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
432 seq.length(new_length);
436 return strm.read_long_array(seq.get_buffer(), length);
439 void serialized_size(
const Encoding& encoding,
size_t& size,
const CORBASeq::OctetSeq& seq)
441 ACE_UNUSED_ARG(encoding);
442 ACE_UNUSED_ARG(size);
445 if (seq.length() == 0) {
451 bool operator<<(Serializer& strm,
const CORBASeq::OctetSeq& seq)
453 ACE_UNUSED_ARG(strm);
455 const Encoding& encoding = strm.encoding();
456 ACE_UNUSED_ARG(encoding);
458 if (!(strm << length)) {
464 return strm.write_octet_array(seq.get_buffer(), length);
467 bool operator>>(Serializer& strm, CORBASeq::OctetSeq& seq)
469 ACE_UNUSED_ARG(strm);
471 const Encoding& encoding = strm.encoding();
472 ACE_UNUSED_ARG(encoding);
474 if (!(strm >> length)) {
477 if (length > strm.length()) {
479 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
484 seq.length(new_length);
488 return strm.read_octet_array(seq.get_buffer(), length);
493 ACE_UNUSED_ARG(encoding);
494 ACE_UNUSED_ARG(size);
497 if (seq.length() == 0) {
505 ACE_UNUSED_ARG(strm);
507 const Encoding& encoding = strm.encoding();
508 ACE_UNUSED_ARG(encoding);
510 if (!(strm << length)) {
516 return strm.write_short_array(seq.get_buffer(), length);
521 ACE_UNUSED_ARG(strm);
523 const Encoding& encoding = strm.encoding();
524 ACE_UNUSED_ARG(encoding);
526 if (!(strm >> length)) {
529 if (length > strm.length()) {
531 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
536 seq.length(new_length);
540 return strm.read_short_array(seq.get_buffer(), length);
545 ACE_UNUSED_ARG(encoding);
546 ACE_UNUSED_ARG(size);
552 if (seq.length() == 0) {
565 ACE_UNUSED_ARG(strm);
567 const Encoding& encoding = strm.encoding();
568 ACE_UNUSED_ARG(encoding);
569 size_t total_size = 0;
572 if (!strm.write_delimiter(total_size)) {
577 if (!(strm << length)) {
584 if (!(strm << seq[i])) {
593 ACE_UNUSED_ARG(strm);
595 const Encoding& encoding = strm.encoding();
596 ACE_UNUSED_ARG(encoding);
597 size_t total_size = 0;
599 if (!strm.read_delimiter(total_size)) {
603 const size_t end_of_seq = strm.rpos() + total_size;
605 if (!(strm >> length)) {
608 if (length > strm.length()) {
610 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
615 seq.length(new_length);
617 if (!(strm >> seq[i])) {
620 strm.skip(end_of_seq - strm.rpos());
631 if (new_length != length) {
633 strm.skip(end_of_seq - strm.rpos());
637 for (
CORBA::ULong j = new_length + 1; j < length; ++j) {
647 void serialized_size(
const Encoding& encoding,
size_t& size,
const CORBASeq::UInt8Seq& seq)
649 ACE_UNUSED_ARG(encoding);
650 ACE_UNUSED_ARG(size);
653 if (seq.length() == 0) {
656 primitive_serialized_size_uint8(encoding, size, seq.length());
659 bool operator<<(Serializer& strm,
const CORBASeq::UInt8Seq& seq)
661 ACE_UNUSED_ARG(strm);
663 const Encoding& encoding = strm.encoding();
664 ACE_UNUSED_ARG(encoding);
666 if (!(strm << length)) {
672 return strm.write_uint8_array(seq.get_buffer(), length);
675 bool operator>>(Serializer& strm, CORBASeq::UInt8Seq& seq)
677 ACE_UNUSED_ARG(strm);
679 const Encoding& encoding = strm.encoding();
680 ACE_UNUSED_ARG(encoding);
682 if (!(strm >> length)) {
685 if (length > strm.length()) {
687 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
692 seq.length(new_length);
696 return strm.read_uint8_array(seq.get_buffer(), length);
699 void serialized_size(
const Encoding& encoding,
size_t& size,
const CORBASeq::ULongLongSeq& seq)
701 ACE_UNUSED_ARG(encoding);
702 ACE_UNUSED_ARG(size);
705 if (seq.length() == 0) {
708 encoding.align(size, 8);
712 bool operator<<(Serializer& strm,
const CORBASeq::ULongLongSeq& seq)
714 ACE_UNUSED_ARG(strm);
716 const Encoding& encoding = strm.encoding();
717 ACE_UNUSED_ARG(encoding);
719 if (!(strm << length)) {
725 return strm.write_ulonglong_array(seq.get_buffer(), length);
728 bool operator>>(Serializer& strm, CORBASeq::ULongLongSeq& seq)
730 ACE_UNUSED_ARG(strm);
732 const Encoding& encoding = strm.encoding();
733 ACE_UNUSED_ARG(encoding);
735 if (!(strm >> length)) {
738 if (length > strm.length()) {
740 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
745 seq.length(new_length);
749 return strm.read_ulonglong_array(seq.get_buffer(), length);
754 ACE_UNUSED_ARG(encoding);
755 ACE_UNUSED_ARG(size);
758 if (seq.length() == 0) {
766 ACE_UNUSED_ARG(strm);
768 const Encoding& encoding = strm.encoding();
769 ACE_UNUSED_ARG(encoding);
771 if (!(strm << length)) {
777 return strm.write_ulong_array(seq.get_buffer(), length);
782 ACE_UNUSED_ARG(strm);
784 const Encoding& encoding = strm.encoding();
785 ACE_UNUSED_ARG(encoding);
787 if (!(strm >> length)) {
790 if (length > strm.length()) {
792 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
797 seq.length(new_length);
801 return strm.read_ulong_array(seq.get_buffer(), length);
806 ACE_UNUSED_ARG(encoding);
807 ACE_UNUSED_ARG(size);
810 if (seq.length() == 0) {
818 ACE_UNUSED_ARG(strm);
820 const Encoding& encoding = strm.encoding();
821 ACE_UNUSED_ARG(encoding);
823 if (!(strm << length)) {
829 return strm.write_ushort_array(seq.get_buffer(), length);
834 ACE_UNUSED_ARG(strm);
836 const Encoding& encoding = strm.encoding();
837 ACE_UNUSED_ARG(encoding);
839 if (!(strm >> length)) {
842 if (length > strm.length()) {
844 ACE_DEBUG((LM_DEBUG,
ACE_TEXT(
"(%P|%t) Invalid sequence length (%u)\n"), length));
849 seq.length(new_length);
853 return strm.read_ushort_array(seq.get_buffer(), length);
sequence< unsigned long > ULongSeq
OpenDDS_Dcps_Export void primitive_serialized_size_ulong(const Encoding &encoding, size_t &size, size_t count=1)
ACE_CDR::LongLong LongLong
OpenDDS_Dcps_Export void serialized_size_delimiter(const Encoding &encoding, size_t &size)
Add delimiter to the size of a serialized size if the encoding has them.
OpenDDS_Dcps_Export void primitive_serialized_size_octet(const Encoding &encoding, size_t &size, size_t count=1)
void serialized_size(const Encoding &encoding, size_t &size, const SequenceNumber &)
size_t strlen(const char *s)
ACE_CDR::ULongLong ULongLong
OpenDDS_Dcps_Export void primitive_serialized_size_char(const Encoding &encoding, size_t &size, size_t count=1)
ACE_CDR::Boolean operator<<(Serializer &serializer, CoherentChangeControl &value)
Marshal/Insertion into a buffer.
sequence< string > StringSeq
sequence< double > DoubleSeq
sequence< boolean > BooleanSeq
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
ACE_CDR::Boolean operator>>(Serializer &serializer, CoherentChangeControl &value)
sequence< float > FloatSeq
sequence< short > ShortSeq
const DCPS::Encoding encoding(DCPS::Encoding::KIND_UNALIGNED_CDR, DCPS::ENDIAN_BIG)
The Internal API and Implementation of OpenDDS.
sequence< unsigned short > UShortSeq
OpenDDS_Dcps_Export void primitive_serialized_size_boolean(const Encoding &encoding, size_t &size, size_t count=1)
OpenDDS_Dcps_Export bool primitive_serialized_size(const Encoding &encoding, size_t &size, const ACE_CDR::Short &value, size_t count=1)