From 420b18c2b635499be1dc4d60d6489403a5d1318a Mon Sep 17 00:00:00 2001 From: parsons Date: Wed, 8 Jan 2003 17:41:39 +0000 Subject: ChangeLogTag: Wed Jan 8 11:40:58 2003 Jeff Parsons --- TAO/ChangeLog | 7 +++ TAO/tao/TypeCodeFactory/TypeCodeFactory_i.cpp | 67 +++++++++++++++++++++++++++ TAO/tao/TypeCodeFactory/TypeCodeFactory_i.h | 2 +- 3 files changed, 75 insertions(+), 1 deletion(-) diff --git a/TAO/ChangeLog b/TAO/ChangeLog index d3861c4d2f8..5a1a1616760 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,10 @@ +Wed Jan 8 11:40:58 2003 Jeff Parsons + + * tao/TypeCodeFactory/TypeCodeFactoryC.cpp: + * tao/TypeCodeFactory/TypeCodeFactoryC.h: + + Fixed typos. + Wed Jan 8 11:03:23 2003 Jeff Parsons * tao/Any.cpp: diff --git a/TAO/tao/TypeCodeFactory/TypeCodeFactory_i.cpp b/TAO/tao/TypeCodeFactory/TypeCodeFactory_i.cpp index c2c527af796..b7b8ea04f63 100644 --- a/TAO/tao/TypeCodeFactory/TypeCodeFactory_i.cpp +++ b/TAO/tao/TypeCodeFactory/TypeCodeFactory_i.cpp @@ -1157,6 +1157,73 @@ TAO_TypeCodeFactory_i::struct_except_tc_common ( return new_typecode; } +CORBA::TypeCode_ptr +TAO_TypeCodeFactory_i::alias_value_box_tc_common ( + const char *id, + const char *name, + CORBA::TypeCode_ptr underlying_type, + CORBA::TCKind kind + ACE_ENV_ARG_DECL + ) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + if (name != 0 && !this->valid_name (name)) + { + ACE_THROW_RETURN (CORBA::BAD_PARAM (15, + CORBA::COMPLETED_NO), + CORBA::TypeCode::_nil ()); + } + + // Repo id may not be null for valueboxtype. + if (id == 0 || !this->valid_id (id)) + { + ACE_THROW_RETURN (CORBA::BAD_PARAM (16, + CORBA::COMPLETED_NO), + CORBA::TypeCode::_nil ()); + } + + CORBA::Boolean valid_content = + this->valid_content_type (underlying_type + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); + + if (!valid_content) + { + ACE_THROW_RETURN (CORBA::BAD_TYPECODE (2, + CORBA::COMPLETED_NO), + CORBA::TypeCode::_nil ()); + } + + TAO_OutputCDR cdr; + + cdr << TAO_ENCAP_BYTE_ORDER; + + cdr << id; + + cdr << name; + + cdr << underlying_type; + + ACE_Message_Block consolidated_block; + + ACE_CDR::consolidate (&consolidated_block, + cdr.begin ()); + + CORBA::TypeCode_ptr new_typecode = + CORBA::TypeCode::_nil (); + + ACE_NEW_THROW_EX (new_typecode, + CORBA_TypeCode (kind, + consolidated_block.length (), + consolidated_block.rd_ptr (), + 0, + 0), + CORBA::NO_MEMORY ()); + ACE_CHECK_RETURN (CORBA::TypeCode::_nil ()); + + return new_typecode; +} + CORBA::TypeCode_ptr TAO_TypeCodeFactory_i::value_event_tc_common ( const char *id, diff --git a/TAO/tao/TypeCodeFactory/TypeCodeFactory_i.h b/TAO/tao/TypeCodeFactory/TypeCodeFactory_i.h index 72dcbdaee62..3f2a5eb7a11 100644 --- a/TAO/tao/TypeCodeFactory/TypeCodeFactory_i.h +++ b/TAO/tao/TypeCodeFactory/TypeCodeFactory_i.h @@ -252,7 +252,7 @@ private: const char *id, const char *name, CORBA::TypeCode_ptr underlying_type, - CORBA::TCKiond kind + CORBA::TCKind kind ACE_ENV_ARG_DECL_WITH_DEFAULTS ) ACE_THROW_SPEC ((CORBA::SystemException)); -- cgit v1.2.1