summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-03-18 21:50:38 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-03-18 21:50:38 +0000
commitff08d1582c16fc52ca2952b06ea64c1992426ab7 (patch)
tree319f5f5669253f0e93cfe21a769a7cfd04fb233f
parente4168f4c8bfc4aa99c3114638f1cdd5888a7ce9b (diff)
downloadATCD-ff08d1582c16fc52ca2952b06ea64c1992426ab7.tar.gz
ChangeLogTag: Tue Mar 18 15:45:19 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog11
-rw-r--r--TAO/tao/Any.cpp37
-rw-r--r--TAO/tao/Any.h12
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 <j.parsons@vanderbilt.edu>
+
+ * tao/Any.cpp:
+ * tao/Any.h:
+
+ Added patches from Phil Mesnier <mesnier_p@ociweb.com>
+ 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 <j.parsons@vanderbilt.edu>
* 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_;
};
};