// -*- C++ -*-
//
// PortableInterceptorC.cpp,v 1.41 2004/04/27 21:42:21 bala 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 "PortableInterceptorC.h"
#include "tao/CDR.h"
#include "tao/Typecode.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 "PortableInterceptorC.i"
#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_interface/interface_cs.cpp:60

// Traits specializations for PortableInterceptor::Interceptor.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::Interceptor_ptr
TAO::Objref_Traits<PortableInterceptor::Interceptor>::tao_duplicate (
    PortableInterceptor::Interceptor_ptr p
  )
{
  return PortableInterceptor::Interceptor::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::Interceptor>::tao_release (
    PortableInterceptor::Interceptor_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::Interceptor_ptr
TAO::Objref_Traits<PortableInterceptor::Interceptor>::tao_nil (void)
{
  return PortableInterceptor::Interceptor::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::Interceptor>::tao_marshal (
    PortableInterceptor::Interceptor_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

PortableInterceptor::Interceptor::Interceptor (void)
{}

PortableInterceptor::Interceptor::~Interceptor (void)
{}

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

PortableInterceptor::Interceptor_ptr
PortableInterceptor::Interceptor::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return Interceptor::_nil ();
    }

  Interceptor_ptr proxy =
    dynamic_cast<Interceptor_ptr> (_tao_objref);

  return Interceptor::_duplicate (proxy);
}

PortableInterceptor::Interceptor_ptr
PortableInterceptor::Interceptor::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return Interceptor::_nil ();
    }

  Interceptor_ptr proxy =
    dynamic_cast<Interceptor_ptr> (_tao_objref);

  return Interceptor::_duplicate (proxy);
}

