/* -*- C++ -*- uiop_endpoints.cpp,v 1.1 2000/11/09 18:48:44 doccvs Exp */
// uiop_endpoints.cpp,v 1.1 2000/11/09 18:48:44 doccvs Exp
//
// ******  Code generated by the The ACE ORB (TAO) IDL Compiler *******
// TAO and the TAO IDL Compiler have been developed by the Center for
// Distributed Object Computing at Washington University, St. Louis.
//
// Information about TAO is available at:
//                 http://www.cs.wustl.edu/~schmidt/TAO.html

#include "uiop_endpoints.h"

#if !defined (__ACE_INLINE__)
#include "uiop_endpoints.i"
#endif /* !defined INLINE */

static const CORBA::Long _oc_TAO_UIOP_Endpoint_Info[] =
{
  TAO_ENCAP_BYTE_ORDER, // byte order
  31, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x54414f5f), ACE_NTOHL (0x55494f50), ACE_NTOHL (0x5f456e64), ACE_NTOHL (0x706f696e), ACE_NTOHL (0x745f496e), ACE_NTOHL (0x666f3a31), ACE_NTOHL (0x2e300000),  // repository ID = IDL:TAO_UIOP_Endpoint_Info:1.0
  23, ACE_NTOHL (0x54414f5f), ACE_NTOHL (0x55494f50), ACE_NTOHL (0x5f456e64), ACE_NTOHL (0x706f696e), ACE_NTOHL (0x745f496e), ACE_NTOHL (0x666f0000),  // name = TAO_UIOP_Endpoint_Info
  2, // member count
  17, ACE_NTOHL (0x72656e64), ACE_NTOHL (0x657a766f), ACE_NTOHL (0x75735f70), ACE_NTOHL (0x6f696e74), ACE_NTOHL (0x0),  // name = rendezvous_point
  CORBA::tk_string,
  0U, // string length
  9, ACE_NTOHL (0x7072696f), ACE_NTOHL (0x72697479), ACE_NTOHL (0x0),  // name = priority
  CORBA::tk_short,

};
static CORBA::TypeCode _tc_TAO_tc_TAO_UIOP_Endpoint_Info (CORBA::tk_struct, sizeof (_oc_TAO_UIOP_Endpoint_Info), (char *) &_oc_TAO_UIOP_Endpoint_Info, 0, sizeof (TAO_UIOP_Endpoint_Info));
CORBA::TypeCode_ptr _tc_TAO_UIOP_Endpoint_Info = &_tc_TAO_tc_TAO_UIOP_Endpoint_Info;

void TAO_UIOP_Endpoint_Info::_tao_any_destructor (void *x)
{
  TAO_UIOP_Endpoint_Info *tmp = ACE_static_cast (TAO_UIOP_Endpoint_Info*,x);
  delete tmp;
}


#if !defined (TAO_USE_SEQUENCE_TEMPLATES)

#if !defined (__TAO_UNBOUNDED_SEQUENCE_TAO_UIOPENDPOINTSEQUENCE_CS_)
#define __TAO_UNBOUNDED_SEQUENCE_TAO_UIOPENDPOINTSEQUENCE_CS_

  void
  _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence::_allocate_buffer (CORBA::ULong length)
  {
    TAO_UIOP_Endpoint_Info* tmp = 0;
    tmp = _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence::allocbuf (length);

    if (this->buffer_ != 0)
    {
      TAO_UIOP_Endpoint_Info *old = ACE_reinterpret_cast (TAO_UIOP_Endpoint_Info *,this->buffer_);

      for (CORBA::ULong i = 0; i < this->length_; ++i)
        tmp[i] = old[i];

      if (this->release_)
        _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence::freebuf (old);

    }
    this->buffer_ = tmp;
  }

  void
  _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence::_deallocate_buffer (void)
  {
    if (this->buffer_ == 0 || this->release_ == 0)
      return;

    TAO_UIOP_Endpoint_Info *tmp = ACE_reinterpret_cast (TAO_UIOP_Endpoint_Info *,this->buffer_);

    _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence::freebuf (tmp);
    this->buffer_ = 0;
  }

  _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence::~_TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence (void) // Dtor.
  {
    this->_deallocate_buffer ();
  }


#endif /* end #if !defined */


#endif /* !TAO_USE_SEQUENCE_TEMPLATES */

#if !defined (_TAO_UIOPENDPOINTSEQUENCE_CS_)
#define _TAO_UIOPENDPOINTSEQUENCE_CS_

// *************************************************************
// TAO_UIOPEndpointSequence
// *************************************************************

TAO_UIOPEndpointSequence::TAO_UIOPEndpointSequence (void)
{}
TAO_UIOPEndpointSequence::TAO_UIOPEndpointSequence (CORBA::ULong max) // uses max size
  :
#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
  _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence
#else /* TAO_USE_SEQUENCE_TEMPLATES */
  TAO_Unbounded_Sequence<TAO_UIOP_Endpoint_Info>
#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
 (max)
{}
TAO_UIOPEndpointSequence::TAO_UIOPEndpointSequence (CORBA::ULong max, CORBA::ULong length, TAO_UIOP_Endpoint_Info *buffer, CORBA::Boolean release)
  :
