summaryrefslogtreecommitdiff
path: root/TAO/tao/DynamicAny/DynCommon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/DynamicAny/DynCommon.cpp')
-rw-r--r--TAO/tao/DynamicAny/DynCommon.cpp1851
1 files changed, 0 insertions, 1851 deletions
diff --git a/TAO/tao/DynamicAny/DynCommon.cpp b/TAO/tao/DynamicAny/DynCommon.cpp
deleted file mode 100644
index 039093b5baa..00000000000
--- a/TAO/tao/DynamicAny/DynCommon.cpp
+++ /dev/null
@@ -1,1851 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "DynCommon.h"
-#include "DynAnyFactory.h"
-#include "DynAny_i.h"
-#include "DynArray_i.h"
-#include "DynEnum_i.h"
-#include "DynSequence_i.h"
-#include "DynStruct_i.h"
-#include "DynUnion_i.h"
-#include "tao/Any_Unknown_IDL_Type.h"
-#include "tao/CDR.h"
-#include "ace/OS_NS_wchar.h"
-#include "ace/OS_NS_string.h"
-
-
-ACE_RCSID (DynamicAny,
- DynCommon,
- "$Id$")
-
-
-TAO_DynCommon::TAO_DynCommon (void)
-{
-}
-
-TAO_DynCommon::~TAO_DynCommon (void)
-{
-}
-
-// *****************************************************************
-
-CORBA::TypeCode_ptr
-TAO_DynCommon::type (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- CORBA::TypeCode::_nil ());
- }
-
- return CORBA::TypeCode::_duplicate (this->type_.in ());
-}
-
-void
-TAO_DynCommon::assign (DynamicAny::DynAny_ptr dyn_any
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- CORBA::TypeCode_var tc = dyn_any->type (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- CORBA::Boolean equivalent =
- this->type_.in ()->equivalent (tc.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (equivalent)
- {
- CORBA::Any_var any = dyn_any->to_any (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- this->from_any (any.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- ACE_THROW (DynamicAny::DynAny::TypeMismatch ());
- }
-}
-
-void
-TAO_DynCommon::insert_boolean (CORBA::Boolean value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_boolean (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_boolean
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= CORBA::Any::from_boolean (value);
- }
-}
-
-void
-TAO_DynCommon::insert_octet (CORBA::Octet value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_octet (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_octet
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= CORBA::Any::from_octet (value);
- }
-}
-
-void
-TAO_DynCommon::insert_char (CORBA::Char value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_char (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_char
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= CORBA::Any::from_char (value);
- }
-}
-
-void
-TAO_DynCommon::insert_short (CORBA::Short value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_short (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_short
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_ushort (CORBA::UShort value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_ushort (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_ushort
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_long (CORBA::Long value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_long (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_long
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_ulong (CORBA::ULong value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_ulong (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_ulong
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_float (CORBA::Float value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_float (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_float
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_double (CORBA::Double value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_double (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_double
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_string (const char * value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_string (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- CORBA::TypeCode_var unaliased_tc =
- TAO_DynAnyFactory::strip_alias (this->type_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- CORBA::TCKind kind =
- unaliased_tc->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- if (kind != CORBA::tk_string)
- {
- ACE_THROW (DynamicAny::DynAny::TypeMismatch ());
- }
-
- CORBA::ULong bound =
- unaliased_tc->length (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- if (bound > 0 && bound < ACE_OS::strlen (value))
- {
- ACE_THROW (DynamicAny::DynAny::InvalidValue ());
- }
-
- this->any_ <<= CORBA::Any::from_string (const_cast<char *> (value),
- bound);
- }
-}
-
-void
-TAO_DynCommon::insert_reference (CORBA::Object_ptr value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_reference (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- CORBA::Boolean good_type = 1;
- CORBA::TCKind kind =
- TAO_DynAnyFactory::unalias (this->type_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (kind != CORBA::tk_objref)
- {
- good_type = 0;
- }
- else if (!CORBA::is_nil (value))
- {
- const char *value_id = value->_interface_repository_id ();
-
- if (ACE_OS::strcmp (value_id, "IDL:omg.org/CORBA/Object:1.0") != 0)
- {
- const char *my_id =
- this->type_->id (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- if (ACE_OS::strcmp (value_id, my_id) != 0)
- {
- good_type = value->_is_a (my_id
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- }
- }
-
- if (good_type)
- {
- TAO_OutputCDR cdr;
-
- if (CORBA::is_nil (value))
- {
- // Empty type hint, no profile.
- cdr.write_ulong (1);
- cdr.write_char ('\0');
- cdr.write_ulong (0);
- }
- else
- {
- value->marshal (cdr);
- }
-
- TAO_InputCDR in (cdr);
- TAO::Unknown_IDL_Type *unk = 0;
- ACE_NEW (unk,
- TAO::Unknown_IDL_Type (this->type_.in (),
- in));
- this->any_.replace (unk);
- }
- else
- {
- ACE_THROW (DynamicAny::DynAny::TypeMismatch ());
- }
- }
-}
-
-void
-TAO_DynCommon::insert_typecode (CORBA::TypeCode_ptr value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_typecode (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_TypeCode
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_longlong (CORBA::LongLong value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_longlong (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_longlong
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_ulonglong (CORBA::ULongLong value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_ulonglong (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_ulonglong
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_longdouble (CORBA::LongDouble value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_longdouble (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_longdouble
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-void
-TAO_DynCommon::insert_wchar (CORBA::WChar value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_wchar (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_wchar
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= CORBA::Any::from_wchar (value);
- }
-}
-
-void
-TAO_DynCommon::insert_wstring (const CORBA::WChar * value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_wstring (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- CORBA::TypeCode_var unaliased_tc =
- this->check_type_and_unalias (CORBA::_tc_wstring
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- CORBA::ULong bound = unaliased_tc->length (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- if (bound > 0 && bound < ACE_OS::wslen (value))
- {
- ACE_THROW (DynamicAny::DynAny::InvalidValue ());
- }
-
- this->any_ <<= CORBA::Any::from_wstring (const_cast<CORBA::WChar *> (value),
- bound);
- }
-}
-
-void
-TAO_DynCommon::insert_any (const CORBA::Any &value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- cc->insert_any (value
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- }
- else
- {
- this->check_type (CORBA::_tc_any
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- this->any_ <<= value;
- }
-}
-
-// @@@ (JP) TODO - optimize - this version was intended by the OMG to
-// have fewer Any/DynAny conversions than insert_any, not more.
-void
-TAO_DynCommon::insert_dyn_any (DynamicAny::DynAny_ptr value
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- CORBA::Any_var any = value->to_any (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- this->insert_any (any.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-void
-TAO_DynCommon::insert_val (CORBA::ValueBase *
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- ACE_THROW (CORBA::NO_IMPLEMENT ());
-}
-
-// ****************************************************************
-
-CORBA::Boolean
-TAO_DynCommon::get_boolean (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_boolean (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::Boolean retval;
-
- if ((this->any_ >>= CORBA::Any::to_boolean (retval)) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::Octet
-TAO_DynCommon::get_octet (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_octet (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::Octet retval;
-
- if ((this->any_ >>= CORBA::Any::to_octet (retval)) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::Char
-TAO_DynCommon::get_char (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_char (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::Char retval;
-
- if ((this->any_ >>= CORBA::Any::to_char (retval)) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::Short
-TAO_DynCommon::get_short (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_short (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::Short retval;
-
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::UShort
-TAO_DynCommon::get_ushort (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_ushort (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::UShort retval;
-
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::Long
-TAO_DynCommon::get_long (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_long (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::Long retval;
-
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::ULong
-TAO_DynCommon::get_ulong (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_ulong (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::ULong retval;
-
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::Float
-TAO_DynCommon::get_float (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_float (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::Float retval;
-
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::Double
-TAO_DynCommon::get_double (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_double (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::Double retval;
-
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-char *
-TAO_DynCommon::get_string (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_string (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::TypeCode_var unaliased_tc =
- TAO_DynAnyFactory::strip_alias (this->type_.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- CORBA::TCKind kind =
- unaliased_tc->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- if (kind != CORBA::tk_string)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- char *retval = 0;
-
- CORBA::ULong bound =
- unaliased_tc->length (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- // We will have caught a type mismatch above, so if this fails,
- // it must be for some other reason.
- if ((this->any_ >>= CORBA::Any::to_string (retval, bound)) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::InvalidValue (),
- 0);
- }
-
- return CORBA::string_dup (retval);
- }
-}
-
-CORBA::Object_ptr
-TAO_DynCommon::get_reference (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- CORBA::Object::_nil ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (CORBA::Object::_nil ());
-
- return cc->get_reference (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::Object_var retval;
-
- if ((this->any_ >>= CORBA::Any::to_object (retval.inout ())) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- CORBA::Object::_nil ());
- }
-
- return retval._retn ();
- }
-}
-
-CORBA::TypeCode_ptr
-TAO_DynCommon::get_typecode (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- CORBA::TypeCode::_nil ());
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_typecode (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::TypeCode_ptr retval;
-
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- CORBA::TypeCode::_nil ());
- }
-
- return CORBA::TypeCode::_duplicate (retval);
- }
-}
-
-CORBA::LongLong
-TAO_DynCommon::get_longlong (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- CORBA::LongLong retval = ACE_CDR_LONGLONG_INITIALIZER;
-
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- retval);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (retval);
-
- return cc->get_longlong (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- retval);
- }
-
- return retval;
- }
-}
-
-CORBA::ULongLong
-TAO_DynCommon::get_ulonglong (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- CORBA::ULongLong retval = 0;
-
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- retval);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (retval);
-
- return cc->get_ulonglong (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- retval);
- }
-
- return retval;
- }
-}
-
-CORBA::LongDouble
-TAO_DynCommon::get_longdouble (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- CORBA::LongDouble retval = ACE_CDR_LONG_DOUBLE_INITIALIZER;
-
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- retval);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (retval);
-
- return cc->get_longdouble (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- if ((this->any_ >>= retval) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- retval);
- }
-
- return retval;
- }
-}
-
-CORBA::WChar
-TAO_DynCommon::get_wchar (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_wchar (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- CORBA::WChar retval;
-
- if ((this->any_ >>= CORBA::Any::to_wchar (retval)) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- return retval;
- }
-}
-
-CORBA::WChar *
-TAO_DynCommon::get_wstring (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_wstring (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- // @@@ (JP) Someday try to find a way to avoid checking for
- // type code equivalence twice without risking a throw of
- // BadKind.
- CORBA::TypeCode_var unaliased_tc =
- this->check_type_and_unalias (CORBA::_tc_wstring
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- CORBA::WChar *retval = 0;
-
- CORBA::ULong bound =
- unaliased_tc->length (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- (void) (this->any_ >>= CORBA::Any::to_wstring (retval,
- bound));
-
- return CORBA::wstring_dup (retval);
- }
-}
-
-CORBA::Any_ptr
-TAO_DynCommon::get_any (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_)
- {
- DynamicAny::DynAny_var cc =
- this->check_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return cc->get_any (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
- else
- {
- const CORBA::Any *tmp = 0;
-
- if ((this->any_ >>= tmp) == 0)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- 0);
- }
-
- CORBA::Any *retval = 0;
- ACE_NEW_RETURN (retval,
- CORBA::Any (*tmp),
- 0);
- return retval;
- }
-}
-
-// @@@ (JP) TODO - optimize - this version was intended by the OMG to
-// have fewer Any/DynAny conversions than get_any, not more.
-DynamicAny::DynAny_ptr
-TAO_DynCommon::get_dyn_any (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- CORBA::Any_var any = this->get_any (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (0);
-
- return TAO_DynAnyFactory::make_dyn_any (any.in ()
- ACE_ENV_ARG_PARAMETER);
-}
-
-CORBA::ValueBase *
-TAO_DynCommon::get_val (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (),
- 0);
-}
-
-// ****************************************************************
-
-CORBA::Boolean
-TAO_DynCommon::seek (CORBA::Long slot
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_ == 0)
- {
- ACE_UNUSED_ARG (slot);
- this->current_position_ = -1;
- return 0;
- }
- else if (slot < 0 || slot >= static_cast<CORBA::Long> (this->component_count_))
- {
- this->current_position_ = -1;
- return 0;
- }
- else
- {
- this->current_position_ = slot;
- return 1;
- }
-}
-
-void
-TAO_DynCommon::rewind (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW (CORBA::OBJECT_NOT_EXIST ());
- }
-
- (void) this->seek (0
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-}
-
-CORBA::Boolean
-TAO_DynCommon::next (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- if (this->has_components_ == 0
- || this->current_position_ + 1 >= static_cast<CORBA::Long> (this->component_count_
- ))
- {
- this->current_position_ = -1;
- return 0;
- }
- else
- {
- ++this->current_position_;
- return 1;
- }
-}
-
-DynamicAny::DynAny_ptr
-TAO_DynCommon::copy (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- DynamicAny::DynAny::_nil ());
- }
-
- CORBA::Any_var any = this->to_any (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (DynamicAny::DynAny::_nil ());
-
- DynamicAny::DynAny_ptr retval =
- TAO_DynAnyFactory::make_dyn_any (any.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (DynamicAny::DynAny::_nil ());
-
- return retval;
-}
-
-CORBA::ULong
-TAO_DynCommon::component_count (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- if (this->destroyed_)
- {
- ACE_THROW_RETURN (CORBA::OBJECT_NOT_EXIST (),
- 0);
- }
-
- return this->component_count_;
-}
-
-void
-TAO_DynCommon::set_flag (DynamicAny::DynAny_ptr component,
- CORBA::Boolean destroying
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException
- ))
-{
- CORBA::TypeCode_var tc = component->type (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
-
- CORBA::TCKind tk = TAO_DynAnyFactory::unalias (tc.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- switch (tk)
- {
- case CORBA::tk_array:
- {
- TAO_DynArray_i *tmp =
- TAO_DynArray_i::_narrow (component
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (destroying)
- {
- tmp->container_is_destroying_ = 1;
- }
- else
- {
- tmp->ref_to_component_ = 1;
- }
-
- break;
- }
- case CORBA::tk_enum:
- {
- TAO_DynEnum_i *tmp = TAO_DynEnum_i::_narrow (component
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (destroying)
- {
- tmp->container_is_destroying_ = 1;
- }
- else
- {
- tmp->ref_to_component_ = 1;
- }
-
- break;
- }
- case CORBA::tk_sequence:
- {
- TAO_DynSequence_i *tmp =
- TAO_DynSequence_i::_narrow (component
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (destroying)
- {
- tmp->container_is_destroying_ = 1;
- }
- else
- {
- tmp->ref_to_component_ = 1;
- }
-
- break;
- }
- case CORBA::tk_struct:
- {
- TAO_DynStruct_i *tmp =
- TAO_DynStruct_i::_narrow (component
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (destroying)
- {
- tmp->container_is_destroying_ = 1;
- }
- else
- {
- tmp->ref_to_component_ = 1;
- }
-
- break;
- }
- case CORBA::tk_union:
- {
- TAO_DynUnion_i *tmp =
- TAO_DynUnion_i::_narrow (component
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (destroying)
- {
- tmp->container_is_destroying_ = 1;
- }
- else
- {
- tmp->ref_to_component_ = 1;
- }
-
- break;
- }
- case CORBA::tk_fixed:
- case CORBA::tk_value:
- case CORBA::tk_value_box:
- ACE_THROW (CORBA::NO_IMPLEMENT ());
- default:
- {
- TAO_DynAny_i *tmp = TAO_DynAny_i::_narrow (component
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (destroying)
- {
- tmp->container_is_destroying_ = 1;
- }
- else
- {
- tmp->ref_to_component_ = 1;
- }
-
- break;
- }
- }
-}
-
-DynamicAny::DynAny_ptr
-TAO_DynCommon::check_component (ACE_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch,
- DynamicAny::DynAny::InvalidValue
- ))
-{
- if (this->current_position_ == -1)
- {
- ACE_THROW_RETURN (DynamicAny::DynAny::InvalidValue (),
- DynamicAny::DynAny::_nil ());
- }
-
- DynamicAny::DynAny_var cc =
- this->current_component (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (DynamicAny::DynAny::_nil ());
-
- CORBA::TypeCode_var tc = cc->type (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK_RETURN (DynamicAny::DynAny::_nil ());
-
- CORBA::TCKind kind = TAO_DynAnyFactory::unalias (tc.in ()
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (DynamicAny::DynAny::_nil ());
-
- // We are here because we are a component that is the target of
- // an insert_*() call on our container. It is
- // illegal to insert anything into a component that itself has
- // components.
- switch (kind)
- {
- case CORBA::tk_array:
- case CORBA::tk_except:
- case CORBA::tk_sequence:
- case CORBA::tk_struct:
- case CORBA::tk_union:
- ACE_THROW_RETURN (DynamicAny::DynAny::TypeMismatch (),
- DynamicAny::DynAny::_nil ());
- default:
- return cc._retn ();
- }
-}
-
-void
-TAO_DynCommon::check_type (CORBA::TypeCode_ptr tc
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch
- ))
-{
- CORBA::Boolean equivalent =
- this->type_->equivalent (tc
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- if (!equivalent)
- {
- ACE_THROW (DynamicAny::DynAny::TypeMismatch ());
- }
-}
-
-CORBA::TypeCode_ptr
-TAO_DynCommon::check_type_and_unalias (CORBA::TypeCode_ptr tc
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((
- CORBA::SystemException,
- DynamicAny::DynAny::TypeMismatch
- ))
-{
- this->check_type (tc
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK_RETURN (CORBA::TypeCode::_nil ());
-
- return TAO_DynAnyFactory::strip_alias (tc
- ACE_ENV_ARG_PARAMETER);
-}