// -*- C++ -*-
//
// TypeCodeFactoryC.cpp,v 1.23 2004/04/19 08:24:17 jwillemsen Exp

// ****  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:323


#include "TypeCodeFactoryC.h"
#include "tao/CDR.h"
#include "tao/Any_Impl_T.h"
#include "tao/Basic_Arguments.h"
#include "tao/Object_Argument_T.h"
#include "tao/Special_Basic_Arguments.h"
#include "tao/UB_String_Arguments.h"
#include "tao/Var_Size_Argument_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 "TypeCodeFactoryC.inl"
#endif /* !defined INLINE */

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

// Arg traits specializations.
namespace TAO
{
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:582

#if !defined (_CORBA_ANY__ARG_TRAITS_CS_)
#define _CORBA_ANY__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::Any>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::Any,
            CORBA::Any_var,
            CORBA::Any_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:537

#if !defined (_CORBA_DEFINITIONKIND__ARG_TRAITS_CS_)
#define _CORBA_DEFINITIONKIND__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::DefinitionKind>
    : public
        Basic_Arg_Traits_T<
            CORBA::DefinitionKind
          >
  {
  };

#endif /* end #if !defined */

#if !defined (_CORBA_CONTAINER__ARG_TRAITS_CS_)
#define _CORBA_CONTAINER__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::Container>
    : public
        Object_Arg_Traits_T<
            CORBA::Container_ptr,
            CORBA::Container_var,
            CORBA::Container_out,
            TAO::Objref_Traits<CORBA::Container>
          >
  {
  };

#endif /* end #if !defined */

#if !defined (_CORBA_IDLTYPE__ARG_TRAITS_CS_)
#define _CORBA_IDLTYPE__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::IDLType>
    : public
        Object_Arg_Traits_T<
            CORBA::IDLType_ptr,
            CORBA::IDLType_var,
            CORBA::IDLType_out,
            TAO::Objref_Traits<CORBA::IDLType>
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_INTERFACEDEFSEQ__ARG_TRAITS_CS_)
#define _CORBA_INTERFACEDEFSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::InterfaceDefSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::InterfaceDefSeq,
            CORBA::InterfaceDefSeq_var,
            CORBA::InterfaceDefSeq_out
          >
  {
  };

#endif /* end #if !defined */

#if !defined (_CORBA_VALUEDEF__ARG_TRAITS_CS_)
#define _CORBA_VALUEDEF__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::ValueDef>
    : public
        Object_Arg_Traits_T<
            CORBA::ValueDef_ptr,
            CORBA::ValueDef_var,
            CORBA::ValueDef_out,
            TAO::Objref_Traits<CORBA::ValueDef>
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_VALUEDEFSEQ__ARG_TRAITS_CS_)
#define _CORBA_VALUEDEFSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::ValueDefSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::ValueDefSeq,
            CORBA::ValueDefSeq_var,
            CORBA::ValueDefSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_ABSTRACTINTERFACEDEFSEQ__ARG_TRAITS_CS_)
#define _CORBA_ABSTRACTINTERFACEDEFSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::AbstractInterfaceDefSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::AbstractInterfaceDefSeq,
            CORBA::AbstractInterfaceDefSeq_var,
            CORBA::AbstractInterfaceDefSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_STRUCTMEMBERSEQ__ARG_TRAITS_CS_)
#define _CORBA_STRUCTMEMBERSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::StructMemberSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::StructMemberSeq,
            CORBA::StructMemberSeq_var,
            CORBA::StructMemberSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_INITIALIZERSEQ__ARG_TRAITS_CS_)
#define _CORBA_INITIALIZERSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::InitializerSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::InitializerSeq,
            CORBA::InitializerSeq_var,
            CORBA::InitializerSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_EXTINITIALIZERSEQ__ARG_TRAITS_CS_)
#define _CORBA_EXTINITIALIZERSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::ExtInitializerSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::ExtInitializerSeq,
            CORBA::ExtInitializerSeq_var,
            CORBA::ExtInitializerSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_UNIONMEMBERSEQ__ARG_TRAITS_CS_)
#define _CORBA_UNIONMEMBERSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::UnionMemberSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::UnionMemberSeq,
            CORBA::UnionMemberSeq_var,
            CORBA::UnionMemberSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_ENUMMEMBERSEQ__ARG_TRAITS_CS_)
#define _CORBA_ENUMMEMBERSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::EnumMemberSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::EnumMemberSeq,
            CORBA::EnumMemberSeq_var,
            CORBA::EnumMemberSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:537