PortableInterceptor::Interceptor_ptr
PortableInterceptor::Interceptor::_duplicate (Interceptor_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

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

PortableInterceptor::ForwardRequest::ForwardRequest (void)
  : CORBA::UserException (
        "IDL:omg.org/PortableInterceptor/ForwardRequest:1.0",
        "ForwardRequest"
      )
{
}

PortableInterceptor::ForwardRequest::~ForwardRequest (void)
{
}

PortableInterceptor::ForwardRequest::ForwardRequest (const ::PortableInterceptor::ForwardRequest &_tao_excp)
  : CORBA::UserException (
        _tao_excp._rep_id (),
        _tao_excp._name ()
      )
{
  this->forward = CORBA::Object::_duplicate (_tao_excp.forward.in ());
  this->permanent = _tao_excp.permanent;
}

PortableInterceptor::ForwardRequest&
PortableInterceptor::ForwardRequest::operator= (const ::PortableInterceptor::ForwardRequest &_tao_excp)
{
  this->ACE_NESTED_CLASS (CORBA, UserException)::operator= (_tao_excp);
  this->forward = CORBA::Object::_duplicate (_tao_excp.forward.in ());
  this->permanent = _tao_excp.permanent;
  return *this;
}

void PortableInterceptor::ForwardRequest::_tao_any_destructor (void *_tao_void_pointer)
{
  ForwardRequest *_tao_tmp_pointer =
    ACE_static_cast (ForwardRequest*, _tao_void_pointer);
  delete _tao_tmp_pointer;
}

PortableInterceptor::ForwardRequest *
PortableInterceptor::ForwardRequest::_downcast (CORBA::Exception *_tao_excp)
{
  if (!ACE_OS::strcmp ("IDL:omg.org/PortableInterceptor/ForwardRequest:1.0", _tao_excp->_rep_id ()))
    {
      return ACE_dynamic_cast (ForwardRequest *, _tao_excp);
    }
  else
    {
      return 0;
    }
}

CORBA::Exception *PortableInterceptor::ForwardRequest::_alloc (void)
{
  CORBA::Exception *retval = 0;
  ACE_NEW_RETURN (retval, ::PortableInterceptor::ForwardRequest, 0);
  return retval;
}

CORBA::Exception *
PortableInterceptor::ForwardRequest::_tao_duplicate (void) const
{
  CORBA::Exception *result;
  ACE_NEW_RETURN (
      result,
      ::PortableInterceptor::ForwardRequest (*this),
      0
    );
  return result;
}

void PortableInterceptor::ForwardRequest::_raise (void) const
{
  TAO_RAISE (*this);
}

void PortableInterceptor::ForwardRequest::_tao_encode (
    TAO_OutputCDR &cdr
    ACE_ENV_ARG_DECL
  ) const
{
  if (cdr << *this)
    {
      return;
    }

  ACE_THROW (CORBA::MARSHAL ());
}

void PortableInterceptor::ForwardRequest::_tao_decode (
    TAO_InputCDR &cdr
    ACE_ENV_ARG_DECL
  )
{
  if (cdr >> *this)
    {
      return;
    }

  ACE_THROW (CORBA::MARSHAL ());
}


// TAO_IDL - Generated from
// be\be_visitor_exception/exception_ctor.cpp:66

PortableInterceptor::ForwardRequest::ForwardRequest (
    const CORBA::Object_ptr  _tao_forward,
    CORBA::Boolean _tao_permanent
  )
  : CORBA::UserException (
        "IDL:omg.org/PortableInterceptor/ForwardRequest:1.0",
        "ForwardRequest"
      )
{
  this->forward = CORBA::Object::_duplicate (_tao_forward);
  this->permanent = _tao_permanent;
}

// be\be_visitor_typecode/typecode_defn.cpp:290

static const CORBA::Long _oc_PortableInterceptor_ForwardRequest[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  51,
  ACE_NTOHL (0x49444c3a),
  ACE_NTOHL (0x6f6d672e),
  ACE_NTOHL (0x6f72672f),
  ACE_NTOHL (0x506f7274),
  ACE_NTOHL (0x61626c65),
  ACE_NTOHL (0x496e7465),
  ACE_NTOHL (0x72636570),
  ACE_NTOHL (0x746f722f),
  ACE_NTOHL (0x466f7277),
  ACE_NTOHL (0x61726452),
  ACE_NTOHL (0x65717565),
  ACE_NTOHL (0x73743a31),
  ACE_NTOHL (0x2e300000),  // repository ID = IDL:omg.org/PortableInterceptor/ForwardRequest:1.0
    15,
  ACE_NTOHL (0x466f7277),
  ACE_NTOHL (0x61726452),
  ACE_NTOHL (0x65717565),
  ACE_NTOHL (0x73740000),  // name = ForwardRequest
  2, // member count
    8,
  ACE_NTOHL (0x666f7277),
  ACE_NTOHL (0x61726400),  // name = forward
    CORBA::tk_objref,
  52, // encapsulation length
    TAO_ENCAP_BYTE_ORDER, // byte order
    29,
    ACE_NTOHL (0x49444c3a),
    ACE_NTOHL (0x6f6d672e),
    ACE_NTOHL (0x6f72672f),
    ACE_NTOHL (0x434f5242),
    ACE_NTOHL (0x412f4f62),
    ACE_NTOHL (0x6a656374),
    ACE_NTOHL (0x3a312e30),
    ACE_NTOHL (0x0),  // repository ID = IDL:omg.org/CORBA/Object:1.0
        7,
    ACE_NTOHL (0x4f626a65),
    ACE_NTOHL (0x63740000),  // name = Object

  10,
  ACE_NTOHL (0x7065726d),
  ACE_NTOHL (0x616e656e),
  ACE_NTOHL (0x74000000),  // name = permanent
    CORBA::tk_boolean,

};

static CORBA::TypeCode _tc_TAO_tc_PortableInterceptor_ForwardRequest (
    CORBA::tk_except,
    sizeof (_oc_PortableInterceptor_ForwardRequest),
    (char *) &_oc_PortableInterceptor_ForwardRequest,
    0,
    sizeof (PortableInterceptor::ForwardRequest)
  );

namespace PortableInterceptor
{
  ::CORBA::TypeCode_ptr _tc_ForwardRequest =
    &_tc_TAO_tc_PortableInterceptor_ForwardRequest;
}


// TAO extension - the virtual _type method.
CORBA::TypeCode_ptr PortableInterceptor::ForwardRequest::_type (void) const
{
  return ::PortableInterceptor::_tc_ForwardRequest;
}

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

PortableInterceptor::InvalidSlot::InvalidSlot (void)
  : CORBA::UserException (
        "IDL:omg.org/PortableInterceptor/InvalidSlot:1.0",
        "InvalidSlot"
      )
{
}

PortableInterceptor::InvalidSlot::~InvalidSlot (void)
{
}

PortableInterceptor::InvalidSlot::InvalidSlot (const ::PortableInterceptor::InvalidSlot &_tao_excp)
  : CORBA::UserException (
        _tao_excp._rep_id (),
        _tao_excp._name ()
      )
{
}

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

void PortableInterceptor::InvalidSlot::_tao_any_destructor (void *_tao_void_pointer)
{
  InvalidSlot *_tao_tmp_pointer =
    ACE_static_cast (InvalidSlot*, _tao_void_pointer);
  delete _tao_tmp_pointer;
}

PortableInterceptor::InvalidSlot *
PortableInterceptor::InvalidSlot::_downcast (CORBA::Exception *_tao_excp)
{
  if (!ACE_OS::strcmp ("IDL:omg.org/PortableInterceptor/InvalidSlot:1.0", _tao_excp->_rep_id ()))
    {
      return ACE_dynamic_cast (InvalidSlot *, _tao_excp);
    }
  else
    {
      return 0;
    }
}

CORBA::Exception *PortableInterceptor::InvalidSlot::_alloc (void)
{
  CORBA::Exception *retval = 0;
  ACE_NEW_RETURN (retval, ::PortableInterceptor::InvalidSlot, 0);
  return retval;
}

CORBA::Exception *
PortableInterceptor::InvalidSlot::_tao_duplicate (void) const
{
  CORBA::Exception *result;
  ACE_NEW_RETURN (
      result,
      ::PortableInterceptor::InvalidSlot (*this),
      0
    );
  return result;
}

void PortableInterceptor::InvalidSlot::_raise (void) const
{
  TAO_RAISE (*this);
}

void PortableInterceptor::InvalidSlot::_tao_encode (
    TAO_OutputCDR &cdr
    ACE_ENV_ARG_DECL
  ) const
{
  if (cdr << *this)
    {
      return;
    }

  ACE_THROW (CORBA::MARSHAL ());
}

void PortableInterceptor::InvalidSlot::_tao_decode (
    TAO_InputCDR &cdr
    ACE_ENV_ARG_DECL
  )
{
  if (cdr >> *this)
    {
      return;
    }

  ACE_THROW (CORBA::MARSHAL ());
}

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

static const CORBA::Long _oc_PortableInterceptor_InvalidSlot[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  48,
  ACE_NTOHL (0x49444c3a),
  ACE_NTOHL (0x6f6d672e),
  ACE_NTOHL (0x6f72672f),
  ACE_NTOHL (0x506f7274),
  ACE_NTOHL (0x61626c65),
  ACE_NTOHL (0x496e7465),
  ACE_NTOHL (0x72636570),
  ACE_NTOHL (0x746f722f),
  ACE_NTOHL (0x496e7661),
  ACE_NTOHL (0x6c696453),
  ACE_NTOHL (0x6c6f743a),
  ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/PortableInterceptor/InvalidSlot:1.0
    12,
  ACE_NTOHL (0x496e7661),
  ACE_NTOHL (0x6c696453),
  ACE_NTOHL (0x6c6f7400),  // name = InvalidSlot
  0, // member count
  };

static CORBA::TypeCode _tc_TAO_tc_PortableInterceptor_InvalidSlot (
    CORBA::tk_except,
    sizeof (_oc_PortableInterceptor_InvalidSlot),
    (char *) &_oc_PortableInterceptor_InvalidSlot,
    0,
    sizeof (PortableInterceptor::InvalidSlot)
  );

namespace PortableInterceptor
{
  ::CORBA::TypeCode_ptr _tc_InvalidSlot =
    &_tc_TAO_tc_PortableInterceptor_InvalidSlot;
}

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

static const CORBA::Long _oc_PortableInterceptor_Current[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  44,
  ACE_NTOHL (0x49444c3a),
  ACE_NTOHL (0x6f6d672e),
  ACE_NTOHL (0x6f72672f),
  ACE_NTOHL (0x506f7274),
  ACE_NTOHL (0x61626c65),
  ACE_NTOHL (0x496e7465),
  ACE_NTOHL (0x72636570),
  ACE_NTOHL (0x746f722f),
  ACE_NTOHL (0x43757272),
  ACE_NTOHL (0x656e743a),
  ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/PortableInterceptor/Current:1.0
    8,
  ACE_NTOHL (0x43757272),
  ACE_NTOHL (0x656e7400),  // name = Current
  };

static CORBA::TypeCode _tc_TAO_tc_PortableInterceptor_Current (
    CORBA::tk_objref,
    sizeof (_oc_PortableInterceptor_Current),
    (char *) &_oc_PortableInterceptor_Current,
    0,
    sizeof (PortableInterceptor::Current)
  );

namespace PortableInterceptor
{
  ::CORBA::TypeCode_ptr _tc_Current =
    &_tc_TAO_tc_PortableInterceptor_Current;
}


// TAO extension - the virtual _type method.
CORBA::TypeCode_ptr PortableInterceptor::InvalidSlot::_type (void) const
{
  return ::PortableInterceptor::_tc_InvalidSlot;
}

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

// Traits specializations for PortableInterceptor::Current.

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

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

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

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

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

PortableInterceptor::Current::Current (void)
{}

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

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

PortableInterceptor::Current_ptr
PortableInterceptor::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);
}

