// -*- 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/
// and
//       Institute for Software Integrated Systems
//       Vanderbilt University
//       Nashville, TN
//       USA
//       http://www.isis.vanderbilt.edu/
//
// Information about TAO is available at:
//     http://www.cs.wustl.edu/~schmidt/TAO.html

// TAO_IDL - Generated from
// be/be_codegen.cpp:303


#include "SSLIOPC.h"
#include "tao/CDR.h"
#include "tao/ORB_Core.h"
#include "tao/Typecode.h"
#include "tao/Any_Impl_T.h"
#include "tao/Any_Dual_Impl_T.h"
#include "tao/Any_Basic_Impl_T.h"
#include "ace/OS_NS_string.h"

#if defined (__BORLANDC__)
#pragma option -w-rvl -w-rch -w-ccc -w-aus -w-sig
#endif /* __BORLANDC__ */

#if !defined (__ACE_INLINE__)
#include "SSLIOPC.inl"
#endif /* !defined __ACE_INLINE__ */

// TAO_IDL - Generated from
// be/be_visitor_arg_traits.cpp:64

// Arg traits specializations.
namespace TAO
{
}


// TAO_IDL - Generated from
// be/be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_SSLIOP_SSL[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  27,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x6f6d672e), 
  ACE_NTOHL (0x6f72672f), 
  ACE_NTOHL (0x53534c49), 
  ACE_NTOHL (0x4f502f53), 
  ACE_NTOHL (0x534c3a31), 
  ACE_NTOHL (0x2e300000),  // repository ID = IDL:omg.org/SSLIOP/SSL:1.0
    4,
  ACE_NTOHL (0x53534c00),  // name = SSL
  3, // member count
    16,
  ACE_NTOHL (0x74617267), 
  ACE_NTOHL (0x65745f73), 
  ACE_NTOHL (0x7570706f), 
  ACE_NTOHL (0x72747300),  // name = target_supports
    CORBA::tk_alias, // typecode kind for typedefs
  80, // encapsulation length
    TAO_ENCAP_BYTE_ORDER, // byte order
    44,
    ACE_NTOHL (0x49444c3a), 
    ACE_NTOHL (0x6f6d672e), 
    ACE_NTOHL (0x6f72672f), 
    ACE_NTOHL (0x53656375), 
    ACE_NTOHL (0x72697479), 
    ACE_NTOHL (0x2f417373), 
    ACE_NTOHL (0x6f636961), 
    ACE_NTOHL (0x74696f6e), 
    ACE_NTOHL (0x4f707469), 
    ACE_NTOHL (0x6f6e733a), 
    ACE_NTOHL (0x312e3800),  // repository ID = IDL:omg.org/Security/AssociationOptions:1.8
        19,
    ACE_NTOHL (0x4173736f), 
    ACE_NTOHL (0x63696174), 
    ACE_NTOHL (0x696f6e4f), 
    ACE_NTOHL (0x7074696f), 
    ACE_NTOHL (0x6e730000),  // name = AssociationOptions
        CORBA::tk_ushort,


  16,
  ACE_NTOHL (0x74617267), 
  ACE_NTOHL (0x65745f72), 
  ACE_NTOHL (0x65717569), 
  ACE_NTOHL (0x72657300),  // name = target_requires
    CORBA::tk_alias, // typecode kind for typedefs
  80, // encapsulation length
    TAO_ENCAP_BYTE_ORDER, // byte order
    44,
    ACE_NTOHL (0x49444c3a), 
    ACE_NTOHL (0x6f6d672e), 
    ACE_NTOHL (0x6f72672f), 
    ACE_NTOHL (0x53656375), 
    ACE_NTOHL (0x72697479), 
    ACE_NTOHL (0x2f417373), 
    ACE_NTOHL (0x6f636961), 
    ACE_NTOHL (0x74696f6e), 
    ACE_NTOHL (0x4f707469), 
    ACE_NTOHL (0x6f6e733a), 
    ACE_NTOHL (0x312e3800),  // repository ID = IDL:omg.org/Security/AssociationOptions:1.8
        19,
    ACE_NTOHL (0x4173736f), 
    ACE_NTOHL (0x63696174), 
    ACE_NTOHL (0x696f6e4f), 
    ACE_NTOHL (0x7074696f), 
    ACE_NTOHL (0x6e730000),  // name = AssociationOptions
        CORBA::tk_ushort,


  5,
  ACE_NTOHL (0x706f7274), 
  ACE_NTOHL (0x0),  // name = port
    CORBA::tk_ushort,

};

static CORBA::TypeCode _tc_TAO_tc_SSLIOP_SSL (
    CORBA::tk_struct,
    sizeof (_oc_SSLIOP_SSL),
    (char *) &_oc_SSLIOP_SSL,
    0,
    sizeof (SSLIOP::SSL)
  );

namespace SSLIOP
{
  ::CORBA::TypeCode_ptr _tc_SSL =
    &_tc_TAO_tc_SSLIOP_SSL;
}

// TAO_IDL - Generated from 
// be/be_visitor_structure/structure_cs.cpp:66

void 
SSLIOP::SSL::_tao_any_destructor (
    void *_tao_void_pointer
  )
{
  SSL *_tao_tmp_pointer =
    static_cast<SSL *> (_tao_void_pointer);
  delete _tao_tmp_pointer;
}

// TAO_IDL - Generated from 
// be/be_visitor_sequence/sequence_cs.cpp:65

#if !defined (_SSLIOP_ASN_1_CERT_CS_)
#define _SSLIOP_ASN_1_CERT_CS_

SSLIOP::ASN_1_Cert::ASN_1_Cert (void)
{}

SSLIOP::ASN_1_Cert::ASN_1_Cert (
    CORBA::ULong max
  )
  : TAO_Unbounded_Sequence<
        CORBA::Octet
      >
    (max)
{}

SSLIOP::ASN_1_Cert::ASN_1_Cert (
    CORBA::ULong max,
    CORBA::ULong length,
    CORBA::Octet * buffer,
    CORBA::Boolean release
  )
  : TAO_Unbounded_Sequence<
        CORBA::Octet
      >
    (max, length, buffer, release)
{}

SSLIOP::ASN_1_Cert::ASN_1_Cert (
    const ASN_1_Cert &seq
  )
  : TAO_Unbounded_Sequence<
        CORBA::Octet
      >
    (seq)
{}

SSLIOP::ASN_1_Cert::~ASN_1_Cert (void)
{}

void SSLIOP::ASN_1_Cert::_tao_any_destructor (
    void * _tao_void_pointer
  )
{
  ASN_1_Cert * _tao_tmp_pointer =
    static_cast<ASN_1_Cert *> (_tao_void_pointer);
  delete _tao_tmp_pointer;
}

#endif /* end #if !defined */

// TAO_IDL - Generated from
// be/be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_SSLIOP_ASN_1_Cert[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  34,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x6f6d672e), 
  ACE_NTOHL (0x6f72672f), 
  ACE_NTOHL (0x53534c49), 
  ACE_NTOHL (0x4f502f41), 
  ACE_NTOHL (0x534e5f31), 
  ACE_NTOHL (0x5f436572), 
  ACE_NTOHL (0x743a312e), 
  ACE_NTOHL (0x30000000),  // repository ID = IDL:omg.org/SSLIOP/ASN_1_Cert:1.0
    11,
  ACE_NTOHL (0x41534e5f), 
  ACE_NTOHL (0x315f4365), 
  ACE_NTOHL (0x72740000),  // name = ASN_1_Cert
    CORBA::tk_sequence, // typecode kind
  12, // encapsulation length
    TAO_ENCAP_BYTE_ORDER, // byte order
    CORBA::tk_octet,

    0U,

};

static CORBA::TypeCode _tc_TAO_tc_SSLIOP_ASN_1_Cert (
    CORBA::tk_alias,
    sizeof (_oc_SSLIOP_ASN_1_Cert),
    (char *) &_oc_SSLIOP_ASN_1_Cert,
    0,
    sizeof (SSLIOP::ASN_1_Cert)
  );

namespace SSLIOP
{
  ::CORBA::TypeCode_ptr _tc_ASN_1_Cert =
    &_tc_TAO_tc_SSLIOP_ASN_1_Cert;
}

// TAO_IDL - Generated from 
// be/be_visitor_sequence/sequence_cs.cpp:65

#if !defined (_SSLIOP_SSL_CERT_CS_)
#define _SSLIOP_SSL_CERT_CS_

SSLIOP::SSL_Cert::SSL_Cert (void)
{}

SSLIOP::SSL_Cert::SSL_Cert (
    CORBA::ULong max
  )
  : TAO_Unbounded_Sequence<
        SSLIOP::ASN_1_Cert
      >
    (max)
{}

SSLIOP::SSL_Cert::SSL_Cert (
    CORBA::ULong max,
    CORBA::ULong length,
    SSLIOP::ASN_1_Cert * buffer,
    CORBA::Boolean release
  )
  : TAO_Unbounded_Sequence<
        SSLIOP::ASN_1_Cert
      >
    (max, length, buffer, release)
{}

SSLIOP::SSL_Cert::SSL_Cert (
    const SSL_Cert &seq
  )
  : TAO_Unbounded_Sequence<
        SSLIOP::ASN_1_Cert
      >
    (seq)
{}

SSLIOP::SSL_Cert::~SSL_Cert (void)
{}

void SSLIOP::SSL_Cert::_tao_any_destructor (
    void * _tao_void_pointer
  )
{
  SSL_Cert * _tao_tmp_pointer =
    static_cast<SSL_Cert *> (_tao_void_pointer);
  delete _tao_tmp_pointer;
}

#endif /* end #if !defined */

// TAO_IDL - Generated from
// be/be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_SSLIOP_SSL_Cert[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  32,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x6f6d672e), 
  ACE_NTOHL (0x6f72672f), 
  ACE_NTOHL (0x53534c49), 
  ACE_NTOHL (0x4f502f53), 
  ACE_NTOHL (0x534c5f43), 
  ACE_NTOHL (0x6572743a), 
  ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/SSLIOP/SSL_Cert:1.0
    9,
  ACE_NTOHL (0x53534c5f), 
  ACE_NTOHL (0x43657274), 
  ACE_NTOHL (0x0),  // name = SSL_Cert
    CORBA::tk_sequence, // typecode kind
  96, // encapsulation length
    TAO_ENCAP_BYTE_ORDER, // byte order
    CORBA::tk_alias, // typecode kind for typedefs
    80, // encapsulation length
      TAO_ENCAP_BYTE_ORDER, // byte order
      34,
      ACE_NTOHL (0x49444c3a), 
      ACE_NTOHL (0x6f6d672e), 
      ACE_NTOHL (0x6f72672f), 
      ACE_NTOHL (0x53534c49), 
      ACE_NTOHL (0x4f502f41), 
      ACE_NTOHL (0x534e5f31), 
      ACE_NTOHL (0x5f436572), 
      ACE_NTOHL (0x743a312e), 
      ACE_NTOHL (0x30000000),  // repository ID = IDL:omg.org/SSLIOP/ASN_1_Cert:1.0
            11,
      ACE_NTOHL (0x41534e5f), 
      ACE_NTOHL (0x315f4365), 
      ACE_NTOHL (0x72740000),  // name = ASN_1_Cert
            CORBA::tk_sequence, // typecode kind
      12, // encapsulation length
        TAO_ENCAP_BYTE_ORDER, // byte order
        CORBA::tk_octet,

        0U,


    0U,

};

static CORBA::TypeCode _tc_TAO_tc_SSLIOP_SSL_Cert (
    CORBA::tk_alias,
    sizeof (_oc_SSLIOP_SSL_Cert),
    (char *) &_oc_SSLIOP_SSL_Cert,
    0,
    sizeof (SSLIOP::SSL_Cert)
  );