#if !defined (_CORBA_PRIMITIVEKIND__ARG_TRAITS_CS_)
#define _CORBA_PRIMITIVEKIND__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::PrimitiveKind>
    : public
        Basic_Arg_Traits_T<
            CORBA::PrimitiveKind
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_EXCEPTIONDEFSEQ__ARG_TRAITS_CS_)
#define _CORBA_EXCEPTIONDEFSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::ExceptionDefSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::ExceptionDefSeq,
            CORBA::ExceptionDefSeq_var,
            CORBA::ExceptionDefSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:537

#if !defined (_CORBA_ATTRIBUTEMODE__ARG_TRAITS_CS_)
#define _CORBA_ATTRIBUTEMODE__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::AttributeMode>
    : public
        Basic_Arg_Traits_T<
            CORBA::AttributeMode
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:537

#if !defined (_CORBA_OPERATIONMODE__ARG_TRAITS_CS_)
#define _CORBA_OPERATIONMODE__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::OperationMode>
    : public
        Basic_Arg_Traits_T<
            CORBA::OperationMode
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_PARDESCRIPTIONSEQ__ARG_TRAITS_CS_)
#define _CORBA_PARDESCRIPTIONSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::ParDescriptionSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::ParDescriptionSeq,
            CORBA::ParDescriptionSeq_var,
            CORBA::ParDescriptionSeq_out
          >
  {
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be\be_visitor_arg_traits.cpp:379

#if !defined (_CORBA_CONTEXTIDSEQ__ARG_TRAITS_CS_)
#define _CORBA_CONTEXTIDSEQ__ARG_TRAITS_CS_
  
  ACE_TEMPLATE_SPECIALIZATION
  class TAO_TypeCodeFactory_Export Arg_Traits<CORBA::ContextIdSeq>
    : public
        Var_Size_Arg_Traits_T<
            CORBA::ContextIdSeq,
            CORBA::ContextIdSeq_var,
            CORBA::ContextIdSeq_out
          >
  {
  };

#endif /* end #if !defined */
}


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

// Traits specializations for CORBA::TypeCodeFactory.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::TypeCodeFactory_ptr
TAO::Objref_Traits<CORBA::TypeCodeFactory>::tao_duplicate (
    CORBA::TypeCodeFactory_ptr p
  )
{
  return CORBA::TypeCodeFactory::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<CORBA::TypeCodeFactory>::tao_release (
    CORBA::TypeCodeFactory_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::TypeCodeFactory_ptr
TAO::Objref_Traits<CORBA::TypeCodeFactory>::tao_nil (void)
{
  return CORBA::TypeCodeFactory::_nil ();
}

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

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

CORBA::TypeCodeFactory::TypeCodeFactory (void)
{}

CORBA::TypeCodeFactory::~TypeCodeFactory (void)
{}

void 
CORBA::TypeCodeFactory::_tao_any_destructor (void *_tao_void_pointer)
{
  TypeCodeFactory *_tao_tmp_pointer =
    ACE_static_cast (TypeCodeFactory *, _tao_void_pointer);
  CORBA::release (_tao_tmp_pointer);
}

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

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

CORBA::TypeCodeFactory_ptr
CORBA::TypeCodeFactory::_duplicate (TypeCodeFactory_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }
  
  return obj;
}

CORBA::Boolean
CORBA::TypeCodeFactory::_is_a (
    const char *value
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (
      !ACE_OS::strcmp (
          (char *)value,
          "IDL:omg.org/CORBA/TypeCodeFactory: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* CORBA::TypeCodeFactory::_interface_repository_id (void) const
{
  return "IDL:omg.org/CORBA/TypeCodeFactory:1.0";
}

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

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

static const CORBA::Long _oc_CORBA_TypeCodeFactory[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  38,
  ACE_NTOHL (0x49444c3a), 
  ACE_NTOHL (0x6f6d672e), 
  ACE_NTOHL (0x6f72672f), 
  ACE_NTOHL (0x434f5242), 
  ACE_NTOHL (0x412f5479), 
  ACE_NTOHL (0x7065436f), 
  ACE_NTOHL (0x64654661), 
  ACE_NTOHL (0x63746f72), 
  ACE_NTOHL (0x793a312e), 
  ACE_NTOHL (0x30000000),  // repository ID = IDL:omg.org/CORBA/TypeCodeFactory:1.0
    16,
  ACE_NTOHL (0x54797065), 
  ACE_NTOHL (0x436f6465), 
  ACE_NTOHL (0x46616374), 
  ACE_NTOHL (0x6f727900),  // name = TypeCodeFactory
  };

static CORBA::TypeCode _tc_TAO_tc_CORBA_TypeCodeFactory (
    CORBA::tk_objref,
    sizeof (_oc_CORBA_TypeCodeFactory),
    (char *) &_oc_CORBA_TypeCodeFactory,
    0,
    sizeof (CORBA::TypeCodeFactory)
  );

namespace CORBA
{
  ::CORBA::TypeCode_ptr _tc_TypeCodeFactory =
    &_tc_TAO_tc_CORBA_TypeCodeFactory;
}

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

ACE_TEMPLATE_SPECIALIZATION
CORBA::Boolean
TAO::Any_Impl_T<CORBA::TypeCodeFactory>::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<CORBA::TypeCodeFactory>::marshal_value (TAO_OutputCDR &)
{
  return 0;
}

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

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

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

CORBA::Boolean
operator>>= (
    const CORBA::Any &_tao_any,
    CORBA::TypeCodeFactory_ptr &_tao_elem
  )
{
  return
    TAO::Any_Impl_T<CORBA::TypeCodeFactory>::extract (
        _tao_any,
        CORBA::TypeCodeFactory::_tao_any_destructor,
        CORBA::_tc_TypeCodeFactory,
        _tao_elem
      );
}

// TAO_IDL - Generated from
// be\be_visitor_root/root.cpp:1628

#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)

#if !defined (_CORBA_DEFINITIONKIND__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_DEFINITIONKIND__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::DefinitionKind>;

  template class TAO::Basic_Arg_Traits_T<CORBA::DefinitionKind>;

#endif /* end #if !defined */

#if !defined (_CORBA_CONTAINER__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_CONTAINER__ARG_TRAITS_TMPLINST_CS_

  template class
    TAO::Arg_Traits<
        CORBA::Container
      >;

  template class
    TAO::Object_Arg_Traits_T<
        CORBA::Container_ptr,
        CORBA::Container_var,
        CORBA::Container_out,
        TAO::Objref_Traits<CORBA::Container>
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_IDLTYPE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_IDLTYPE__ARG_TRAITS_TMPLINST_CS_

  template class
    TAO::Arg_Traits<
        CORBA::IDLType
      >;

  template class
    TAO::Object_Arg_Traits_T<
        CORBA::IDLType_ptr,
        CORBA::IDLType_var,
        CORBA::IDLType_out,
        TAO::Objref_Traits<CORBA::IDLType>
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::InterfaceDefSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::InterfaceDefSeq,
        CORBA::InterfaceDefSeq_var,
        CORBA::InterfaceDefSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_VALUEDEF__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_VALUEDEF__ARG_TRAITS_TMPLINST_CS_

  template class
    TAO::Arg_Traits<
        CORBA::ValueDef
      >;

  template class
    TAO::Object_Arg_Traits_T<
        CORBA::ValueDef_ptr,
        CORBA::ValueDef_var,
        CORBA::ValueDef_out,
        TAO::Objref_Traits<CORBA::ValueDef>
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::ValueDefSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::ValueDefSeq,
        CORBA::ValueDefSeq_var,
        CORBA::ValueDefSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::AbstractInterfaceDefSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::AbstractInterfaceDefSeq,
        CORBA::AbstractInterfaceDefSeq_var,
        CORBA::AbstractInterfaceDefSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::StructMemberSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::StructMemberSeq,
        CORBA::StructMemberSeq_var,
        CORBA::StructMemberSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::InitializerSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::InitializerSeq,
        CORBA::InitializerSeq_var,
        CORBA::InitializerSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::ExtInitializerSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::ExtInitializerSeq,
        CORBA::ExtInitializerSeq_var,
        CORBA::ExtInitializerSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::UnionMemberSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::UnionMemberSeq,
        CORBA::UnionMemberSeq_var,
        CORBA::UnionMemberSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::EnumMemberSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::EnumMemberSeq,
        CORBA::EnumMemberSeq_var,
        CORBA::EnumMemberSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_PRIMITIVEKIND__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_PRIMITIVEKIND__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::PrimitiveKind>;

  template class TAO::Basic_Arg_Traits_T<CORBA::PrimitiveKind>;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::ExceptionDefSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::ExceptionDefSeq,
        CORBA::ExceptionDefSeq_var,
        CORBA::ExceptionDefSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_ATTRIBUTEMODE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_ATTRIBUTEMODE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::AttributeMode>;

  template class TAO::Basic_Arg_Traits_T<CORBA::AttributeMode>;

#endif /* end #if !defined */

#if !defined (_CORBA_OPERATIONMODE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_OPERATIONMODE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::OperationMode>;

  template class TAO::Basic_Arg_Traits_T<CORBA::OperationMode>;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::ParDescriptionSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::ParDescriptionSeq,
        CORBA::ParDescriptionSeq_var,
        CORBA::ParDescriptionSeq_out
      >;

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

  template class TAO::Arg_Traits<CORBA::ContextIdSeq>;

  template class
    TAO::Var_Size_Arg_Traits_T<
        CORBA::ContextIdSeq,
        CORBA::ContextIdSeq_var,
        CORBA::ContextIdSeq_out
      >;

#endif /* end #if !defined */

  template class
    TAO::Objref_Traits<
        CORBA::TypeCodeFactory
      >;

  template class
    TAO_Objref_Var_T<
        CORBA::TypeCodeFactory
      >;
  
  template class
    TAO_Objref_Out_T<
        CORBA::TypeCodeFactory
      >;

  template class
    TAO::Any_Impl_T<
        CORBA::TypeCodeFactory
      >;

#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)

#if !defined (_CORBA_DEFINITIONKIND__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_DEFINITIONKIND__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::DefinitionKind>

# pragma instantiate TAO::Basic_Arg_Traits_T<CORBA::DefinitionKind>

#endif /* end #if !defined */

#if !defined (_CORBA_CONTAINER__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_CONTAINER__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate \
    TAO::Arg_Traits< \
        CORBA::Container \
      >

# pragma instantiate \
    TAO::Object_Arg_Traits_T< \
        CORBA::Container_ptr, \
        CORBA::Container_var, \
        CORBA::Container_out, \
        TAO::Objref_Traits<CORBA::Container> \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_IDLTYPE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_IDLTYPE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate \
    TAO::Arg_Traits< \
        CORBA::IDLType \
      >

# pragma instantiate \
    TAO::Object_Arg_Traits_T< \
        CORBA::IDLType_ptr, \
        CORBA::IDLType_var, \
        CORBA::IDLType_out, \
        TAO::Objref_Traits<CORBA::IDLType> \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::InterfaceDefSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::InterfaceDefSeq, \
        CORBA::InterfaceDefSeq_var, \
        CORBA::InterfaceDefSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_VALUEDEF__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_VALUEDEF__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate \
    TAO::Arg_Traits< \
        CORBA::ValueDef \
      >

# pragma instantiate \
    TAO::Object_Arg_Traits_T< \
        CORBA::ValueDef_ptr, \
        CORBA::ValueDef_var, \
        CORBA::ValueDef_out, \
        TAO::Objref_Traits<CORBA::ValueDef> \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::ValueDefSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::ValueDefSeq, \
        CORBA::ValueDefSeq_var, \
        CORBA::ValueDefSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::AbstractInterfaceDefSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::AbstractInterfaceDefSeq, \
        CORBA::AbstractInterfaceDefSeq_var, \
        CORBA::AbstractInterfaceDefSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::StructMemberSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::StructMemberSeq, \
        CORBA::StructMemberSeq_var, \
        CORBA::StructMemberSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::InitializerSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::InitializerSeq, \
        CORBA::InitializerSeq_var, \
        CORBA::InitializerSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::ExtInitializerSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::ExtInitializerSeq, \
        CORBA::ExtInitializerSeq_var, \
        CORBA::ExtInitializerSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::UnionMemberSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::UnionMemberSeq, \
        CORBA::UnionMemberSeq_var, \
        CORBA::UnionMemberSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::EnumMemberSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::EnumMemberSeq, \
        CORBA::EnumMemberSeq_var, \
        CORBA::EnumMemberSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_PRIMITIVEKIND__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_PRIMITIVEKIND__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::PrimitiveKind>

# pragma instantiate TAO::Basic_Arg_Traits_T<CORBA::PrimitiveKind>

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::ExceptionDefSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::ExceptionDefSeq, \
        CORBA::ExceptionDefSeq_var, \
        CORBA::ExceptionDefSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_ATTRIBUTEMODE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_ATTRIBUTEMODE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::AttributeMode>

# pragma instantiate TAO::Basic_Arg_Traits_T<CORBA::AttributeMode>

#endif /* end #if !defined */

#if !defined (_CORBA_OPERATIONMODE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_OPERATIONMODE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::OperationMode>

# pragma instantiate TAO::Basic_Arg_Traits_T<CORBA::OperationMode>

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::ParDescriptionSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::ParDescriptionSeq, \
        CORBA::ParDescriptionSeq_var, \
        CORBA::ParDescriptionSeq_out \
      >

#endif /* end #if !defined */

#if !defined (_CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_)
#define _CORBA_SEQUENCE__ARG_TRAITS_TMPLINST_CS_

# pragma instantiate TAO::Arg_Traits<CORBA::ContextIdSeq>

# pragma instantiate \
    TAO::Var_Size_Arg_Traits_T< \
        CORBA::ContextIdSeq, \
        CORBA::ContextIdSeq_var, \
        CORBA::ContextIdSeq_out \
      >

#endif /* end #if !defined */

# pragma instantiate \
    TAO::Objref_Traits< \
        CORBA::TypeCodeFactory \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        CORBA::TypeCodeFactory
      >
  
# pragma instantiate \
    TAO_Objref_Out_T< \
        CORBA::TypeCodeFactory
      >

# pragma instantiate \
    TAO::Any_Impl_T< \
        CORBA::TypeCodeFactory \
      >

#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ 