PortableInterceptor::Current_ptr
PortableInterceptor::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);
}

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

  return obj;
}

CORBA::Boolean
PortableInterceptor::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:omg.org/PortableInterceptor/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* PortableInterceptor::Current::_interface_repository_id (void) const
{
  return "IDL:omg.org/PortableInterceptor/Current:1.0";
}

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

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

// Traits specializations for PortableInterceptor::RequestInfo.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::RequestInfo_ptr
TAO::Objref_Traits<PortableInterceptor::RequestInfo>::tao_duplicate (
    PortableInterceptor::RequestInfo_ptr p
  )
{
  return PortableInterceptor::RequestInfo::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::RequestInfo>::tao_release (
    PortableInterceptor::RequestInfo_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::RequestInfo_ptr
TAO::Objref_Traits<PortableInterceptor::RequestInfo>::tao_nil (void)
{
  return PortableInterceptor::RequestInfo::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::RequestInfo>::tao_marshal (
    PortableInterceptor::RequestInfo_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

PortableInterceptor::RequestInfo::RequestInfo (void)
{}

PortableInterceptor::RequestInfo::~RequestInfo (void)
{}

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

PortableInterceptor::RequestInfo_ptr
PortableInterceptor::RequestInfo::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return RequestInfo::_nil ();
    }

  RequestInfo_ptr proxy =
    dynamic_cast<RequestInfo_ptr> (_tao_objref);

  return RequestInfo::_duplicate (proxy);
}

PortableInterceptor::RequestInfo_ptr
PortableInterceptor::RequestInfo::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return RequestInfo::_nil ();
    }

  RequestInfo_ptr proxy =
    dynamic_cast<RequestInfo_ptr> (_tao_objref);

  return RequestInfo::_duplicate (proxy);
}

PortableInterceptor::RequestInfo_ptr
PortableInterceptor::RequestInfo::_duplicate (RequestInfo_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

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

// Traits specializations for PortableInterceptor::ClientRequestInfo.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ClientRequestInfo_ptr
TAO::Objref_Traits<PortableInterceptor::ClientRequestInfo>::tao_duplicate (
    PortableInterceptor::ClientRequestInfo_ptr p
  )
{
  return PortableInterceptor::ClientRequestInfo::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::ClientRequestInfo>::tao_release (
    PortableInterceptor::ClientRequestInfo_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ClientRequestInfo_ptr
TAO::Objref_Traits<PortableInterceptor::ClientRequestInfo>::tao_nil (void)
{
  return PortableInterceptor::ClientRequestInfo::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::ClientRequestInfo>::tao_marshal (
    PortableInterceptor::ClientRequestInfo_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

PortableInterceptor::ClientRequestInfo::ClientRequestInfo (void)
{}

PortableInterceptor::ClientRequestInfo::~ClientRequestInfo (void)
{}

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

PortableInterceptor::ClientRequestInfo_ptr
PortableInterceptor::ClientRequestInfo::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ClientRequestInfo::_nil ();
    }

  ClientRequestInfo_ptr proxy =
    dynamic_cast<ClientRequestInfo_ptr> (_tao_objref);

  return ClientRequestInfo::_duplicate (proxy);
}

PortableInterceptor::ClientRequestInfo_ptr
PortableInterceptor::ClientRequestInfo::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ClientRequestInfo::_nil ();
    }

  ClientRequestInfo_ptr proxy =
    dynamic_cast<ClientRequestInfo_ptr> (_tao_objref);

  return ClientRequestInfo::_duplicate (proxy);
}

PortableInterceptor::ClientRequestInfo_ptr
PortableInterceptor::ClientRequestInfo::_duplicate (ClientRequestInfo_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

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

// Traits specializations for PortableInterceptor::ServerRequestInfo.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ServerRequestInfo_ptr
TAO::Objref_Traits<PortableInterceptor::ServerRequestInfo>::tao_duplicate (
    PortableInterceptor::ServerRequestInfo_ptr p
  )
{
  return PortableInterceptor::ServerRequestInfo::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::ServerRequestInfo>::tao_release (
    PortableInterceptor::ServerRequestInfo_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ServerRequestInfo_ptr
TAO::Objref_Traits<PortableInterceptor::ServerRequestInfo>::tao_nil (void)
{
  return PortableInterceptor::ServerRequestInfo::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::ServerRequestInfo>::tao_marshal (
    PortableInterceptor::ServerRequestInfo_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

PortableInterceptor::ServerRequestInfo::ServerRequestInfo (void)
{}

PortableInterceptor::ServerRequestInfo::~ServerRequestInfo (void)
{}

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

PortableInterceptor::ServerRequestInfo_ptr
PortableInterceptor::ServerRequestInfo::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ServerRequestInfo::_nil ();
    }

  ServerRequestInfo_ptr proxy =
    dynamic_cast<ServerRequestInfo_ptr> (_tao_objref);

  return ServerRequestInfo::_duplicate (proxy);
}

PortableInterceptor::ServerRequestInfo_ptr
PortableInterceptor::ServerRequestInfo::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ServerRequestInfo::_nil ();
    }

  ServerRequestInfo_ptr proxy =
    dynamic_cast<ServerRequestInfo_ptr> (_tao_objref);

  return ServerRequestInfo::_duplicate (proxy);
}

PortableInterceptor::ServerRequestInfo_ptr
PortableInterceptor::ServerRequestInfo::_duplicate (ServerRequestInfo_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

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

// Traits specializations for PortableInterceptor::ClientRequestInterceptor.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ClientRequestInterceptor_ptr
TAO::Objref_Traits<PortableInterceptor::ClientRequestInterceptor>::tao_duplicate (
    PortableInterceptor::ClientRequestInterceptor_ptr p
  )
{
  return PortableInterceptor::ClientRequestInterceptor::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::ClientRequestInterceptor>::tao_release (
    PortableInterceptor::ClientRequestInterceptor_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ClientRequestInterceptor_ptr
TAO::Objref_Traits<PortableInterceptor::ClientRequestInterceptor>::tao_nil (void)
{
  return PortableInterceptor::ClientRequestInterceptor::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::ClientRequestInterceptor>::tao_marshal (
    PortableInterceptor::ClientRequestInterceptor_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

PortableInterceptor::ClientRequestInterceptor::ClientRequestInterceptor (void)
{}

PortableInterceptor::ClientRequestInterceptor::~ClientRequestInterceptor (void)
{}

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

PortableInterceptor::ClientRequestInterceptor_ptr
PortableInterceptor::ClientRequestInterceptor::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ClientRequestInterceptor::_nil ();
    }

  ClientRequestInterceptor_ptr proxy =
    dynamic_cast<ClientRequestInterceptor_ptr> (_tao_objref);

  return ClientRequestInterceptor::_duplicate (proxy);
}

PortableInterceptor::ClientRequestInterceptor_ptr
PortableInterceptor::ClientRequestInterceptor::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ClientRequestInterceptor::_nil ();
    }

  ClientRequestInterceptor_ptr proxy =
    dynamic_cast<ClientRequestInterceptor_ptr> (_tao_objref);

  return ClientRequestInterceptor::_duplicate (proxy);
}

PortableInterceptor::ClientRequestInterceptor_ptr
PortableInterceptor::ClientRequestInterceptor::_duplicate (ClientRequestInterceptor_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

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

// Traits specializations for PortableInterceptor::ServerRequestInterceptor.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ServerRequestInterceptor_ptr
TAO::Objref_Traits<PortableInterceptor::ServerRequestInterceptor>::tao_duplicate (
    PortableInterceptor::ServerRequestInterceptor_ptr p
  )
{
  return PortableInterceptor::ServerRequestInterceptor::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::ServerRequestInterceptor>::tao_release (
    PortableInterceptor::ServerRequestInterceptor_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ServerRequestInterceptor_ptr
TAO::Objref_Traits<PortableInterceptor::ServerRequestInterceptor>::tao_nil (void)
{
  return PortableInterceptor::ServerRequestInterceptor::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::ServerRequestInterceptor>::tao_marshal (
    PortableInterceptor::ServerRequestInterceptor_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

PortableInterceptor::ServerRequestInterceptor::ServerRequestInterceptor (void)
{}

PortableInterceptor::ServerRequestInterceptor::~ServerRequestInterceptor (void)
{}

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

PortableInterceptor::ServerRequestInterceptor_ptr
PortableInterceptor::ServerRequestInterceptor::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ServerRequestInterceptor::_nil ();
    }

  ServerRequestInterceptor_ptr proxy =
    dynamic_cast<ServerRequestInterceptor_ptr> (_tao_objref);

  return ServerRequestInterceptor::_duplicate (proxy);
}

PortableInterceptor::ServerRequestInterceptor_ptr
PortableInterceptor::ServerRequestInterceptor::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ServerRequestInterceptor::_nil ();
    }

  ServerRequestInterceptor_ptr proxy =
    dynamic_cast<ServerRequestInterceptor_ptr> (_tao_objref);

  return ServerRequestInterceptor::_duplicate (proxy);
}

PortableInterceptor::ServerRequestInterceptor_ptr
PortableInterceptor::ServerRequestInterceptor::_duplicate (ServerRequestInterceptor_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

// TAO_IDL - Generated from
// Hand-crafted.
::CORBA::Policy_ptr
PortableInterceptor::PolicyFactory::_create_policy (CORBA::PolicyType
                                                    ACE_ENV_ARG_DECL)
  ACE_THROW_SPEC ((CORBA::SystemException,
                   CORBA::PolicyError))
{
  ACE_THROW_RETURN (CORBA::PolicyError (CORBA::BAD_POLICY_TYPE),
                    CORBA::Policy::_nil ());
}

// be\be_visitor_interface/interface_cs.cpp:60

// Traits specializations for PortableInterceptor::PolicyFactory.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::PolicyFactory_ptr
TAO::Objref_Traits<PortableInterceptor::PolicyFactory>::tao_duplicate (
    PortableInterceptor::PolicyFactory_ptr p
  )
{
  return PortableInterceptor::PolicyFactory::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::PolicyFactory>::tao_release (
    PortableInterceptor::PolicyFactory_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::PolicyFactory_ptr
TAO::Objref_Traits<PortableInterceptor::PolicyFactory>::tao_nil (void)
{
  return PortableInterceptor::PolicyFactory::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::PolicyFactory>::tao_marshal (
    PortableInterceptor::PolicyFactory_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

PortableInterceptor::PolicyFactory::PolicyFactory (void)
{}

PortableInterceptor::PolicyFactory::~PolicyFactory (void)
{}

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

PortableInterceptor::PolicyFactory_ptr
PortableInterceptor::PolicyFactory::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return PolicyFactory::_nil ();
    }

  PolicyFactory_ptr proxy =
    dynamic_cast<PolicyFactory_ptr> (_tao_objref);

  return PolicyFactory::_duplicate (proxy);
}

PortableInterceptor::PolicyFactory_ptr
PortableInterceptor::PolicyFactory::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return PolicyFactory::_nil ();
    }

  PolicyFactory_ptr proxy =
    dynamic_cast<PolicyFactory_ptr> (_tao_objref);

  return PolicyFactory::_duplicate (proxy);
}

PortableInterceptor::PolicyFactory_ptr
PortableInterceptor::PolicyFactory::_duplicate (PolicyFactory_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

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

// Traits specializations for PortableInterceptor::ORBInitInfo.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ORBInitInfo_ptr
TAO::Objref_Traits<PortableInterceptor::ORBInitInfo>::tao_duplicate (
    PortableInterceptor::ORBInitInfo_ptr p
  )
{
  return PortableInterceptor::ORBInitInfo::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::ORBInitInfo>::tao_release (
    PortableInterceptor::ORBInitInfo_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ORBInitInfo_ptr
TAO::Objref_Traits<PortableInterceptor::ORBInitInfo>::tao_nil (void)
{
  return PortableInterceptor::ORBInitInfo::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::ORBInitInfo>::tao_marshal (
    PortableInterceptor::ORBInitInfo_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

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

PortableInterceptor::ORBInitInfo::DuplicateName::DuplicateName (void)
  : CORBA::UserException (
        "IDL:omg.org/PortableInterceptor/ORBInitInfo/DuplicateName:1.0",
        "DuplicateName"
      )
{
}

PortableInterceptor::ORBInitInfo::DuplicateName::~DuplicateName (void)
{
}

PortableInterceptor::ORBInitInfo::DuplicateName::DuplicateName (const ::PortableInterceptor::ORBInitInfo::DuplicateName &_tao_excp)
  : CORBA::UserException (
        _tao_excp._rep_id (),
        _tao_excp._name ()
      )
{
  this->name = CORBA::string_dup (_tao_excp.name.in ());
}

PortableInterceptor::ORBInitInfo::DuplicateName&
PortableInterceptor::ORBInitInfo::DuplicateName::operator= (const ::PortableInterceptor::ORBInitInfo::DuplicateName &_tao_excp)
{
  this->ACE_NESTED_CLASS (CORBA, UserException)::operator= (_tao_excp);
  this->name = CORBA::string_dup (_tao_excp.name.in ());
  return *this;
}

void PortableInterceptor::ORBInitInfo::DuplicateName::_tao_any_destructor (void *_tao_void_pointer)
{
  DuplicateName *_tao_tmp_pointer =
    ACE_static_cast (DuplicateName*, _tao_void_pointer);
  delete _tao_tmp_pointer;
}

PortableInterceptor::ORBInitInfo::DuplicateName *
PortableInterceptor::ORBInitInfo::DuplicateName::_downcast (CORBA::Exception *_tao_excp)
{
  if (!ACE_OS::strcmp ("IDL:omg.org/PortableInterceptor/ORBInitInfo/DuplicateName:1.0", _tao_excp->_rep_id ()))
    {
      return ACE_dynamic_cast (DuplicateName *, _tao_excp);
    }
  else
    {
      return 0;
    }
}

CORBA::Exception *PortableInterceptor::ORBInitInfo::DuplicateName::_alloc (void)
{
  CORBA::Exception *retval = 0;
  ACE_NEW_RETURN (retval, ::PortableInterceptor::ORBInitInfo::DuplicateName, 0);
  return retval;
}

CORBA::Exception *
PortableInterceptor::ORBInitInfo::DuplicateName::_tao_duplicate (void) const
{
  CORBA::Exception *result;
  ACE_NEW_RETURN (
      result,
      ::PortableInterceptor::ORBInitInfo::DuplicateName (*this),
      0
    );
  return result;
}

void PortableInterceptor::ORBInitInfo::DuplicateName::_raise (void) const
{
  TAO_RAISE (*this);
}

void PortableInterceptor::ORBInitInfo::DuplicateName::_tao_encode (
    TAO_OutputCDR &
    ACE_ENV_ARG_DECL
  ) const
{
  ACE_THROW (CORBA::MARSHAL ());
}

void PortableInterceptor::ORBInitInfo::DuplicateName::_tao_decode (
    TAO_InputCDR &
    ACE_ENV_ARG_DECL
  )
{
  ACE_THROW (CORBA::MARSHAL ());
}



// TAO_IDL - Generated from
// be\be_visitor_exception/exception_ctor.cpp:66

PortableInterceptor::ORBInitInfo::DuplicateName::DuplicateName (
    const char * _tao_name
  )
  : CORBA::UserException (
        "IDL:omg.org/PortableInterceptor/ORBInitInfo/DuplicateName:1.0",
        "DuplicateName"
      )
{
  this->name = CORBA::string_dup (_tao_name);
}

// TAO_IDL - Generated from
// be\be_visitor_typecode/typecode_defn.cpp:290
static const CORBA::Long _oc_PortableInterceptor_ORBInitInfo_DuplicateName[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  62,
  ACE_NTOHL (0x49444c3a),
  ACE_NTOHL (0x6f6d672e),
  ACE_NTOHL (0x6f72672f),
  ACE_NTOHL (0x506f7274),
  ACE_NTOHL (0x61626c65),
  ACE_NTOHL (0x496e7465),
  ACE_NTOHL (0x72636570),
  ACE_NTOHL (0x746f722f),
  ACE_NTOHL (0x4f524249),
  ACE_NTOHL (0x6e697449),
  ACE_NTOHL (0x6e666f2f),
  ACE_NTOHL (0x4475706c),
  ACE_NTOHL (0x69636174),
  ACE_NTOHL (0x654e616d),
  ACE_NTOHL (0x653a312e),
  ACE_NTOHL (0x30000000),  // repository ID = IDL:omg.org/PortableInterceptor/ORBInitInfo/DuplicateName:1.0
    14,
  ACE_NTOHL (0x4475706c),
  ACE_NTOHL (0x69636174),
  ACE_NTOHL (0x654e616d),
  ACE_NTOHL (0x65000000),  // name = DuplicateName
  1, // member count
    5,
  ACE_NTOHL (0x6e616d65),
  ACE_NTOHL (0x0),  // name = name
    CORBA::tk_string,
  0U, // string length
};

static CORBA::TypeCode _tc_TAO_tc_PortableInterceptor_ORBInitInfo_DuplicateName (
    CORBA::tk_except,
    sizeof (_oc_PortableInterceptor_ORBInitInfo_DuplicateName),
    (char *) &_oc_PortableInterceptor_ORBInitInfo_DuplicateName,
    0,
    sizeof (PortableInterceptor::ORBInitInfo::DuplicateName)
  );

::CORBA::TypeCode_ptr PortableInterceptor::ORBInitInfo::_tc_DuplicateName =
  &_tc_TAO_tc_PortableInterceptor_ORBInitInfo_DuplicateName;

// TAO extension - the virtual _type method.
CORBA::TypeCode_ptr PortableInterceptor::ORBInitInfo::DuplicateName::_type (void) const
{
  return ::PortableInterceptor::ORBInitInfo::_tc_DuplicateName;
}

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

PortableInterceptor::ORBInitInfo::InvalidName::InvalidName (void)
  : CORBA::UserException (
        "IDL:omg.org/PortableInterceptor/ORBInitInfo/InvalidName:1.0",
        "InvalidName"
      )
{
}

PortableInterceptor::ORBInitInfo::InvalidName::~InvalidName (void)
{
}

PortableInterceptor::ORBInitInfo::InvalidName::InvalidName (const ::PortableInterceptor::ORBInitInfo::InvalidName &_tao_excp)
  : CORBA::UserException (
        _tao_excp._rep_id (),
        _tao_excp._name ()
      )
{
}

PortableInterceptor::ORBInitInfo::InvalidName&
PortableInterceptor::ORBInitInfo::InvalidName::operator= (const ::PortableInterceptor::ORBInitInfo::InvalidName &_tao_excp)
{
  this->ACE_NESTED_CLASS (CORBA, UserException)::operator= (_tao_excp);
  return *this;
}

void PortableInterceptor::ORBInitInfo::InvalidName::_tao_any_destructor (void *_tao_void_pointer)
{
  InvalidName *_tao_tmp_pointer =
    ACE_static_cast (InvalidName*, _tao_void_pointer);
  delete _tao_tmp_pointer;
}

PortableInterceptor::ORBInitInfo::InvalidName *
PortableInterceptor::ORBInitInfo::InvalidName::_downcast (CORBA::Exception *_tao_excp)
{
  if (!ACE_OS::strcmp ("IDL:omg.org/PortableInterceptor/ORBInitInfo/InvalidName:1.0", _tao_excp->_rep_id ()))
    {
      return ACE_dynamic_cast (InvalidName *, _tao_excp);
    }
  else
    {
      return 0;
    }
}

CORBA::Exception *PortableInterceptor::ORBInitInfo::InvalidName::_alloc (void)
{
  CORBA::Exception *retval = 0;
  ACE_NEW_RETURN (retval, ::PortableInterceptor::ORBInitInfo::InvalidName, 0);
  return retval;
}

CORBA::Exception *
PortableInterceptor::ORBInitInfo::InvalidName::_tao_duplicate (void) const
{
  CORBA::Exception *result;
  ACE_NEW_RETURN (
      result,
      ::PortableInterceptor::ORBInitInfo::InvalidName (*this),
      0
    );
  return result;
}

void PortableInterceptor::ORBInitInfo::InvalidName::_raise (void) const
{
  TAO_RAISE (*this);
}

void PortableInterceptor::ORBInitInfo::InvalidName::_tao_encode (
    TAO_OutputCDR &
    ACE_ENV_ARG_DECL
  ) const
{
  ACE_THROW (CORBA::MARSHAL ());
}

void PortableInterceptor::ORBInitInfo::InvalidName::_tao_decode (
    TAO_InputCDR &
    ACE_ENV_ARG_DECL
  )
{
  ACE_THROW (CORBA::MARSHAL ());
}

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

static const CORBA::Long _oc_PortableInterceptor_ORBInitInfo_InvalidName[] =
{
    TAO_ENCAP_BYTE_ORDER, // byte order
  60,
  ACE_NTOHL (0x49444c3a),
  ACE_NTOHL (0x6f6d672e),
  ACE_NTOHL (0x6f72672f),
  ACE_NTOHL (0x506f7274),
  ACE_NTOHL (0x61626c65),
  ACE_NTOHL (0x496e7465),
  ACE_NTOHL (0x72636570),
  ACE_NTOHL (0x746f722f),
  ACE_NTOHL (0x4f524249),
  ACE_NTOHL (0x6e697449),
  ACE_NTOHL (0x6e666f2f),
  ACE_NTOHL (0x496e7661),
  ACE_NTOHL (0x6c69644e),
  ACE_NTOHL (0x616d653a),
  ACE_NTOHL (0x312e3000),  // repository ID = IDL:omg.org/PortableInterceptor/ORBInitInfo/InvalidName:1.0
    12,
  ACE_NTOHL (0x496e7661),
  ACE_NTOHL (0x6c69644e),
  ACE_NTOHL (0x616d6500),  // name = InvalidName
  0, // member count
  };

static CORBA::TypeCode _tc_TAO_tc_PortableInterceptor_ORBInitInfo_InvalidName (
    CORBA::tk_except,
    sizeof (_oc_PortableInterceptor_ORBInitInfo_InvalidName),
    (char *) &_oc_PortableInterceptor_ORBInitInfo_InvalidName,
    0,
    sizeof (PortableInterceptor::ORBInitInfo::InvalidName)
  );

::CORBA::TypeCode_ptr PortableInterceptor::ORBInitInfo::_tc_InvalidName =
  &_tc_TAO_tc_PortableInterceptor_ORBInitInfo_InvalidName;

// TAO extension - the virtual _type method.
CORBA::TypeCode_ptr PortableInterceptor::ORBInitInfo::InvalidName::_type (void) const
{
  return ::PortableInterceptor::ORBInitInfo::_tc_InvalidName;
}

PortableInterceptor::ORBInitInfo::ORBInitInfo (void)
{}

PortableInterceptor::ORBInitInfo::~ORBInitInfo (void)
{}

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

PortableInterceptor::ORBInitInfo_ptr
PortableInterceptor::ORBInitInfo::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ORBInitInfo::_nil ();
    }

  ORBInitInfo_ptr proxy =
    dynamic_cast<ORBInitInfo_ptr> (_tao_objref);

  return ORBInitInfo::_duplicate (proxy);
}

PortableInterceptor::ORBInitInfo_ptr
PortableInterceptor::ORBInitInfo::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ORBInitInfo::_nil ();
    }

  ORBInitInfo_ptr proxy =
    dynamic_cast<ORBInitInfo_ptr> (_tao_objref);

  return ORBInitInfo::_duplicate (proxy);
}

PortableInterceptor::ORBInitInfo_ptr
PortableInterceptor::ORBInitInfo::_duplicate (ORBInitInfo_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

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

// Traits specializations for PortableInterceptor::ORBInitializer.

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ORBInitializer_ptr
TAO::Objref_Traits<PortableInterceptor::ORBInitializer>::tao_duplicate (
    PortableInterceptor::ORBInitializer_ptr p
  )
{
  return PortableInterceptor::ORBInitializer::_duplicate (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
void
TAO::Objref_Traits<PortableInterceptor::ORBInitializer>::tao_release (
    PortableInterceptor::ORBInitializer_ptr p
  )
{
  CORBA::release (p);
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
PortableInterceptor::ORBInitializer_ptr
TAO::Objref_Traits<PortableInterceptor::ORBInitializer>::tao_nil (void)
{
  return PortableInterceptor::ORBInitializer::_nil ();
}

ACE_TEMPLATE_CLASS_MEMBER_SPECIALIZATION
CORBA::Boolean
TAO::Objref_Traits<PortableInterceptor::ORBInitializer>::tao_marshal (
    PortableInterceptor::ORBInitializer_ptr p,
    TAO_OutputCDR & cdr
  )
{
  return p->marshal (cdr);
}

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

PortableInterceptor::ORBInitializer::ORBInitializer (void)
{}

PortableInterceptor::ORBInitializer::~ORBInitializer (void)
{}

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

PortableInterceptor::ORBInitializer_ptr
PortableInterceptor::ORBInitializer::_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ORBInitializer::_nil ();
    }

  ORBInitializer_ptr proxy =
    dynamic_cast<ORBInitializer_ptr> (_tao_objref);

  return ORBInitializer::_duplicate (proxy);
}

PortableInterceptor::ORBInitializer_ptr
PortableInterceptor::ORBInitializer::_unchecked_narrow (
    CORBA::Object_ptr _tao_objref
    ACE_ENV_ARG_DECL_NOT_USED
  )
{
  if (CORBA::is_nil (_tao_objref))
    {
      return ORBInitializer::_nil ();
    }

  ORBInitializer_ptr proxy =
    dynamic_cast<ORBInitializer_ptr> (_tao_objref);

  return ORBInitializer::_duplicate (proxy);
}

PortableInterceptor::ORBInitializer_ptr
PortableInterceptor::ORBInitializer::_duplicate (ORBInitializer_ptr obj)
{
  if (! CORBA::is_nil (obj))
    {
      obj->_add_ref ();
    }

  return obj;
}

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

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

// TAO_IDL - Generated from
// be\be_visitor_exception/cdr_op_cs.cpp:60

CORBA::Boolean operator<< (
    TAO_OutputCDR &strm,
    const PortableInterceptor::ForwardRequest &_tao_aggregate
  )
{
  // First marshal the repository ID.
  if (strm << _tao_aggregate._rep_id ())
    {
      // Now marshal the members (if any).
      if (
        (strm << _tao_aggregate.forward.in ()) &&
        (strm << CORBA::Any::from_boolean (_tao_aggregate.permanent))
       )
        {
          return 1;
        }
      else
        {
          return 0;
        }
    }
  else
    {
      return 0;
    }
}

CORBA::Boolean operator>> (
    TAO_InputCDR &strm,
    PortableInterceptor::ForwardRequest &_tao_aggregate
  )
{
  // Demarshal the members.
  if (
    (strm >> _tao_aggregate.forward.out ()) &&
    (strm >> CORBA::Any::to_boolean (_tao_aggregate.permanent))
  )
    {
      return 1;
    }
  else
    {
      return 0;
    }
}

// TAO_IDL - Generated from
// be\be_visitor_exception/cdr_op_cs.cpp:60

CORBA::Boolean operator<< (
    TAO_OutputCDR &strm,
    const PortableInterceptor::InvalidSlot &_tao_aggregate
  )
{
  // First marshal the repository ID.
  if (strm << _tao_aggregate._rep_id ())
    {
      return 1;
    }
  else
    {
      return 0;
    }
}

CORBA::Boolean operator>> (
    TAO_InputCDR &,
    PortableInterceptor::InvalidSlot&
  )
{
  return 1;
}

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

#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)

  template class
    TAO::Objref_Traits<
        PortableInterceptor::Interceptor
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::Interceptor
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::Interceptor
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::Current
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::Current
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::Current
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::RequestInfo
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::RequestInfo
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::RequestInfo
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::ClientRequestInfo
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::ClientRequestInfo
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::ClientRequestInfo
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::ServerRequestInfo
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::ServerRequestInfo
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::ServerRequestInfo
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::ClientRequestInterceptor
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::ClientRequestInterceptor
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::ClientRequestInterceptor
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::ServerRequestInterceptor
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::ServerRequestInterceptor
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::ServerRequestInterceptor
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::PolicyFactory
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::PolicyFactory
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::PolicyFactory
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::ORBInitInfo
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::ORBInitInfo
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::ORBInitInfo
      >;

  template class
    TAO::Objref_Traits<
        PortableInterceptor::ORBInitializer
      >;

  template class
    TAO_Objref_Var_T<
        PortableInterceptor::ORBInitializer
      >;

  template class
    TAO_Objref_Out_T<
        PortableInterceptor::ORBInitializer
      >;

#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::Interceptor \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::Interceptor
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::Interceptor
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::Current \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::Current
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::Current
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::RequestInfo \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::RequestInfo
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::RequestInfo
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::ClientRequestInfo \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::ClientRequestInfo
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::ClientRequestInfo
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::ServerRequestInfo \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::ServerRequestInfo
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::ServerRequestInfo
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::ClientRequestInterceptor \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::ClientRequestInterceptor
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::ClientRequestInterceptor
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::ServerRequestInterceptor \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::ServerRequestInterceptor
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::ServerRequestInterceptor
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::PolicyFactory \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::PolicyFactory
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::PolicyFactory
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::ORBInitInfo \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::ORBInitInfo
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::ORBInitInfo
      >

# pragma instantiate \
    TAO::Objref_Traits< \
        PortableInterceptor::ORBInitializer \
      >

# pragma instantiate \
    TAO_Objref_Var_T< \
        PortableInterceptor::ORBInitializer
      >

# pragma instantiate \
    TAO_Objref_Out_T< \
        PortableInterceptor::ORBInitializer
      >

#endif /* !ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
