From ff08d1582c16fc52ca2952b06ea64c1992426ab7 Mon Sep 17 00:00:00 2001 From: parsons Date: Tue, 18 Mar 2003 21:50:38 +0000 Subject: ChangeLogTag: Tue Mar 18 15:45:19 2003 Jeff Parsons --- TAO/ChangeLog | 11 +++++++++++ TAO/tao/Any.cpp | 37 +++++++------------------------------ TAO/tao/Any.h | 12 ++++++------ 3 files changed, 24 insertions(+), 36 deletions(-) diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 1c070470b2c..9e46178c053 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,14 @@ +Tue Mar 18 15:45:19 2003 Jeff Parsons + + * tao/Any.cpp: + * tao/Any.h: + + Added patches from Phil Mesnier + to treat the codeset translators in TAO::Unknown_IDL_Type + as singletons attached to a CDR stream instead of being + produced by a facory in the ORB core. This removeds the + dependency of Anys on the ORB core and closes [BUGID 446]. + Mon Mar 17 09:51:36 2003 Jeff Parsons * TAO_IDL/ast/ast_module.cpp (fe_add_module): diff --git a/TAO/tao/Any.cpp b/TAO/tao/Any.cpp index 6aad8664a39..35ed13cac28 100644 --- a/TAO/tao/Any.cpp +++ b/TAO/tao/Any.cpp @@ -305,8 +305,8 @@ TAO::Unknown_IDL_Type::Unknown_IDL_Type ( const ACE_Message_Block *mb, int byte_order, CORBA::Boolean release_tc, - TAO_Codeset_Translator_Factory *ctrans, - TAO_Codeset_Translator_Factory *wtrans + ACE_Char_Codeset_Translator *ctrans, + ACE_WChar_Codeset_Translator *wtrans ) : TAO::Any_Impl (0, tc), @@ -409,24 +409,9 @@ TAO::Unknown_IDL_Type::_tao_decode (TAO_InputCDR &cdr begin, size); - // Get character translators, if necessary. - if (cdr.char_translator () != 0) - { - this->char_translator_ = - cdr.orb_core ()->resource_factory ()->get_char_translator ( - cdr.char_translator ()->ncs (), - cdr.char_translator ()->tcs () - ); - } - - if (cdr.wchar_translator () != 0) - { - this->wchar_translator_ = - cdr.orb_core ()->resource_factory ()->get_wchar_translator ( - cdr.wchar_translator ()->ncs (), - cdr.wchar_translator ()->tcs () - ); - } + // Get character translators. + this->char_translator_ = cdr.char_translator(); + this->wchar_translator_ = cdr.wchar_translator(); } void @@ -437,19 +422,11 @@ TAO::Unknown_IDL_Type::assign_translator (CORBA::TCKind kind, { case CORBA::tk_string: case CORBA::tk_char: - if (this->char_translator_ != 0) - { - this->char_translator_->assign (cdr); - } - + cdr->char_translator (this->char_translator_); break; case CORBA::tk_wstring: case CORBA::tk_wchar: - if (this->wchar_translator_ != 0) - { - this->wchar_translator_->assign (cdr); - } - + cdr->wchar_translator(this->wchar_translator_); break; default: break; diff --git a/TAO/tao/Any.h b/TAO/tao/Any.h index b7a7c7c603c..771c53dea3e 100644 --- a/TAO/tao/Any.h +++ b/TAO/tao/Any.h @@ -330,8 +330,8 @@ namespace TAO const ACE_Message_Block *, int byte_order, CORBA::Boolean release_tc = 0, - TAO_Codeset_Translator_Factory *ctrans = 0, - TAO_Codeset_Translator_Factory *wtrans = 0); + ACE_Char_Codeset_Translator *ctrans = 0, + ACE_WChar_Codeset_Translator *wtrans = 0); virtual ~Unknown_IDL_Type (void); virtual CORBA::Boolean marshal_value (TAO_OutputCDR &); @@ -346,15 +346,15 @@ namespace TAO virtual void assign_translator (CORBA::TCKind, TAO_InputCDR *cdr); - TAO_Codeset_Translator_Factory *char_translator (void); - TAO_Codeset_Translator_Factory *wchar_translator (void); + ACE_Char_Codeset_Translator *char_translator (void); + ACE_WChar_Codeset_Translator *wchar_translator (void); private: ACE_Message_Block *cdr_; int byte_order_; CORBA::Boolean release_tc_; - TAO_Codeset_Translator_Factory *char_translator_; - TAO_Codeset_Translator_Factory *wchar_translator_; + ACE_Char_Codeset_Translator *char_translator_; + ACE_WChar_Codeset_Translator *wchar_translator_; }; }; -- cgit v1.2.1