Public Member Functions | Static Public Member Functions | Private Member Functions

TAO_DynAnyFactory Class Reference

#include <DynAnyFactory.h>

Inheritance diagram for TAO_DynAnyFactory:
Inheritance graph
[legend]
Collaboration diagram for TAO_DynAnyFactory:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TAO_DynAnyFactory (void)
 Constructor.
virtual DynamicAny::DynAny_ptr create_dyn_any (const CORBA::Any &value)
virtual DynamicAny::DynAny_ptr create_dyn_any_from_type_code (CORBA::TypeCode_ptr type)
virtual DynamicAny::DynAny_ptr create_dyn_any_without_truncation (const CORBA::Any &value)
virtual DynamicAny::DynAnySeq * create_multiple_dyn_anys (const DynamicAny::AnySeq &values,::CORBA::Boolean allow_truncate)
virtual DynamicAny::AnySeq * create_multiple_anys (const DynamicAny::DynAnySeq &values)

Static Public Member Functions

static CORBA::TCKind unalias (CORBA::TypeCode_ptr tc)
 TAO-specific methods.
static CORBA::TypeCode_ptr strip_alias (CORBA::TypeCode_ptr tc)

Private Member Functions

 TAO_DynAnyFactory (const TAO_DynAnyFactory &src)
TAO_DynAnyFactoryoperator= (const TAO_DynAnyFactory &src)

Detailed Description

Implements the DynamicAnyFactory interface and provides several utility functions shared by all the Dynamic Any components.

Definition at line 41 of file DynAnyFactory.h.


Constructor & Destructor Documentation

TAO_DynAnyFactory::TAO_DynAnyFactory ( void   ) 

Constructor.

Definition at line 33 of file DynAnyFactory.cpp.

{
}

TAO_DynAnyFactory::TAO_DynAnyFactory ( const TAO_DynAnyFactory src  )  [private]

Member Function Documentation

DynamicAny::DynAny_ptr TAO_DynAnyFactory::create_dyn_any ( const CORBA::Any value  )  [virtual]

Definition at line 38 of file DynAnyFactory.cpp.

{
  return
    TAO::MakeDynAnyUtils::make_dyn_any_t<const CORBA::Any&> (
      value._tao_get_typecode (),
      value);
}

DynamicAny::DynAny_ptr TAO_DynAnyFactory::create_dyn_any_from_type_code ( CORBA::TypeCode_ptr  type  )  [virtual]

Definition at line 47 of file DynAnyFactory.cpp.

{
  // Second arg is typed in the template parameter, repeating it
  // this way allows cleaner template code.
  return
    TAO::MakeDynAnyUtils::make_dyn_any_t<CORBA::TypeCode_ptr> (
      type,
      type);
}

DynamicAny::DynAny_ptr TAO_DynAnyFactory::create_dyn_any_without_truncation ( const CORBA::Any value  )  [virtual]

Definition at line 58 of file DynAnyFactory.cpp.

{
  throw ::CORBA::NO_IMPLEMENT ();
}

DynamicAny::AnySeq * TAO_DynAnyFactory::create_multiple_anys ( const DynamicAny::DynAnySeq &  values  )  [virtual]

Definition at line 73 of file DynAnyFactory.cpp.

{
  throw ::CORBA::NO_IMPLEMENT ();
}

DynamicAny::DynAnySeq * TAO_DynAnyFactory::create_multiple_dyn_anys ( const DynamicAny::AnySeq &  values,
::CORBA::Boolean  allow_truncate 
) [virtual]

Definition at line 65 of file DynAnyFactory.cpp.

{
  throw ::CORBA::NO_IMPLEMENT ();
}

TAO_DynAnyFactory& TAO_DynAnyFactory::operator= ( const TAO_DynAnyFactory src  )  [private]
CORBA::TypeCode_ptr TAO_DynAnyFactory::strip_alias ( CORBA::TypeCode_ptr  tc  )  [static]

Same as above, but returns type code instead of TCKind. Caller must release the return value.

Definition at line 98 of file DynAnyFactory.cpp.

{
  CORBA::TypeCode_var retval = CORBA::TypeCode::_duplicate (tc);
  CORBA::TCKind tck = retval->kind ();

  while (tck == CORBA::tk_alias)
    {
      retval = retval->content_type ();

      tck = retval->kind ();
    }

  return retval._retn ();
}

CORBA::TCKind TAO_DynAnyFactory::unalias ( CORBA::TypeCode_ptr  tc  )  [static]

TAO-specific methods.

Obtain the kind of object, after all aliasing has been removed.

Definition at line 82 of file DynAnyFactory.cpp.

{
  CORBA::TCKind tck = tc->kind ();

  while (tck == CORBA::tk_alias)
    {
      CORBA::TypeCode_var temp = tc->content_type ();

      tck = TAO_DynAnyFactory::unalias (temp.in ());
    }

  return tck;
}


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines