summaryrefslogtreecommitdiff
path: root/TAO/tao/TypeCode/Local_Interface_TypeCode.cpp
blob: 4355877bb4d49dedf46c7204be244e2b2c164973 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// $Id$

#ifndef TAO_LOCAL_INTERFACE_TYPECODE_CPP
#define TAO_LOCAL_INTERFACE_TYPECODE_CPP

#include "tao/Local_Interface_TypeCode.h"

#ifndef __ACE_INLINE__
# include "tao/Local_Interface_TypeCode.inl"
#endif  /* !__ACE_INLINE__ */


template <typename StringType, class RefCountPolicy>
CORBA::TCKind
TAO::TypeCode::Local_Interface<StringType, RefCountPolicy>::kind_i (
  ACE_ENV_SINGLE_ARG_DECL_NOT_USED) const
{
  return CORBA::tk_local_interface;
}

template <typename StringType, class RefCountPolicy>
CORBA::TypeCode_ptr
TAO::TypeCode::Local_Interface<StringType,
                               RefCountPolicy>::get_compact_typecode_i (
  ACE_ENV_SINGLE_ARG_DECL) const
{
  TAO_TypeCodeFactory_Adapter * adapter =
    ACE_Dynamic_Service<TAO_TypeCodeFactory_Adapter>::instance (
        TAO_ORB_Core::typecodefactory_adapter_name ()
      );

  if (adapter == 0)
    {
      ACE_THROW_RETURN (CORBA::INTERNAL (),
                        CORBA::TypeCode::_nil ());
    }

  return adapter->create_local_interface_tc (this->attributes_.id (),
                                             ""  /* empty name */
                                             ACE_ENV_ARG_PARAMETER);
}

#endif  /*  TAO_LOCAL_INTERFACE_TYPECODE_CPP */