namespace SSLIOP
{
  ::CORBA::TypeCode_ptr _tc_SSL_Cert =
    &_tc_TAO_tc_SSLIOP_SSL_Cert;
}

// TAO_IDL - Generated from
// be/be_visitor_interface/interface_cs.cpp:60

// Traits specializations for SSLIOP::Current.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
SSLIOP::Current_ptr
TAO::Objref_Traits<SSLIOP::Current>::tao_duplicate (
    SSLIOP::Current_ptr p
  )
{
  return SSLIOP::Current::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<SSLIOP::Current>::tao_release (
    SSLIOP::Current_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
SSLIOP::Current_ptr
TAO::Objref_Traits<SSLIOP::Current>::tao_nil (void)
{
  return SSLIOP::Current::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<SSLIOP::Current>::tao_marshal (
    SSLIOP::Current_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return CORBA::Object::marshal (p, cdr);
}

// Function pointer for collocation factory initialization.
TAO::Collocation_Proxy_Broker * 
(*SSLIOP__TAO_Current_Proxy_Broker_Factory_function_pointer) (
    CORBA::Object_ptr obj
  ) = 0;

// TAO_IDL - Generated from 
// be/be_visitor_exception/exception_cs.cpp:63

SSLIOP::Current::NoContext::NoContext (void)
  : CORBA::UserException (
        "IDL:ssliop.tao/SSLIOP/Current/NoContext:1.0",
        "NoContext"
      )
{
}

SSLIOP::Current::NoContext::~NoContext (void)
{
}

SSLIOP::Current::NoContext::NoContext (const ::SSLIOP::Current::NoContext &_tao_excp)
  : CORBA::UserException (
        _tao_excp._rep_id (),
        _tao_excp._name ()
      )
{
}

SSLIOP::Current::NoContext&
SSLIOP::Current::NoContext::operator= (const ::SSLIOP::Current::NoContext &_tao_excp)
{
  this->ACE_NESTED_CLASS (CORBA, UserException)::operator= (_tao_excp);
  return *this;
}

void SSLIOP::Current::NoContext::_tao_any_destructor (void *_tao_void_pointer)
{
  NoContext *_tao_tmp_pointer =
    static_cast<NoContext*> (_tao_void_pointer);
  delete _tao_tmp_pointer;
}

SSLIOP::Current::NoContext *
SSLIOP::Current::NoContext::_downcast (CORBA::Exception *_tao_excp)
{
  if (!ACE_OS::strcmp ("IDL:ssliop.tao/SSLIOP/Current/NoContext:1.0", _tao_excp->_rep_id ()))
    {
      return dynamic_cast<NoContext *> (_tao_excp);
    }
  else
    {
      return 0;
    }
}

CORBA::Exception *SSLIOP::Current::NoContext::_alloc (void)
{
  CORBA::Exception *retval = 0;
  ACE_NEW_RETURN (retval, ::SSLIOP::Current::NoContext, 0);
  return retval;
}

CORBA::Exception *
SSLIOP::Current::NoContext::_tao_duplicate (void) const
{
  CORBA::Exception *result;
  ACE_NEW_RETURN (
      result,
      ::SSLIOP::Current::NoContext (*this),
      0
    );
  return result;
}

void SSLIOP::Current::NoContext::_raise (void) const
{
  TAO_RAISE (*this);
}

void SSLIOP::Current::NoContext::_tao_encode (
    TAO_OutputCDR &
    ACE_ENV_ARG_DECL
  ) const
{
  ACE_THROW (CORBA::MARSHAL ());
}

void SSLIOP::Current::NoContext::_tao_decode (
    TAO_InputCDR &
    ACE_ENV_ARG_DECL
  )
{
  ACE_THROW (CORBA::MARSHAL ());
}

// TAO extension - the virtual _type method.
CORBA::TypeCode_ptr SSLIOP::Current::NoContext::_type (void) const
{
  return ::SSLIOP::Current::_tc_NoContext;
}

// TAO_IDL - Generated from
// be/be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_SSLIOP_Current_NoContext[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  44,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x73736c69), 
  ACE_NTOHL (0x6f702e74), 
  ACE_NTOHL (0x616f2f53), 
  ACE_NTOHL (0x534c494f), 
  ACE_NTOHL (0x502f4375), 
  ACE_NTOHL (0x7272656e), 
  ACE_NTOHL (0x742f4e6f), 
  ACE_NTOHL (0x436f6e74), 
  ACE_NTOHL (0x6578743a), 
  ACE_NTOHL (0x312e3000),  // repository ID = IDL:ssliop.tao/SSLIOP/Current/NoContext:1.0
    10,
  ACE_NTOHL (0x4e6f436f), 
  ACE_NTOHL (0x6e746578), 
  ACE_NTOHL (0x74000000),  // name = NoContext
  0, // member count
  };

static CORBA::TypeCode _tc_TAO_tc_SSLIOP_Current_NoContext (
    CORBA::tk_except,
    sizeof (_oc_SSLIOP_Current_NoContext),
    (char *) &_oc_SSLIOP_Current_NoContext,
    0,
    sizeof (SSLIOP::Current::NoContext)
  );

::CORBA::TypeCode_ptr SSLIOP::Current::_tc_NoContext =
  &_tc_TAO_tc_SSLIOP_Current_NoContext;

SSLIOP::Current::Current (void)
{}

SSLIOP::Current::~Current (void)
{}

void 
SSLIOP::Current::_tao_any_destructor (void *_tao_void_pointer)
{
  Current *_tao_tmp_pointer =
    static_cast<Current *> (_tao_void_pointer);
  CORBA::release (_tao_tmp_pointer);
}

SSLIOP::Current_ptr
SSLIOP::Current::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return Current::_nil ();
    }
  
  Current_ptr proxy =
    dynamic_cast<Current_ptr> (_tao_objref);
  
  return Current::_duplicate (proxy);
}

SSLIOP::Current_ptr
SSLIOP::Current::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return Current::_nil ();
    }
  
  Current_ptr proxy =
    dynamic_cast<Current_ptr> (_tao_objref);
  
  return Current::_duplicate (proxy);
}

SSLIOP::Current_ptr
SSLIOP::Current::_duplicate (Current_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }
  
  return obj;
}

CORBA::Boolean
SSLIOP::Current::_is_a (
    const char *value
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (
      !ACE_OS::strcmp (
          (char *)value,
          "IDL:omg.org/CORBA/Current:1.0"
        ) ||
      !ACE_OS::strcmp (
          (char *)value,
          "IDL:ssliop.tao/SSLIOP/Current:1.0"
        ) ||
      !ACE_OS::strcmp (
          (char *)value,
          "IDL:omg.org/CORBA/LocalObject:1.0"
        ) ||
      !ACE_OS::strcmp (
          (char *)value,
          "IDL:omg.org/CORBA/Object:1.0"
        )
     )
    {
      return 1; // success using local knowledge
    }
  else
    {
      return 0;
    }
}

const char* SSLIOP::Current::_interface_repository_id (void) const
{
  return "IDL:ssliop.tao/SSLIOP/Current:1.0";
}

CORBA::Boolean
SSLIOP::Current::marshal (TAO_OutputCDR &)
{
  return 0;
}

// TAO_IDL - Generated from
// be/be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_SSLIOP_Current[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  34,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x73736c69), 
  ACE_NTOHL (0x6f702e74), 
  ACE_NTOHL (0x616f2f53), 
  ACE_NTOHL (0x534c494f), 
  ACE_NTOHL (0x502f4375), 
  ACE_NTOHL (0x7272656e), 
  ACE_NTOHL (0x743a312e), 
  ACE_NTOHL (0x30000000),  // repository ID = IDL:ssliop.tao/SSLIOP/Current:1.0
    8,
  ACE_NTOHL (0x43757272), 
  ACE_NTOHL (0x656e7400),  // name = Current
  };

static CORBA::TypeCode _tc_TAO_tc_SSLIOP_Current (
    CORBA::tk_objref,
    sizeof (_oc_SSLIOP_Current),
    (char *) &_oc_SSLIOP_Current,
    0,
    sizeof (SSLIOP::Current)
  );

namespace SSLIOP
{
  ::CORBA::TypeCode_ptr _tc_Current =
    &_tc_TAO_tc_SSLIOP_Current;
}

// TAO_IDL - Generated from
// be/be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_SSLIOP_FileType[] =
{
  TAO_ENCAP_BYTE_ORDER, // byte order
  35,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x73736c69), 
  ACE_NTOHL (0x6f702e74), 
  ACE_NTOHL (0x616f2f53), 
  ACE_NTOHL (0x534c494f), 
  ACE_NTOHL (0x502f4669), 
  ACE_NTOHL (0x6c655479), 
  ACE_NTOHL (0x70653a31), 
  ACE_NTOHL (0x2e300000),  // repository ID = IDL:ssliop.tao/SSLIOP/FileType:1.0
  9,
  ACE_NTOHL (0x46696c65), 
  ACE_NTOHL (0x54797065), 
  ACE_NTOHL (0x0),  // name = FileType
  2, // member count
  5,
  ACE_NTOHL (0x41534e31), 
  ACE_NTOHL (0x0),  // name = ASN1
  4,
  ACE_NTOHL (0x50454d00),  // name = PEM
  };

static CORBA::TypeCode _tc_TAO_tc_SSLIOP_FileType (
    CORBA::tk_enum,
    sizeof (_oc_SSLIOP_FileType),
    (char *) &_oc_SSLIOP_FileType,
    0,
    sizeof (SSLIOP::FileType)
  );

namespace SSLIOP
{
  ::CORBA::TypeCode_ptr _tc_FileType =
    &_tc_TAO_tc_SSLIOP_FileType;
}

// TAO_IDL - Generated from
// be/be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_SSLIOP_File[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  31,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x73736c69), 
  ACE_NTOHL (0x6f702e74), 
  ACE_NTOHL (0x616f2f53), 
  ACE_NTOHL (0x534c494f), 
  ACE_NTOHL (0x502f4669), 
  ACE_NTOHL (0x6c653a31), 
  ACE_NTOHL (0x2e300000),  // repository ID = IDL:ssliop.tao/SSLIOP/File:1.0
    5,
  ACE_NTOHL (0x46696c65), 
  ACE_NTOHL (0x0),  // name = File
  3, // member count
    5,
  ACE_NTOHL (0x74797065), 
  ACE_NTOHL (0x0),  // name = type
    CORBA::tk_enum, // typecode kind
  84, // encapsulation length
TAO_ENCAP_BYTE_ORDER, // byte order
    35,
    ACE_NTOHL (0x49444c3a), 
    ACE_NTOHL (0x73736c69), 
    ACE_NTOHL (0x6f702e74), 
    ACE_NTOHL (0x616f2f53), 
    ACE_NTOHL (0x534c494f), 
    ACE_NTOHL (0x502f4669), 
    ACE_NTOHL (0x6c655479), 
    ACE_NTOHL (0x70653a31), 
    ACE_NTOHL (0x2e300000),  // repository ID = IDL:ssliop.tao/SSLIOP/FileType:1.0
    9,
    ACE_NTOHL (0x46696c65), 
    ACE_NTOHL (0x54797065), 
    ACE_NTOHL (0x0),  // name = FileType
    2, // member count
    5,
    ACE_NTOHL (0x41534e31), 
    ACE_NTOHL (0x0),  // name = ASN1
    4,
    ACE_NTOHL (0x50454d00),  // name = PEM
    
  9,
  ACE_NTOHL (0x66696c65), 
  ACE_NTOHL (0x6e616d65), 
  ACE_NTOHL (0x0),  // name = filename
    CORBA::tk_string, 
  0U, // string length
  9,
  ACE_NTOHL (0x70617373), 
  ACE_NTOHL (0x776f7264), 
  ACE_NTOHL (0x0),  // name = password
    CORBA::tk_string, 
  0U, // string length
};

