summaryrefslogtreecommitdiff
path: root/TAO/tao/OctetSeqC.cpp
diff options
context:
space:
mode:
authordoccvs <doccvs@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-10-19 22:04:46 +0000
committerdoccvs <doccvs@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2000-10-19 22:04:46 +0000
commit04b9a08c7b1da0f9698fe8b3ef2dfd1f07237fa4 (patch)
treea8a811edf27f04a30be899a6faecd3ba398855f5 /TAO/tao/OctetSeqC.cpp
parent9a8d796e912409800b4cb0258708b7472a0dc749 (diff)
downloadATCD-04b9a08c7b1da0f9698fe8b3ef2dfd1f07237fa4.tar.gz
ChangeLogTag: Thu Oct 19 14:30:59 2000 Priyanka Gontla <pgontla@ece.uci.edu>
Diffstat (limited to 'TAO/tao/OctetSeqC.cpp')
-rw-r--r--TAO/tao/OctetSeqC.cpp243
1 files changed, 243 insertions, 0 deletions
diff --git a/TAO/tao/OctetSeqC.cpp b/TAO/tao/OctetSeqC.cpp
new file mode 100644
index 00000000000..8296d97d78c
--- /dev/null
+++ b/TAO/tao/OctetSeqC.cpp
@@ -0,0 +1,243 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler ****
+// TAO and the TAO IDL Compiler have been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// and
+// Distributed Object Computing Laboratory
+// University of California at Irvine
+// Irvine, CA
+// USA
+// http://doc.ece.uci.edu/
+//
+// Information about TAO is available at:
+// http://www.cs.wustl.edu/~schmidt/TAO.html
+
+#include "OctetSeqC.h"
+
+#if !defined (__ACE_INLINE__)
+#include "OctetSeqC.i"
+#endif /* !defined INLINE */
+
+
+#if !defined (_OCTETSEQ_CS_)
+#define _OCTETSEQ_CS_
+
+// *************************************************************
+// OctetSeq
+// *************************************************************
+
+OctetSeq::OctetSeq (void)
+{}
+OctetSeq::OctetSeq (CORBA::ULong max) // uses max size
+ :
+#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
+ TAO_Unbounded_Sequence<CORBA::Octet>
+#else /* TAO_USE_SEQUENCE_TEMPLATES */
+ TAO_Unbounded_Sequence<CORBA::Octet>
+#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
+ (max)
+{}
+OctetSeq::OctetSeq (CORBA::ULong max, CORBA::ULong length, CORBA::Octet *buffer, CORBA::Boolean release)
+ :
+#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
+ TAO_Unbounded_Sequence<CORBA::Octet>
+#else /* TAO_USE_SEQUENCE_TEMPLATES */
+ TAO_Unbounded_Sequence<CORBA::Octet>
+#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
+ (max, length, buffer, release)
+{}
+OctetSeq::OctetSeq (const OctetSeq &seq) // copy ctor
+ :
+#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
+ TAO_Unbounded_Sequence<CORBA::Octet>
+#else /* TAO_USE_SEQUENCE_TEMPLATES */
+ TAO_Unbounded_Sequence<CORBA::Octet>
+#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
+ (seq)
+{}
+OctetSeq::~OctetSeq (void) // dtor
+{}
+void OctetSeq::_tao_any_destructor (void *x)
+{
+ OctetSeq *tmp = ACE_static_cast (OctetSeq*,x);
+ delete tmp;
+}
+
+
+#endif /* end #if !defined */
+
+static const CORBA::Long _oc_OctetSeq[] =
+{
+ TAO_ENCAP_BYTE_ORDER, // byte order
+ 17, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x4f637465), ACE_NTOHL (0x74536571), ACE_NTOHL (0x3a312e30), ACE_NTOHL (0x0), // repository ID = IDL:OctetSeq:1.0
+ 9, ACE_NTOHL (0x4f637465), ACE_NTOHL (0x74536571), ACE_NTOHL (0x0), // name = OctetSeq
+ CORBA::tk_sequence, // typecode kind
+ 12, // encapsulation length
+ TAO_ENCAP_BYTE_ORDER, // byte order
+ CORBA::tk_octet,
+
+ 0U,
+
+};
+static CORBA::TypeCode _tc_TAO_tc_OctetSeq (CORBA::tk_alias, sizeof (_oc_OctetSeq), (char *) &_oc_OctetSeq, 0, sizeof (OctetSeq));
+CORBA::TypeCode_ptr _tc_OctetSeq = &_tc_TAO_tc_OctetSeq;
+
+void operator<<= (
+ CORBA::Any &_tao_any,
+ const OctetSeq &_tao_elem
+ ) // copying
+{
+ TAO_OutputCDR stream;
+ if (stream << _tao_elem)
+ {
+ _tao_any._tao_replace (
+ _tc_OctetSeq,
+ TAO_ENCAP_BYTE_ORDER,
+ stream.begin ()
+ );
+ }
+}
+
+void operator<<= (CORBA::Any &_tao_any, OctetSeq *_tao_elem) // non copying
+{
+ TAO_OutputCDR stream;
+ stream << *_tao_elem;
+ _tao_any._tao_replace (
+ _tc_OctetSeq,
+ TAO_ENCAP_BYTE_ORDER,
+ stream.begin (),
+ 1,
+ _tao_elem,
+ OctetSeq::_tao_any_destructor
+ );
+}
+
+CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, OctetSeq *&_tao_elem)
+{
+ return _tao_any >>= ACE_const_cast(
+ const OctetSeq*&,
+ _tao_elem
+ );
+}
+
+CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, const OctetSeq *&_tao_elem)
+{
+ _tao_elem = 0;
+ ACE_TRY_NEW_ENV
+ {
+ CORBA::TypeCode_var type = _tao_any.type ();
+ if (!type->equivalent (_tc_OctetSeq, ACE_TRY_ENV)) // not equal
+ {
+ return 0;
+ }
+ ACE_TRY_CHECK;
+ if (_tao_any.any_owns_data ())
+ {
+ _tao_elem = ACE_static_cast(
+ const OctetSeq*,
+ _tao_any.value ()
+ );
+ return 1;
+ }
+ else
+ {
+ OctetSeq *tmp;
+ ACE_NEW_RETURN (tmp, OctetSeq, 0);
+ TAO_InputCDR stream (
+ _tao_any._tao_get_cdr (),
+ _tao_any._tao_byte_order ()
+ );
+ if (stream >> *tmp)
+ {
+ ((CORBA::Any *)&_tao_any)->_tao_replace (
+ _tc_OctetSeq,
+ 1,
+ ACE_static_cast (void *, tmp),
+ OctetSeq::_tao_any_destructor
+ );
+ _tao_elem = tmp;
+ return 1;
+ }
+ else
+ {
+ delete tmp;
+ }
+ }
+ }
+ ACE_CATCHANY
+ {
+ }
+ ACE_ENDTRY;
+ return 0;
+}
+
+CORBA::Boolean operator<< (
+ TAO_OutputCDR &strm,
+ const OctetSeq &_tao_sequence
+ )
+{
+ if (strm << _tao_sequence.length ())
+ {
+ // encode all elements
+
+#if (TAO_NO_COPY_OCTET_SEQUENCES == 1)
+ {
+ TAO_Unbounded_Sequence<CORBA::Octet> *oseq =
+ ACE_static_cast (TAO_Unbounded_Sequence<CORBA::Octet>*, (OctetSeq *)&_tao_sequence);
+ if (oseq->mb ())
+ return strm.write_octet_array_mb (oseq->mb ());
+ else
+ return strm.write_octet_array (_tao_sequence.get_buffer (), _tao_sequence.length ());
+ }
+
+#else /* TAO_NO_COPY_OCTET_SEQUENCES == 0 */
+ return strm.write_octet_array (_tao_sequence.get_buffer (), _tao_sequence.length ());
+
+#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 0 */
+ }
+ return 0; // error
+}
+
+CORBA::Boolean operator>> (
+ TAO_InputCDR &strm,
+ OctetSeq &_tao_sequence
+ )
+{
+ CORBA::ULong _tao_seq_len;
+ if (strm >> _tao_seq_len)
+ {
+ // set the length of the sequence
+ _tao_sequence.length (_tao_seq_len);
+ // If length is 0 we return true.
+ if (0 >= _tao_seq_len)
+ return 1;
+ // retrieve all the elements
+
+#if (TAO_NO_COPY_OCTET_SEQUENCES == 1)
+ if (ACE_BIT_DISABLED (strm.start ()->flags (),ACE_Message_Block::DONT_DELETE))
+ {
+ TAO_Unbounded_Sequence<CORBA::Octet> *oseq =
+ ACE_static_cast(TAO_Unbounded_Sequence<CORBA::Octet>*, &_tao_sequence);
+ oseq->replace (_tao_seq_len, strm.start ());
+ oseq->mb ()->wr_ptr (oseq->mb()->rd_ptr () + _tao_seq_len);
+ strm.skip_bytes (_tao_seq_len);
+ return 1;
+ }
+ else
+ return strm.read_octet_array (_tao_sequence.get_buffer (), _tao_seq_len);
+
+#else /* TAO_NO_COPY_OCTET_SEQUENCES == 0 */
+ return strm.read_octet_array (_tao_sequence.get_buffer (), _tao_sequence.length ());
+
+#endif /* TAO_NO_COPY_OCTET_SEQUENCES == 0 */
+ }
+ return 0; // error
+}
+