// file : xsde/cxx/hybrid/cdr/ostream.txx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsde { namespace cxx { namespace hybrid { #ifdef XSDE_EXCEPTIONS template void operator<< (ocdrstream& s, const pod_sequence& x) { s << ocdrstream::as_size (x.size ()); for (typename pod_sequence::const_iterator i = x.begin (); i != x.end (); ++i) { s << *i; } } template void operator<< (ocdrstream& s, const fix_sequence& x) { s << ocdrstream::as_size (x.size ()); for (typename fix_sequence::const_iterator i = x.begin (); i != x.end (); ++i) { s << *i; } } template void operator<< (ocdrstream& s, const var_sequence& x) { s << ocdrstream::as_size (x.size ()); for (typename var_sequence::const_iterator i = x.begin (); i != x.end (); ++i) { s << *i; } } #else // XSDE_EXCEPTIONS template bool operator<< (ocdrstream& s, const pod_sequence& x) { if (!(s << ocdrstream::as_size (x.size ()))) return false; for (typename pod_sequence::const_iterator i = x.begin (); i != x.end (); ++i) { if (!(s << *i)) return false; } return true; } template bool operator<< (ocdrstream& s, const fix_sequence& x) { if (!(s << ocdrstream::as_size (x.size ()))) return false; for (typename fix_sequence::const_iterator i = x.begin (); i != x.end (); ++i) { if (!(s << *i)) return false; } return true; } template bool operator<< (ocdrstream& s, const var_sequence& x) { if (!(s << ocdrstream::as_size (x.size ()))) return false; for (typename var_sequence::const_iterator i = x.begin (); i != x.end (); ++i) { if (!(s << *i)) return false; } return true; } #endif // XSDE_EXCEPTIONS } } }