static CORBA::TypeCode _tc_TAO_tc_SSLIOP_File (
    CORBA::tk_struct,
    sizeof (_oc_SSLIOP_File),
    (char *) &_oc_SSLIOP_File,
    0,
    sizeof (SSLIOP::File)
  );

namespace SSLIOP
{
  ::CORBA::TypeCode_ptr _tc_File =
    &_tc_TAO_tc_SSLIOP_File;
}

// TAO_IDL - Generated from 
// be/be_visitor_structure/structure_cs.cpp:66

void 
SSLIOP::File::_tao_any_destructor (
    void *_tao_void_pointer
  )
{
  File *_tao_tmp_pointer =
    static_cast<File *> (_tao_void_pointer);
  delete _tao_tmp_pointer;
}

// TAO_IDL - Generated from
// be/be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_SSLIOP_AuthData[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  35,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x73736c69), 
  ACE_NTOHL (0x6f702e74), 
  ACE_NTOHL (0x616f2f53), 
  ACE_NTOHL (0x534c494f), 
  ACE_NTOHL (0x502f4175), 
  ACE_NTOHL (0x74684461), 
  ACE_NTOHL (0x74613a31), 
  ACE_NTOHL (0x2e300000),  // repository ID = IDL:ssliop.tao/SSLIOP/AuthData:1.0
    9,
  ACE_NTOHL (0x41757468), 
  ACE_NTOHL (0x44617461), 
  ACE_NTOHL (0x0),  // name = AuthData
  2, // member count
    12,
  ACE_NTOHL (0x63657274), 
  ACE_NTOHL (0x69666963), 
  ACE_NTOHL (0x61746500),  // name = certificate
    CORBA::tk_struct, // typecode kind
  208, // encapsulation length
    TAO_ENCAP_BYTE_ORDER, // byte order
    31,
    ACE_NTOHL (0x49444c3a), 
    ACE_NTOHL (0x73736c69), 
    ACE_NTOHL (0x6f702e74), 
    ACE_NTOHL (0x616f2f53), 
    ACE_NTOHL (0x534c494f), 
    ACE_NTOHL (0x502f4669), 
    ACE_NTOHL (0x6c653a31), 
    ACE_NTOHL (0x2e300000),  // repository ID = IDL:ssliop.tao/SSLIOP/File:1.0
        5,
    ACE_NTOHL (0x46696c65), 
    ACE_NTOHL (0x0),  // name = File
    3, // member count
        5,
    ACE_NTOHL (0x74797065), 
    ACE_NTOHL (0x0),  // name = type
        CORBA::tk_enum, // typecode kind
    84, // encapsulation length
TAO_ENCAP_BYTE_ORDER, // byte order
      35,
      ACE_NTOHL (0x49444c3a), 
      ACE_NTOHL (0x73736c69), 
      ACE_NTOHL (0x6f702e74), 
      ACE_NTOHL (0x616f2f53), 
      ACE_NTOHL (0x534c494f), 
      ACE_NTOHL (0x502f4669), 
      ACE_NTOHL (0x6c655479), 
      ACE_NTOHL (0x70653a31), 
      ACE_NTOHL (0x2e300000),  // repository ID = IDL:ssliop.tao/SSLIOP/FileType:1.0
      9,
      ACE_NTOHL (0x46696c65), 
      ACE_NTOHL (0x54797065), 
      ACE_NTOHL (0x0),  // name = FileType
      2, // member count
      5,
      ACE_NTOHL (0x41534e31), 
      ACE_NTOHL (0x0),  // name = ASN1
      4,
      ACE_NTOHL (0x50454d00),  // name = PEM
      
    9,
    ACE_NTOHL (0x66696c65), 
    ACE_NTOHL (0x6e616d65), 
    ACE_NTOHL (0x0),  // name = filename
        CORBA::tk_string, 
    0U, // string length
    9,
    ACE_NTOHL (0x70617373), 
    ACE_NTOHL (0x776f7264), 
    ACE_NTOHL (0x0),  // name = password
        CORBA::tk_string, 
    0U, // string length

  4,
  ACE_NTOHL (0x6b657900),  // name = key
    CORBA::tk_struct, // typecode kind
  208, // encapsulation length
    TAO_ENCAP_BYTE_ORDER, // byte order
    31,
    ACE_NTOHL (0x49444c3a), 
    ACE_NTOHL (0x73736c69), 
    ACE_NTOHL (0x6f702e74), 
    ACE_NTOHL (0x616f2f53), 
    ACE_NTOHL (0x534c494f), 
    ACE_NTOHL (0x502f4669), 
    ACE_NTOHL (0x6c653a31), 
    ACE_NTOHL (0x2e300000),  // repository ID = IDL:ssliop.tao/SSLIOP/File:1.0
        5,
    ACE_NTOHL (0x46696c65), 
    ACE_NTOHL (0x0),  // name = File
    3, // member count
        5,
    ACE_NTOHL (0x74797065), 
    ACE_NTOHL (0x0),  // name = type
        CORBA::tk_enum, // typecode kind
    84, // encapsulation length
TAO_ENCAP_BYTE_ORDER, // byte order
      35,
      ACE_NTOHL (0x49444c3a), 
      ACE_NTOHL (0x73736c69), 
      ACE_NTOHL (0x6f702e74), 
      ACE_NTOHL (0x616f2f53), 
      ACE_NTOHL (0x534c494f), 
      ACE_NTOHL (0x502f4669), 
      ACE_NTOHL (0x6c655479), 
      ACE_NTOHL (0x70653a31), 
      ACE_NTOHL (0x2e300000),  // repository ID = IDL:ssliop.tao/SSLIOP/FileType:1.0
      9,
      ACE_NTOHL (0x46696c65), 
      ACE_NTOHL (0x54797065), 
      ACE_NTOHL (0x0),  // name = FileType
      2, // member count
      5,
      ACE_NTOHL (0x41534e31), 
      ACE_NTOHL (0x0),  // name = ASN1
      4,
      ACE_NTOHL (0x50454d00),  // name = PEM
      
    9,
    ACE_NTOHL (0x66696c65), 
    ACE_NTOHL (0x6e616d65), 
    ACE_NTOHL (0x0),  // name = filename
        CORBA::tk_string, 
    0U, // string length
    9,
    ACE_NTOHL (0x70617373), 
    ACE_NTOHL (0x776f7264), 
    ACE_NTOHL (0x0),  // name = password
        CORBA::tk_string, 
    0U, // string length

};

static CORBA::TypeCode _tc_TAO_tc_SSLIOP_AuthData (
    CORBA::tk_struct,
    sizeof (_oc_SSLIOP_AuthData),
    (char *) &_oc_SSLIOP_AuthData,
    0,
    sizeof (SSLIOP::AuthData)
  );

namespace SSLIOP
{
  ::CORBA::TypeCode_ptr _tc_AuthData =
    &_tc_TAO_tc_SSLIOP_AuthData;
}

// TAO_IDL - Generated from 
// be/be_visitor_structure/structure_cs.cpp:66

void 
SSLIOP::AuthData::_tao_any_destructor (
    void *_tao_void_pointer
  )
{
  AuthData *_tao_tmp_pointer =
    static_cast<AuthData *> (_tao_void_pointer);
  delete _tao_tmp_pointer;
}

// TAO_IDL - Generated from 
// be/be_visitor_structure/any_op_cs.cpp:54

// Copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    const SSLIOP::SSL &_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::SSL>::insert_copy (
      _tao_any,
      SSLIOP::SSL::_tao_any_destructor,
      SSLIOP::_tc_SSL,
      _tao_elem
    );
}

// Non-copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::SSL *_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::SSL>::insert (
      _tao_any,
      SSLIOP::SSL::_tao_any_destructor,
      SSLIOP::_tc_SSL,
      _tao_elem
    );
}

// Extraction to non-const pointer (deprecated).
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    SSLIOP::SSL *&_tao_elem
  )
{
  return _tao_any >>= const_cast<
      const SSLIOP::SSL *&> (
      _tao_elem
    );
}

// Extraction to const pointer.
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    const SSLIOP::SSL *&_tao_elem
  )
{
  return
    TAO::Any_Dual_Impl_T<SSLIOP::SSL>::extract (
        _tao_any,
        SSLIOP::SSL::_tao_any_destructor,
        SSLIOP::_tc_SSL,
        _tao_elem
      );
}

// TAO_IDL - Generated from 
// be/be_visitor_sequence/any_op_cs.cpp:54

// Copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    const SSLIOP::ASN_1_Cert &_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::ASN_1_Cert>::insert_copy (
      _tao_any,
      SSLIOP::ASN_1_Cert::_tao_any_destructor,
      SSLIOP::_tc_ASN_1_Cert,
      _tao_elem
    );
}

// Non-copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::ASN_1_Cert *_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::ASN_1_Cert>::insert (
      _tao_any,
      SSLIOP::ASN_1_Cert::_tao_any_destructor,
      SSLIOP::_tc_ASN_1_Cert,
      _tao_elem
    );
}

// Extraction to non-const pointer (deprecated).
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    SSLIOP::ASN_1_Cert *&_tao_elem
  )
{
  return _tao_any >>= const_cast<
      const SSLIOP::ASN_1_Cert *&> (
      _tao_elem
    );
}

// Extraction to const pointer.
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    const SSLIOP::ASN_1_Cert *&_tao_elem
  )
{
  return
    TAO::Any_Dual_Impl_T<SSLIOP::ASN_1_Cert>::extract (
        _tao_any,
        SSLIOP::ASN_1_Cert::_tao_any_destructor,
        SSLIOP::_tc_ASN_1_Cert,
        _tao_elem
      );
}

// TAO_IDL - Generated from 
// be/be_visitor_sequence/any_op_cs.cpp:54

// Copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    const SSLIOP::SSL_Cert &_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::SSL_Cert>::insert_copy (
      _tao_any,
      SSLIOP::SSL_Cert::_tao_any_destructor,
      SSLIOP::_tc_SSL_Cert,
      _tao_elem
    );
}

// Non-copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::SSL_Cert *_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::SSL_Cert>::insert (
      _tao_any,
      SSLIOP::SSL_Cert::_tao_any_destructor,
      SSLIOP::_tc_SSL_Cert,
      _tao_elem
    );
}

// Extraction to non-const pointer (deprecated).
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    SSLIOP::SSL_Cert *&_tao_elem
  )
{
  return _tao_any >>= const_cast<
      const SSLIOP::SSL_Cert *&> (
      _tao_elem
    );
}

// Extraction to const pointer.
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    const SSLIOP::SSL_Cert *&_tao_elem
  )
{
  return
    TAO::Any_Dual_Impl_T<SSLIOP::SSL_Cert>::extract (
        _tao_any,
        SSLIOP::SSL_Cert::_tao_any_destructor,
        SSLIOP::_tc_SSL_Cert,
        _tao_elem
      );
}

// TAO_IDL - Generated from
// be/be_visitor_interface/any_op_cs.cpp:50

ACE_TEMPLATE_SPECIALIZATION
CORBA::Boolean
TAO::Any_Impl_T<SSLIOP::Current>::to_object (
    CORBA::Object_ptr &_tao_elem
  ) const
{
  _tao_elem = CORBA::Object::_duplicate (this->value_);
  return 1;
}

ACE_TEMPLATE_SPECIALIZATION
CORBA::Boolean
TAO::Any_Impl_T<SSLIOP::Current>::marshal_value (TAO_OutputCDR &)
{
  return 0;
}

ACE_TEMPLATE_SPECIALIZATION
CORBA::Boolean
TAO::Any_Impl_T<SSLIOP::Current>::demarshal_value (TAO_InputCDR &)
{
  return 0;
}

// Copying insertion.
void
operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::Current_ptr _tao_elem
  )
{
  SSLIOP::Current_ptr _tao_objptr =
    SSLIOP::Current::_duplicate (_tao_elem);
  _tao_any <<= &_tao_objptr;
}

// Non-copying insertion.
void
operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::Current_ptr *_tao_elem
  )
{
  TAO::Any_Impl_T<SSLIOP::Current>::insert (
      _tao_any,
      SSLIOP::Current::_tao_any_destructor,
      SSLIOP::_tc_Current,
      *_tao_elem
    );
}

CORBA::Boolean
operator>>= (
    const CORBA::Any &_tao_any,
    SSLIOP::Current_ptr &_tao_elem
  )
{
  return
    TAO::Any_Impl_T<SSLIOP::Current>::extract (
        _tao_any,
        SSLIOP::Current::_tao_any_destructor,
        SSLIOP::_tc_Current,
        _tao_elem
      );
}

// TAO_IDL - Generated from 
// be/be_visitor_exception/any_op_cs.cpp:50

ACE_TEMPLATE_SPECIALIZATION
CORBA::Boolean
TAO::Any_Dual_Impl_T<SSLIOP::Current::NoContext>::marshal_value (TAO_OutputCDR &)
{
  return 0;
}

ACE_TEMPLATE_SPECIALIZATION
CORBA::Boolean
TAO::Any_Dual_Impl_T<SSLIOP::Current::NoContext>::demarshal_value (TAO_InputCDR &)
{
  return 0;
}

// Copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    const SSLIOP::Current::NoContext &_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::Current::NoContext>::insert_copy (
      _tao_any,
      SSLIOP::Current::NoContext::_tao_any_destructor,
      SSLIOP::Current::_tc_NoContext,
      _tao_elem
    );
}

// Non-copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::Current::NoContext *_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::Current::NoContext>::insert (
      _tao_any,
      SSLIOP::Current::NoContext::_tao_any_destructor,
      SSLIOP::Current::_tc_NoContext,
      _tao_elem
    );
}

// Extraction to non-const pointer (deprecated).
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    SSLIOP::Current::NoContext *&_tao_elem
  )
{
  return _tao_any >>= const_cast<
      const SSLIOP::Current::NoContext *&> (
      _tao_elem
    );
}

// Extraction to const pointer.
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    const SSLIOP::Current::NoContext *&_tao_elem
  )
{
  return
    TAO::Any_Dual_Impl_T<SSLIOP::Current::NoContext>::extract (
        _tao_any,
        SSLIOP::Current::NoContext::_tao_any_destructor,
        SSLIOP::Current::_tc_NoContext,
        _tao_elem
      );
}

// TAO_IDL - Generated from
// be/be_visitor_enum/any_op_cs.cpp:52

void operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::FileType _tao_elem
  )
{
  TAO::Any_Basic_Impl_T<SSLIOP::FileType>::insert (
      _tao_any,
      SSLIOP::_tc_FileType,
      _tao_elem
    );
}

CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    SSLIOP::FileType &_tao_elem
  )
{
  return
    TAO::Any_Basic_Impl_T<SSLIOP::FileType>::extract (
        _tao_any,
        SSLIOP::_tc_FileType,
        _tao_elem 
      );
}

// TAO_IDL - Generated from 
// be/be_visitor_structure/any_op_cs.cpp:54

// Copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    const SSLIOP::File &_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::File>::insert_copy (
      _tao_any,
      SSLIOP::File::_tao_any_destructor,
      SSLIOP::_tc_File,
      _tao_elem
    );
}

// Non-copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::File *_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::File>::insert (
      _tao_any,
      SSLIOP::File::_tao_any_destructor,
      SSLIOP::_tc_File,
      _tao_elem
    );
}

// Extraction to non-const pointer (deprecated).
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    SSLIOP::File *&_tao_elem
  )
{
  return _tao_any >>= const_cast<
      const SSLIOP::File *&> (
      _tao_elem
    );
}

// Extraction to const pointer.
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    const SSLIOP::File *&_tao_elem
  )
{
  return
    TAO::Any_Dual_Impl_T<SSLIOP::File>::extract (
        _tao_any,
        SSLIOP::File::_tao_any_destructor,
        SSLIOP::_tc_File,
        _tao_elem
      );
}

// TAO_IDL - Generated from 
// be/be_visitor_structure/any_op_cs.cpp:54

// Copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    const SSLIOP::AuthData &_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::AuthData>::insert_copy (
      _tao_any,
      SSLIOP::AuthData::_tao_any_destructor,
      SSLIOP::_tc_AuthData,
      _tao_elem
    );
}

// Non-copying insertion.
void operator<<= (
    CORBA::Any &_tao_any,
    SSLIOP::AuthData *_tao_elem
  )
{
  TAO::Any_Dual_Impl_T<SSLIOP::AuthData>::insert (
      _tao_any,
      SSLIOP::AuthData::_tao_any_destructor,
      SSLIOP::_tc_AuthData,
      _tao_elem
    );
}

// Extraction to non-const pointer (deprecated).
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    SSLIOP::AuthData *&_tao_elem
  )
{
  return _tao_any >>= const_cast<
      const SSLIOP::AuthData *&> (
      _tao_elem
    );
}

// Extraction to const pointer.
CORBA::Boolean operator>>= (
    const CORBA::Any &_tao_any,
    const SSLIOP::AuthData *&_tao_elem
  )
{
  return
    TAO::Any_Dual_Impl_T<SSLIOP::AuthData>::extract (
        _tao_any,
        SSLIOP::AuthData::_tao_any_destructor,
        SSLIOP::_tc_AuthData,
        _tao_elem
      );
}

// TAO_IDL - Generated from
// be/be_visitor_structure/cdr_op_cs.cpp:61

CORBA::Boolean operator<< (
    TAO_OutputCDR &strm,
    const SSLIOP::SSL &_tao_aggregate
  )
{
  return
    (strm << _tao_aggregate.target_supports) &&
    (strm << _tao_aggregate.target_requires) &&
    (strm << _tao_aggregate.port);
}

CORBA::Boolean operator>> (
    TAO_InputCDR &strm,
    SSLIOP::SSL &_tao_aggregate
  )
{
  return
    (strm >> _tao_aggregate.target_supports) &&
    (strm >> _tao_aggregate.target_requires) &&
    (strm >> _tao_aggregate.port);
}

// TAO_IDL - Generated from
// be/be_visitor_sequence/cdr_op_cs.cpp:96

#if !defined _TAO_CDR_OP_SSLIOP_ASN_1_Cert_CPP_
#define _TAO_CDR_OP_SSLIOP_ASN_1_Cert_CPP_

CORBA::Boolean operator<< (
    TAO_OutputCDR &strm,
    const SSLIOP::ASN_1_Cert &_tao_sequence
  )
{
  const CORBA::ULong _tao_seq_len = _tao_sequence.length ();
  
  if (strm << _tao_seq_len)
    {
      // Encode all elements.
      
#if (TAO_NO_COPY_OCTET_SEQUENCES == 1)
      {
        TAO_Unbounded_Sequence<CORBA::Octet> *oseq = 
          static_cast<TAO_Unbounded_Sequence<CORBA::Octet> *> ((SSLIOP::ASN_1_Cert *)&_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;
}

CORBA::Boolean operator>> (
    TAO_InputCDR &strm,
    SSLIOP::ASN_1_Cert &_tao_sequence
  )
{
  CORBA::ULong _tao_seq_len;
  
  if (strm >> _tao_seq_len)
    {
      // Add a check to the length of the sequence
      // to make sure it does not exceed the length
      // of the stream. (See bug 58.)
      if (_tao_seq_len > strm.length ())
        {
          return 0;
        }
      
      // 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_ORB_Core* orb_core = strm.orb_core ();
        if (orb_core != 0 &&
        strm.orb_core ()->resource_factory ()->
        input_cdr_allocator_type_locked () == 1)
        {
          TAO_Unbounded_Sequence<CORBA::Octet> *oseq = 
            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;
        }
      }
      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;
}

#endif /* _TAO_CDR_OP_SSLIOP_ASN_1_Cert_CPP_ */

// TAO_IDL - Generated from
// be/be_visitor_sequence/cdr_op_cs.cpp:96

#if !defined _TAO_CDR_OP_SSLIOP_SSL_Cert_CPP_
#define _TAO_CDR_OP_SSLIOP_SSL_Cert_CPP_

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

CORBA::Boolean operator>> (
    TAO_InputCDR &strm,
    SSLIOP::SSL_Cert &_tao_sequence
  )
{
  CORBA::ULong _tao_seq_len;
  
  if (strm >> _tao_seq_len)
    {
      // Add a check to the length of the sequence
      // to make sure it does not exceed the length
      // of the stream. (See bug 58.)
      if (_tao_seq_len > strm.length ())
        {
          return 0;
        }
      
      // 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_seq_len && _tao_marshal_flag; ++i)
        {
          _tao_marshal_flag = (strm >> _tao_sequence[i]);
        }
      
      return _tao_marshal_flag;
    
    }
  
  return 0;
}

#endif /* _TAO_CDR_OP_SSLIOP_SSL_Cert_CPP_ */

// TAO_IDL - Generated from
// be/be_visitor_enum/cdr_op_cs.cpp:51

CORBA::Boolean operator<< (TAO_OutputCDR &strm, const SSLIOP::FileType &_tao_enumval)
{
  CORBA::ULong _tao_temp = _tao_enumval;
  return strm << _tao_temp;
}

CORBA::Boolean operator>> (TAO_InputCDR &strm, SSLIOP::FileType &_tao_enumval)
{
  CORBA::ULong _tao_temp = 0;
  CORBA::Boolean _tao_result = strm >> _tao_temp;
  
  if (_tao_result == 1)
    {
      _tao_enumval = static_cast<SSLIOP::FileType> (_tao_temp);
    }
  
  return _tao_result;
}

// TAO_IDL - Generated from
// be/be_visitor_structure/cdr_op_cs.cpp:61

CORBA::Boolean operator<< (
    TAO_OutputCDR &strm,
    const SSLIOP::File &_tao_aggregate
  )
{
  return
    (strm << _tao_aggregate.type) &&
    (strm << _tao_aggregate.filename.in ()) &&
    (strm << _tao_aggregate.password.in ());
}

CORBA::Boolean operator>> (
    TAO_InputCDR &strm,
    SSLIOP::File &_tao_aggregate
  )
{
  return
    (strm >> _tao_aggregate.type) &&
    (strm >> _tao_aggregate.filename.out ()) &&
    (strm >> _tao_aggregate.password.out ());
}

// TAO_IDL - Generated from
// be/be_visitor_structure/cdr_op_cs.cpp:61

CORBA::Boolean operator<< (
    TAO_OutputCDR &strm,
    const SSLIOP::AuthData &_tao_aggregate
  )
{
  return
    (strm << _tao_aggregate.certificate) &&
    (strm << _tao_aggregate.key);
}

CORBA::Boolean operator>> (
    TAO_InputCDR &strm,
    SSLIOP::AuthData &_tao_aggregate
  )
{
  return
    (strm >> _tao_aggregate.certificate) &&
    (strm >> _tao_aggregate.key);
}