#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
  _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence
#else /* TAO_USE_SEQUENCE_TEMPLATES */
  TAO_Unbounded_Sequence<TAO_UIOP_Endpoint_Info>
#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
 (max, length, buffer, release)
{}
TAO_UIOPEndpointSequence::TAO_UIOPEndpointSequence (const TAO_UIOPEndpointSequence &seq) // copy ctor
  :
#if !defined (TAO_USE_SEQUENCE_TEMPLATES)
  _TAO_Unbounded_Sequence_TAO_UIOPEndpointSequence
#else /* TAO_USE_SEQUENCE_TEMPLATES */
  TAO_Unbounded_Sequence<TAO_UIOP_Endpoint_Info>
#endif /* !TAO_USE_SEQUENCE_TEMPLATES */
 (seq)
{}
TAO_UIOPEndpointSequence::~TAO_UIOPEndpointSequence (void) // dtor
{}
void TAO_UIOPEndpointSequence::_tao_any_destructor (void *x)
{
  TAO_UIOPEndpointSequence *tmp = ACE_static_cast (TAO_UIOPEndpointSequence*,x);
  delete tmp;
}


#endif /* end #if !defined */

static const CORBA::Long _oc_TAO_UIOPEndpointSequence[] =
{
  TAO_ENCAP_BYTE_ORDER, // byte order
  33, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x54414f5f), ACE_NTOHL (0x55494f50), ACE_NTOHL (0x456e6470), ACE_NTOHL (0x6f696e74), ACE_NTOHL (0x53657175), ACE_NTOHL (0x656e6365), ACE_NTOHL (0x3a312e30), ACE_NTOHL (0x0),  // repository ID = IDL:TAO_UIOPEndpointSequence:1.0
  25, ACE_NTOHL (0x54414f5f), ACE_NTOHL (0x55494f50), ACE_NTOHL (0x456e6470), ACE_NTOHL (0x6f696e74), ACE_NTOHL (0x53657175), ACE_NTOHL (0x656e6365), ACE_NTOHL (0x0),  // name = TAO_UIOPEndpointSequence
  CORBA::tk_sequence, // typecode kind
  140, // encapsulation length
    TAO_ENCAP_BYTE_ORDER, // byte order
    CORBA::tk_struct, // typecode kind
    124, // encapsulation length
      TAO_ENCAP_BYTE_ORDER, // byte order
      31, ACE_NTOHL (0x49444c3a), ACE_NTOHL (0x54414f5f), ACE_NTOHL (0x55494f50), ACE_NTOHL (0x5f456e64), ACE_NTOHL (0x706f696e), ACE_NTOHL (0x745f496e), ACE_NTOHL (0x666f3a31), ACE_NTOHL (0x2e300000),  // repository ID = IDL:TAO_UIOP_Endpoint_Info:1.0
      23, ACE_NTOHL (0x54414f5f), ACE_NTOHL (0x55494f50), ACE_NTOHL (0x5f456e64), ACE_NTOHL (0x706f696e), ACE_NTOHL (0x745f496e), ACE_NTOHL (0x666f0000),  // name = TAO_UIOP_Endpoint_Info
      2, // member count
      17, ACE_NTOHL (0x72656e64), ACE_NTOHL (0x657a766f), ACE_NTOHL (0x75735f70), ACE_NTOHL (0x6f696e74), ACE_NTOHL (0x0),  // name = rendezvous_point
      CORBA::tk_string,
      0U, // string length
      9, ACE_NTOHL (0x7072696f), ACE_NTOHL (0x72697479), ACE_NTOHL (0x0),  // name = priority
      CORBA::tk_short,


    0U,

};
static CORBA::TypeCode _tc_TAO_tc_TAO_UIOPEndpointSequence (CORBA::tk_alias, sizeof (_oc_TAO_UIOPEndpointSequence), (char *) &_oc_TAO_UIOPEndpointSequence, 0, sizeof (TAO_UIOPEndpointSequence));
CORBA::TypeCode_ptr _tc_TAO_UIOPEndpointSequence = &_tc_TAO_tc_TAO_UIOPEndpointSequence;

CORBA::Boolean operator<< (
    TAO_OutputCDR &strm,
    const TAO_UIOPEndpointSequence &_tao_sequence
  )
{
  if (strm << _tao_sequence.length ())
  {
    // encode all elements
    CORBA::Boolean _tao_marshal_flag = 1;
    for (CORBA::ULong i = 0; i < _tao_sequence.length () && _tao_marshal_flag; i++)
    {
      _tao_marshal_flag = (strm << _tao_sequence[i]);
    }
    return _tao_marshal_flag;
  }
  return 0; // error
}

CORBA::Boolean operator>> (
    TAO_InputCDR &strm,
    TAO_UIOPEndpointSequence &_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
    CORBA::Boolean _tao_marshal_flag = 1;
    for (CORBA::ULong i = 0; i < _tao_sequence.length () && _tao_marshal_flag; i++)
    {
      _tao_marshal_flag = (strm >> _tao_sequence[i]);
    }
    return _tao_marshal_flag;
  }
  return 0; // error
}
