diff options
69 files changed, 5422 insertions, 461 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 76d67201e8b..e3b68d6d9ee 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,69 @@ +Tue Mar 4 13:44:06 2003 Phil Mesnier <mesnier_p@ociweb.com> + + * TAO/TAO_IDL/be/be_visitor_operation/operation.cpp: + * TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp: + + Wrap the marshal / unmarshal code to check for errors and call the + appropriate static function to raise the related exception. + + * TAO/tao/Any.cpp: + * TAO/tao/Any.h: + * TAO/tao/CDR.cpp: + * TAO/tao/CDR.h: + * TAO/tao/CDR.i: + * TAO/tao/GIOP_Message_Base.cpp: + * TAO/tao/GIOP_Message_Generator_Parser_10.cpp: + * TAO/tao/GIOP_Message_Generator_Parser_12.cpp: + * TAO/tao/GIOP_Message_Lite.cpp: + * TAO/tao/IIOP_Acceptor.cpp: + * TAO/tao/IIOP_Profile.cpp: + * TAO/tao/IIOP_Transport.cpp: + * TAO/tao/Invocation.cpp: + * TAO/tao/Invocation.h: + * TAO/tao/Invocation.i: + * TAO/tao/Makefile.tao: + * TAO/tao/ORB.cpp: + * tao/ORB_Core.cpp: + * tao/ORB_Core.h: + * tao/ORB_Core.i: + * tao/Resource_Factory.cpp: + * tao/Resource_Factory.h: + * tao/TAO_Server_Request.cpp: + * tao/Transport.cpp: + * tao/Transport.h: + * tao/Transport.inl: + * tao/default_resource.cpp: + * tao/default_resource.h: + * tao/Strategies/DIOP_Acceptor.cpp: + * tao/Strategies/DIOP_Profile.cpp: + * tao/Strategies/DIOP_Transport.cpp: + * tao/Strategies/SHMIOP_Acceptor.cpp: + * tao/Strategies/SHMIOP_Profile.cpp: + * tao/Strategies/SHMIOP_Transport.cpp: + * tao/Strategies/UIOP_Acceptor.cpp: + * tao/Strategies/UIOP_Profile.cpp: + * tao/Strategies/UIOP_Transport.cpp: + * utils/catior/catior.cpp: + + These files modified to support the codeset negotiation feature. This + feature replaces the ACE_Char_Codeset_Translators owned by the ORB with + A codset manager framework and dynamically loadable translators. + + The functionality conforms with CORBA 3.0 section 13.10. + + * TAO/tao/Codeset_Manager.cpp: + * TAO/tao/Codeset_Manager.h: + * TAO/tao/Codeset_Translator_Factory.cpp: + * TAO/tao/Codeset_Translator_Factory.h: + * TAO/tao/Codeset_Translator_Factory_T.cpp: + * TAO/tao/Codeset_Translator_Factory_T.h: + + New files added to to support the codeset framework + + * TAO/tests/CodeSets: + + A new test, including a sample translator library. + Tue Mar 4 08:57:20 2003 Jeff Parsons <j.parsons@vanderbilt.edu> * TAO_IDL/util/utl_global.cpp: @@ -5,43 +71,44 @@ Tue Mar 4 08:57:20 2003 Jeff Parsons <j.parsons@vanderbilt.edu> Misunderstood the error message that led to the checkin below, actually had to retain the 'const' qualifier. + Mon Mar 3 22:38:03 2003 Jeff Parsons <j.parsons@vanderbilt.edu> * TAO_IDL/util/utl_global.cpp: - Changed char* arg argument to retain the const qualifier. + Changed char* arg argument to retain the const qualifier. Mon Mar 3 17:23:55 2003 Ossama Othman <ossama@uci.edu> - * orbsvcs/tests/Bug_1395_Regression/Test_i.cpp: + * orbsvcs/tests/Bug_1395_Regression/Test_i.cpp: - Fixed existing and added missing emulated exception support. + Fixed existing and added missing emulated exception support. Mon Mar 3 14:36:53 2003 Ossama Othman <ossama@uci.edu> - * tao/Exception.h: - * tao/Exception.cpp: + * tao/Exception.h: + * tao/Exception.cpp: - Uninlined SystemException subclass constructors. There was no - real advantage to inlining them. Inlining them only served to - increase footprint. + Uninlined SystemException subclass constructors. There was no + real advantage to inlining them. Inlining them only served to + increase footprint. - (operator<<=, operator>>=): + (operator<<=, operator>>=): - Placed the definitions of these Any insertion and extraction - operators in the CORBA namespace. Fixes "unresolved symbol" - link-time errors when using these operators. + Placed the definitions of these Any insertion and extraction + operators in the CORBA namespace. Fixes "unresolved symbol" + link-time errors when using these operators. - (_info, _tao_get_omg_exception_description): + (_info, _tao_get_omg_exception_description): - Improved const-correctness. Variables that are really constants - are now marked as such. + Improved const-correctness. Variables that are really constants + are now marked as such. - (make_standard_typecode): + (make_standard_typecode): - Improved exception-safety. Manage memory using a - CORBA::String_var instead of the raw - CORBA::string_{alloc,release} functions. + Improved exception-safety. Manage memory using a + CORBA::String_var instead of the raw + CORBA::string_{alloc,release} functions. Mon Mar 3 15:42:35 2003 Jeff Parsons <j.parsons@vanderbilt.edu> @@ -68,11 +135,11 @@ Mon Mar 3 15:12:32 2003 Jeff Parsons <j.parsons@vanderbilt.edu> Mon Mar 3 11:43:01 2003 Ossama Othman <ossama@uci.edu> - * tao/DynamicAny/DynStruct_i.cpp (current_member_kind): + * tao/DynamicAny/DynStruct_i.cpp (current_member_kind): - Corrected return value in emulated exception case. - "CORBA::tk_null", not "0". Fixes build problems related to - invalid conversions from "int" to "CORBA::TCKind". + Corrected return value in emulated exception case. + "CORBA::tk_null", not "0". Fixes build problems related to + invalid conversions from "int" to "CORBA::TCKind". Mon Mar 3 13:27:01 2003 Jeff Parsons <j.parsons@vanderbilt.edu> @@ -97,179 +164,179 @@ Mon Mar 3 13:02:16 2003 Jeff Parsons <j.parsons@vanderbilt.edu> Sun Mar 2 15:10:02 3003 Pradeep Gore <pradeep@oomworks.com> - * orbsvcs/orbsvcs/Notify/Admin.h: - Removed extra ";" on line 85 that is foxing the BCB compiler. - Thanks to Johnny Willemsen <jwillemsen@remedy.nl> for spotting this. + * orbsvcs/orbsvcs/Notify/Admin.h: + Removed extra ";" on line 85 that is foxing the BCB compiler. + Thanks to Johnny Willemsen <jwillemsen@remedy.nl> for spotting this. Sun Mar 2 10:04:54 2003 Ossama Othman <ossama@uci.edu> - * tao/DynamicAny/DynStruct_i.cpp (current_member_kind): - (get_members_as_dyn_any): + * tao/DynamicAny/DynStruct_i.cpp (current_member_kind): + (get_members_as_dyn_any): - Fixed emulated exception macro usage. "ACE_CHECK_RETURN", not - "ACE_CHECK". + Fixed emulated exception macro usage. "ACE_CHECK_RETURN", not + "ACE_CHECK". - * tests/DynAny_Test/test_dynstruct.cpp (run_test): - * tests/DynAny_Test/test_dynunion.cpp (run_test): + * tests/DynAny_Test/test_dynstruct.cpp (run_test): + * tests/DynAny_Test/test_dynunion.cpp (run_test): - Fixed emulated exception macro usage. "ACE_TRY_{CHECK_}EX", not - "ACE_TRY{_CHECK}". + Fixed emulated exception macro usage. "ACE_TRY_{CHECK_}EX", not + "ACE_TRY{_CHECK}". - Added missing "ACE_TRY_CHECK" after inner ACE_TRY_EX block's - ACE_ENDTRY. + Added missing "ACE_TRY_CHECK" after inner ACE_TRY_EX block's + ACE_ENDTRY. Sun Mar 2 09:23:18 2003 Ossama Othman <ossama@uci.edu> - * tests/DynAny_Test/test_dynstruct.cpp (run_test): - * tests/DynAny_Test/test_dynunion.cpp (run_test): + * tests/DynAny_Test/test_dynstruct.cpp (run_test): + * tests/DynAny_Test/test_dynunion.cpp (run_test): - "CORBA_" -> "CORBA::". + "CORBA_" -> "CORBA::". Sat Mar 1 13:47:14 CST 2003 Pradeep Gore <pradeep@oomworks.com> - * orbsvcs/orbsvcs/Notify/Builder.cpp: - Commented out unused parameter. + * orbsvcs/orbsvcs/Notify/Builder.cpp: + Commented out unused parameter. - * orbsvcs/orbsvcs/Notify/Container_T.inl: - * orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp: - Added missing ACE_TYPENAME keyword. + * orbsvcs/orbsvcs/Notify/Container_T.inl: + * orbsvcs/orbsvcs/Notify/Seq_Worker_T.cpp: + Added missing ACE_TYPENAME keyword. - * orbsvcs/tests/Notify/performance-tests/Throughput/Throughput.cpp: - * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Service.cpp: - * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Service.h: - Replaced Service name to "TAO_Notify_Service" + * orbsvcs/tests/Notify/performance-tests/Throughput/Throughput.cpp: + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Service.cpp: + * orbsvcs/Logging_Service/Notify_Logging_Service/Notify_Logging_Service.h: + Replaced Service name to "TAO_Notify_Service" Sat Mar 1 10:27:55 2003 Ossama Othman <ossama@uci.edu> - * orbsvcs/IFR_Service/ifr_adding_visitor_exception.h - (ifr_adding_visitor_exception): + * orbsvcs/IFR_Service/ifr_adding_visitor_exception.h + (ifr_adding_visitor_exception): - Fixed typo. "CORBAL" -> "CORBA". + Fixed typo. "CORBAL" -> "CORBA". Sat Mar 1 09:30:47 2003 Ossama Othman <ossama@uci.edu> - * orbsvcs/tests/Security/MT_IIOP_SSL/Server_Worker.h: - * orbsvcs/tests/Security/MT_SSLIOP/Server_Worker.h: + * orbsvcs/tests/Security/MT_IIOP_SSL/Server_Worker.h: + * orbsvcs/tests/Security/MT_SSLIOP/Server_Worker.h: - "CORBA_" -> "CORBA::". + "CORBA_" -> "CORBA::". Sat Mar 1 04:15:39 2003 Ossama Othman <ossama@uci.edu> - * orbsvcs/IFR_Service/be_global.cpp: - * orbsvcs/IFR_Service/be_global.h: - * orbsvcs/IFR_Service/be_produce.cpp: - * orbsvcs/IFR_Service/ifr_adding_visitor.cpp: - * orbsvcs/IFR_Service/ifr_adding_visitor.h: - * orbsvcs/IFR_Service/ifr_adding_visitor_exception.cpp: - * orbsvcs/IFR_Service/ifr_adding_visitor_exception.h: - * orbsvcs/IFR_Service/ifr_adding_visitor_operation.cpp: - * orbsvcs/IFR_Service/ifr_adding_visitor_operation.h: - * orbsvcs/IFR_Service/ifr_adding_visitor_structure.cpp: - * orbsvcs/IFR_Service/ifr_adding_visitor_structure.h: - * orbsvcs/IFR_Service/ifr_adding_visitor_union.cpp: - * orbsvcs/IFR_Service/ifr_adding_visitor_union.h: - * orbsvcs/IFR_Service/ifr_removing_visitor.cpp: - * orbsvcs/IFR_Service/ifr_visitor_macro.h: - * orbsvcs/examples/ORT/Gateway_ObjRef_Factory.h: - - "CORBA_" -> "CORBA::". - - * tests/RTCORBA/Server_Protocol/server.cpp - (check_default_server_protocol): - - Added missing CORBA::Environment argument. Fixes a compile-time - error. + * orbsvcs/IFR_Service/be_global.cpp: + * orbsvcs/IFR_Service/be_global.h: + * orbsvcs/IFR_Service/be_produce.cpp: + * orbsvcs/IFR_Service/ifr_adding_visitor.cpp: + * orbsvcs/IFR_Service/ifr_adding_visitor.h: + * orbsvcs/IFR_Service/ifr_adding_visitor_exception.cpp: + * orbsvcs/IFR_Service/ifr_adding_visitor_exception.h: + * orbsvcs/IFR_Service/ifr_adding_visitor_operation.cpp: + * orbsvcs/IFR_Service/ifr_adding_visitor_operation.h: + * orbsvcs/IFR_Service/ifr_adding_visitor_structure.cpp: + * orbsvcs/IFR_Service/ifr_adding_visitor_structure.h: + * orbsvcs/IFR_Service/ifr_adding_visitor_union.cpp: + * orbsvcs/IFR_Service/ifr_adding_visitor_union.h: + * orbsvcs/IFR_Service/ifr_removing_visitor.cpp: + * orbsvcs/IFR_Service/ifr_visitor_macro.h: + * orbsvcs/examples/ORT/Gateway_ObjRef_Factory.h: + + "CORBA_" -> "CORBA::". + + * tests/RTCORBA/Server_Protocol/server.cpp + (check_default_server_protocol): + + Added missing CORBA::Environment argument. Fixes a compile-time + error. Sat Mar 1 03:41:30 2003 Ossama Othman <ossama@uci.edu> - * orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/AliasDef_i.h: - * orbsvcs/orbsvcs/IFRService/ArrayDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ArrayDef_i.h: - * orbsvcs/orbsvcs/IFRService/AttributeDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/AttributeDef_i.h: - * orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ComponentDef_i.h: - * orbsvcs/orbsvcs/IFRService/ComponentRepository_i.cpp: - * orbsvcs/orbsvcs/IFRService/ComponentRepository_i.h: - * orbsvcs/orbsvcs/IFRService/ConstantDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ConstantDef_i.h: - * orbsvcs/orbsvcs/IFRService/ConsumesDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ConsumesDef_i.h: - * orbsvcs/orbsvcs/IFRService/Contained_i.cpp: - * orbsvcs/orbsvcs/IFRService/Contained_i.h: - * orbsvcs/orbsvcs/IFRService/Container_i.cpp: - * orbsvcs/orbsvcs/IFRService/Container_i.h: - * orbsvcs/orbsvcs/IFRService/EmitsDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/EmitsDef_i.h: - * orbsvcs/orbsvcs/IFRService/EnumDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/EnumDef_i.h: - * orbsvcs/orbsvcs/IFRService/EventDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/EventDef_i.h: - * orbsvcs/orbsvcs/IFRService/ExceptionDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ExceptionDef_i.h: - * orbsvcs/orbsvcs/IFRService/FactoryDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/FactoryDef_i.h: - * orbsvcs/orbsvcs/IFRService/FinderDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/FinderDef_i.h: - * orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/HomeDef_i.h: - * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp: - * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h: - * orbsvcs/orbsvcs/IFRService/IFR_macro.h: - * orbsvcs/orbsvcs/IFRService/IRObject_i.h: - * orbsvcs/orbsvcs/IFRService/InterfaceDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/InterfaceDef_i.h: - * orbsvcs/orbsvcs/IFRService/ModuleDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ModuleDef_i.h: - * orbsvcs/orbsvcs/IFRService/OperationDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/OperationDef_i.h: - * orbsvcs/orbsvcs/IFRService/PrimaryKeyDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/PrimaryKeyDef_i.h: - * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.h: - * orbsvcs/orbsvcs/IFRService/PublishesDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/PublishesDef_i.h: - * orbsvcs/orbsvcs/IFRService/Repository_i.cpp: - * orbsvcs/orbsvcs/IFRService/Repository_i.h: - * orbsvcs/orbsvcs/IFRService/SequenceDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/SequenceDef_i.h: - * orbsvcs/orbsvcs/IFRService/Servant_Factory.cpp: - * orbsvcs/orbsvcs/IFRService/StructDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/StructDef_i.h: - * orbsvcs/orbsvcs/IFRService/TypedefDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/TypedefDef_i.h: - * orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/UnionDef_i.h: - * orbsvcs/orbsvcs/IFRService/UsesDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/UsesDef_i.h: - * orbsvcs/orbsvcs/IFRService/ValueBoxDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ValueBoxDef_i.h: - * orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ValueDef_i.h: - * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.cpp: - * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.h: - - "CORBA_" -> "CORBA::". + * orbsvcs/orbsvcs/IFRService/AbstractInterfaceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/AliasDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/AliasDef_i.h: + * orbsvcs/orbsvcs/IFRService/ArrayDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ArrayDef_i.h: + * orbsvcs/orbsvcs/IFRService/AttributeDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/AttributeDef_i.h: + * orbsvcs/orbsvcs/IFRService/ComponentDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ComponentDef_i.h: + * orbsvcs/orbsvcs/IFRService/ComponentRepository_i.cpp: + * orbsvcs/orbsvcs/IFRService/ComponentRepository_i.h: + * orbsvcs/orbsvcs/IFRService/ConstantDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ConstantDef_i.h: + * orbsvcs/orbsvcs/IFRService/ConsumesDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ConsumesDef_i.h: + * orbsvcs/orbsvcs/IFRService/Contained_i.cpp: + * orbsvcs/orbsvcs/IFRService/Contained_i.h: + * orbsvcs/orbsvcs/IFRService/Container_i.cpp: + * orbsvcs/orbsvcs/IFRService/Container_i.h: + * orbsvcs/orbsvcs/IFRService/EmitsDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/EmitsDef_i.h: + * orbsvcs/orbsvcs/IFRService/EnumDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/EnumDef_i.h: + * orbsvcs/orbsvcs/IFRService/EventDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/EventDef_i.h: + * orbsvcs/orbsvcs/IFRService/ExceptionDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ExceptionDef_i.h: + * orbsvcs/orbsvcs/IFRService/FactoryDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/FactoryDef_i.h: + * orbsvcs/orbsvcs/IFRService/FinderDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/FinderDef_i.h: + * orbsvcs/orbsvcs/IFRService/HomeDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/HomeDef_i.h: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.cpp: + * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils.h: + * orbsvcs/orbsvcs/IFRService/IFR_macro.h: + * orbsvcs/orbsvcs/IFRService/IRObject_i.h: + * orbsvcs/orbsvcs/IFRService/InterfaceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/InterfaceDef_i.h: + * orbsvcs/orbsvcs/IFRService/ModuleDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ModuleDef_i.h: + * orbsvcs/orbsvcs/IFRService/OperationDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/OperationDef_i.h: + * orbsvcs/orbsvcs/IFRService/PrimaryKeyDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/PrimaryKeyDef_i.h: + * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ProvidesDef_i.h: + * orbsvcs/orbsvcs/IFRService/PublishesDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/PublishesDef_i.h: + * orbsvcs/orbsvcs/IFRService/Repository_i.cpp: + * orbsvcs/orbsvcs/IFRService/Repository_i.h: + * orbsvcs/orbsvcs/IFRService/SequenceDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/SequenceDef_i.h: + * orbsvcs/orbsvcs/IFRService/Servant_Factory.cpp: + * orbsvcs/orbsvcs/IFRService/StructDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/StructDef_i.h: + * orbsvcs/orbsvcs/IFRService/TypedefDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/TypedefDef_i.h: + * orbsvcs/orbsvcs/IFRService/UnionDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/UnionDef_i.h: + * orbsvcs/orbsvcs/IFRService/UsesDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/UsesDef_i.h: + * orbsvcs/orbsvcs/IFRService/ValueBoxDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ValueBoxDef_i.h: + * orbsvcs/orbsvcs/IFRService/ValueDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ValueDef_i.h: + * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.cpp: + * orbsvcs/orbsvcs/IFRService/ValueMemberDef_i.h: + + "CORBA_" -> "CORBA::". Fri Feb 28 18:17:28 CST 2003 <pradeep@cs.wustl.edu> - * orbsvcs/orbsvcs/Notify/Makefile.CosNotification: - * orbsvcs/orbsvcs/Notify/Makefile: - Updated. + * orbsvcs/orbsvcs/Notify/Makefile.CosNotification: + * orbsvcs/orbsvcs/Notify/Makefile: + Updated. Fri Feb 28 14:20:57 2003 Ossama Othman <ossama@uci.edu> - * tao/Environment.h: + * tao/Environment.h: - Removed another TAO_ORB_Core friend declaration that may be - responsible for namespace related build problems on Solaris. + Removed another TAO_ORB_Core friend declaration that may be + responsible for namespace related build problems on Solaris. Thu Feb 27, 2003 15:14:58 Pradeep Gore <pradeep@oomworks.com> - * orbsvcs/orbsvcs/CosNotification_Static.dsp: - Updated. + * orbsvcs/orbsvcs/CosNotification_Static.dsp: + Updated. Thu Feb 27 11:27:24 2003 Chad Elliott <elliott_c@ociweb.com> diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp index 5767d648d01..412415dc4d6 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp @@ -845,16 +845,13 @@ be_visitor_operation::gen_marshal_and_invoke ( << "))" << be_uidt_nl << "{" << be_idt_nl; - // If marshaling fails, raise exception. - if (this->gen_raise_interceptor_exception (bt, "CORBA::MARSHAL", "") - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "gen_marshal_and invoke - " - "codegen for return var failed\n"), - -1); - } + // If marshaling fails, raise exception (codesetting has various minors) + *os << be_nl << be_nl + << "TAO_InputCDR::throw_stub_exception (errno " + << "ACE_ENV_ARG_PARAMETER); " + << be_nl << be_nl + << "TAO_INTERCEPTOR_CHECK_RETURN (_tao_retval);" + << be_nl << be_nl; *os << be_uidt_nl; *os << "}" << be_uidt_nl << be_nl; @@ -995,8 +992,14 @@ be_visitor_operation::gen_marshal_and_invoke ( // the response message. *os << be_nl << be_nl << "TAO_InputCDR &_tao_in = _tao_call.inp_stream ();" - << be_nl << be_nl - << "if (!(" << be_idt << be_idt; + << be_nl ; + + // Added so codeset translators may be used to decode reply + *os << "_tao_call.transport()->assign_translators (&_tao_in,0);" + << be_nl << be_nl; + + // reply + *os << "if (!(" << be_idt << be_idt; if (!this->void_return_type (bt)) { @@ -1044,12 +1047,13 @@ be_visitor_operation::gen_marshal_and_invoke ( << "))" << be_uidt_nl << "{" << be_idt_nl; - // If marshaling fails, raise exception. - int status = this->gen_raise_interceptor_exception ( - bt, - "CORBA::MARSHAL", - "TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES" - ); + // If marshaling fails, raise exception (codesetting has various minors) + *os << be_nl << be_nl + << "TAO_InputCDR::throw_stub_exception (errno " + << "ACE_ENV_ARG_PARAMETER); " + << be_nl << be_nl + << "TAO_INTERCEPTOR_CHECK_RETURN (_tao_retval);" + << be_nl << be_nl; if (status == -1) { diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp index a4df3e3a546..b8c9e084a6c 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp @@ -612,23 +612,15 @@ be_visitor_operation_ss::gen_demarshal_params (be_operation *node, -1); } - *os << be_uidt_nl << "))" << be_nl; + *os << be_nl << "))" << be_nl; - // If marshaling fails, raise exception. - int status = this->gen_raise_exception (0, - "CORBA::MARSHAL", - ""); + // If marshaling fails, raise exception (codesetting has minor codes) + *os << "{" << be_idt_nl << be_nl + << "TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER);" << be_nl + << "ACE_CHECK;" << be_uidt_nl + << "}" << be_nl; - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "gen_marshal_and invoke - " - "codegen for return var failed\n"), - -1); - } - - *os << be_uidt; + *os << be_uidt << be_uidt; }; return 0; @@ -688,7 +680,7 @@ be_visitor_operation_ss::gen_marshal_params (be_operation *node, -1); } - *os << be_nl << be_nl + *os << be_nl << be_nl << "TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();" << be_nl << be_nl; *os << "if (!(" << be_idt << be_idt; @@ -737,23 +729,15 @@ be_visitor_operation_ss::gen_marshal_params (be_operation *node, } } - *os << be_uidt_nl << "))" << be_nl; + *os << be_nl << "))" << be_nl; - // If marshaling fails, raise exception. - int status = this->gen_raise_exception (0, - "CORBA::MARSHAL", - ""); - - if (status == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "gen_marshal_params - " - "codegen for raising exception failed\n"), - -1); - } + // If marshaling fails, raise exception (codesetting has minor codes) + *os << "{" << be_idt_nl << be_nl + << "TAO_InputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER);" << be_nl + << "ACE_CHECK;" << be_uidt_nl + << "}" << be_nl; - *os << be_uidt; + *os << be_uidt << be_uidt; return 0; } diff --git a/TAO/tao/Any.cpp b/TAO/tao/Any.cpp index d52980b7664..966aab39b9b 100644 --- a/TAO/tao/Any.cpp +++ b/TAO/tao/Any.cpp @@ -9,6 +9,7 @@ #include "tao/ORB_Core.h" #include "tao/AbstractBase.h" #include "tao/debug.h" +#include "tao/Codeset_Translator_Factory.h" #if !defined (__ACE_INLINE__) # include "tao/Any.i" @@ -77,7 +78,9 @@ CORBA::Any::Any (void) any_owns_data_ (0), contains_local_ (0), value_ (0), - destructor_ (0) + destructor_ (0), + char_translator_ (0), + wchar_translator_ (0) { } @@ -88,7 +91,9 @@ CORBA::Any::Any (CORBA::TypeCode_ptr tc) any_owns_data_ (0), contains_local_ (0), value_ (0), - destructor_ (0) + destructor_ (0), + char_translator_ (0), + wchar_translator_ (0) { } @@ -102,7 +107,9 @@ CORBA::Any::Any (CORBA::TypeCode_ptr type, any_owns_data_ (0), contains_local_ (0), value_ (0), - destructor_ (0) + destructor_ (0), + char_translator_ (0), + wchar_translator_ (0) { ACE_NEW (this->cdr_, ACE_Message_Block); @@ -116,7 +123,10 @@ CORBA::Any::Any (const CORBA::Any &src) any_owns_data_ (0), contains_local_ (src.contains_local_), value_ (0), - destructor_ (0) + destructor_ (0), + char_translator_ (0), + wchar_translator_ (0) + { if (!CORBA::is_nil (src.type_.in ())) { @@ -139,6 +149,9 @@ CORBA::Any::Any (const CORBA::Any &src) src.cdr_); } + this->char_translator_ = src.char_translator_; + this->wchar_translator_ = src.wchar_translator_; + // No need to copy src's value_. We can always get that from cdr. } @@ -208,7 +221,9 @@ CORBA::Any::~Any (void) void CORBA::Any::_tao_replace (CORBA::TypeCode_ptr tc, int byte_order, - const ACE_Message_Block *mb) + const ACE_Message_Block *mb, + TAO_Codeset_Translator_Factory *ctrans, + TAO_Codeset_Translator_Factory *wtrans) { // Decrement the refcount on the Message_Block we hold, it does not // matter if we own the data or not, because we always own the @@ -229,6 +244,10 @@ CORBA::Any::_tao_replace (CORBA::TypeCode_ptr tc, mb); // We can save the decode operation if there's no need to extract // the object. + + // assign the char and wchar translator factories + this->char_translator_ = ctrans; + this->wchar_translator_ = wtrans; } void @@ -357,10 +376,25 @@ CORBA::Any::_tao_decode (TAO_InputCDR &cdr begin, size); + // get character translator, if necessary. + TAO_Codeset_Translator_Factory *ctrans = 0; + if (cdr.char_translator() != 0) + ctrans = cdr.orb_core()->resource_factory()-> + get_char_translator(cdr.char_translator()->ncs(), + cdr.char_translator()->tcs()); + + TAO_Codeset_Translator_Factory *wtrans = 0; + if (cdr.wchar_translator() != 0) + wtrans = cdr.orb_core()->resource_factory()-> + get_wchar_translator(cdr.wchar_translator()->ncs(), + cdr.wchar_translator()->tcs()); + // Stick it into the Any. It gets duplicated there. this->_tao_replace (this->type_.in (), cdr.byte_order (), - &mb); + &mb, + ctrans, + wtrans); } // Insertion operators. @@ -1175,6 +1209,10 @@ CORBA::Any::operator>>= (const char *&s) const TAO_InputCDR stream (this->cdr_, this->byte_order_); + + if (this->char_translator_) + this->char_translator_->assign(&stream); + CORBA::String_var tmp; if (!stream.read_string (tmp.out ())) @@ -1241,6 +1279,10 @@ CORBA::Any::operator>>= (const CORBA::WChar *&s) const TAO_InputCDR stream (this->cdr_, this->byte_order_); + + if (this->wchar_translator_) + this->wchar_translator_->assign(&stream); + CORBA::WString_var tmp; if (!stream.read_wstring (tmp.out ())) @@ -1418,6 +1460,8 @@ CORBA::Any::operator>>= (to_char c) const TAO_InputCDR stream ((ACE_Message_Block *) this->cdr_, this->byte_order_); + if (this->char_translator_) + this->char_translator_->assign (&stream); return stream.read_char (c.ref_); } @@ -1452,6 +1496,8 @@ CORBA::Any::operator>>= (to_wchar wc) const TAO_InputCDR stream ((ACE_Message_Block *) this->cdr_, this->byte_order_); + if (this->wchar_translator_) + this->wchar_translator_->assign (&stream); return stream.read_wchar (wc.ref_); } @@ -1511,6 +1557,9 @@ CORBA::Any::operator>>= (to_string s) const TAO_InputCDR stream ((ACE_Message_Block *) this->cdr_, this->byte_order_); + if (this->char_translator_) + this->char_translator_->assign (&stream); + CORBA::String_var tmp; if (!stream.read_string (tmp.out ())) @@ -1584,6 +1633,10 @@ CORBA::Any::operator>>= (to_wstring ws) const TAO_InputCDR stream ((ACE_Message_Block *) this->cdr_, this->byte_order_); + + if (this->char_translator_) + this->char_translator_->assign (&stream); + CORBA::WString_var tmp; if (!stream.read_wstring (tmp.out ())) @@ -1905,10 +1958,25 @@ operator>> (TAO_InputCDR &cdr, CORBA::Any &x) mb.wr_ptr (offset + size); ACE_OS::memcpy (mb.rd_ptr (), begin, size); + // get character translator, if necessary. + TAO_Codeset_Translator_Factory *ctrans = 0; + if (cdr.char_translator() != 0) + ctrans = cdr.orb_core()->resource_factory()-> + get_char_translator(cdr.char_translator()->ncs(), + cdr.char_translator()->tcs()); + + TAO_Codeset_Translator_Factory *wtrans = 0; + if (cdr.wchar_translator() != 0) + wtrans = cdr.orb_core()->resource_factory()-> + get_wchar_translator(cdr.wchar_translator()->ncs(), + cdr.wchar_translator()->tcs()); + // Stick it into the Any. It gets duplicated there. x._tao_replace (tc.in (), cdr.byte_order (), - &mb); + &mb, + ctrans, + wtrans); } ACE_CATCH (CORBA::Exception, ex) { diff --git a/TAO/tao/Any.h b/TAO/tao/Any.h index 74c43bf7d24..ac3dcef0733 100644 --- a/TAO/tao/Any.h +++ b/TAO/tao/Any.h @@ -26,6 +26,7 @@ #include "tao/Object.h" #include "tao/Typecode.h" +class TAO_Codeset_Translator_Factory; namespace CORBA { @@ -353,7 +354,9 @@ namespace CORBA /// Replace via message block instead of <value_>. void _tao_replace (CORBA::TypeCode_ptr, int byte_order, - const ACE_Message_Block *mb); + const ACE_Message_Block *mb, + TAO_Codeset_Translator_Factory *ctrans = 0, + TAO_Codeset_Translator_Factory *wtrans = 0); /// Replace all the contents of the any, used in the <<= operators. void _tao_replace (CORBA::TypeCode_ptr type, @@ -420,6 +423,11 @@ namespace CORBA /// If not zero this is the function used to destroy objects. CORBA::Any::_tao_destructor destructor_; + /// Codeset translator factories obtained from the decoding CDR, used to + /// translate strings when actually needed. + TAO_Codeset_Translator_Factory *char_translator_; + TAO_Codeset_Translator_Factory *wchar_translator_; + // 94-9-14 hides unsigned char insert/extract void operator<<= (unsigned char); CORBA::Boolean operator>>= (unsigned char&) const; diff --git a/TAO/tao/CDR.cpp b/TAO/tao/CDR.cpp index d0c0fb66cc0..6e085e1b447 100644 --- a/TAO/tao/CDR.cpp +++ b/TAO/tao/CDR.cpp @@ -81,9 +81,7 @@ TAO_OutputCDR::TAO_OutputCDR (size_t size, ACE_Allocator* message_block_allocator, size_t memcpy_tradeoff, ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version, - ACE_Char_Codeset_Translator *char_translator, - ACE_WChar_Codeset_Translator *wchar_translator) + ACE_CDR::Octet minor_version) : ACE_OutputCDR (size, byte_order, buffer_allocator, @@ -94,8 +92,6 @@ TAO_OutputCDR::TAO_OutputCDR (size_t size, minor_version) { ACE_FUNCTION_TIMEPROBE (TAO_OUTPUT_CDR_CTOR1_ENTER); - this->char_translator_ = char_translator; - this->wchar_translator_ = wchar_translator; } TAO_OutputCDR::TAO_OutputCDR (char *data, @@ -106,9 +102,7 @@ TAO_OutputCDR::TAO_OutputCDR (char *data, ACE_Allocator* message_block_allocator, size_t memcpy_tradeoff, ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version, - ACE_Char_Codeset_Translator *char_translator, - ACE_WChar_Codeset_Translator *wchar_translator) + ACE_CDR::Octet minor_version) : ACE_OutputCDR (data, size, byte_order, @@ -120,17 +114,13 @@ TAO_OutputCDR::TAO_OutputCDR (char *data, minor_version) { ACE_FUNCTION_TIMEPROBE (TAO_OUTPUT_CDR_CTOR2_ENTER); - this->char_translator_ = char_translator; - this->wchar_translator_ = wchar_translator; } TAO_OutputCDR::TAO_OutputCDR (ACE_Message_Block *data, int byte_order, size_t memcpy_tradeoff, ACE_CDR::Octet major_version, - ACE_CDR::Octet minor_version, - ACE_Char_Codeset_Translator *char_translator, - ACE_WChar_Codeset_Translator *wchar_translator) + ACE_CDR::Octet minor_version) : ACE_OutputCDR (data, byte_order, memcpy_tradeoff, @@ -138,10 +128,57 @@ TAO_OutputCDR::TAO_OutputCDR (ACE_Message_Block *data, minor_version) { ACE_FUNCTION_TIMEPROBE (TAO_OUTPUT_CDR_CTOR3_ENTER); - this->char_translator_ = char_translator; - this->wchar_translator_ = wchar_translator; } + +void +TAO_OutputCDR::throw_stub_exception (int error_num ACE_ENV_ARG_DECL) +{ + switch (error_num) + { + case 0 : + break; + case EINVAL : // wchar from a GIOP 1.0 + ACE_THROW (CORBA::MARSHAL (CORBA::OMGVMCID | 5, CORBA::COMPLETED_NO)); + ACE_NOTREACHED(break); + case ERANGE : // untranslatable character + ACE_THROW (CORBA::DATA_CONVERSION (CORBA::OMGVMCID | 1, CORBA::COMPLETED_NO)); + ACE_NOTREACHED(break); + case EACCES : // wchar but no codeset + ACE_THROW(CORBA::INV_OBJREF (CORBA::OMGVMCID | 2, CORBA::COMPLETED_NO)); + ACE_NOTREACHED(break); + default : + ACE_THROW (CORBA::MARSHAL ()); + } +} + +void +TAO_OutputCDR::throw_skel_exception (int error_num ACE_ENV_ARG_DECL) +{ + switch (error_num) + { + case 0 : + break; + case EINVAL : // wchar from a GIOP 1.0 + ACE_THROW (CORBA::MARSHAL(CORBA::OMGVMCID | 5, CORBA::COMPLETED_YES)); + ACE_NOTREACHED(break); + + case EACCES : // wchar but no codeset + ACE_THROW (CORBA::BAD_PARAM(CORBA::OMGVMCID | 23, CORBA::COMPLETED_YES)); + ACE_NOTREACHED(break); + + case ERANGE : // untranslatable character + ACE_THROW (CORBA::DATA_CONVERSION(CORBA::OMGVMCID | 1, CORBA::COMPLETED_YES)); + ACE_NOTREACHED(break); + + default : + ACE_THROW (CORBA::MARSHAL(TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES)); + + } +} + + + // **************************************************************** TAO_InputCDR::TAO_InputCDR (const TAO_OutputCDR& rhs, @@ -163,15 +200,51 @@ TAO_InputCDR::TAO_InputCDR (const TAO_OutputCDR& rhs, orb_core->output_cdr_msgblock_allocator () : 0)), orb_core_ (orb_core) { - this->init_translators (); } + void -TAO_InputCDR::init_translators (void) +TAO_InputCDR::throw_stub_exception (int error_num ACE_ENV_ARG_DECL) { - if (this->orb_core_ != 0) + switch (error_num) { - this->char_translator_ = this->orb_core_->from_iso8859 (); - this->wchar_translator_ = this->orb_core_->from_unicode (); + case 0 : + break; + case EINVAL : // wchar from a GIOP 1.0 + ACE_THROW (CORBA::MARSHAL (CORBA::OMGVMCID | 6, CORBA::COMPLETED_YES)); + ACE_NOTREACHED(break); + case ERANGE : // untranslatable character + ACE_THROW (CORBA::DATA_CONVERSION (CORBA::OMGVMCID | 1, CORBA::COMPLETED_YES)); + ACE_NOTREACHED(break); + case EACCES : // wchar but no codeset + ACE_THROW (CORBA::INV_OBJREF (CORBA::OMGVMCID | 2, CORBA::COMPLETED_YES)); + ACE_NOTREACHED(break); + default : + ACE_THROW (CORBA::MARSHAL (TAO_DEFAULT_MINOR_CODE, CORBA::COMPLETED_YES)); + } +} + +void +TAO_InputCDR::throw_skel_exception (int error_num ACE_ENV_ARG_DECL) +{ + switch (error_num) + { + case 0 : + break; + case EINVAL : // wchar from a GIOP 1.0 + ACE_THROW (CORBA::MARSHAL(CORBA::OMGVMCID | 5, CORBA::COMPLETED_NO)); + ACE_NOTREACHED(break); + + case EACCES : // wchar but no codeset + ACE_THROW (CORBA::BAD_PARAM(CORBA::OMGVMCID | 23, CORBA::COMPLETED_NO)); + ACE_NOTREACHED(break); + + case ERANGE : // untranslatable character + ACE_THROW (CORBA::DATA_CONVERSION(CORBA::OMGVMCID | 1, CORBA::COMPLETED_NO)); + ACE_NOTREACHED(break); + + default : + ACE_THROW (CORBA::MARSHAL()); + } } diff --git a/TAO/tao/CDR.h b/TAO/tao/CDR.h index 65fb354eafe..f25943e7bce 100644 --- a/TAO/tao/CDR.h +++ b/TAO/tao/CDR.h @@ -49,6 +49,7 @@ # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ +#include "ace/CORBA_macros.h" #include "ace/CDR_Stream.h" class TAO_ORB_Core; @@ -93,9 +94,7 @@ public: ACE_CDR::Octet major_version = TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version = - TAO_DEF_GIOP_MINOR, - ACE_Char_Codeset_Translator *char_translator = 0, - ACE_WChar_Codeset_Translator *wchar_translator = 0); + TAO_DEF_GIOP_MINOR); /// Build a CDR stream with an initial buffer, it will *not* remove /// <data>, since it did not allocated it. @@ -109,9 +108,7 @@ public: ACE_CDR::Octet major_version = TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version = - TAO_DEF_GIOP_MINOR, - ACE_Char_Codeset_Translator *char_translator = 0, - ACE_WChar_Codeset_Translator *wchar_translator = 0); + TAO_DEF_GIOP_MINOR); /// Build a CDR stream with an initial Message_Block chain, it will *not* /// remove <data>, since it did not allocate it. @@ -121,9 +118,7 @@ public: ACE_CDR::Octet major_version = TAO_DEF_GIOP_MAJOR, ACE_CDR::Octet minor_version = - TAO_DEF_GIOP_MINOR, - ACE_Char_Codeset_Translator *char_translator = 0, - ACE_WChar_Codeset_Translator *wchar_translator = 0); + TAO_DEF_GIOP_MINOR); /// Destructor. ~TAO_OutputCDR (void); @@ -132,6 +127,8 @@ public: // strings and wstrings? // = TAO specific methods. + static void throw_stub_exception (int error_num ACE_ENV_ARG_DECL); + static void throw_skel_exception (int error_num ACE_ENV_ARG_DECL); private: /// disallow copying... @@ -260,8 +257,10 @@ public: /// Accessor TAO_ORB_Core *orb_core (void) const; -private: - void init_translators (void); + + // = TAO specific methods. + static void throw_stub_exception (int error_num ACE_ENV_ARG_DECL); + static void throw_skel_exception (int error_num ACE_ENV_ARG_DECL); private: /// The ORB_Core, required to extract object references. diff --git a/TAO/tao/CDR.i b/TAO/tao/CDR.i index 5e405156437..b660e714ded 100644 --- a/TAO/tao/CDR.i +++ b/TAO/tao/CDR.i @@ -20,7 +20,6 @@ TAO_InputCDR::TAO_InputCDR (const char *buf, minor_version), orb_core_ (orb_core) { - this->init_translators (); } ACE_INLINE @@ -35,7 +34,6 @@ TAO_InputCDR::TAO_InputCDR (size_t bufsiz, minor_version), orb_core_ (orb_core) { - this->init_translators (); } ACE_INLINE @@ -50,7 +48,6 @@ TAO_InputCDR::TAO_InputCDR (const ACE_Message_Block *data, minor_version), orb_core_ (orb_core) { - this->init_translators (); } ACE_INLINE @@ -67,7 +64,6 @@ TAO_InputCDR::TAO_InputCDR (ACE_Data_Block *data, minor_version), orb_core_ (orb_core) { - this->init_translators (); } @@ -89,7 +85,6 @@ TAO_InputCDR::TAO_InputCDR (ACE_Data_Block *data, minor_version), orb_core_ (orb_core) { - this->init_translators (); } @@ -102,7 +97,6 @@ TAO_InputCDR::TAO_InputCDR (const TAO_InputCDR& rhs, offset), orb_core_ (rhs.orb_core_) { - this->init_translators (); } ACE_INLINE @@ -112,7 +106,6 @@ TAO_InputCDR::TAO_InputCDR (const TAO_InputCDR& rhs, size), orb_core_ (rhs.orb_core_) { - this->init_translators (); } ACE_INLINE @@ -120,7 +113,6 @@ TAO_InputCDR::TAO_InputCDR (const TAO_InputCDR& rhs) : ACE_InputCDR (rhs), orb_core_ (rhs.orb_core_) { - this->init_translators (); } ACE_INLINE @@ -129,7 +121,6 @@ TAO_InputCDR::TAO_InputCDR (ACE_InputCDR::Transfer_Contents rhs, : ACE_InputCDR (rhs), orb_core_ (orb_core) { - this->init_translators (); } ACE_INLINE diff --git a/TAO/tao/Codeset_Manager.cpp b/TAO/tao/Codeset_Manager.cpp new file mode 100644 index 00000000000..32acc10f008 --- /dev/null +++ b/TAO/tao/Codeset_Manager.cpp @@ -0,0 +1,267 @@ +// $Id$ +#include "tao/Codeset_Manager.h" +#include "tao/debug.h" +#include "tao/CDR.h" +#include "tao/TAO_Server_Request.h" +#include "tao/operation_details.h" +#include "tao/ORB_Core.h" +#include "tao/Exception.h" +#include "tao/corbafwd.h" +#include "tao/Codeset_Translator_Factory.h" +#include "tao/TAO_Server_Request.h" +#include "tao/Tagged_Components.h" + +#include "ace/Codeset_Registry.h" + +ACE_RCSID(tao, Codeset_Manager, "$Id$") + +/// NCS for char is defaulted to ISO 8859-1:1987; Latin Alphabet No. 1 +CONV_FRAME::CodeSetId TAO_Codeset_Manager::default_char_codeset = 0x00010001; +/// NCS for wchar is not defaulted by the CORBA specification, but a default +/// may be set here if desired +CONV_FRAME::CodeSetId TAO_Codeset_Manager::default_wchar_codeset = 0; + + +TAO_Codeset_Manager::TAO_Codeset_Manager(CONV_FRAME::CodeSetComponentInfo *csi) + :codeset_info_ (csi) +{ +} + +TAO_Codeset_Manager::~TAO_Codeset_Manager() +{ + delete codeset_info_; +} + +void +TAO_Codeset_Manager::set_codeset (TAO_Tagged_Components& tc) const +{ + tc.set_code_sets (*this->codeset_info_); +} + + +void +TAO_Codeset_Manager::set_tcs(TAO_Profile &theProfile, + TAO_Transport &trans) +{ + /// If tcs is already set on the transport then donot process, + /// use existing transport as CDR have translators set. + if (trans.is_tcs_set()) + { + if(TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "set_tcs skipping, cuz transport already bin set!\n")); + return; + } + + TAO_Tagged_Components& theTaggedComp = theProfile.tagged_components(); + + CONV_FRAME::CodeSetComponentInfo remote; + /// Get the codeset component + if (theTaggedComp.get_code_sets(remote) == 0 ) + { + if(TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "[TAO_Codeset_Manager::set_client_tcs] No CodeSet Component present in the Profile, assuming defaults \n")); + remote.ForCharData.native_code_set = + TAO_Codeset_Manager::default_char_codeset; + remote.ForWcharData.native_code_set = 0; + } + + CONV_FRAME::CodeSetId ncs = + this->codeset_info_->ForCharData.native_code_set; + CONV_FRAME::CodeSetId tcs = computeTCS (remote.ForCharData, + this->codeset_info_->ForCharData); + TAO_Resource_Factory *rf = trans.orb_core()->resource_factory(); + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "setting transport char translator(%08x, %08x)\n", + ncs,tcs)); + trans.char_translator(rf->get_char_translator (ncs,tcs)); + + ncs = this->codeset_info_->ForWcharData.native_code_set; + tcs = computeTCS (remote.ForWcharData, + this->codeset_info_->ForWcharData); + + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG, + "setting transport wchar translator(%08x, %08x)\n", + ncs,tcs)); + trans.wchar_translator(rf->get_wchar_translator (ncs,tcs)); + trans.wchar_allowed (ncs != 0 || tcs != 0); +} + +void +TAO_Codeset_Manager::process_service_context (TAO_ServerRequest &request) +{ + if(TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "IN CSM->process_service_context\n")); + /// Donot process if tcs is already set on the transport + if( request.transport()->is_tcs_set()) + { + if(TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "process_service_context skipping, cuz transport already bin set\n")); + return; + } + + // Get the service Context from an object of TAO_ServerRequest + // and set the TCS values on the Transport + TAO_Service_Context &service_cntx = request.request_service_context (); + IOP::ServiceContext context; + context.context_id = IOP::CodeSets; + CONV_FRAME::CodeSetId tcs_c = TAO_Codeset_Manager::default_char_codeset; + CONV_FRAME::CodeSetId tcs_w = 0; + + const IOP::ServiceContextList& scl = service_cntx.service_info(); + if (TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG,"PSC, scl.len = %d\n",scl.length())); + + // Codeset Context is not available, no need to process service context + if (service_cntx.get_context(context)) + { + // Convert the Service Context to Codeset Context + const char *buffer = + ACE_reinterpret_cast(const char*,context.context_data.get_buffer ()); + + TAO_InputCDR cdr (buffer,context.context_data.length (), + request.incoming().byte_order()); + cdr >> tcs_c; + cdr >> tcs_w; + } + + if(TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "process_service_context using tcsc = %08x, tcsw = %08x\n",tcs_c,tcs_w)); + + CONV_FRAME::CodeSetId ncs = + this->codeset_info_->ForCharData.native_code_set; + + TAO_Resource_Factory *rf = + request.transport()->orb_core()->resource_factory(); + request.transport()->char_translator(rf->get_char_translator (ncs,tcs_c)); + + ncs = this->codeset_info_->ForWcharData.native_code_set; + request.transport()->wchar_translator(rf->get_wchar_translator (ncs,tcs_w)); + request.transport()->wchar_allowed (ncs != 0 || tcs_w != 0); +} + +void +TAO_Codeset_Manager::generate_service_context (TAO_Operation_Details &opd, + TAO_Transport &trans) +{ + // Take a reference to service context + IOP::ServiceContextList &serv_cntxs = opd.request_service_info(); + + CONV_FRAME::CodeSetContext codeset_cntx; + + // Generating codeset context + // Assuming the TCS values from Transport will be defaulted + TAO_Codeset_Translator_Factory *tf = trans.char_translator(); + codeset_cntx.char_data = tf ? tf->tcs() : + this->codeset_info_->ForCharData.native_code_set; + tf = trans.wchar_translator(); + codeset_cntx.wchar_data = tf ? tf->tcs() : + this->codeset_info_->ForWcharData.native_code_set; + if(TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "generate_service_context using tcs_c = %08x, tcs_w = %08x\n",codeset_cntx.char_data, codeset_cntx.wchar_data)); + + TAO_OutputCDR codeset_cdr; + codeset_cdr << codeset_cntx; + + // Convert the codeset_cntx to servicecontext and insert into the List + IOP::ServiceContext cntx; + cntx.context_id = IOP::CodeSets; + + CORBA::ULong length = codeset_cdr.total_length (); + cntx.context_data.length (length); + CORBA::Octet *buf = cntx.context_data.get_buffer (); + + if(TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "GSC, encapsulated buffer length = %d\n", length)); + + for (const ACE_Message_Block *i = codeset_cdr.begin (); + i != 0; + i = i->cont ()) + { + ACE_OS::memcpy (buf, i->rd_ptr (), i->length ()); + buf += i->length (); + } + + /// Append it to IIOP::ServiceContextList + length = serv_cntxs.length (); + serv_cntxs.length (length + 1); + + if(TAO_debug_level > 0) + ACE_DEBUG((LM_DEBUG, "GSC, num contexts was %d\n",length)); + + CORBA::ULong max = cntx.context_data.maximum (); + CORBA::ULong len = cntx.context_data.length (); + buf = cntx.context_data.get_buffer (1); + + serv_cntxs[length].context_id = cntx.context_id; + serv_cntxs[length].context_data.replace (max, len, buf, 1); +} + +/// Checks whether the NCS is a part of CCS +CORBA::Boolean +TAO_Codeset_Manager::isElementOf (CONV_FRAME::CodeSetId id, + CONV_FRAME::CodeSetComponent &cs_comp) +{ + for (CORBA::ULong i=0L; + i < cs_comp.conversion_code_sets.length(); + ++i ) + { + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG,"isElementOf comparing id = %x, ccsid[%d] = %x\n", + id, i, cs_comp.conversion_code_sets[i])); + if (id == cs_comp.conversion_code_sets[i]) + return true; + } + return false; +} + +/// Find the Intersection of Client and Server CCS's +CONV_FRAME::CodeSetId +TAO_Codeset_Manager::intersectionOf (CONV_FRAME::CodeSetComponent &cs_comp1, + CONV_FRAME::CodeSetComponent &cs_comp2) +{ + for( CORBA::ULong index=0L; + index < cs_comp1.conversion_code_sets.length(); + ++index ) + if(this->isElementOf(cs_comp1.conversion_code_sets[index], cs_comp2)) + return cs_comp1.conversion_code_sets[index]; + return 0; +} + +CORBA::Boolean +TAO_Codeset_Manager::isCompatible(CONV_FRAME::CodeSetId cs1, + CONV_FRAME::CodeSetId cs2 ) +{ + // Call the is_compatible method of ACE_Codeset_Registry + return ACE_Codeset_Registry::is_compatible(cs1,cs2); +} + +/// returns the TCS for Char / Wchar +CONV_FRAME::CodeSetId +TAO_Codeset_Manager::computeTCS (CONV_FRAME::CodeSetComponent &remote, + CONV_FRAME::CodeSetComponent &local ) +{ + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG,"compute TCS = rncs = %x, lncs = %x\n", + remote.native_code_set, local.native_code_set)); + if (remote.native_code_set == local.native_code_set) + return local.native_code_set; + + if (this->isElementOf (remote.native_code_set, local)) + return remote.native_code_set; + + if (this->isElementOf (local.native_code_set, remote)) + return local.native_code_set; + + CONV_FRAME::CodeSetId tcs; + if ((tcs = this->intersectionOf (remote, local)) == 0) + if (isCompatible (local.native_code_set, remote.native_code_set)) + return remote.native_code_set; + else + { + ACE_DECLARE_NEW_CORBA_ENV; + ACE_THROW_RETURN(CORBA::CODESET_INCOMPATIBLE(),0); + } + return tcs; +} diff --git a/TAO/tao/Codeset_Manager.h b/TAO/tao/Codeset_Manager.h new file mode 100644 index 00000000000..fae88b77578 --- /dev/null +++ b/TAO/tao/Codeset_Manager.h @@ -0,0 +1,81 @@ +// This may look like C, but it's really -*- C++ -*- + +//============================================================================= +/* + * @file TAO_Codeset_Manager.h + * + * $Id$ + * + * Interface for the TAO CodeSet Manager. + * + * @author Mahesh Vedantam <mahesh#ociweb.com> + */ +//============================================================================= + +#ifndef TAO_CODESET_MANAGER_H +#define TAO_CODESET_MANAGER_H + +#include "tao/CONV_FRAMEC.h" +#include "tao/Profile.h" +#include "tao/Transport.h" + +class TAO_ServerRequest; +class TAO_Tagged_Components; + +class TAO_Export TAO_Codeset_Manager +{ + +public: + /// NCS for char is defaulted to ISO 8859-1:1987; Latin Alphabet No. 1 + static CONV_FRAME::CodeSetId default_char_codeset; + static CONV_FRAME::CodeSetId default_wchar_codeset; + + TAO_Codeset_Manager (CONV_FRAME::CodeSetComponentInfo* ); + + ~TAO_Codeset_Manager(); + + /// Called by an object of TAO_Acceptor to set NCS and CCS values for + /// Char/Wchar in to the Object Reference. + void set_codeset (TAO_Tagged_Components& ) const; + /// + /// Called from an object of "TAO_GIOP_Invocation" to set TCS on the + /// Transport + void set_tcs (TAO_Profile &theProfile, TAO_Transport &); + + /// Called from an Object of TAO_Messaging for every request at server side + /// to process service context and set TCS for Char/WChar + void process_service_context ( TAO_ServerRequest &); + + /// Called by a client object to generate service context + /// at this time Transport has the TCS for Char and WChar + void generate_service_context ( TAO_Operation_Details&, TAO_Transport & ); + +private: + ACE_UNIMPLEMENTED_FUNC ( TAO_Codeset_Manager() ) + + // initialize the Codeset data members for characters and wide characters + // int init (const CONV_FRAME::CodeSetComponentInfo &); + + // Compute the TCS for Char/WChar asper the CORBA Specification + CONV_FRAME::CodeSetId computeTCS (CONV_FRAME::CodeSetComponent &, + CONV_FRAME::CodeSetComponent & ); + + // Find CodesetId in the codeset component + CORBA::Boolean isElementOf ( CONV_FRAME::CodeSetId, + CONV_FRAME::CodeSetComponent & ); + + // find the intersection of CodesetIds between Client and Server CCS + CONV_FRAME::CodeSetId intersectionOf (CONV_FRAME::CodeSetComponent &, + CONV_FRAME::CodeSetComponent &); + + CORBA::Boolean isCompatible(CONV_FRAME::CodeSetId, + CONV_FRAME::CodeSetId); + + + CONV_FRAME::CodeSetComponentInfo* codeset_info_; + +protected: + +}; + +#endif /* TAO_CODESET_MANAGER_H */ diff --git a/TAO/tao/Codeset_Translator_Factory.cpp b/TAO/tao/Codeset_Translator_Factory.cpp new file mode 100644 index 00000000000..d1cda814ad2 --- /dev/null +++ b/TAO/tao/Codeset_Translator_Factory.cpp @@ -0,0 +1,63 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tao +// +// = FILENAME +// Codeset_Translator_Factory.cpp +// +// = DESCRIPTION +// The base for all the translator factories. Translator factories are +// responsible for supplying the proper translator on demand. +// +// = AUTHORS +// Phil Mesnier <mesnier_p@ociweb.com> +// +// ============================================================================ + + +#include "Codeset_Translator_Factory.h" +#include <ace/CDR_Stream.h> + +TAO_Codeset_Translator_Factory::TAO_Codeset_Translator_Factory () +{ + +} + +TAO_Codeset_Translator_Factory::~TAO_Codeset_Translator_Factory () +{ + +} + +int +TAO_Codeset_Translator_Factory::init (int , ACE_TCHAR ** ) +{ + return 0; +} + +void +TAO_Codeset_Translator_Factory::assign_i (TAO_InputCDR *cdr, ACE_Char_Codeset_Translator *trans) const +{ + cdr->char_translator(trans); +} + +void +TAO_Codeset_Translator_Factory::assign_i (TAO_OutputCDR *cdr, ACE_Char_Codeset_Translator *trans) const +{ + cdr->char_translator(trans); +} + +void +TAO_Codeset_Translator_Factory::assign_i (TAO_InputCDR *cdr, ACE_WChar_Codeset_Translator *trans) const +{ + cdr->wchar_translator(trans); +} + +void +TAO_Codeset_Translator_Factory::assign_i (TAO_OutputCDR *cdr, ACE_WChar_Codeset_Translator *trans) const +{ + cdr->wchar_translator(trans); +} diff --git a/TAO/tao/Codeset_Translator_Factory.h b/TAO/tao/Codeset_Translator_Factory.h new file mode 100644 index 00000000000..469ca6f6508 --- /dev/null +++ b/TAO/tao/Codeset_Translator_Factory.h @@ -0,0 +1,53 @@ +// -*- C++ -*- + +// =================================================================== +/** + * @file TAO_Codeset_Translator_Factory.h + * + * $Id$ + * + * @author OCIWeb at St. Louis + */ +// ========================= +#ifndef TAO_CODESET_TRANSLATOR_FACTORY_H +#define TAO_CODESET_TRANSLATOR_FACTORY_H + +#include "ace/pre.h" +#include "ace/Service_Object.h" + +#include "tao/corbafwd.h" +#include "tao/CONV_FRAMEC.h" + +class TAO_InputCDR; +class TAO_OutputCDR; + +class ACE_Char_Codeset_Translator; +class ACE_WChar_Codeset_Translator; + +class TAO_Export TAO_Codeset_Translator_Factory : + public ACE_Service_Object +{ +public: + TAO_Codeset_Translator_Factory (); + virtual ~TAO_Codeset_Translator_Factory (); + virtual int init (int argc, ACE_TCHAR *argv[]); + // ncs & tcs values set at compile time as a result of instantiating the + // template. + virtual CONV_FRAME::CodeSetId ncs () const = 0; + virtual CONV_FRAME::CodeSetId tcs () const = 0; + + virtual void assign(TAO_InputCDR *) const = 0; + virtual void assign (TAO_OutputCDR *) const = 0; + +protected: + void assign_i (TAO_InputCDR *, ACE_Char_Codeset_Translator* ) const; + void assign_i (TAO_InputCDR *, ACE_WChar_Codeset_Translator* ) const; + void assign_i (TAO_OutputCDR *, ACE_Char_Codeset_Translator* ) const; + void assign_i (TAO_OutputCDR *, ACE_WChar_Codeset_Translator* ) const; +}; + +// Get the template includes last +#include "tao/Codeset_Translator_Factory_T.h" + +#include "ace/post.h" +#endif /* TAO_Codeset_Translator_Factory */ diff --git a/TAO/tao/Codeset_Translator_Factory_T.cpp b/TAO/tao/Codeset_Translator_Factory_T.cpp new file mode 100644 index 00000000000..8dcd9262635 --- /dev/null +++ b/TAO/tao/Codeset_Translator_Factory_T.cpp @@ -0,0 +1,100 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tao +// +// = FILENAME +// Codeset_Translator_Factory_T.cpp +// +// = DESCRIPTION +// The template for creating a particular instance of a codeset translator +// +// = AUTHORS +// Phil Mesnier <mesnier_p@ociweb.com> +// +// ============================================================================ +#ifndef TAO_CODESET_TRANSLATOR_FACTORY_T_CPP +#define TAO_CODESET_TRANSLATOR_FACTORY_T_CPP + +#include "tao/Codeset_Translator_Factory_T.h" +#include "tao/debug.h" +#include "tao/CDR.h" + +template<class NCS_TO_TCS> +TAO_Codeset_Translator_Factory_T<NCS_TO_TCS>::TAO_Codeset_Translator_Factory_T () : + translator_(0) +{ +} + +template<class NCS_TO_TCS> +TAO_Codeset_Translator_Factory_T<NCS_TO_TCS>::~TAO_Codeset_Translator_Factory_T () +{ + delete translator_; +} + +template<class NCS_TO_TCS> +int +TAO_Codeset_Translator_Factory_T<NCS_TO_TCS>::init (int argc, ACE_TCHAR* argv[]) +{ + this->TAO_Codeset_Translator_Factory::init (argc,argv); + ACE_NEW_RETURN (translator_,NCS_TO_TCS,-1); + if( TAO_debug_level > 0 ) + ACE_DEBUG((LM_DEBUG, "TAO_Codeset_Translator_Factory_T<NCS_TO_TCS>::init() entered\n")); + return 0; +} + +// ncs & tcs values set at compile time as a result of instantiating the +// template. +template<class NCS_TO_TCS> +CONV_FRAME::CodeSetId +TAO_Codeset_Translator_Factory_T<NCS_TO_TCS>::ncs () const +{ + return this->translator_->ncs(); +} + +template<class NCS_TO_TCS> +CONV_FRAME::CodeSetId +TAO_Codeset_Translator_Factory_T<NCS_TO_TCS>::tcs () const +{ + return this->translator_->tcs(); +} + +// Assign either a reference to teh existing translator or a new translator +// for input CDR streams +template<class NCS_TO_TCS> +void +TAO_Codeset_Translator_Factory_T<NCS_TO_TCS>::assign (TAO_InputCDR *cdr) const +{ + if (cdr) + { + this->assign_i(cdr,this->translator_); + } +} + +// Assign either a reference to teh existing translator or a new translator +// for input CDR streams +template<class NCS_TO_TCS> +void +TAO_Codeset_Translator_Factory_T<NCS_TO_TCS>::assign (TAO_OutputCDR *cdr) const +{ + if (cdr) + { + this->assign_i(cdr,this->translator_); + } +} + +#endif /* TAO_CODESET_TRANSLATOR_FACTORY_T_CPP */ + + + + + + + + + + + diff --git a/TAO/tao/Codeset_Translator_Factory_T.h b/TAO/tao/Codeset_Translator_Factory_T.h new file mode 100644 index 00000000000..47caa8f83d8 --- /dev/null +++ b/TAO/tao/Codeset_Translator_Factory_T.h @@ -0,0 +1,56 @@ +// -*- C++ -*- + +// =================================================================== +/** + * @file TAO_Codeset_Translator_Factory_T.h + * + * $Id$ + * + * @author OCIWeb at St. Louis + */ +// ========================= +#ifndef TAO_CODESET_TRANSLATOR_FACTORY_T_H +#define TAO_CODESET_TRANSLATOR_FACTORY_T_H + +#include "ace/pre.h" +#include "tao/Codeset_Translator_Factory.h" + +template<class NCS_TO_TCS> +class TAO_Export TAO_Codeset_Translator_Factory_T +: public TAO_Codeset_Translator_Factory +{ +public: + + TAO_Codeset_Translator_Factory_T (); + ~TAO_Codeset_Translator_Factory_T (); + + // initialize + int init( int argc, ACE_TCHAR* argv[]); + + // ncs & tcs values set at compile time as a result of instantiating the + // template. + CONV_FRAME::CodeSetId ncs () const; + CONV_FRAME::CodeSetId tcs () const; + + // set the apropriate translator (from_ for input to_ for output) to the CDR + virtual void assign (TAO_InputCDR *) const; + virtual void assign (TAO_OutputCDR *) const; + +private: + NCS_TO_TCS *translator_; +}; + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) +#include "tao/Codeset_Translator_Factory_T.cpp" +#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ + +#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) +#pragma implementation ("Codeset_Translator_Factory_T.cpp") +#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ + +#include "ace/post.h" +#endif /* TAO_Codeset_Translator_Factory_T */ diff --git a/TAO/tao/GIOP_Message_Base.cpp b/TAO/tao/GIOP_Message_Base.cpp index b46f1b971ba..3c4837e6fab 100644 --- a/TAO/tao/GIOP_Message_Base.cpp +++ b/TAO/tao/GIOP_Message_Base.cpp @@ -11,6 +11,7 @@ #include "Transport.h" #include "LF_Strategy.h" #include "Request_Dispatcher.h" +#include "Codeset_Manager.h" #if !defined (__ACE_INLINE__) # include "GIOP_Message_Base.i" @@ -610,9 +611,7 @@ TAO_GIOP_Message_Base::process_request_message (TAO_Transport *transport, this->orb_core_->input_cdr_msgblock_allocator (), this->orb_core_->orb_params ()->cdr_memcpy_tradeoff (), qd->major_version_, - qd->minor_version_, - this->orb_core_->to_iso8859 (), - this->orb_core_->to_unicode ()); + qd->minor_version_); // Get the read and write positions before we steal data. size_t rd_pos = qd->msg_block_->rd_ptr () - qd->msg_block_->base (); @@ -665,6 +664,7 @@ TAO_GIOP_Message_Base::process_request_message (TAO_Transport *transport, qd->minor_version_, this->orb_core_); + transport->assign_translators(&input_cdr,&output); // We know we have some request message. Check whether it is a // GIOP_REQUEST or GIOP_LOCATE_REQUEST to take action. @@ -858,6 +858,9 @@ TAO_GIOP_Message_Base::process_request (TAO_Transport *transport, parse_error = parser->parse_request_header (request); + request.orb_core()->codeset_manager()->process_service_context(request); + transport->assign_translators(&cdr,&output); + // Throw an exception if the if (parse_error != 0) ACE_TRY_THROW (CORBA::MARSHAL (TAO_DEFAULT_MINOR_CODE, diff --git a/TAO/tao/GIOP_Message_Generator_Parser_10.cpp b/TAO/tao/GIOP_Message_Generator_Parser_10.cpp index 69cda910596..180e143c6e3 100644 --- a/TAO/tao/GIOP_Message_Generator_Parser_10.cpp +++ b/TAO/tao/GIOP_Message_Generator_Parser_10.cpp @@ -14,7 +14,7 @@ #include "TAO_Server_Request.h" #include "GIOP_Message_State.h" #include "CORBA_String.h" - +#include "ORB_Core.h" #if !defined (__ACE_INLINE__) # include "GIOP_Message_Generator_Parser_10.inl" @@ -280,7 +280,6 @@ TAO_GIOP_Message_Generator_Parser_10::write_locate_reply_mesg ( return 1; } - int TAO_GIOP_Message_Generator_Parser_10::parse_request_header ( TAO_ServerRequest &request) @@ -326,38 +325,28 @@ TAO_GIOP_Message_Generator_Parser_10::parse_request_header ( hdr_status = hdr_status && request.profile ().unmarshall_object_key (input); - if (input.char_translator () == 0) - { - CORBA::ULong length = 0; - hdr_status = hdr_status && input.read_ulong (length); + // According to the CORBA 2.6.1 (and older) specification, the operation + // name is an IDL Identifier. Identifiers must be composed of ASCII letters, + // numbers, and underscores, starting with a letter. Based on this, and + // the fact that I could find no text explicitly requiring operation name + // translation, nor could others in the CORBA community, the operation name + // will not be translated regardless of the translation of other strings. + // + CORBA::ULong length = 0; + hdr_status = hdr_status && input.read_ulong (length); - if (hdr_status) - { - // Do not include NULL character at the end. - // @@ This is not getting demarshaled using the codeset - // translators! - - // Notice that there are no memory allocations involved - // here! - request.operation (input.rd_ptr (), - length - 1, - 0 /* TAO_ServerRequest does NOT own string */); - hdr_status = input.skip_bytes (length); - } - } - else + if (hdr_status) { - // @@ We could optimize for this case too, i.e. do in-place - // demarshaling of the string... But there is an issue - // pending on the OMG as to whether the operation should be - // sent in the connection negotiated codeset or always in - // ISO8859-1. - CORBA::String_var tmp; - hdr_status = hdr_status && input.read_string (tmp.inout ()); - - request.operation (tmp._retn (), - 0, - 1 /* TAO_ServerRequest owns string */); + // Do not include NULL character at the end. + // @@ This is not getting demarshaled using the codeset + // translators! + + // Notice that there are no memory allocations involved + // here! + request.operation (input.rd_ptr (), + length - 1, + 0 /* TAO_ServerRequest does NOT own string */); + hdr_status = input.skip_bytes (length); } if (hdr_status) diff --git a/TAO/tao/GIOP_Message_Generator_Parser_12.cpp b/TAO/tao/GIOP_Message_Generator_Parser_12.cpp index 9ea95da50fc..6e22db33b79 100644 --- a/TAO/tao/GIOP_Message_Generator_Parser_12.cpp +++ b/TAO/tao/GIOP_Message_Generator_Parser_12.cpp @@ -258,7 +258,6 @@ TAO_GIOP_Message_Generator_Parser_12::parse_request_header ( TAO_ServerRequest &request ) { - // Get the input CDR in the request class TAO_InputCDR& input = request.incoming (); @@ -286,39 +285,22 @@ TAO_GIOP_Message_Generator_Parser_12::parse_request_header ( hdr_status = hdr_status && request.profile ().unmarshall_target_address(input); - if (input.char_translator () == 0) - { - CORBA::ULong length = 0; - hdr_status = hdr_status && input.read_ulong (length); + CORBA::ULong length = 0; + hdr_status = hdr_status && input.read_ulong (length); - if (hdr_status) - { - // Do not include NULL character at the end. - // @@ This is not getting demarshaled using the codeset - // translators! + if (hdr_status) + { + // Do not include NULL character at the end. + // @@ This is not getting demarshaled using the codeset + // translators! - // Notice that there are no memory allocations involved - // here! + // Notice that there are no memory allocations involved + // here! - request.operation (input.rd_ptr (), - length - 1, - 0 /* TAO_ServerRequest does NOT own string */); - hdr_status = input.skip_bytes (length); - } - } - else - { - // @@ We could optimize for this case too, i.e. do in-place - // demarshaling of the string... But there is an issue - // pending on the OMG as to whether the operation should be - // sent in the connection negotiated codeset or always in - // ISO8859-1. - CORBA::String_var tmp; - hdr_status = hdr_status && input.read_string (tmp.inout ()); - - request.operation (tmp._retn (), - 0, - 1 /* TAO_ServerRequest owns string */); + request.operation (input.rd_ptr (), + length - 1, + 0 /* TAO_ServerRequest does NOT own string */); + hdr_status = input.skip_bytes (length); } // Tear out the service context ... we currently ignore it, but it diff --git a/TAO/tao/GIOP_Message_Lite.cpp b/TAO/tao/GIOP_Message_Lite.cpp index b45949e5ac8..49d7f732cfb 100644 --- a/TAO/tao/GIOP_Message_Lite.cpp +++ b/TAO/tao/GIOP_Message_Lite.cpp @@ -14,6 +14,7 @@ #include "tao/Leader_Follower.h" #include "tao/LF_Strategy.h" #include "tao/Transport.h" +#include "tao/Codeset_Manager.h" #if !defined (__ACE_INLINE__) # include "tao/GIOP_Message_Lite.i" @@ -512,9 +513,9 @@ TAO_GIOP_Message_Lite::process_request_message (TAO_Transport *transport, this->orb_core_->output_cdr_msgblock_allocator (), this->orb_core_->orb_params ()->cdr_memcpy_tradeoff (), qd->major_version_, - qd->minor_version_, - this->orb_core_->to_iso8859 (), - this->orb_core_->to_unicode ()); + qd->minor_version_); + + transport->assign_translators(0,&output); // Get the read and write positions before we steal data. size_t rd_pos = qd->msg_block_->rd_ptr () - qd->msg_block_->base (); @@ -712,6 +713,9 @@ TAO_GIOP_Message_Lite::process_request (TAO_Transport *transport, parse_error = this->parse_request_header (request); + request.orb_core()->codeset_manager()->process_service_context(request); + transport->assign_translators(&cdr,&output); + // Throw an exception if the if (parse_error != 0) ACE_TRY_THROW (CORBA::MARSHAL (TAO_DEFAULT_MINOR_CODE, @@ -1397,9 +1401,9 @@ TAO_GIOP_Message_Lite::send_reply_exception ( orb_core->output_cdr_msgblock_allocator (), orb_core->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - orb_core->to_iso8859 (), - orb_core->to_unicode ()); + TAO_DEF_GIOP_MINOR); + + transport->assign_translators(0,&output); // Make the GIOP & reply header. They are version specific. TAO_Pluggable_Reply_Params reply_params (orb_core); diff --git a/TAO/tao/IIOP_Acceptor.cpp b/TAO/tao/IIOP_Acceptor.cpp index 6ee802ec065..87758d9c7b4 100644 --- a/TAO/tao/IIOP_Acceptor.cpp +++ b/TAO/tao/IIOP_Acceptor.cpp @@ -1,4 +1,3 @@ - // This may look like C, but it's really -*- C++ -*- // $Id$ @@ -9,6 +8,7 @@ #include "tao/Server_Strategy_Factory.h" #include "tao/debug.h" #include "tao/Protocols_Hooks.h" +#include "tao/Codeset_Manager.h" #include "ace/Auto_Ptr.h" @@ -147,12 +147,8 @@ TAO_IIOP_Acceptor::create_new_profile (const TAO_ObjectKey &object_key, pfile->tagged_components ().set_orb_type (TAO_ORB_TYPE); - CONV_FRAME::CodeSetComponentInfo code_set_info; - code_set_info.ForCharData.native_code_set = - TAO_DEFAULT_CHAR_CODESET_ID; - code_set_info.ForWcharData.native_code_set = - TAO_DEFAULT_WCHAR_CODESET_ID; - pfile->tagged_components ().set_code_sets (code_set_info); + this->orb_core_->codeset_manager()-> + set_codeset(pfile->tagged_components()); } return 0; @@ -207,13 +203,8 @@ TAO_IIOP_Acceptor::create_shared_profile (const TAO_ObjectKey &object_key, && (this->version_.major >= 1 && this->version_.minor >= 1)) { iiop_profile->tagged_components ().set_orb_type (TAO_ORB_TYPE); - - CONV_FRAME::CodeSetComponentInfo code_set_info; - code_set_info.ForCharData.native_code_set = - TAO_DEFAULT_CHAR_CODESET_ID; - code_set_info.ForWcharData.native_code_set = - TAO_DEFAULT_WCHAR_CODESET_ID; - iiop_profile->tagged_components ().set_code_sets (code_set_info); + this->orb_core_->codeset_manager()-> + set_codeset(iiop_profile->tagged_components()); } index = 1; @@ -967,7 +958,7 @@ TAO_IIOP_Acceptor::init_tcp_properties (void) tph->call_server_protocols_hook (send_buffer_size, recv_buffer_size, no_delay, - enable_network_priority, + enable_network_priority, protocol_type); if (hook_return == -1) diff --git a/TAO/tao/IIOP_Profile.cpp b/TAO/tao/IIOP_Profile.cpp index 9f2385ee76c..bab1a8cb940 100644 --- a/TAO/tao/IIOP_Profile.cpp +++ b/TAO/tao/IIOP_Profile.cpp @@ -433,10 +433,7 @@ TAO_IIOP_Profile::encode (TAO_OutputCDR &stream) const this->orb_core ()->output_cdr_msgblock_allocator (), this->orb_core ()->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core ()->to_iso8859 (), - this->orb_core ()->to_unicode ()); - + TAO_DEF_GIOP_MINOR); // Create the profile body this->create_profile_body (encap); @@ -467,9 +464,7 @@ TAO_IIOP_Profile::create_tagged_profile (void) this->orb_core ()->output_cdr_msgblock_allocator (), this->orb_core ()->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core ()->to_iso8859 (), - this->orb_core ()->to_unicode ()); + TAO_DEF_GIOP_MINOR); // Create the profile body this->create_profile_body (encap); diff --git a/TAO/tao/IIOP_Transport.cpp b/TAO/tao/IIOP_Transport.cpp index 7b42e6c0828..c392e3808ba 100644 --- a/TAO/tao/IIOP_Transport.cpp +++ b/TAO/tao/IIOP_Transport.cpp @@ -221,6 +221,8 @@ TAO_IIOP_Transport::send_request (TAO_Stub *stub, max_wait_time) == -1) return -1; + this->first_request_sent(); + return this->idle_after_send (); } diff --git a/TAO/tao/Invocation.cpp b/TAO/tao/Invocation.cpp index f1c3531f4c2..a24fa3e9ddf 100644 --- a/TAO/tao/Invocation.cpp +++ b/TAO/tao/Invocation.cpp @@ -22,6 +22,7 @@ #include "Endpoint_Selector_Factory.h" #include "Invocation_Endpoint_Selectors.h" #include "TAOC.h" +#include "Codeset_Manager.h" #include "ace/Auto_Ptr.h" @@ -122,9 +123,7 @@ TAO_GIOP_Invocation::TAO_GIOP_Invocation (TAO_Stub *stub, orb_core->output_cdr_msgblock_allocator (), orb_core->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - orb_core->to_iso8859 (), - orb_core->to_unicode ()), + TAO_DEF_GIOP_MINOR), orb_core_ (orb_core), transport_ (0), endpoint_selector_ (0), @@ -309,6 +308,9 @@ TAO_GIOP_Invocation::perform_call (TAO_Transport_Descriptor_Interface &desc // Set the giop version of the out stream this->out_stream_.set_version (version.major, version.minor); + this->orb_core_->codeset_manager()-> + set_tcs(*this->profile_,*this->transport_); + if (result == -1) { if (TAO_debug_level > 0) @@ -398,6 +400,8 @@ TAO_GIOP_Invocation::prepare_header (CORBA::Octet response_flags { ACE_THROW (CORBA::MARSHAL ()); } + + this->transport_->assign_translators (0, &this->out_stream_); } // Send request. diff --git a/TAO/tao/Invocation.h b/TAO/tao/Invocation.h index 332b6cc8add..ac897443eee 100644 --- a/TAO/tao/Invocation.h +++ b/TAO/tao/Invocation.h @@ -35,9 +35,9 @@ #include "Messaging_SyncScopeC.h" #include "operation_details.h" #include "target_specification.h" +#include "Transport.h" struct TAO_Exception_Data; -class TAO_Transport; class TAO_Stub; class TAO_Transport_Descriptor_Interface; class TAO_Endpoint; diff --git a/TAO/tao/Invocation.i b/TAO/tao/Invocation.i index 65b603408b0..487ba949d35 100644 --- a/TAO/tao/Invocation.i +++ b/TAO/tao/Invocation.i @@ -158,6 +158,7 @@ TAO_GIOP_Synch_Invocation::TAO_GIOP_Synch_Invocation ( ACE_INLINE TAO_InputCDR & TAO_GIOP_Synch_Invocation::inp_stream (void) { + this->transport_->assign_translators(&this->rd_.reply_cdr(),0); return this->rd_.reply_cdr (); } diff --git a/TAO/tao/Makefile.tao b/TAO/tao/Makefile.tao index d38c624ae56..2a0b1efa0ad 100644 --- a/TAO/tao/Makefile.tao +++ b/TAO/tao/Makefile.tao @@ -198,6 +198,8 @@ ORB_CORE_FILES = \ DynamicC \ OctetSeqC \ StringSeqC \ + Codeset_Manager \ + Codeset_Translator_Factory \ ORB_Core \ ORB_Core_Auto_Ptr \ Collocation_Resolver \ @@ -349,6 +351,7 @@ ifndef TAO_COMPONENTS Default_Resources \ Interpretive_Marshaling \ IDL_Compiler \ + Codeset_Manager \ ORB_Core \ Dynamic_Any \ Ft_Corba \ @@ -374,6 +377,10 @@ ifneq (,$(findstring IDL_Compiler,$(TAO_COMPONENTS))) FILES += $(IDL_COMPILER_FILES) endif # IDL_Compiler +ifneq (,$(findstring Codeset_Manager,$(TAO_COMPONENTS))) + FILES += $(Codeset_Manager) +endif # CODE_SET_MANAGER + ifneq (,$(findstring ORB_Core,$(TAO_COMPONENTS))) FILES += $(ORB_CORE_FILES) endif # ORB_Core diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp index 4e3c7b67f6b..893fd4f9d64 100644 --- a/TAO/tao/ORB.cpp +++ b/TAO/tao/ORB.cpp @@ -1625,17 +1625,18 @@ CORBA::ORB::object_to_string (CORBA::Object_ptr obj char buf [ACE_CDR::DEFAULT_BUFSIZE]; #endif /* ACE_HAS_PURIFY */ - TAO_OutputCDR cdr (buf, - sizeof buf, + TAO_OutputCDR cdr (buf, sizeof buf, TAO_ENCAP_BYTE_ORDER, this->orb_core_->output_cdr_buffer_allocator (), this->orb_core_->output_cdr_dblock_allocator (), this->orb_core_->output_cdr_msgblock_allocator (), this->orb_core_->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core_->to_iso8859 (), - this->orb_core_->to_unicode ()); + TAO_DEF_GIOP_MINOR); + + // There is no translator currently available for stringifying an object + // reference, since there is no transport with which to choose an NCS/TCS + // pair. // support limited oref ACE_OS::strcmp. (void) ACE_OS::memset (buf, 0, sizeof (buf)); diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp index b2231907996..fe71e8837eb 100644 --- a/TAO/tao/ORB_Core.cpp +++ b/TAO/tao/ORB_Core.cpp @@ -52,9 +52,7 @@ #include "ace/Arg_Shifter.h" #include "ace/Argv_Type_Converter.h" -#if defined(ACE_MVS) -#include "ace/Codeset_IBM1047.h" -#endif /* ACE_MVS */ +#include "Codeset_Manager.h" #if !defined (__ACE_INLINE__) # include "ORB_Core.i" @@ -169,10 +167,6 @@ TAO_ORB_Core::TAO_ORB_Core (const char *orbid) adapter_registry_ (this), poa_adapter_ (0), tm_ (), - from_iso8859_ (0), - to_iso8859_ (0), - from_unicode_ (0), - to_unicode_ (0), tss_cleanup_funcs_ (), tss_resources_ (), orb_resources_ (), @@ -199,13 +193,9 @@ TAO_ORB_Core::TAO_ORB_Core (const char *orbid) parser_registry_ (), bidir_adapter_ (0), bidir_giop_policy_ (0), - flushing_strategy_ (0) + flushing_strategy_ (0), + codeset_manager_ (0) { -#if defined(ACE_MVS) - ACE_NEW (this->from_iso8859_, ACE_IBM1047_ISO8859); - ACE_NEW (this->to_iso8859_, ACE_IBM1047_ISO8859); -#endif /* ACE_MVS */ - #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1) ACE_NEW (this->eager_buffering_sync_strategy_, @@ -245,9 +235,6 @@ TAO_ORB_Core::~TAO_ORB_Core (void) ACE_OS::free (this->orbid_); - delete this->from_iso8859_; - delete this->to_iso8859_; - #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1) delete this->eager_buffering_sync_strategy_; @@ -878,6 +865,21 @@ TAO_ORB_Core::init (int &argc, char *argv[] ACE_ENV_ARG_DECL) -1); } + + this->codeset_manager_ = trf->get_codeset_manager(); + if (this->codeset_manager_ == 0) + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%P|%t) %p\n"), + ACE_TEXT ("ORB Core unable to initialize codeset_manager"))); + ACE_THROW_RETURN (CORBA::INITIALIZE ( + CORBA::SystemException::_tao_minor_code ( + TAO_ORB_CORE_INIT_LOCATION_CODE, + 0), + CORBA::COMPLETED_NO), + -1); + } + // @@ ???? // Make sure the reactor is initialized... ACE_Reactor *reactor = this->reactor (); diff --git a/TAO/tao/ORB_Core.h b/TAO/tao/ORB_Core.h index db54a0caf3c..71b78d222f2 100644 --- a/TAO/tao/ORB_Core.h +++ b/TAO/tao/ORB_Core.h @@ -80,6 +80,9 @@ class TAO_Service_Context; class TAO_POA_PortableGroup_Hooks; class TAO_Request_Dispatcher; +class TAO_Codeset_Manager; + + #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1) class TAO_Buffering_Constraint_Policy; @@ -919,6 +922,9 @@ public: */ TAO_Flushing_Strategy *flushing_strategy (void); + /// Get Code Set Manager + TAO_Codeset_Manager *codeset_manager (void); + typedef ACE_Hash_Map_Manager_Ex<ACE_CString, ACE_CString, ACE_Hash<ACE_CString>, ACE_Equal_To<ACE_CString>, ACE_Null_Mutex> InitRefMap; /// Return a pointer to the -ORBInitRef map. @@ -1154,15 +1160,6 @@ protected: /// The data block reference counts are locked using this mutex ACE_Lock_Adapter<TAO_SYNCH_MUTEX> data_block_lock_; - - /// Codeset translators for simple implementations. - //@{ - ACE_Char_Codeset_Translator *from_iso8859_; - ACE_Char_Codeset_Translator *to_iso8859_; - ACE_WChar_Codeset_Translator *from_unicode_; - ACE_WChar_Codeset_Translator *to_unicode_; - //@} - /// TSS Object cleanup functions. These correspond to the TSS /// objects stored in TAO's TSS resources. TAO_Cleanup_Func_Registry tss_cleanup_funcs_; @@ -1241,6 +1238,10 @@ protected: /// Hold the flushing strategy TAO_Flushing_Strategy *flushing_strategy_; + + /// Code Set Manager + TAO_Codeset_Manager *codeset_manager_; + }; // **************************************************************** diff --git a/TAO/tao/ORB_Core.i b/TAO/tao/ORB_Core.i index ce46ef7f0bb..0bc65fe7e2b 100644 --- a/TAO/tao/ORB_Core.i +++ b/TAO/tao/ORB_Core.i @@ -236,31 +236,13 @@ TAO_ORB_Core::policy_factory_registry (void) } -#undef TAO_OC_RETRIEVE - -ACE_INLINE ACE_Char_Codeset_Translator * -TAO_ORB_Core::from_iso8859 (void) const -{ - return this->from_iso8859_; -} - -ACE_INLINE ACE_Char_Codeset_Translator * -TAO_ORB_Core::to_iso8859 (void) const +ACE_INLINE TAO_Codeset_Manager * +TAO_ORB_Core::codeset_manager() { - return this->to_iso8859_; + return this->codeset_manager_; } -ACE_INLINE ACE_WChar_Codeset_Translator * -TAO_ORB_Core::from_unicode (void) const -{ - return this->from_unicode_; -} - -ACE_INLINE ACE_WChar_Codeset_Translator * -TAO_ORB_Core::to_unicode (void) const -{ - return this->to_unicode_; -} +#undef TAO_OC_RETRIEVE #if (TAO_HAS_CORBA_MESSAGING == 1) diff --git a/TAO/tao/Resource_Factory.cpp b/TAO/tao/Resource_Factory.cpp index 22e921674a8..2334a75605e 100644 --- a/TAO/tao/Resource_Factory.cpp +++ b/TAO/tao/Resource_Factory.cpp @@ -8,6 +8,7 @@ #include "tao/Protocol_Factory.h" #include "tao/ORB_Core.h" #include "tao/Client_Strategy_Factory.h" +#include "tao/Codeset_Translator_Factory.h" ACE_RCSID (tao, Resource_Factory, @@ -48,6 +49,42 @@ TAO_Protocol_Item::factory (TAO_Protocol_Factory *factory, this->factory_owner_ = owner; } +// Codeset Item +TAO_Codeset_Item::TAO_Codeset_Item (const ACE_CString &name) + : name_ (name), + factory_ (0), + factory_owner_ (0) +{ +} + +TAO_Codeset_Item::~TAO_Codeset_Item (void) +{ + if (this->factory_owner_ == 1) + delete this->factory_; +} + +const ACE_CString & +TAO_Codeset_Item::codeset_name (void) +{ + return this->name_; +} + +TAO_Codeset_Translator_Factory * +TAO_Codeset_Item::factory (void) +{ + return this->factory_; +} + +void +TAO_Codeset_Item::factory (TAO_Codeset_Translator_Factory *factory, + int owner) +{ + this->factory_ = factory; + this->factory_owner_ = owner; +} + +// End of Codeset Item Class + TAO_Resource_Factory::TAO_Resource_Factory (void) { @@ -144,6 +181,26 @@ TAO_Resource_Factory::get_protocol_factories (void) return 0; } +TAO_Codeset_Manager * +TAO_Resource_Factory::get_codeset_manager (void) +{ + return 0; +} + +TAO_Codeset_Translator_Factory * +TAO_Resource_Factory::get_char_translator (CONV_FRAME::CodeSetId , + CONV_FRAME::CodeSetId ) +{ + return 0; +} + +TAO_Codeset_Translator_Factory * +TAO_Resource_Factory::get_wchar_translator (CONV_FRAME::CodeSetId , + CONV_FRAME::CodeSetId ) +{ + return 0; +} + int TAO_Resource_Factory::init_protocol_factories (void) { @@ -199,14 +256,25 @@ TAO_Resource_Factory::load_default_protocols (void) template class ACE_Dynamic_Service<TAO_Resource_Factory>; template class ACE_Node<TAO_Protocol_Item*>; +/// +template class ACE_Node<TAO_Codeset_Item*>; +/// template class ACE_Unbounded_Set<TAO_Protocol_Item*>; template class ACE_Unbounded_Set_Iterator<TAO_Protocol_Item*>; +/// +template class ACE_Unbounded_Set<TAO_Codeset_Item*>; +template class ACE_Unbounded_Set_Iterator<TAO_Codeset_Item*>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) #pragma instantiate ACE_Dynamic_Service<TAO_Resource_Factory> #pragma instantiate ACE_Node<TAO_Protocol_Item*> +/// +#pragma instantiate ACE_Node<TAO_Codeset_Item*> +/// #pragma instantiate ACE_Unbounded_Set<TAO_Protocol_Item*> #pragma instantiate ACE_Unbounded_Set_Iterator<TAO_Protocol_Item*> +#pragma instantiate ACE_Unbounded_Set<TAO_Codeset_Item*> +#pragma instantiate ACE_Unbounded_Set_Iterator<TAO_Codeset_Item*> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/Resource_Factory.h b/TAO/tao/Resource_Factory.h index 3cf5e3d286e..9b0f2fa8de5 100644 --- a/TAO/tao/Resource_Factory.h +++ b/TAO/tao/Resource_Factory.h @@ -25,6 +25,7 @@ #include "tao/TAO_Export.h" #include "ace/Unbounded_Set.h" +#include "CONV_FRAMEC.h" #include "ace/SString.h" class TAO_Protocol_Factory; @@ -35,8 +36,11 @@ class TAO_Flushing_Strategy; class TAO_Connection_Purging_Strategy; class TAO_LF_Strategy; +class TAO_Codeset_Manager; class ACE_Lock; +class TAO_Codeset_Translator_Factory; + // **************************************************************** class TAO_Export TAO_Protocol_Item @@ -76,6 +80,47 @@ private: int factory_owner_; }; +// **************************************************************** + +class TAO_Export TAO_Codeset_Item +{ +public: + /// creator method, the codeset name can only be set when the + /// object is created. + TAO_Codeset_Item (const ACE_CString &name); + + /// destructor that deallocates the factory object if the + /// CodeSet_Item retains ownership. + ~TAO_Codeset_Item (void); + + /// return a reference to the character representation of the codeset + /// factories name. + const ACE_CString &codeset_name (void); + + /// return a pointer to the codeset factory. + TAO_Codeset_Translator_Factory *factory (void); + + /// set the factory pointer's value. + void factory (TAO_Codeset_Translator_Factory *factory, int owner = 0); + +private: + // Prohibited + ACE_UNIMPLEMENTED_FUNC (TAO_Codeset_Item (const TAO_Codeset_Item&)) + ACE_UNIMPLEMENTED_FUNC (void operator= (const TAO_Codeset_Item&)) + +private: + /// protocol factory name. + ACE_CString name_; + + /// pointer to factory object. + TAO_Codeset_Translator_Factory *factory_; + + /// whether we own (and therefore have to delete) the factory object. + int factory_owner_; +}; + +// typedefs for containers containing the list of loaded protocol + // typedefs for containers containing the list of loaded protocol // factories. typedef ACE_Unbounded_Set<TAO_Protocol_Item*> @@ -84,6 +129,16 @@ typedef ACE_Unbounded_Set<TAO_Protocol_Item*> typedef ACE_Unbounded_Set_Iterator<TAO_Protocol_Item*> TAO_ProtocolFactorySetItor; +// Added by Mahesh +// typedefs for containers containing the list of codesets +// factories for character and wide character. +typedef ACE_Unbounded_Set<TAO_Codeset_Item*> + TAO_CodesetFactorySet; + +// Iterators +typedef ACE_Unbounded_Set_Iterator<TAO_Codeset_Item*> + TAO_CodesetFactorySetItor; + // **************************************************************** /** @@ -163,6 +218,15 @@ public: */ virtual TAO_ProtocolFactorySet *get_protocol_factories (void); + virtual TAO_Codeset_Manager *get_codeset_manager(void); + + // Get the translators for Char/Wchar Codesets + virtual TAO_Codeset_Translator_Factory *get_char_translator (CONV_FRAME::CodeSetId theNcs, + CONV_FRAME::CodeSetId theTcs); + + virtual TAO_Codeset_Translator_Factory *get_wchar_translator (CONV_FRAME::CodeSetId theNcs, + CONV_FRAME::CodeSetId theTcs); + /** * this method will loop through the protocol list and * using the protocol name field this method will diff --git a/TAO/tao/Strategies/DIOP_Acceptor.cpp b/TAO/tao/Strategies/DIOP_Acceptor.cpp index 4052ad5ce34..feef167fcb2 100644 --- a/TAO/tao/Strategies/DIOP_Acceptor.cpp +++ b/TAO/tao/Strategies/DIOP_Acceptor.cpp @@ -10,6 +10,7 @@ #include "tao/ORB_Core.h" #include "tao/debug.h" #include "tao/Protocols_Hooks.h" +#include "tao/Codeset_Manager.h" #include "ace/Auto_Ptr.h" @@ -111,12 +112,8 @@ TAO_DIOP_Acceptor::create_new_profile (const TAO_ObjectKey &object_key, pfile->tagged_components ().set_orb_type (TAO_ORB_TYPE); - CONV_FRAME::CodeSetComponentInfo code_set_info; - code_set_info.ForCharData.native_code_set = - TAO_DEFAULT_CHAR_CODESET_ID; - code_set_info.ForWcharData.native_code_set = - TAO_DEFAULT_WCHAR_CODESET_ID; - pfile->tagged_components ().set_code_sets (code_set_info); + this->orb_core_->codeset_manager()-> + set_codeset(pfile->tagged_components()); } return 0; @@ -168,13 +165,8 @@ TAO_DIOP_Acceptor::create_shared_profile (const TAO_ObjectKey &object_key, && (this->version_.major >= 1 && this->version_.minor >= 1)) { iiop_profile->tagged_components ().set_orb_type (TAO_ORB_TYPE); - - CONV_FRAME::CodeSetComponentInfo code_set_info; - code_set_info.ForCharData.native_code_set = - TAO_DEFAULT_CHAR_CODESET_ID; - code_set_info.ForWcharData.native_code_set = - TAO_DEFAULT_WCHAR_CODESET_ID; - iiop_profile->tagged_components ().set_code_sets (code_set_info); + this->orb_core_->codeset_manager()-> + set_codeset(iiop_profile->tagged_components()); } index = 1; diff --git a/TAO/tao/Strategies/DIOP_Profile.cpp b/TAO/tao/Strategies/DIOP_Profile.cpp index 27c3457526f..c015bbb1512 100644 --- a/TAO/tao/Strategies/DIOP_Profile.cpp +++ b/TAO/tao/Strategies/DIOP_Profile.cpp @@ -431,10 +431,7 @@ TAO_DIOP_Profile::encode (TAO_OutputCDR &stream) const this->orb_core ()->output_cdr_msgblock_allocator (), this->orb_core ()->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core ()->to_iso8859 (), - this->orb_core ()->to_unicode ()); - + TAO_DEF_GIOP_MINOR); // Create the profile body this->create_profile_body (encap); @@ -465,9 +462,7 @@ TAO_DIOP_Profile::create_tagged_profile (void) this->orb_core ()->output_cdr_msgblock_allocator (), this->orb_core ()->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core ()->to_iso8859 (), - this->orb_core ()->to_unicode ()); + TAO_DEF_GIOP_MINOR); // Create the profile body this->create_profile_body (encap); diff --git a/TAO/tao/Strategies/DIOP_Transport.cpp b/TAO/tao/Strategies/DIOP_Transport.cpp index 82274b7cec7..ea03fd05281 100644 --- a/TAO/tao/Strategies/DIOP_Transport.cpp +++ b/TAO/tao/Strategies/DIOP_Transport.cpp @@ -268,6 +268,7 @@ TAO_DIOP_Transport::send_request (TAO_Stub *stub, max_wait_time) == -1) return -1; + this->first_request_sent(); return 0; } diff --git a/TAO/tao/Strategies/SHMIOP_Acceptor.cpp b/TAO/tao/Strategies/SHMIOP_Acceptor.cpp index 2072e61a650..b8995dcf2d0 100644 --- a/TAO/tao/Strategies/SHMIOP_Acceptor.cpp +++ b/TAO/tao/Strategies/SHMIOP_Acceptor.cpp @@ -10,6 +10,7 @@ #include "tao/ORB_Core.h" #include "tao/Server_Strategy_Factory.h" #include "tao/debug.h" +#include "tao/Codeset_Manager.h" #if !defined(__ACE_INLINE__) #include "SHMIOP_Acceptor.i" @@ -128,13 +129,8 @@ TAO_SHMIOP_Acceptor::create_new_profile (const TAO_ObjectKey &object_key, return 0; pfile->tagged_components ().set_orb_type (TAO_ORB_TYPE); - - CONV_FRAME::CodeSetComponentInfo code_set_info; - code_set_info.ForCharData.native_code_set = - TAO_DEFAULT_CHAR_CODESET_ID; - code_set_info.ForWcharData.native_code_set = - TAO_DEFAULT_WCHAR_CODESET_ID; - pfile->tagged_components ().set_code_sets (code_set_info); + this->orb_core_->codeset_manager()-> + set_codeset(pfile->tagged_components()); return 0; } diff --git a/TAO/tao/Strategies/SHMIOP_Profile.cpp b/TAO/tao/Strategies/SHMIOP_Profile.cpp index dd0cca3adec..73953e5ec1b 100644 --- a/TAO/tao/Strategies/SHMIOP_Profile.cpp +++ b/TAO/tao/Strategies/SHMIOP_Profile.cpp @@ -445,9 +445,7 @@ TAO_SHMIOP_Profile::encode (TAO_OutputCDR &stream) const this->orb_core ()->output_cdr_msgblock_allocator (), this->orb_core ()->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core ()->to_iso8859 (), - this->orb_core ()->to_unicode ()); + TAO_DEF_GIOP_MINOR); this->create_profile_body (encap); @@ -475,9 +473,7 @@ TAO_SHMIOP_Profile::create_tagged_profile (void) this->orb_core ()->output_cdr_msgblock_allocator (), this->orb_core ()->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core ()->to_iso8859 (), - this->orb_core ()->to_unicode ()); + TAO_DEF_GIOP_MINOR); // Create the profile body this->create_profile_body (encap); diff --git a/TAO/tao/Strategies/SHMIOP_Transport.cpp b/TAO/tao/Strategies/SHMIOP_Transport.cpp index 2e48ec4e8e7..4151467e50f 100644 --- a/TAO/tao/Strategies/SHMIOP_Transport.cpp +++ b/TAO/tao/Strategies/SHMIOP_Transport.cpp @@ -243,6 +243,7 @@ TAO_SHMIOP_Transport::send_request (TAO_Stub *stub, max_wait_time) == -1) return -1; + this->first_request_sent(); return this->idle_after_send (); } diff --git a/TAO/tao/Strategies/UIOP_Acceptor.cpp b/TAO/tao/Strategies/UIOP_Acceptor.cpp index 3cb769777e0..b86a92d8e55 100644 --- a/TAO/tao/Strategies/UIOP_Acceptor.cpp +++ b/TAO/tao/Strategies/UIOP_Acceptor.cpp @@ -26,6 +26,7 @@ #include "tao/Server_Strategy_Factory.h" #include "tao/debug.h" #include "tao/Protocols_Hooks.h" +#include "tao/Codeset_Manager.h" ACE_RCSID(Strategies, UIOP_Acceptor, "$Id$") @@ -138,12 +139,8 @@ TAO_UIOP_Acceptor::create_new_profile (const TAO_ObjectKey &object_key, return 0; pfile->tagged_components ().set_orb_type (TAO_ORB_TYPE); - - CONV_FRAME::CodeSetComponentInfo code_set_info; - code_set_info.ForCharData.native_code_set = TAO_DEFAULT_CHAR_CODESET_ID; - code_set_info.ForWcharData.native_code_set = TAO_DEFAULT_WCHAR_CODESET_ID; - pfile->tagged_components ().set_code_sets (code_set_info); - + this->orb_core_->codeset_manager()-> + set_codeset (pfile->tagged_components()); return 0; } @@ -564,7 +561,7 @@ TAO_UIOP_Acceptor::init_uiop_properties (void) tph->call_server_protocols_hook (send_buffer_size, recv_buffer_size, no_delay, - enable_network_priority, + enable_network_priority, protocol_type); if(hook_result == -1) diff --git a/TAO/tao/Strategies/UIOP_Profile.cpp b/TAO/tao/Strategies/UIOP_Profile.cpp index 21ebcdf9639..1ed25209681 100644 --- a/TAO/tao/Strategies/UIOP_Profile.cpp +++ b/TAO/tao/Strategies/UIOP_Profile.cpp @@ -386,9 +386,7 @@ TAO_UIOP_Profile::encode (TAO_OutputCDR &stream) const this->orb_core ()->output_cdr_msgblock_allocator (), this->orb_core ()->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core ()->to_iso8859 (), - this->orb_core ()->to_unicode ()); + TAO_DEF_GIOP_MINOR); // Create the profile body this->create_profile_body (encap); @@ -417,9 +415,7 @@ TAO_UIOP_Profile::create_tagged_profile (void) this->orb_core ()->output_cdr_msgblock_allocator (), this->orb_core ()->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core ()->to_iso8859 (), - this->orb_core ()->to_unicode ()); + TAO_DEF_GIOP_MINOR); // Create the profile body this->create_profile_body (encap); diff --git a/TAO/tao/Strategies/UIOP_Transport.cpp b/TAO/tao/Strategies/UIOP_Transport.cpp index 14823585184..3270f94f012 100644 --- a/TAO/tao/Strategies/UIOP_Transport.cpp +++ b/TAO/tao/Strategies/UIOP_Transport.cpp @@ -171,6 +171,7 @@ TAO_UIOP_Transport::send_request (TAO_Stub *stub, max_wait_time) == -1) return -1; + this->first_request_sent(); return this->idle_after_send (); } diff --git a/TAO/tao/TAO_Server_Request.cpp b/TAO/tao/TAO_Server_Request.cpp index 91fb8546c6a..3e7fd522490 100644 --- a/TAO/tao/TAO_Server_Request.cpp +++ b/TAO/tao/TAO_Server_Request.cpp @@ -185,6 +185,7 @@ TAO_ServerRequest::init_reply (void) ACE_TEXT ("encoding forwarded objref failed\n"))); } } + this->transport_->assign_translators (0,this->outgoing_); } void @@ -280,8 +281,6 @@ TAO_ServerRequest::tao_send_reply_exception (CORBA::Exception &ex) } // Create a new output CDR stream - -#if 0 #if defined(ACE_HAS_PURIFY) // Only inititialize the buffer if we're compiling with Purify. // Otherwise, there is no real need to do so, especially since @@ -299,11 +298,9 @@ TAO_ServerRequest::tao_send_reply_exception (CORBA::Exception &ex) this->orb_core_->output_cdr_msgblock_allocator (), this->orb_core_->orb_params ()->cdr_memcpy_tradeoff (), TAO_DEF_GIOP_MAJOR, - TAO_DEF_GIOP_MINOR, - this->orb_core_->to_iso8859 (), - this->orb_core_->to_unicode ());*/ -#endif /* 0 */ + TAO_DEF_GIOP_MINOR); + this->transport_->assign_translators(0,&output); // Make the reply message if (this->mesg_base_->generate_exception_reply (*this->outgoing_, reply_params, diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp index 36b7dc96799..6074fa466eb 100644 --- a/TAO/tao/Transport.cpp +++ b/TAO/tao/Transport.cpp @@ -24,6 +24,8 @@ #include "ace/Message_Block.h" #include "ace/Reactor.h" +#include "Codeset_Manager.h" + #if !defined (__ACE_INLINE__) # include "Transport.inl" #endif /* __ACE_INLINE__ */ @@ -111,6 +113,11 @@ TAO_Transport::TAO_Transport (CORBA::ULong tag, , handler_lock_ (orb_core->resource_factory ()->create_cached_connection_lock ()) , id_ ((long) this) , purging_order_ (0) + , char_translator_ (0) + , wchar_translator_ (0) + , tcs_set_ (0) + , first_request_ (1) + , wchar_allowed_ (0) { TAO_Client_Strategy_Factory *cf = this->orb_core_->client_factory (); @@ -304,6 +311,12 @@ TAO_Transport::generate_request_header ( TAO_Target_Specification &spec, TAO_OutputCDR &output) { + // codeset service context is only supposed to be sent in the first request + // on a particular connection. + if (this->first_request_) + this->orb_core()->codeset_manager()-> + generate_service_context( opdetails, *this ); + if (this->messaging_object ()->generate_request_header (opdetails, spec, output) == -1) @@ -2195,6 +2208,29 @@ TAO_Transport::transport_cache_manager (void) return this->orb_core_->lane_resources ().transport_cache (); } + +ACE_INLINE void +TAO_Transport::assign_translators (TAO_InputCDR *inp, TAO_OutputCDR *outp) +{ + if (this->char_translator_) + { + this->char_translator_->assign (inp); + this->char_translator_->assign (outp); + } + if (this->wchar_translator_) + { + this->wchar_translator_->assign (inp); + this->wchar_translator_->assign (outp); + } + else + { + if (inp) inp->wchar_allowed(this->wchar_allowed_); + if (outp) outp->wchar_allowed(this->wchar_allowed_); + } +} + + + #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class ACE_Reverse_Lock<ACE_Lock>; diff --git a/TAO/tao/Transport.h b/TAO/tao/Transport.h index 601ae068fed..d7a2e2231f3 100644 --- a/TAO/tao/Transport.h +++ b/TAO/tao/Transport.h @@ -29,6 +29,9 @@ #include "Incoming_Message_Queue.h" #include "Synch_Refcountable.h" +#include "CONV_FRAMEC.h" +#include "Codeset_Translator_Factory.h" + class TAO_ORB_Core; class TAO_Target_Specification; class TAO_Operation_Details; @@ -371,8 +374,6 @@ public: size_t len, const ACE_Time_Value *timeout = 0); - - /** * @name Control connection lifecycle * @@ -767,6 +768,38 @@ public: int handle_timeout (const ACE_Time_Value ¤t_time, const void* act); + /// CodeSet Negotiation - Get the char codeset translator factory + /// + TAO_Codeset_Translator_Factory *char_translator (void) const; + + /// CodeSet Negotiation - Get the wchar codeset translator factory + /// + TAO_Codeset_Translator_Factory *wchar_translator (void) const; + + /// CodeSet negotiation - Set the char codeset translator factory + /// + void char_translator (TAO_Codeset_Translator_Factory *); + + /// CodeSet negotiation - Set the wchar codeset translator factory + /// + void wchar_translator (TAO_Codeset_Translator_Factory *); + + /// Inform the transport that wchar marshalling is allowed even if there is + /// no tranlator. It could be true that no translator is used because the + /// NCS-W for both sides match. But it is also true that no translator is + /// available because the other side did not define a codeset for wchars. + void wchar_allowed (CORBA::Boolean ); + + /// Use the Transport's codeset factories to set the translator for input + /// and output CDRs. + void assign_translators (TAO_InputCDR *, TAO_OutputCDR *); + + /// Return true if the tcs has been set + /// + CORBA::Boolean is_tcs_set() const; + + /// Set the state of the first_request_ flag to 0 + void first_request_sent(); private: /// Helper method that returns the Transport Cache Manager. @@ -979,6 +1012,26 @@ protected: /// Used by the LRU, LFU and FIFO Connection Purging Strategies. unsigned long purging_order_; + +private: + /// Additional member values required to support codeset translation + TAO_Codeset_Translator_Factory *char_translator_; + TAO_Codeset_Translator_Factory *wchar_translator_; + + /// The tcs_set_ flag indicates that negotiation has occured and so the + /// translators are correct, since a null translator is valid if both ends + /// are using the same codeset, whatever that codeset might be. + CORBA::Boolean tcs_set_; + /// First_request_ is true until the first request is sent or received. This + /// is necessary since codeset context information is necessary only on the + /// first request. After that, the translators are fixed for the life of the + /// connection. + CORBA::Boolean first_request_; + /// Wchar data is only permitted when both sides explicitly declare a wchar + /// codeset and a translator exists on one side or the other to convert + /// between them. Again, this is necessary since a null wchar_translator is + /// perfectly valid. + CORBA::Boolean wchar_allowed_; }; /** diff --git a/TAO/tao/Transport.inl b/TAO/tao/Transport.inl index 354ae85641a..7b914649c67 100644 --- a/TAO/tao/Transport.inl +++ b/TAO/tao/Transport.inl @@ -119,6 +119,59 @@ TAO_Transport::check_event_handler_i (const char *caller) return 0; } +//******************************************************************** +// codeset related methods + + +ACE_INLINE TAO_Codeset_Translator_Factory * +TAO_Transport::char_translator (void) const +{ + return this->char_translator_; +} + +ACE_INLINE TAO_Codeset_Translator_Factory * +TAO_Transport::wchar_translator (void) const +{ + return this->wchar_translator_; +} + +ACE_INLINE void +TAO_Transport::char_translator (TAO_Codeset_Translator_Factory *tf) +{ + this->char_translator_ = tf; + this->tcs_set_ = 1; +} + +ACE_INLINE void +TAO_Transport::wchar_translator (TAO_Codeset_Translator_Factory *tf) +{ + this->wchar_translator_ = tf; + if (tf) + this->wchar_allowed_ = 1; + this->tcs_set_ = 1; +} + +ACE_INLINE void +TAO_Transport::wchar_allowed (CORBA::Boolean allowed) +{ + this->wchar_allowed_ = allowed; +} + +/// CodeSet negotiation +ACE_INLINE CORBA::Boolean +TAO_Transport::is_tcs_set(void) const +{ + return tcs_set_; +} + +ACE_INLINE void +TAO_Transport::first_request_sent (void) +{ + this->first_request_ = 0; +} + + + /*****************************************************/ ACE_INLINE TAO_Transport_Refcount_Guard::TAO_Transport_Refcount_Guard (TAO_Transport *t) diff --git a/TAO/tao/default_resource.cpp b/TAO/tao/default_resource.cpp index 24c7cccf5a6..96ac941fc26 100644 --- a/TAO/tao/default_resource.cpp +++ b/TAO/tao/default_resource.cpp @@ -18,6 +18,8 @@ #include "tao/LRU_Connection_Purging_Strategy.h" #include "tao/LF_Strategy_Complete.h" +#include "tao/Codeset_Translator_Factory.h" +#include "tao/Codeset_Manager.h" #include "ace/TP_Reactor.h" #include "ace/Dynamic_Service.h" @@ -25,6 +27,7 @@ #include "ace/Auto_Ptr.h" #include "ace/Memory_Pool.h" #include "ace/Malloc.h" +#include "ace/Codeset_Registry.h" #if !defined (__ACE_INLINE__) # include "tao/default_resource.i" @@ -48,7 +51,12 @@ TAO_Default_Resource_Factory::TAO_Default_Resource_Factory (void) options_processed_ (0), factory_disabled_ (0), cached_connection_lock_type_ (TAO_THREAD_LOCK), - flushing_strategy_type_ (TAO_LEADER_FOLLOWER_FLUSHING) + flushing_strategy_type_ (TAO_LEADER_FOLLOWER_FLUSHING), + ncs_c_ (TAO_Codeset_Manager::default_char_codeset), + ncs_w_ (TAO_Codeset_Manager::default_wchar_codeset), + charcodeset_factories_ (), + wcharcodeset_factories_ (), + codeset_manager_ (0) { } @@ -64,12 +72,30 @@ TAO_Default_Resource_Factory::~TAO_Default_Resource_Factory (void) this->protocol_factories_.reset (); + // Cleanup the character map + TAO_CodesetFactorySetItor cf_end = this->charcodeset_factories_.end (); + TAO_CodesetFactorySetItor cf_iter = this->charcodeset_factories_.begin (); + for (;cf_iter != cf_end; ++cf_iter) + delete *cf_iter; + + this->charcodeset_factories_.reset (); + + // Cleanup the wide character map + cf_end = this->wcharcodeset_factories_.end (); + cf_iter = this->wcharcodeset_factories_.begin (); + for (;cf_iter != cf_end; ++cf_iter) + delete *cf_iter; + + this->wcharcodeset_factories_.reset (); + for (int i = 0; i < this->parser_names_count_; ++i) CORBA::string_free (this->parser_names_[i]); delete [] this->parser_names_; + + delete this->codeset_manager_; } int @@ -162,6 +188,106 @@ TAO_Default_Resource_Factory::init (int argc, ACE_TCHAR *argv[]) } } + /// CodeSet Translators + else if (ACE_OS::strcasecmp (argv[curarg], + ACE_LIB_TEXT("-ORBNativeCharCodeSet")) == 0) + { + curarg++; + + ACE_CDR::ULong ncs; + if (ACE_Codeset_Registry::locale_to_registry(argv[curarg],ncs)) + this->ncs_c_ = ncs; + else + { + char **endPtr =0; + ncs = ACE_OS_String::strtoul(ACE_TEXT_ALWAYS_CHAR(argv[curarg]), endPtr, 0); + // Validate the CodesetId + if (ACE_Codeset_Registry::get_max_bytes(ncs) == 0) + { + if (TAO_debug_level > 0) + ACE_ERROR((LM_ERROR," [TAO_Default_Resource_Factory::init] Invalid Char NativeCodeSet, %x \n", ncs)); + ACE_DECLARE_NEW_CORBA_ENV; + // thrown an exception + ACE_THROW_RETURN (CORBA::BAD_PARAM ( + CORBA::SystemException::_tao_minor_code ( + TAO_ORB_CORE_INIT_LOCATION_CODE, + EINVAL), + CORBA::COMPLETED_NO), + -1); + + } + this->ncs_c_ = ncs; + } + } + + /// CodeSet Translators + else if (ACE_OS::strcasecmp (argv[curarg], + ACE_LIB_TEXT("-ORBNativeWCharCodeSet")) == 0) + { + curarg++; + ACE_CDR::ULong ncs; + if (ACE_Codeset_Registry::locale_to_registry( argv[curarg], ncs)) + this->ncs_w_ = ncs; + else + { + char **endPtr = 0; + ncs = ACE_OS_String::strtoul( ACE_TEXT_ALWAYS_CHAR(argv[curarg]), endPtr, 0); + // Validate the CodesetId + if (ACE_Codeset_Registry::get_max_bytes(ncs) == 0) + { + if (TAO_debug_level > 0) + ACE_ERROR((LM_ERROR," [TAO_Default_Resource_Factory::init] Invalid WChar NativeCodeSet, %x \n", ncs)); + ACE_DECLARE_NEW_CORBA_ENV; + // thrown an exception + ACE_THROW_RETURN (CORBA::BAD_PARAM ( + CORBA::SystemException::_tao_minor_code ( + TAO_ORB_CORE_INIT_LOCATION_CODE, + EINVAL), + CORBA::COMPLETED_NO), + -1); + } + this->ncs_w_ = ncs; + } + } + + /// CodeSet Translators + else if (ACE_OS::strcasecmp (argv[curarg], + ACE_LIB_TEXT("-ORBCharCodesetTranslator")) == 0) + { + // TAO_CodesetFactorySet *pset = this->get_char_codeset_factories (); + curarg++; + if (curarg < argc) + { + TAO_Codeset_Item *item = 0; + ACE_NEW_RETURN (item, + TAO_Codeset_Item (argv[curarg]), + -1); + if (this->charcodeset_factories_.insert (item) == -1) + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%P|%t) Unable to add Codeset factories for %s: %p\n"), + argv[curarg])); + } + } + + /// CodeSet Translators + else if (ACE_OS::strcasecmp (argv[curarg], + ACE_LIB_TEXT("-ORBWCharCodesetTranslator")) == 0) + { + // TAO_CodesetFactorySet *pset = this->get_wchar_codeset_factories (); + curarg++; + if (curarg < argc) + { + TAO_Codeset_Item *item = 0; + ACE_NEW_RETURN (item, + TAO_Codeset_Item (argv[curarg]), + -1); + if (this->wcharcodeset_factories_.insert (item) == -1) + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("(%P|%t) Unable to add Codeset factories for %s: %p\n"), + argv[curarg])); + } + } + else if (ACE_OS::strcasecmp (argv[curarg], ACE_LIB_TEXT("-ORBConnectionCachingStrategy")) == 0) { @@ -807,11 +933,142 @@ TAO_Default_Resource_Factory::disable_factory (void) if (this->options_processed_) { ACE_DEBUG ((LM_DEBUG, - ACE_LIB_TEXT ("TAO (%P|%t) Warning: Resource_Factory options ignored\n") - ACE_LIB_TEXT ("Default Resource Factory is disabled\n"))); + ACE_TEXT ("TAO (%P|%t) Warning: Resource_Factory options ignored\n") + ACE_TEXT ("Default Resource Factory is disabled\n"))); } } + +TAO_Codeset_Manager * +TAO_Default_Resource_Factory::get_codeset_manager() +{ + if (this->codeset_manager_ == 0) + { + CONV_FRAME::CodeSetComponentInfo *csi; + ACE_NEW_RETURN (csi,CONV_FRAME::CodeSetComponentInfo,0); + if (init_codeset_factories_i (charcodeset_factories_) == -1) + { + delete csi; + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) default resource factory failed to init char codeset factories\n")),0); + } + // Initialize the wide character codeset factories + if (init_codeset_factories_i (wcharcodeset_factories_) == -1) + { + delete csi; + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) default resource factory failed to init wchar codeset factories\n")),0); + } + //need autopointer for csi here... + this->get_codeset_ids_i (this->ncs_c_, + this->charcodeset_factories_, + &csi->ForCharData ); + this->get_codeset_ids_i (this->ncs_w_, + this->wcharcodeset_factories_, + &csi->ForWcharData ); + + ACE_NEW_RETURN (this->codeset_manager_, TAO_Codeset_Manager(csi), 0); + } + return this->codeset_manager_; +} + +/// Initialise the specific type codeset factories +int +TAO_Default_Resource_Factory::init_codeset_factories_i (TAO_CodesetFactorySet& factset ) +{ + TAO_CodesetFactorySetItor end = factset.end (); + TAO_CodesetFactorySetItor iter = factset.begin (); + + for (; iter != end; iter++) + { + const ACE_CString &name = (*iter)->codeset_name (); + (*iter)->factory (ACE_Dynamic_Service<TAO_Codeset_Translator_Factory>::instance (name.c_str ())); + if ((*iter)->factory () == 0) + { + ACE_ERROR_RETURN ((LM_ERROR, + ACE_TEXT ("TAO (%P|%t) Unable to load ") + ACE_TEXT ("CodeSet <%s>, %p\n"), + ACE_TEXT_CHAR_TO_TCHAR(name.c_str ()), ""), + -1); + } + if (TAO_debug_level > 0) + { + ACE_DEBUG ((LM_DEBUG, + ACE_TEXT ("TAO (%P|%t) Loaded CodeSet <%s>, ncs = %08x tcs = %08x\n"), + ACE_TEXT_CHAR_TO_TCHAR(name.c_str ()), + (*iter)->factory()->ncs(),(*iter)->factory()->tcs())); + } + } + return 0; +} + +void +TAO_Default_Resource_Factory::get_codeset_ids_i (CONV_FRAME::CodeSetId ncs, + TAO_CodesetFactorySet& factset, + CONV_FRAME::CodeSetComponent* cs_comp) +{ + TAO_CodesetFactorySetItor end = factset.end (); + TAO_CodesetFactorySetItor iter = factset.begin (); + + cs_comp->native_code_set = ncs; + cs_comp->conversion_code_sets.length(factset.size()); + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG,"get_codeset_ids_i, ncs = %08x ccs len = %d\n", + ncs,factset.size())); + + + CORBA::ULong index; + for (index=0; iter != end; iter++) + { + TAO_Codeset_Translator_Factory *trans = (*iter)->factory (); + if (trans->ncs() == ncs) + { + cs_comp->conversion_code_sets[index++] = trans->tcs(); + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG," adding %08x, index = %d\n", + trans->tcs(),index)); + } else + if (TAO_debug_level > 0) + ACE_DEBUG ((LM_DEBUG," skipping trans ncs = %08x, tcs = %08x\n", + trans->ncs(), trans->tcs())); + + } + cs_comp->conversion_code_sets.length(index); +} + +TAO_Codeset_Translator_Factory * +TAO_Default_Resource_Factory::get_char_translator (CONV_FRAME::CodeSetId ncs, + CONV_FRAME::CodeSetId tcs) +{ + return this->get_translator_i (this->charcodeset_factories_,ncs,tcs); +} + +TAO_Codeset_Translator_Factory * +TAO_Default_Resource_Factory::get_wchar_translator (CONV_FRAME::CodeSetId ncs, + CONV_FRAME::CodeSetId tcs) +{ + return this->get_translator_i (this->wcharcodeset_factories_,ncs,tcs); +} + +TAO_Codeset_Translator_Factory * +TAO_Default_Resource_Factory::get_translator_i (TAO_CodesetFactorySet& factset, + CONV_FRAME::CodeSetId ncs, + CONV_FRAME::CodeSetId tcs) +{ + TAO_CodesetFactorySetItor end = factset.end (); + TAO_CodesetFactorySetItor iter = factset.begin (); + + for (; iter != end; iter++) + { + TAO_Codeset_Translator_Factory *fact = (*iter)->factory (); + if( ncs == fact->ncs() && tcs == fact->tcs()) + return fact; + } + + return 0; +} + + // **************************************************************** ACE_STATIC_SVC_DEFINE (TAO_Default_Resource_Factory, @@ -827,6 +1084,7 @@ ACE_FACTORY_DEFINE (TAO, TAO_Default_Resource_Factory) #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) +template class ACE_Dynamic_Service<TAO_Codeset_Translator_Factory>; template class auto_ptr<TAO_Protocol_Factory>; # if defined (ACE_LACKS_AUTO_PTR) \ || !(defined (ACE_HAS_STANDARD_CPP_LIBRARY) \ @@ -836,6 +1094,7 @@ template class ACE_Auto_Basic_Ptr<TAO_Protocol_Factory>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) +#pragma instantiate ACE_Dynamic_Service<TAO_Codeset_Translator_Factory> #pragma instantiate auto_ptr<TAO_Protocol_Factory> # if defined (ACE_LACKS_AUTO_PTR) \ || !(defined (ACE_HAS_STANDARD_CPP_LIBRARY) \ diff --git a/TAO/tao/default_resource.h b/TAO/tao/default_resource.h index 8500447bc79..d0e047f0eaa 100644 --- a/TAO/tao/default_resource.h +++ b/TAO/tao/default_resource.h @@ -23,6 +23,7 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include "ace/Service_Config.h" +#include "tao/CONV_FRAMEC.h" class TAO_Object_Adapter; class TAO_IOR_Parser; @@ -92,6 +93,13 @@ public: TAO_ALLOCATOR_THREAD_LOCK }; + // Translator type + enum TRANSLATOR_TYPE + { + CHAR_TRANSLATOR, + WCHAR_TRANSLATOR + }; + /// Modify and get the source for the CDR allocators int cdr_allocator_source (void); @@ -114,6 +122,15 @@ public: virtual ACE_Allocator* output_cdr_msgblock_allocator (void); virtual TAO_ProtocolFactorySet *get_protocol_factories (void); + virtual TAO_Codeset_Manager *get_codeset_manager (); + +// Get the translators for Char/Wchar Codesets + virtual TAO_Codeset_Translator_Factory *get_char_translator (CONV_FRAME::CodeSetId ncs, + CONV_FRAME::CodeSetId theTcs); + + virtual TAO_Codeset_Translator_Factory *get_wchar_translator (CONV_FRAME::CodeSetId theNcs, + CONV_FRAME::CodeSetId theTcs); + virtual int init_protocol_factories (void); virtual int cache_maximum (void) const; @@ -127,6 +144,9 @@ public: virtual void disable_factory (void); + CONV_FRAME::CodeSetId get_ncs_char (void); + + CONV_FRAME::CodeSetId get_ncs_wchar (void); //@} protected: @@ -221,6 +241,29 @@ private: /// Type of flushing strategy configured int flushing_strategy_type_; + + /// NCS for character and wide character + CONV_FRAME::CodeSetId ncs_c_; + + CONV_FRAME::CodeSetId ncs_w_; + + /// List of Character codeset factories + TAO_CodesetFactorySet charcodeset_factories_; + + /// List of Character codeset factories + TAO_CodesetFactorySet wcharcodeset_factories_; + + TAO_Codeset_Manager *codeset_manager_; + + // Function to initialize a list of char or wchar codeset factories + virtual int init_codeset_factories_i (TAO_CodesetFactorySet& ); + void get_codeset_ids_i (CONV_FRAME::CodeSetId, + TAO_CodesetFactorySet&, + CONV_FRAME::CodeSetComponent *); + TAO_Codeset_Translator_Factory * get_translator_i (TAO_CodesetFactorySet&, + CONV_FRAME::CodeSetId , + CONV_FRAME::CodeSetId); + }; #if defined (__ACE_INLINE__) diff --git a/TAO/tao/tao.mpc b/TAO/tao/tao.mpc index efd65a42772..8e16109eaa4 100644 --- a/TAO/tao/tao.mpc +++ b/TAO/tao/tao.mpc @@ -124,6 +124,8 @@ project : acelib, taoversion, core { DynamicC.cpp OctetSeqC.cpp StringSeqC.cpp + Codeset_Manager.cpp + Codeset_Translator_Factory.cpp ORB_Core.cpp ORB_Core_Auto_Ptr.cpp Collocation_Resolver.cpp diff --git a/TAO/tests/CodeSets/README b/TAO/tests/CodeSets/README new file mode 100644 index 00000000000..a9c106baceb --- /dev/null +++ b/TAO/tests/CodeSets/README @@ -0,0 +1,8 @@ +Codeset translation test. + +First build the IBM1047 - ISO8859 translator library. Then build and run the +"simple" test. + +The translator library may also serve as a reference for building other custom +translators. + diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Factory.cpp b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Factory.cpp new file mode 100644 index 00000000000..9ef933f5a76 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Factory.cpp @@ -0,0 +1,41 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/CodeSets/libs/IBM1047_ISO8859 +// +// = FILENAME +// Char_IBM1047_ISO8859_Factory.cpp +// +// = DESCRIPTION +// A tempate instantiation of the codeset translator factory from TAO. This +// one loads a modified version of ACE's IBM1047 (EBCDIC) to ISO8859 (ASCII) +// translator. +// +// = AUTHORS +// Phil Mesnier <mesnier_p@ociweb.com> +// +// ============================================================================ + +#include "Char_IBM1047_ISO8859_Factory.h" + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + +template class TAO_Codeset_Translator_Factory_T<IBM1047_ISO8859>; + +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + +#pragma instantiate TAO_Codeset_Translator_Factory_T<IBM1047_ISO8859> + +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ + +ACE_STATIC_SVC_DEFINE (Char_IBM1047_ISO8859_Factory, + ACE_TEXT ("Char_IBM1047_ISO8859_Factory"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (Char_IBM1047_ISO8859_Factory), + ACE_Service_Type::DELETE_THIS + | ACE_Service_Type::DELETE_OBJ, + 0) +ACE_FACTORY_DEFINE (IBM1047_ISO8859, Char_IBM1047_ISO8859_Factory) diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Factory.h b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Factory.h new file mode 100644 index 00000000000..dce9d7fb5d2 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Factory.h @@ -0,0 +1,39 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/CodeSets/libs/IBM1047_ISO8859 +// +// = FILENAME +// Char_IBM1047_ISO8859_Factory.h +// +// = DESCRIPTION +// A tempate instantiation of the codeset translator factory from TAO. This +// one loads a modified version of ACE's IBM1047 (EBCDIC) to ISO8859 (ASCII) +// translator. +// +// = AUTHORS +// Phil Mesnier <mesnier_p@ociweb.com> +// +// ============================================================================ + +#ifndef CHAR_IBM1047_ISO8859_FACTORY_H +#define CHAR_IBM1047_ISO8859_FACTORY_H + +#include <ace/pre.h> +#include <ace/Service_Config.h> +#include <tao/Codeset_Translator_Factory.h> + +#include "IBM1047_ISO8859_export.h" +#include "Char_IBM1047_ISO8859_Translator.h" + +typedef IBM1047_ISO8859_Export TAO_Codeset_Translator_Factory_T<IBM1047_ISO8859> Char_IBM1047_ISO8859_Factory; + +ACE_STATIC_SVC_DECLARE_EXPORT (IBM1047_ISO8859, Char_IBM1047_ISO8859_Factory) +ACE_FACTORY_DECLARE (IBM1047_ISO8859, Char_IBM1047_ISO8859_Factory) + +#include <ace/post.h> +#endif /* TAO_CHAR_IBM1047_ISO8859_FACTORY_H */ + diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Translator.cpp b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Translator.cpp new file mode 100644 index 00000000000..84429e99ab3 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Translator.cpp @@ -0,0 +1,190 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// ace +// +// = FILENAME +// Char_IBM1047_ISO8859_Translator.cpp +// +// = DESCRIPTION +// Defines the arrays required to convert between ISO8859 (aka +// Latin/1) and IBM1047 (aka EBCDIC). +// +// = AUTHOR +// Jim Rogers (jrogers@viasoft.com) +// +// ============================================================================ + +#include "Char_IBM1047_ISO8859_Translator.h" + +ACE_RCSID(IBM1047_ISO8859, Char_IBM1047_ISO8859_Translator, "$Id$") + +// **************************************************************** + +IBM1047_ISO8859::IBM1047_ISO8859 (void) +{ +} + +IBM1047_ISO8859::~IBM1047_ISO8859 (void) +{ +} + +ACE_CDR::Boolean +IBM1047_ISO8859::read_char (ACE_InputCDR &in, + ACE_CDR::Char &x) +{ + if (this->read_1 (in, ACE_reinterpret_cast (ACE_CDR::Octet*, &x))) + { + x = to_IBM1047[x]; + return 1; + } + return 0; +} + +ACE_CDR::Boolean +IBM1047_ISO8859::read_string (ACE_InputCDR& in, + ACE_CDR::Char *& x) +{ + ACE_CDR::ULong len; + + in.read_ulong (len); + + if (len > 0) + { + // ACE_DEBUG ((LM_DEBUG,"read_string: len = %u\n",len)); + ACE_NEW_RETURN (x, + ACE_CDR::Char[len], + 0); + + if (this->read_char_array (in, x, len)) + return 1; + + delete [] x; + } + + x = 0; + return 0; +} + +ACE_CDR::Boolean +IBM1047_ISO8859::read_char_array (ACE_InputCDR& in, + ACE_CDR::Char* x, + ACE_CDR::ULong len) +{ + if (this->read_array (in, + x, + ACE_CDR::OCTET_SIZE, + ACE_CDR::OCTET_ALIGN, + len)) + { + for (ACE_CDR::ULong i = 0; i != len; ++i) { +#if 0 + ACE_DEBUG ((LM_DEBUG,"%x -> ",(unsigned char)x[i])); +#endif + x[i] = (unsigned char)to_IBM1047[(unsigned char)x[i]]; +#if 0 + if (i == len-1) + ACE_DEBUG ((LM_DEBUG,"%x\n",(unsigned char)x[i])); + else + ACE_DEBUG ((LM_DEBUG,"%x, ",(unsigned char)x[i])); +#endif + } + return 1; + } + + return 0; +} + +ACE_CDR::Boolean +IBM1047_ISO8859::write_char (ACE_OutputCDR& out, + ACE_CDR::Char x) +{ + return this->write_1 (out, + ACE_reinterpret_cast (const ACE_CDR::Octet*, + &from_IBM1047[x])); +} + +ACE_CDR::Boolean +IBM1047_ISO8859::write_string (ACE_OutputCDR& out, + ACE_CDR::ULong len, + const ACE_CDR::Char* x) +{ + if (out.write_ulong (len + 1)) + return this->write_char_array (out, x, len + 1); + return 0; +} + +ACE_CDR::Boolean +IBM1047_ISO8859::write_char_array (ACE_OutputCDR& out, + const ACE_CDR::Char* x, + ACE_CDR::ULong len) +{ + char *buf; + if (this->adjust (out, len, 1, buf) == 0) + { + ACE_OS::memcpy (buf, x, len); + + for (ACE_CDR::ULong i = 0; i != len; ++i) { +#if 0 + ACE_DEBUG ((LM_DEBUG,"%x -> ",(unsigned char)buf[i])); +#endif + buf[i] = (unsigned char)from_IBM1047[(unsigned char)buf[i]]; +#if 0 + if (i == len-1) + ACE_DEBUG ((LM_DEBUG,"%x\n",(unsigned char)buf[i])); + else + ACE_DEBUG ((LM_DEBUG,"%x, ",(unsigned char)buf[i])); +#endif + } + + return 1; + } + + this->good_bit(out, 0); + return 0; +} + +// **************************************************************** + +char to_IBM1047[257] = +{ + "\x00\x01\x02\x03\x37\x2D\x2E\x2F\x16\x05\x25\x0B\x0C\x0D\x0E\x0F" // 00-0F + "\x10\x11\x12\x13\x3C\x3D\x32\x26\x18\x19\x3F\x27\x22\x1D\x35\x1F" // 10-1F + "\x40\x5A\x7F\x7B\x5B\x6C\x50\x7D\x4D\x5D\x5C\x4E\x6B\x60\x4B\x61" // 20-2F + "\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\x7A\x5E\x4C\x7E\x6E\x6F" // 30-3F + "\x7C\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xD1\xD2\xD3\xD4\xD5\xD6" // 40-4F + "\xD7\xD8\xD9\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xAD\xE0\xBD\x5F\x6D" // 50-5F + "\x79\x81\x82\x83\x84\x85\x86\x87\x88\x89\x91\x92\x93\x94\x95\x96" // 60-6F + "\x97\x98\x99\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xC0\x4F\xD0\xA1\x07" // 70-7F + "\x43\x20\x21\x1C\x23\xEB\x24\x9B\x71\x28\x38\x49\x90\xBA\xEC\xDF" // 80-8F + "\x45\x29\x2A\x9D\x72\x2B\x8A\x9A\x67\x56\x64\x4A\x53\x68\x59\x46" // 90-9F + "\xEA\xDA\x2C\xDE\x8B\x55\x41\xFE\x58\x51\x52\x48\x69\xDB\x8E\x8D" // A0-AF + "\x73\x74\x75\xFA\x15\xB0\xB1\xB3\xB4\xB5\x6A\xB7\xB8\xB9\xCC\xBC" // B0-BF + "\xAB\x3E\x3B\x0A\xBF\x8F\x3A\x14\xA0\x17\xCB\xCA\x1A\x1B\x9C\x04" // C0-CF + "\x34\xEF\x1E\x06\x08\x09\x77\x70\xBE\xBB\xAC\x54\x63\x65\x66\x62" // D0-DF + "\x30\x42\x47\x57\xEE\x33\xB6\xE1\xCD\xED\x36\x44\xCE\xCF\x31\xAA" // E0-EF + "\xFC\x9E\xAE\x8C\xDD\xDC\x39\xFB\x80\xAF\xFD\x78\x76\xB2\x9F\xFF" // F0-FF +}; + +char from_IBM1047[257] = +{ + "\x00\x01\x02\x03\xCF\x09\xD3\x7F\xD4\xD5\xC3\x0B\x0C\x0D\x0E\x0F" // 00-0F + "\x10\x11\x12\x13\xC7\xB4\x08\xC9\x18\x19\xCC\xCD\x83\x1D\xD2\x1F" // 10-1F + "\x81\x82\x1C\x84\x86\x0A\x17\x1B\x89\x91\x92\x95\xA2\x05\x06\x07" // 20-2F + "\xE0\xEE\x16\xE5\xD0\x1E\xEA\x04\x8A\xF6\x20\x20\x20\x20\xC1\x1A" // 30-3F + "\x20\xA6\xE1\x80\xEB\x90\x9F\xE2\xAB\x8B\x9B\x2E\x3C\x28\x2B\x7C" // 40-4F + "\x26\xA9\xAA\x9C\xDB\xA5\x99\xE3\xA8\x9E\x21\x24\x2A\x29\x3B\x5E" // 50-5F + "\x2D\x2F\xDF\xDC\x9A\xDD\xDE\x98\x9D\xAC\xBA\x2C\x25\x5F\x3E\x3F" // 60-6F + "\xD7\x88\x94\xB0\xB1\xB2\xFC\xD6\xFB\x60\x3A\x23\x40\x27\x3D\x22" // 70-7F + "\xF8\x61\x62\x63\x64\x65\x66\x67\x68\x69\x96\xA4\xF3\xAF\xAE\xC5" // 80-8F + "\x8C\x6A\x6B\x6C\x6D\x6E\x6F\x70\x71\x72\x97\x87\xCE\x93\xF1\xFE" // 90-9F + "\xC8\x7E\x73\x74\x75\x76\x77\x78\x79\x7A\xEF\xC0\xDA\x5B\xF2\xF9" // A0-AF + "\xB5\xB6\xFD\xB7\xB8\xB9\xE6\xBB\xBC\xBD\x8D\xD9\xBF\x5D\xD8\xC4" // B0-BF + "\x7B\x41\x42\x43\x44\x45\x46\x47\x48\x49\xCB\xCA\xBE\xE8\xEC\xED" // C0-CF + "\x7D\x4A\x4B\x4C\x4D\x4E\x4F\x50\x51\x52\xA1\xAD\xF5\xF4\xA3\x8F" // D0-DF + "\x5C\xE7\x53\x54\x55\x56\x57\x58\x59\x5A\xA0\x85\x8E\xE9\xE4\xD1" // E0-EF + "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\xB3\xF7\xF0\xFA\xA7\xFF" // F0-FF +}; diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Translator.h b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Translator.h new file mode 100644 index 00000000000..f97d01a5ed5 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Char_IBM1047_ISO8859_Translator.h @@ -0,0 +1,75 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Char_IBM1047_ISO8859_Translator.h + * + * $Id$ + * + * Declares the arrays required to convert between ISO8859 (aka + * Latin/1) and IBM1047 (aka EBCDIC). + * + * + * @author Jim Rogers (jrogers@viasoft.com) + */ +//============================================================================= + + +#ifndef TAO_CHAR_IBM1047_ISO8859_TRANSLATOR_H +#define TAO_CHAR_IBM1047_ISO8859_TRANSLATOR_H +#include "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/CDR_Stream.h" +#include "IBM1047_ISO8859_export.h" + +extern IBM1047_ISO8859_Export char to_IBM1047[257]; +extern IBM1047_ISO8859_Export char from_IBM1047[257]; + +// **************************************************************** + +/** + * @class ACE_Char_IBM1047_ISO8859 + * + * @brief Codeset translation specialization. + * + * This class performs the codeset translation: + * - Native: IBM_1047 (i.e. EBCDIC) + * - Stream: ISO-8859 (i.e. Latin/1) + */ +class IBM1047_ISO8859_Export IBM1047_ISO8859 : public ACE_Char_Codeset_Translator +{ +public: + /// A do nothing constructor. + IBM1047_ISO8859 (void); + + /// Virtual destruction + virtual ~IBM1047_ISO8859 (void); + + // = Documented in $ACE_ROOT/ace/CDR_Stream.h + virtual ACE_CDR::Boolean read_char (ACE_InputCDR &, + ACE_CDR::Char &); + virtual ACE_CDR::Boolean read_string (ACE_InputCDR &, + ACE_CDR::Char *&); + virtual ACE_CDR::Boolean read_char_array (ACE_InputCDR &, + ACE_CDR::Char *, + ACE_CDR::ULong); + virtual ACE_CDR::Boolean write_char (ACE_OutputCDR &, + ACE_CDR::Char); + virtual ACE_CDR::Boolean write_string (ACE_OutputCDR &, + ACE_CDR::ULong, + const ACE_CDR::Char *); + virtual ACE_CDR::Boolean write_char_array (ACE_OutputCDR &, + const ACE_CDR::Char *, + ACE_CDR::ULong); + virtual ACE_CDR::ULong ncs () {return 0x10020417;} + virtual ACE_CDR::ULong tcs () {return 0x00010001;} +}; + +#include "ace/post.h" +#endif /* TAO_CHAR_IBM1047_ISO8859_TRANSLATOR_H */ diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859.dsp b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859.dsp new file mode 100644 index 00000000000..e7ddf3cf00e --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859.dsp @@ -0,0 +1,125 @@ +# Microsoft Developer Studio Project File - Name="IBM1047_ISO8859" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** •ÒW‚µ‚È‚¢‚Å‚‚¾‚³‚¢ **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=IBM1047_ISO8859 - Win32 Debug
+!MESSAGE ‚±‚ê‚Í—LŒø‚ÈÒ²¸Ì§²Ù‚ł͂ ‚è‚Ü‚¹‚ñB ‚±‚ÌÌßÛ¼Þª¸Ä‚ðËÞÙÄÞ‚·‚邽‚ß‚É‚Í NMAKE ‚ðŽg—p‚µ‚Ä‚‚¾‚³‚¢B
+!MESSAGE [Ò²¸Ì§²Ù‚Ì´¸½Îß°Ä] ºÏÝÄÞ‚ðŽg—p‚µ‚ÄŽÀs‚µ‚Ä‚‚¾‚³‚¢
+!MESSAGE
+!MESSAGE NMAKE /f "IBM1047_ISO8859.mak".
+!MESSAGE
+!MESSAGE NMAKE ‚ÌŽÀsŽž‚É\¬‚ðŽw’è‚Å‚«‚Ü‚·
+!MESSAGE ºÏÝÄÞ ×²Ýã‚ÅϸۂÌÝ’è‚ð’è‹`‚µ‚Ü‚·B—á:
+!MESSAGE
+!MESSAGE NMAKE /f "IBM1047_ISO8859.mak" CFG="IBM1047_ISO8859 - Win32 Debug"
+!MESSAGE
+!MESSAGE ‘I‘ð‰Â”\‚ÈËÞÙÄÞ Ó°ÄÞ:
+!MESSAGE
+!MESSAGE "IBM1047_ISO8859 - Win32 Release" ("Win32 (x86) Dynamic-Link Library" —p)
+!MESSAGE "IBM1047_ISO8859 - Win32 Debug" ("Win32 (x86) Dynamic-Link Library" —p)
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "IBM1047_ISO8859 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "DLL\Release\IBM1047_ISO8859"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /D "TAO_IBM1047_ISO8859_BUILD_DLL" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 TAO.lib ace.lib /nologo /dll /map /debug /machine:I386 /out:"..\..\..\bin\TAO_IBM1047_ISO8859.dll" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "IBM1047_ISO8859___Win32_Debug"
+# PROP BASE Intermediate_Dir "IBM1047_ISO8859___Win32_Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "DLL\Debug\IBM1047_ISO8859"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /D "TAO_IBM1047_ISO8859_BUILD_DLL" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 TAOd.lib aced.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\bin\TAO_IBM1047_ISO8859d.dll" /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace"
+
+!ENDIF
+
+# Begin Target
+
+# Name "IBM1047_ISO8859 - Win32 Release"
+# Name "IBM1047_ISO8859 - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Factory.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Translator.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Factory.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Translator.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\codeset_export.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859.vcp b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859.vcp new file mode 100644 index 00000000000..90d95072cb9 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859.vcp @@ -0,0 +1,874 @@ +# Microsoft eMbedded Visual Tools Project File - Name="IBM1047_ISO8859" - Package Owner=<4>
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (WCE x86) Dynamic-Link Library" 0x8302
+# TARGTYPE "Win32 (WCE ARM) Dynamic-Link Library" 0x8502
+
+CFG=IBM1047_ISO8859 - Win32 (WCE ARM) Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "IBM1047_ISO8859.vcn".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "IBM1047_ISO8859.vcn" CFG="IBM1047_ISO8859 - Win32 (WCE ARM) Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "IBM1047_ISO8859 - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Dynamic-Link Library")
+!MESSAGE "IBM1047_ISO8859 - Win32 (WCE ARM) Debug" (based on "Win32 (WCE ARM) Dynamic-Link Library")
+!MESSAGE "IBM1047_ISO8859 - Win32 (WCE x86) Release" (based on "Win32 (WCE x86) Dynamic-Link Library")
+!MESSAGE "IBM1047_ISO8859 - Win32 (WCE x86) Debug" (based on "Win32 (WCE x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+# PROP ATL_Project 2
+
+!IF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE ARM) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ARMRel"
+# PROP BASE Intermediate_Dir "ARMRel"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "../LIB/Release/ARM"
+# PROP Intermediate_Dir "Release/ARM"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /YX /Oxs /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "../../.." /I "../.." /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "NDEBUG" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /D "TAO_IBM1047_ISO8859_BUILD_DLL" /YX /Oxs /M$(CECrtMT) /c
+MTL=midl.exe
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
+# ADD LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"$(CENoDefaultLib)" /out:"../../../bin/Release/ARM/TAO_IBM1047_ISO8859.dll" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE ARM) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "ARMDbg"
+# PROP BASE Intermediate_Dir "ARMDbg"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "../../LIB/Debug/ARM"
+# PROP Intermediate_Dir "Debug/ARM"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "ARM" /d "_ARM_" /r
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "../../.." /I "../.." /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /D "TAO_IBM1047_ISO8859_BUILD_DLL" /YX /M$(CECrtMTDebug) /c
+MTL=midl.exe
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 commctrl.lib coredll.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"$(CENoDefaultLib)" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
+# ADD LINK32 commctrl.lib coredll.lib aced.lib ace_osd.lib taod.lib /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"$(CENoDefaultLib)" /out:"../../../bin/Debug/ARM/TAO_IBM1047_ISO8859d.dll" /libpath:"../../..\LIB\Debug\ARM" /libpath:"../..\LIB\Debug\ARM" /subsystem:$(CESubsystem) /align:"4096" /MACHINE:ARM
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE x86) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "X86Rel"
+# PROP BASE Intermediate_Dir "X86Rel"
+# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "X86Rel"
+# PROP Intermediate_Dir "X86Rel"
+# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "NDEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /YX /Gs8192 /GF /Oxs /c
+# ADD CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /YX /Gs8192 /GF /Oxs /c
+MTL=midl.exe
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86
+# ADD LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE x86) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "X86Dbg"
+# PROP BASE Intermediate_Dir "X86Dbg"
+# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "X86Dbg"
+# PROP Intermediate_Dir "X86Dbg"
+# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+RSC=rc.exe
+# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r
+# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "DEBUG" /d "$(CePlatform)" /d "_X86_" /d "x86" /d "_i386_" /r
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /YX /Gs8192 /GF /c
+# ADD CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_USRDLL" /D "IBM1047_ISO8859_EXPORTS" /YX /Gs8192 /GF /c
+MTL=midl.exe
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86
+# ADD LINK32 commctrl.lib coredll.lib $(CEx86Corelibc) /nologo /base:"0x00100000" /stack:0x10000,0x1000 /entry:"_DllMainCRTStartup" /dll /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:$(CENoDefaultLib) /subsystem:$(CESubsystem) /MACHINE:IX86
+
+!ENDIF
+
+# Begin Target
+
+# Name "IBM1047_ISO8859 - Win32 (WCE ARM) Release"
+# Name "IBM1047_ISO8859 - Win32 (WCE ARM) Debug"
+# Name "IBM1047_ISO8859 - Win32 (WCE x86) Release"
+# Name "IBM1047_ISO8859 - Win32 (WCE x86) Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Factory.cpp
+
+!IF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE ARM) Release"
+
+DEP_CPP_CHAR_=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\CORBA_macros.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Handle_Set.h"\
+ "..\..\..\ace\Handle_Set.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\Reactor.h"\
+ "..\..\..\ace\Reactor.i"\
+ "..\..\..\ace\Reactor_Impl.h"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Service_Config.h"\
+ "..\..\..\ace\Service_Config.i"\
+ "..\..\..\ace\Service_Object.h"\
+ "..\..\..\ace\Service_Object.i"\
+ "..\..\..\ace\Shared_Object.h"\
+ "..\..\..\ace\Shared_Object.i"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\SString.h"\
+ "..\..\..\ace\SString.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\Svc_Conf_Tokens.h"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Timer_Queue.h"\
+ "..\..\..\ace\Timer_Queue_T.cpp"\
+ "..\..\..\ace\Timer_Queue_T.h"\
+ "..\..\..\ace\Timer_Queue_T.i"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Queue.cpp"\
+ "..\..\..\ace\Unbounded_Queue.h"\
+ "..\..\..\ace\Unbounded_Queue.inl"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ "..\cdr.h"\
+ "..\CDR.i"\
+ "..\Codeset_Translator_Factory.h"\
+ "..\Codeset_Translator_Factory_T.cpp"\
+ "..\Codeset_Translator_Factory_T.h"\
+ "..\CONV_FRAMEC.h"\
+ "..\CONV_FRAMEC.i"\
+ "..\corbafwd.h"\
+ "..\corbafwd.i"\
+ "..\debug.h"\
+ "..\Environment.h"\
+ "..\Environment.i"\
+ "..\Managed_Types.h"\
+ "..\Managed_Types.i"\
+ "..\orbconf.h"\
+ "..\sequence.h"\
+ "..\Sequence.i"\
+ "..\Sequence_T.cpp"\
+ "..\Sequence_T.h"\
+ "..\Sequence_T.i"\
+ "..\TAO_Export.h"\
+ "..\try_macros.h"\
+ "..\varbase.h"\
+ ".\Char_IBM1047_ISO8859_Factory.h"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE ARM) Debug"
+
+DEP_CPP_CHAR_=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\CORBA_macros.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Handle_Set.h"\
+ "..\..\..\ace\Handle_Set.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\Reactor.h"\
+ "..\..\..\ace\Reactor.i"\
+ "..\..\..\ace\Reactor_Impl.h"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Service_Config.h"\
+ "..\..\..\ace\Service_Config.i"\
+ "..\..\..\ace\Service_Object.h"\
+ "..\..\..\ace\Service_Object.i"\
+ "..\..\..\ace\Shared_Object.h"\
+ "..\..\..\ace\Shared_Object.i"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\SString.h"\
+ "..\..\..\ace\SString.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\Svc_Conf_Tokens.h"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Timer_Queue.h"\
+ "..\..\..\ace\Timer_Queue_T.cpp"\
+ "..\..\..\ace\Timer_Queue_T.h"\
+ "..\..\..\ace\Timer_Queue_T.i"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Queue.cpp"\
+ "..\..\..\ace\Unbounded_Queue.h"\
+ "..\..\..\ace\Unbounded_Queue.inl"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ "..\cdr.h"\
+ "..\CDR.i"\
+ "..\Codeset_Translator_Factory.h"\
+ "..\Codeset_Translator_Factory_T.cpp"\
+ "..\Codeset_Translator_Factory_T.h"\
+ "..\CONV_FRAMEC.h"\
+ "..\CONV_FRAMEC.i"\
+ "..\corbafwd.h"\
+ "..\corbafwd.i"\
+ "..\debug.h"\
+ "..\Environment.h"\
+ "..\Environment.i"\
+ "..\Managed_Types.h"\
+ "..\Managed_Types.i"\
+ "..\orbconf.h"\
+ "..\sequence.h"\
+ "..\Sequence.i"\
+ "..\Sequence_T.cpp"\
+ "..\Sequence_T.h"\
+ "..\Sequence_T.i"\
+ "..\TAO_Export.h"\
+ "..\try_macros.h"\
+ "..\varbase.h"\
+ ".\Char_IBM1047_ISO8859_Factory.h"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE x86) Release"
+
+NODEP_CPP_CHAR_=\
+ ".\tao\IBM1047_ISO8859\Char_IBM1047_ISO8859_Factory.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE x86) Debug"
+
+NODEP_CPP_CHAR_=\
+ ".\tao\IBM1047_ISO8859\Char_IBM1047_ISO8859_Factory.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Translator.cpp
+
+!IF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE ARM) Release"
+
+DEP_CPP_CHAR_I=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE ARM) Debug"
+
+DEP_CPP_CHAR_I=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE x86) Release"
+
+NODEP_CPP_CHAR_I=\
+ ".\tao\IBM1047_ISO8859\Char_IBM1047_ISO8859_Translator.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859 - Win32 (WCE x86) Debug"
+
+NODEP_CPP_CHAR_I=\
+ ".\tao\IBM1047_ISO8859\Char_IBM1047_ISO8859_Translator.h"\
+
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Factory.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Translator.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\codeset_export.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_Static.dsp b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_Static.dsp new file mode 100644 index 00000000000..e59b46e2346 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_Static.dsp @@ -0,0 +1,102 @@ +# Microsoft Developer Studio Project File - Name="IBM1047_ISO8859_Static" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=IBM1047_ISO8859_Static - Win32 Static Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "IBM1047_ISO8859_Static.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "IBM1047_ISO8859_Static.mak" CFG="IBM1047_ISO8859_Static - Win32 Static Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "IBM1047_ISO8859_Static - Win32 Static Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "IBM1047_ISO8859_Static - Win32 Static Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 Static Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "LIB\Release\IBM1047_ISO8859"
+# PROP Target_Dir ""
+MTL=midl.exe
+LINK32=link.exe -lib
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /I "../" /I "../../" /I "../../../" /D "_WINDOWS" /D "_CONSOLE" /D "NDEBUG" /D "WIN32" /D "TAO_AS_STATIC_LIBS" /D "ACE_AS_STATIC_LIBS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"IBM1047_ISO8859s.lib"
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 Static Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "LIB\Debug\IBM1047_ISO8859"
+# PROP Target_Dir ""
+MTL=midl.exe
+LINK32=link.exe -lib
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "_WINDOWS" /D "_CONSOLE" /D "_DEBUG" /D "WIN32" /D "ACE_AS_STATIC_LIBS" /D "TAO_AS_STATIC_LIBS" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"IBM1047_ISO8859sd.lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "IBM1047_ISO8859_Static - Win32 Static Release"
+# Name "IBM1047_ISO8859_Static - Win32 Static Debug"
+# Begin Group "Inline Files"
+
+# PROP Default_Filter "i"
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h"
+# End Group
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp"
+# End Group
+# End Target
+# End Project
diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_Static.vcp b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_Static.vcp new file mode 100644 index 00000000000..aa846b875ca --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_Static.vcp @@ -0,0 +1,1448 @@ +# Microsoft eMbedded Visual Tools Project File - Name="IBM1047_ISO8859_Static" - Package Owner=<4>
+# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (WCE x86) Static Library" 0x8304
+# TARGTYPE "Win32 (WCE ARM) Static Library" 0x8504
+
+CFG=IBM1047_ISO8859_Static - Win32 (WCE ARM) Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "IBM1047_ISO8859_Static.vcn".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "IBM1047_ISO8859_Static.vcn" CFG="IBM1047_ISO8859_Static - Win32 (WCE ARM) Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "IBM1047_ISO8859_Static - Win32 (WCE ARM) Release" (based on "Win32 (WCE ARM) Static Library")
+!MESSAGE "IBM1047_ISO8859_Static - Win32 (WCE ARM) Debug" (based on "Win32 (WCE ARM) Static Library")
+!MESSAGE "IBM1047_ISO8859_Static - Win32 (WCE x86) Release" (based on "Win32 (WCE x86) Static Library")
+!MESSAGE "IBM1047_ISO8859_Static - Win32 (WCE x86) Debug" (based on "Win32 (WCE x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+# PROP ATL_Project 2
+
+!IF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE ARM) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ARMRel"
+# PROP BASE Intermediate_Dir "ARMRel"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "../../../lib/Release/ARM"
+# PROP Intermediate_Dir "ARMRel"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "NDEBUG" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /Oxs /M$(CECrtMT) /c
+# ADD CPP /nologo /W3 /I "../../.." /I "../.." /D "NDEBUG" /D "ARM" /D "_ARM_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "ACE_AS_STATIC_LIBS" /D "TAO_AS_STATIC_LIBS" /YX /Oxs /M$(CECrtMT) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"../../../lib/Release/ARM/TAO_IBM1047_ISO8859s.lib"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE ARM) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "ARMDbg"
+# PROP BASE Intermediate_Dir "ARMDbg"
+# PROP BASE CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "ARMDbg"
+# PROP Intermediate_Dir "ARMDbg"
+# PROP CPU_ID "{D6518FFC-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=clarm.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "ARM" /D "_ARM_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /YX /M$(CECrtMTDebug) /c
+# ADD CPP /nologo /W3 /Zi /Od /I "../../.." /I "../.." /D "DEBUG" /D "ARM" /D "_ARM_" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "ACE_AS_STATIC_LIBS" /D "TAO_AS_STATIC_LIBS" /YX /M$(CECrtMTDebug) /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"../../../bin/ARMDbg/TAO_IBM1047_ISO8859sd.lib"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE x86) Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "X86Rel"
+# PROP BASE Intermediate_Dir "X86Rel"
+# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "X86Rel"
+# PROP Intermediate_Dir "X86Rel"
+# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "NDEBUG" /D "_LIB" /YX /Gs8192 /GF /Oxs /c
+# ADD CPP /nologo /W3 /I "../../.." /I "../.." /D "_i386_" /D "_X86_" /D "x86" /D "NDEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "ACE_AS_STATIC_LIBS" /D "TAO_AS_STATIC_LIBS" /YX /Gs8192 /GF /Oxs /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"../../../bin/X86Rel/TAO_IBM1047_ISO8859s.lib"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE x86) Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "X86Dbg"
+# PROP BASE Intermediate_Dir "X86Dbg"
+# PROP BASE CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP BASE Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "X86Dbg"
+# PROP Intermediate_Dir "X86Dbg"
+# PROP CPU_ID "{D6518FF3-710F-11D3-99F2-00105A0DF099}"
+# PROP Platform_ID "{8A9A2F80-6887-11D3-842E-005004848CBA}"
+# PROP Target_Dir ""
+CPP=cl.exe
+# ADD BASE CPP /nologo /W3 /Zi /Od /D "DEBUG" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D "_i386_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /D "_LIB" /YX /Gs8192 /GF /c
+# ADD CPP /nologo /W3 /Zi /Od /I "../../.." /I "../.." /D "DEBUG" /D "_i386_" /D "_X86_" /D "x86" /D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "_LIB" /D "ACE_AS_STATIC_LIBS" /D "TAO_AS_STATIC_LIBS" /YX /Gs8192 /GF /c
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"../../../bin/X86Dbg/TAO_IBM1047_ISO8859sd.lib"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+
+!ENDIF
+
+# Begin Target
+
+# Name "IBM1047_ISO8859_Static - Win32 (WCE ARM) Release"
+# Name "IBM1047_ISO8859_Static - Win32 (WCE ARM) Debug"
+# Name "IBM1047_ISO8859_Static - Win32 (WCE x86) Release"
+# Name "IBM1047_ISO8859_Static - Win32 (WCE x86) Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Factory.cpp
+
+!IF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE ARM) Release"
+
+DEP_CPP_CHAR_=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\CORBA_macros.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Handle_Set.h"\
+ "..\..\..\ace\Handle_Set.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\Reactor.h"\
+ "..\..\..\ace\Reactor.i"\
+ "..\..\..\ace\Reactor_Impl.h"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Service_Config.h"\
+ "..\..\..\ace\Service_Config.i"\
+ "..\..\..\ace\Service_Object.h"\
+ "..\..\..\ace\Service_Object.i"\
+ "..\..\..\ace\Shared_Object.h"\
+ "..\..\..\ace\Shared_Object.i"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\SString.h"\
+ "..\..\..\ace\SString.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\Svc_Conf_Tokens.h"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Timer_Queue.h"\
+ "..\..\..\ace\Timer_Queue_T.cpp"\
+ "..\..\..\ace\Timer_Queue_T.h"\
+ "..\..\..\ace\Timer_Queue_T.i"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Queue.cpp"\
+ "..\..\..\ace\Unbounded_Queue.h"\
+ "..\..\..\ace\Unbounded_Queue.inl"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ "..\CDR.h"\
+ "..\CDR.i"\
+ "..\Codeset_Translator_Factory.h"\
+ "..\Codeset_Translator_Factory_T.cpp"\
+ "..\Codeset_Translator_Factory_T.h"\
+ "..\CONV_FRAMEC.h"\
+ "..\CONV_FRAMEC.i"\
+ "..\corbafwd.h"\
+ "..\corbafwd.i"\
+ "..\debug.h"\
+ "..\Environment.h"\
+ "..\Environment.i"\
+ "..\Managed_Types.h"\
+ "..\Managed_Types.i"\
+ "..\orbconf.h"\
+ "..\Sequence.h"\
+ "..\Sequence.i"\
+ "..\Sequence_T.cpp"\
+ "..\Sequence_T.h"\
+ "..\Sequence_T.i"\
+ "..\TAO_Export.h"\
+ "..\try_macros.h"\
+ "..\varbase.h"\
+ ".\Char_IBM1047_ISO8859_Factory.h"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE ARM) Debug"
+
+DEP_CPP_CHAR_=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\CORBA_macros.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Handle_Set.h"\
+ "..\..\..\ace\Handle_Set.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\Reactor.h"\
+ "..\..\..\ace\Reactor.i"\
+ "..\..\..\ace\Reactor_Impl.h"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Service_Config.h"\
+ "..\..\..\ace\Service_Config.i"\
+ "..\..\..\ace\Service_Object.h"\
+ "..\..\..\ace\Service_Object.i"\
+ "..\..\..\ace\Shared_Object.h"\
+ "..\..\..\ace\Shared_Object.i"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\SString.h"\
+ "..\..\..\ace\SString.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\Svc_Conf_Tokens.h"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Timer_Queue.h"\
+ "..\..\..\ace\Timer_Queue_T.cpp"\
+ "..\..\..\ace\Timer_Queue_T.h"\
+ "..\..\..\ace\Timer_Queue_T.i"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Queue.cpp"\
+ "..\..\..\ace\Unbounded_Queue.h"\
+ "..\..\..\ace\Unbounded_Queue.inl"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ "..\CDR.h"\
+ "..\CDR.i"\
+ "..\Codeset_Translator_Factory.h"\
+ "..\Codeset_Translator_Factory_T.cpp"\
+ "..\Codeset_Translator_Factory_T.h"\
+ "..\CONV_FRAMEC.h"\
+ "..\CONV_FRAMEC.i"\
+ "..\corbafwd.h"\
+ "..\corbafwd.i"\
+ "..\debug.h"\
+ "..\Environment.h"\
+ "..\Environment.i"\
+ "..\Managed_Types.h"\
+ "..\Managed_Types.i"\
+ "..\orbconf.h"\
+ "..\Sequence.h"\
+ "..\Sequence.i"\
+ "..\Sequence_T.cpp"\
+ "..\Sequence_T.h"\
+ "..\Sequence_T.i"\
+ "..\TAO_Export.h"\
+ "..\try_macros.h"\
+ "..\varbase.h"\
+ ".\Char_IBM1047_ISO8859_Factory.h"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE x86) Release"
+
+DEP_CPP_CHAR_=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\CORBA_macros.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Handle_Set.h"\
+ "..\..\..\ace\Handle_Set.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\Reactor.h"\
+ "..\..\..\ace\Reactor.i"\
+ "..\..\..\ace\Reactor_Impl.h"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Service_Config.h"\
+ "..\..\..\ace\Service_Config.i"\
+ "..\..\..\ace\Service_Object.h"\
+ "..\..\..\ace\Service_Object.i"\
+ "..\..\..\ace\Shared_Object.h"\
+ "..\..\..\ace\Shared_Object.i"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\SString.h"\
+ "..\..\..\ace\SString.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\Svc_Conf_Tokens.h"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Timer_Queue.h"\
+ "..\..\..\ace\Timer_Queue_T.cpp"\
+ "..\..\..\ace\Timer_Queue_T.h"\
+ "..\..\..\ace\Timer_Queue_T.i"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Queue.cpp"\
+ "..\..\..\ace\Unbounded_Queue.h"\
+ "..\..\..\ace\Unbounded_Queue.inl"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ "..\CDR.h"\
+ "..\CDR.i"\
+ "..\Codeset_Translator_Factory.h"\
+ "..\Codeset_Translator_Factory_T.cpp"\
+ "..\Codeset_Translator_Factory_T.h"\
+ "..\CONV_FRAMEC.h"\
+ "..\CONV_FRAMEC.i"\
+ "..\corbafwd.h"\
+ "..\corbafwd.i"\
+ "..\debug.h"\
+ "..\Environment.h"\
+ "..\Environment.i"\
+ "..\Managed_Types.h"\
+ "..\Managed_Types.i"\
+ "..\orbconf.h"\
+ "..\Sequence.h"\
+ "..\Sequence.i"\
+ "..\Sequence_T.cpp"\
+ "..\Sequence_T.h"\
+ "..\Sequence_T.i"\
+ "..\TAO_Export.h"\
+ "..\try_macros.h"\
+ "..\varbase.h"\
+ ".\Char_IBM1047_ISO8859_Factory.h"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE x86) Debug"
+
+DEP_CPP_CHAR_=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\CORBA_macros.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Handle_Set.h"\
+ "..\..\..\ace\Handle_Set.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\Reactor.h"\
+ "..\..\..\ace\Reactor.i"\
+ "..\..\..\ace\Reactor_Impl.h"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Service_Config.h"\
+ "..\..\..\ace\Service_Config.i"\
+ "..\..\..\ace\Service_Object.h"\
+ "..\..\..\ace\Service_Object.i"\
+ "..\..\..\ace\Shared_Object.h"\
+ "..\..\..\ace\Shared_Object.i"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\SString.h"\
+ "..\..\..\ace\SString.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\Svc_Conf_Tokens.h"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Timer_Queue.h"\
+ "..\..\..\ace\Timer_Queue_T.cpp"\
+ "..\..\..\ace\Timer_Queue_T.h"\
+ "..\..\..\ace\Timer_Queue_T.i"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Queue.cpp"\
+ "..\..\..\ace\Unbounded_Queue.h"\
+ "..\..\..\ace\Unbounded_Queue.inl"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ "..\CDR.h"\
+ "..\CDR.i"\
+ "..\Codeset_Translator_Factory.h"\
+ "..\Codeset_Translator_Factory_T.cpp"\
+ "..\Codeset_Translator_Factory_T.h"\
+ "..\CONV_FRAMEC.h"\
+ "..\CONV_FRAMEC.i"\
+ "..\corbafwd.h"\
+ "..\corbafwd.i"\
+ "..\debug.h"\
+ "..\Environment.h"\
+ "..\Environment.i"\
+ "..\Managed_Types.h"\
+ "..\Managed_Types.i"\
+ "..\orbconf.h"\
+ "..\Sequence.h"\
+ "..\Sequence.i"\
+ "..\Sequence_T.cpp"\
+ "..\Sequence_T.h"\
+ "..\Sequence_T.i"\
+ "..\TAO_Export.h"\
+ "..\try_macros.h"\
+ "..\varbase.h"\
+ ".\Char_IBM1047_ISO8859_Factory.h"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ENDIF
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\Char_IBM1047_ISO8859_Translator.cpp
+
+!IF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE ARM) Release"
+
+DEP_CPP_CHAR_I=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE ARM) Debug"
+
+DEP_CPP_CHAR_I=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE x86) Release"
+
+DEP_CPP_CHAR_I=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ELSEIF "$(CFG)" == "IBM1047_ISO8859_Static - Win32 (WCE x86) Debug"
+
+DEP_CPP_CHAR_I=\
+ "..\..\..\ace\ACE.h"\
+ "..\..\..\ace\ACE.i"\
+ "..\..\..\ace\ACE_export.h"\
+ "..\..\..\ace\ace_wchar.h"\
+ "..\..\..\ace\ace_wchar.inl"\
+ "..\..\..\ace\Atomic_Op.i"\
+ "..\..\..\ace\Base_Thread_Adapter.h"\
+ "..\..\..\ace\Base_Thread_Adapter.inl"\
+ "..\..\..\ace\Basic_Types.h"\
+ "..\..\..\ace\Basic_Types.i"\
+ "..\..\..\ace\CDR_Base.h"\
+ "..\..\..\ace\CDR_Base.inl"\
+ "..\..\..\ace\CDR_Stream.h"\
+ "..\..\..\ace\CDR_Stream.i"\
+ "..\..\..\ace\config-all.h"\
+ "..\..\..\ace\config-cygwin32-common.h"\
+ "..\..\..\ace\config-cygwin32.h"\
+ "..\..\..\ace\config-g++-common.h"\
+ "..\..\..\ace\config-ghs-common.h"\
+ "..\..\..\ace\config-win32-borland.h"\
+ "..\..\..\ace\config-win32-common.h"\
+ "..\..\..\ace\config-win32-ghs.h"\
+ "..\..\..\ace\config-win32-mingw.h"\
+ "..\..\..\ace\config-win32-msvc-5.h"\
+ "..\..\..\ace\config-win32-msvc-6.h"\
+ "..\..\..\ace\config-win32-msvc-7.h"\
+ "..\..\..\ace\config-win32-msvc.h"\
+ "..\..\..\ace\config-win32-visualage.h"\
+ "..\..\..\ace\config-win32.h"\
+ "..\..\..\ace\config-WinCE.h"\
+ "..\..\..\ace\config.h"\
+ "..\..\..\ace\Event_Handler.h"\
+ "..\..\..\ace\Event_Handler.i"\
+ "..\..\..\ace\File_Lock.h"\
+ "..\..\..\ace\File_Lock.inl"\
+ "..\..\..\ace\Flag_Manip.h"\
+ "..\..\..\ace\Flag_Manip.i"\
+ "..\..\..\ace\Free_List.cpp"\
+ "..\..\..\ace\Free_List.h"\
+ "..\..\..\ace\Free_List.i"\
+ "..\..\..\ace\Handle_Ops.h"\
+ "..\..\..\ace\Handle_Ops.i"\
+ "..\..\..\ace\Init_ACE.h"\
+ "..\..\..\ace\Init_ACE.i"\
+ "..\..\..\ace\iosfwd.h"\
+ "..\..\..\ace\Lib_Find.h"\
+ "..\..\..\ace\Lib_Find.i"\
+ "..\..\..\ace\Log_Msg.h"\
+ "..\..\..\ace\Log_Msg_Callback.h"\
+ "..\..\..\ace\Log_Priority.h"\
+ "..\..\..\ace\Log_Record.h"\
+ "..\..\..\ace\Log_Record.i"\
+ "..\..\..\ace\Malloc.h"\
+ "..\..\..\ace\Malloc.i"\
+ "..\..\..\ace\Malloc_Allocator.h"\
+ "..\..\..\ace\Malloc_Allocator.i"\
+ "..\..\..\ace\Malloc_Base.h"\
+ "..\..\..\ace\Malloc_T.cpp"\
+ "..\..\..\ace\Malloc_T.h"\
+ "..\..\..\ace\Malloc_T.i"\
+ "..\..\..\ace\Managed_Object.cpp"\
+ "..\..\..\ace\Managed_Object.h"\
+ "..\..\..\ace\Managed_Object.i"\
+ "..\..\..\ace\Mem_Map.h"\
+ "..\..\..\ace\Mem_Map.i"\
+ "..\..\..\ace\Memory_Pool.h"\
+ "..\..\..\ace\Memory_Pool.i"\
+ "..\..\..\ace\Message_Block.h"\
+ "..\..\..\ace\Message_Block.i"\
+ "..\..\..\ace\Message_Block_T.cpp"\
+ "..\..\..\ace\Message_Block_T.h"\
+ "..\..\..\ace\Message_Block_T.i"\
+ "..\..\..\ace\Min_Max.h"\
+ "..\..\..\ace\Node.cpp"\
+ "..\..\..\ace\Node.h"\
+ "..\..\..\ace\Object_Manager.h"\
+ "..\..\..\ace\Object_Manager.i"\
+ "..\..\..\ace\OS.h"\
+ "..\..\..\ace\OS.i"\
+ "..\..\..\ace\OS_Dirent.h"\
+ "..\..\..\ace\OS_Dirent.inl"\
+ "..\..\..\ace\OS_Errno.h"\
+ "..\..\..\ace\OS_Errno.inl"\
+ "..\..\..\ace\OS_Export.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.h"\
+ "..\..\..\ace\OS_Log_Msg_Attributes.inl"\
+ "..\..\..\ace\OS_Memory.h"\
+ "..\..\..\ace\OS_Memory.inl"\
+ "..\..\..\ace\OS_String.h"\
+ "..\..\..\ace\OS_String.inl"\
+ "..\..\..\ace\OS_TLI.h"\
+ "..\..\..\ace\OS_TLI.inl"\
+ "..\..\..\ace\post.h"\
+ "..\..\..\ace\pre.h"\
+ "..\..\..\ace\Process_Mutex.h"\
+ "..\..\..\ace\Process_Mutex.inl"\
+ "..\..\..\ace\Process_Semaphore.h"\
+ "..\..\..\ace\Process_Semaphore.inl"\
+ "..\..\..\ace\RW_Process_Mutex.h"\
+ "..\..\..\ace\RW_Process_Mutex.inl"\
+ "..\..\..\ace\Signal.h"\
+ "..\..\..\ace\Signal.i"\
+ "..\..\..\ace\Sock_Connect.h"\
+ "..\..\..\ace\Sock_Connect.i"\
+ "..\..\..\ace\streams.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.h"\
+ "..\..\..\ace\SV_Semaphore_Complex.i"\
+ "..\..\..\ace\SV_Semaphore_Simple.h"\
+ "..\..\..\ace\SV_Semaphore_Simple.i"\
+ "..\..\..\ace\svc_export.h"\
+ "..\..\..\ace\Synch.h"\
+ "..\..\..\ace\Synch.i"\
+ "..\..\..\ace\Synch_T.cpp"\
+ "..\..\..\ace\Synch_T.h"\
+ "..\..\..\ace\Synch_T.i"\
+ "..\..\..\ace\Test_and_Set.cpp"\
+ "..\..\..\ace\Test_and_Set.h"\
+ "..\..\..\ace\Test_and_Set.i"\
+ "..\..\..\ace\Thread.h"\
+ "..\..\..\ace\Thread.i"\
+ "..\..\..\ace\Thread_Adapter.h"\
+ "..\..\..\ace\Thread_Adapter.inl"\
+ "..\..\..\ace\Thread_Control.h"\
+ "..\..\..\ace\Thread_Control.inl"\
+ "..\..\..\ace\Thread_Exit.h"\
+ "..\..\..\ace\Thread_Hook.h"\
+ "..\..\..\ace\Trace.h"\
+ "..\..\..\ace\Unbounded_Set.cpp"\
+ "..\..\..\ace\Unbounded_Set.h"\
+ "..\..\..\ace\Unbounded_Set.inl"\
+ ".\Char_IBM1047_ISO8859_Translator.h"\
+ ".\codeset_export.h"\
+
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# End Target
+# End Project
diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_export.h b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_export.h new file mode 100644 index 00000000000..66305084475 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/IBM1047_ISO8859_export.h @@ -0,0 +1,40 @@ + +// -*- C++ -*- +// $Id$ +// Definition for Win32 Export directives. +// This file is generated automatically by generate_export_file.pl +// ------------------------------ +#ifndef IBM1047_ISO8859_EXPORT_H +#define IBM1047_ISO8859_EXPORT_H + +#include "ace/config-all.h" + +#if defined (AS_STATIC_LIBS) +# if !defined (IBM1047_ISO8859_HAS_DLL) +# define IBM1047_ISO8859_HAS_DLL 0 +# endif /* ! IBM1047_ISO8859_HAS_DLL */ +#else +# if !defined (IBM1047_ISO8859_HAS_DLL) +# define IBM1047_ISO8859_HAS_DLL 1 +# endif /* ! IBM1047_ISO8859_HAS_DLL */ +#endif + +#if defined (IBM1047_ISO8859_HAS_DLL) && (IBM1047_ISO8859_HAS_DLL == 1) +# if defined (IBM1047_ISO8859_BUILD_DLL) +# define IBM1047_ISO8859_Export ACE_Proper_Export_Flag +# define IBM1047_ISO8859_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) +# define IBM1047_ISO8859_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# else /* IBM1047_ISO8859_BUILD_DLL */ +# define IBM1047_ISO8859_Export ACE_Proper_Import_Flag +# define IBM1047_ISO8859_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) +# define IBM1047_ISO8859_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +# endif /* IBM1047_ISO8859_BUILD_DLL */ +#else /* IBM1047_ISO8859_HAS_DLL == 1 */ +# define IBM1047_ISO8859_Export +# define IBM1047_ISO8859_SINGLETON_DECLARATION(T) +# define IBM1047_ISO8859_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) +#endif /* IBM1047_ISO8859_HAS_DLL == 1 */ + +#endif /* IBM1047_ISO8859_EXPORT_H */ + +// End of auto generated file. diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Makefile b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Makefile new file mode 100644 index 00000000000..03335d17556 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Makefile @@ -0,0 +1,60 @@ +#---------------------------------------------------------------------------- +# +# $Id$ +# +#---------------------------------------------------------------------------- +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +MAKEFILE = Makefile +LIBNAME = libIBM1047_ISO8859 +LIB = $(LIBNAME).a +SHLIB = $(LIBNAME).$(SOEXT) + +ACE_SHLIBS = -lTAO -lACE + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(TAO_ROOT)/taoconfig.mk + +CPP_SRCS += \ + Char_IBM1047_ISO8859_Translator \ + Char_IBM1047_ISO8859_Factory \ + Wchar_IBM1047_ISO8859_Translator \ + Wchar_IBM1047_ISO8859_Factory + +IDL_SRC = \ + $(addsuffix S.cpp, $(IDL_FILES)) \ + $(addsuffix C.cpp, $(IDL_FILES)) +FILES = $(CPP_SRCS) +DEFS = $(addsuffix .h,$(FILES)) +LSRC = $(addsuffix .cpp,$(FILES)) + +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU +include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU + +#---------------------------------------------------------------------------- +# Local targets (and local hacks) +#---------------------------------------------------------------------------- + +LDFLAGS += -L$(TAO_ROOT)/tao +CPPFLAGS += -I$(TAO_ROOT) + +#---------------------------------------------------------------------------- +# Dependencies +#---------------------------------------------------------------------------- + +# DO NOT DELETE THIS LINE -- g++dep uses it. +# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. + + +.obj/Char_IBM1047_ISO8859_Translator.o .obj/Char_IBM1047_ISO8859_Translator.so .shobj/Char_IBM1047_ISO8859_Translator.o .shobj/Char_IBM1047_ISO8859_Translator.so: Char_IBM1047_ISO8859_Translator.cpp Char_IBM1047_ISO8859_Translator.h diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Factory.cpp b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Factory.cpp new file mode 100644 index 00000000000..60da234be4c --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Factory.cpp @@ -0,0 +1,42 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/CodeSets/libs/IBM1047_ISO8859 +// +// = FILENAME +// Wchar_IBM1047_ISO8859_Factory.cpp +// +// = DESCRIPTION +// A tempate instantiation of the codeset translator factory from TAO. This +// one loads a modified version of ACE's IBM1047 (EBCDIC) to ISO8859 (ASCII) +// translator. In this case, wchars and wstrings are translated rather than +// strings and chars. +// +// = AUTHORS +// Phil Mesnier <mesnier_p@ociweb.com> +// +// ============================================================================ + +#include "Wchar_IBM1047_ISO8859_Factory.h" + +#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) + +template class TAO_Codeset_Translator_Factory_T<WIBM1047_ISO8859>; + +#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) + +#pragma instantiate TAO_Codeset_Translator_Factory_T<WIBM1047_ISO8859> + +#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ + +ACE_STATIC_SVC_DEFINE (Wchar_IBM1047_ISO8859_Factory, + ACE_TEXT ("Wchar_IBM1047_ISO8859_Factory"), + ACE_SVC_OBJ_T, + &ACE_SVC_NAME (Wchar_IBM1047_ISO8859_Factory), + ACE_Service_Type::DELETE_THIS + | ACE_Service_Type::DELETE_OBJ, + 0) +ACE_FACTORY_DEFINE (IBM1047_ISO8859, Wchar_IBM1047_ISO8859_Factory) diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Factory.h b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Factory.h new file mode 100644 index 00000000000..2fe1f40543e --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Factory.h @@ -0,0 +1,40 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/CodeSets/libs/IBM1047_ISO8859 +// +// = FILENAME +// Wchar_IBM1047_ISO8859_Factory.cpp +// +// = DESCRIPTION +// A tempate instantiation of the codeset translator factory from TAO. This +// one loads a modified version of ACE's IBM1047 (EBCDIC) to ISO8859 (ASCII) +// translator. In this case, wchars and wstrings are translated rather than +// strings and chars. +// +// = AUTHORS +// Phil Mesnier <mesnier_p@ociweb.com> +// +// ============================================================================ + +#ifndef WCHAR_IBM1047_ISO8859_FACTORY_H +#define WCHAR_IBM1047_ISO8859_FACTORY_H + +#include <ace/pre.h> +#include <ace/Service_Config.h> +#include <tao/Codeset_Translator_Factory.h> + +#include "IBM1047_ISO8859_export.h" +#include "Wchar_IBM1047_ISO8859_Translator.h" + +typedef IBM1047_ISO8859_Export TAO_Codeset_Translator_Factory_T<WIBM1047_ISO8859> Wchar_IBM1047_ISO8859_Factory; + +ACE_STATIC_SVC_DECLARE_EXPORT (IBM1047_ISO8859, Wchar_IBM1047_ISO8859_Factory) +ACE_FACTORY_DECLARE (IBM1047_ISO8859, Wchar_IBM1047_ISO8859_Factory) + +#include <ace/post.h> +#endif /* WCHAR_IBM1047_ISO8859_FACTORY_H */ + diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Translator.cpp b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Translator.cpp new file mode 100644 index 00000000000..7958ddbfa58 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Translator.cpp @@ -0,0 +1,74 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// ace +// +// = FILENAME +// Wchar_IBM1047_ISO8859_Translator.cpp +// +// = DESCRIPTION +// Defines the arrays required to convert between ISO8859 (aka +// Latin/1) and IBM1047 (aka EBCDIC). +// +// = AUTHOR +// Mahesh Vedantam (mahesh@ociweb.com) +// +// ============================================================================ + +#include "Wchar_IBM1047_ISO8859_Translator.h" + +ACE_RCSID(IBM1047_ISO8859, Wchar_IBM1047_ISO8859_Translator, "$Id$") + +// **************************************************************** + +WIBM1047_ISO8859::WIBM1047_ISO8859 (void) +{ + +} + +WIBM1047_ISO8859::~WIBM1047_ISO8859 (void) +{ + +} + +// = Documented in $ACE_ROOT/ace/CDR_Stream.h +ACE_CDR::Boolean WIBM1047_ISO8859::read_wchar (ACE_InputCDR &, + ACE_CDR::WChar &) +{ + return 0; +} + +ACE_CDR::Boolean WIBM1047_ISO8859::read_wstring (ACE_InputCDR &, + ACE_CDR::WChar *&) +{ + return 0; +} + +ACE_CDR::Boolean WIBM1047_ISO8859::read_wchar_array (ACE_InputCDR &, + ACE_CDR::WChar *, + ACE_CDR::ULong) +{ + return 0; +} + +ACE_CDR::Boolean WIBM1047_ISO8859::write_wchar (ACE_OutputCDR &, + ACE_CDR::WChar) +{ + return 0; +} +ACE_CDR::Boolean WIBM1047_ISO8859::write_wstring (ACE_OutputCDR &, + ACE_CDR::ULong, + const ACE_CDR::WChar *) +{ + return 0; +} +ACE_CDR::Boolean WIBM1047_ISO8859::write_wchar_array (ACE_OutputCDR &, + const ACE_CDR::WChar *, + ACE_CDR::ULong) +{ + return 0; +} + diff --git a/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Translator.h b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Translator.h new file mode 100644 index 00000000000..fadd6e30af9 --- /dev/null +++ b/TAO/tests/CodeSets/libs/IBM1047_ISO8859/Wchar_IBM1047_ISO8859_Translator.h @@ -0,0 +1,75 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Wchar_IBM1047_ISO8859_Translator.h + * + * $Id$ + * + * Declares the arrays required to convert between IBM1047 (aka EBCDIC) and ISO8859 (aka + * Latin/1). + * + * + * @author Jim Rogers (jrogers@viasoft.com) + */ +//============================================================================= + +#ifndef WCHAR_IBM1047_ISO8859_TRANSLATOR_H +#define WCHAR_IBM1047_ISO8859_TRANSLATOR_H +#include "ace/pre.h" + +#include "ace/config-all.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/CDR_Stream.h" +#include "IBM1047_ISO8859_export.h" + +extern IBM1047_ISO8859_Export ACE_CDR::WChar Wchar_to_IBM1047[257]; +extern IBM1047_ISO8859_Export ACE_CDR::WChar Wchar_from_IBM1047[257]; + +// **************************************************************** + +/** + * @class ACE_Char_IBM1047_ISO8859 + * + * @brief Codeset translation specialization. + * + * This class performs the codeset translation: + * - Native: IBM_1047 (i.e. EBCDIC) + * - Stream: ISO-8859 (i.e. Latin/1) + */ +class IBM1047_ISO8859_Export WIBM1047_ISO8859 : public ACE_WChar_Codeset_Translator +{ +public: + /// A do nothing constructor. + WIBM1047_ISO8859 (void); + + /// Virtual destruction + virtual ~WIBM1047_ISO8859 (void); + + // = Documented in $ACE_ROOT/ace/CDR_Stream.h + virtual ACE_CDR::Boolean read_wchar (ACE_InputCDR &, + ACE_CDR::WChar &); + virtual ACE_CDR::Boolean read_wstring (ACE_InputCDR &, + ACE_CDR::WChar *&); + virtual ACE_CDR::Boolean read_wchar_array (ACE_InputCDR &, + ACE_CDR::WChar *, + ACE_CDR::ULong); + virtual ACE_CDR::Boolean write_wchar (ACE_OutputCDR &, + ACE_CDR::WChar); + virtual ACE_CDR::Boolean write_wstring (ACE_OutputCDR &, + ACE_CDR::ULong, + const ACE_CDR::WChar *); + virtual ACE_CDR::Boolean write_wchar_array (ACE_OutputCDR &, + const ACE_CDR::WChar *, + ACE_CDR::ULong); + virtual ACE_CDR::ULong ncs () {return 0x10020417;} + virtual ACE_CDR::ULong tcs () {return 0x00010001;} +}; + +#include "ace/post.h" +#endif /* WCHAR_IBM1047_ISO8859_TRANSLATOR */ + diff --git a/TAO/tests/CodeSets/simple/Makefile b/TAO/tests/CodeSets/simple/Makefile new file mode 100644 index 00000000000..05d5c015037 --- /dev/null +++ b/TAO/tests/CodeSets/simple/Makefile @@ -0,0 +1,61 @@ +# $Id$ +# +#---------------------------------------------------------------------------- +# Local macros +#---------------------------------------------------------------------------- + +ifndef TAO_ROOT + TAO_ROOT = $(ACE_ROOT)/TAO +endif # ! TAO_ROOT + +IDL_FILES = simple + +IDL_SRC = \ + $(addsuffix S.cpp, $(IDL_FILES)) \ + $(addsuffix C.cpp, $(IDL_FILES)) + +BIN = client server + +CPP_SRCS = $(addsuffix .cpp, $(BIN)) $(IDL_SRC) + +CLIENT_OBJS = simpleC.o client.o +SERVER_OBJS = simpleS.o server.o $(IDL_SRC:.cpp=.o) + +TAO_IDLFLAGS += -Ge 1 + +#---------------------------------------------------------------------------- +# Include macros and targets +#---------------------------------------------------------------------------- + +include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU +include $(ACE_ROOT)/include/makeinclude/macros.GNU +include $(TAO_ROOT)/rules.tao.GNU +include $(ACE_ROOT)/include/makeinclude/rules.common.GNU +include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU +include $(ACE_ROOT)/include/makeinclude/rules.local.GNU +include $(TAO_ROOT)/taoconfig.mk + +#---------------------------------------------------------------------------- +# Local targets +#---------------------------------------------------------------------------- + +simpleC.cpp: simple.idl + $(TAO_ROOT)/TAO_IDL/tao_idl -Ge 1 -Wb,export_macro=TAO_Export \ + simple.idl + +simpleS.cpp: simple.idl + $(TAO_ROOT)/TAO_IDL/tao_idl -Ge 1 -Wb,export_macro=TAO_Export \ + simple.idl + +server: $(addprefix $(VDIR),$(SERVER_OBJS)) + $(LINK.cc) $(LDFLAGS) -o $@ $^ -lTAO_Messaging $(TAO_SRVR_LIBS) \ + $(POSTLINK) + +client: $(addprefix $(VDIR),$(CLIENT_OBJS)) + $(LINK.cc) $(LDFLAGS) -o $@ $^ -lTAO_Messaging $(TAO_CLNT_LIBS) \ + $(POSTLINK) + +clobber.local: + $(RM) -f simple[CS]*.* + $(RM) -f client server + diff --git a/TAO/tests/CodeSets/simple/README b/TAO/tests/CodeSets/simple/README new file mode 100644 index 00000000000..d66352e747f --- /dev/null +++ b/TAO/tests/CodeSets/simple/README @@ -0,0 +1,29 @@ +Simple codeset translation test. + +As delivered, this test works with the IBM1047 - ISO8859 translator which is +built as part of the library delivered with this test. + +After building the client and server, run one or the other with the supplied +configuration file. Be sure to supply the configuration file to only one side +or the other, not both. If you do both, no translation will happen. + +If the translators and the framework are working properly you will see the +client report some text before and after a call. The before and after should be +identical. The server side should look like garbage. + +The translation will occur on the side that takes the configuration file. If +you run either side with -ORBDebuglevel 10, you will see that when the client +is doing the translation the data in the message content dump is garbled and +when the server is translating the message content dump is clear. + +To run with the client doing translation: + ./Server & + ./Client -orbsvcconf cs_test.conf + +To run with the server doing translation: + ./Server -orbsvcconf cs_test.conf + ./Client + +The server dumps its IOR to a file: server.ior. Use catior -f server.ior +(from $TAO_ROOT/utils/catior) to see how the context information is added +to the profiles. diff --git a/TAO/tests/CodeSets/simple/client.cpp b/TAO/tests/CodeSets/simple/client.cpp new file mode 100644 index 00000000000..2a2cadc0112 --- /dev/null +++ b/TAO/tests/CodeSets/simple/client.cpp @@ -0,0 +1,85 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/CodeSets/simple +// +// = FILENAME +// client.cpp +// +// = DESCRIPTION +// A simple client to demonstrate the use of codeset translation +// +// = AUTHORS +// Phil Mesnier <mesnier_p@ociweb.com> +// +// ============================================================================ +// IDL generated headers +#include "simpleC.h" + +// ------------------------------------------------------------ +// Client +// ------------------------------------------------------------ +int main(int argc, char *argv[]) +{ + char buf[1000]; + + ACE_TRY_NEW_ENV + { + // Init the orb + CORBA::ORB_var orb= CORBA::ORB_init (argc, argv); + ACE_TRY_CHECK; + + // Get IOR from command line (or file) + if(argc != 2) + { + ifstream fstr; + fstr.open("server.ior"); + if (fstr.bad()) + { + cout << "Cannot open server.ior and no IOR argument!" << endl; + exit(1); + } + else + { + fstr >> buf; + } + } + else + { + strcpy(buf, argv[1]); + } + + // The first arg should be the IOR + CORBA::Object_var object= orb->string_to_object(buf + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // Get the server + CORBA::Environment env; + simple_var server= simple::_narrow (object.in() ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + + // invoke the call + CORBA::String_var reply = + server->op1("Hello World" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + cout << "sent Hello World, got " << reply << endl; + + reply = server->op1("Goodbye World" ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; + cout << "sent Goodby World, got " << reply << endl; + + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + +} + diff --git a/TAO/tests/CodeSets/simple/cs_test.conf b/TAO/tests/CodeSets/simple/cs_test.conf new file mode 100644 index 00000000000..19166dba20e --- /dev/null +++ b/TAO/tests/CodeSets/simple/cs_test.conf @@ -0,0 +1,4 @@ +dynamic Char_IBM1047_ISO8859_Factory Service_Object * IBM1047_ISO8859:_make_Char_IBM1047_ISO8859_Factory () + +static Resource_Factory + "-ORBNativeCharCodeSet 0x10020417 -ORBCharCodesetTranslator Char_IBM1047_ISO8859_Factory" diff --git a/TAO/tests/CodeSets/simple/server.cpp b/TAO/tests/CodeSets/simple/server.cpp new file mode 100644 index 00000000000..9956990d026 --- /dev/null +++ b/TAO/tests/CodeSets/simple/server.cpp @@ -0,0 +1,122 @@ +// -*- C++ -*- +// $Id$ + +// ============================================================================ +// +// = LIBRARY +// TAO/tests/CodeSets/simple +// +// = FILENAME +// client.cpp +// +// = DESCRIPTION +// A simple client to demonstrate the use of codeset translation +// +// = AUTHORS +// Phil Mesnier <mesnier_p@ociweb.com> +// +// ============================================================================ + +// IDL generated header +#include "simpleS.h" + + +// ------------------------------------------------------------ +// Servant for associated CORBA object +// ------------------------------------------------------------ +class SimpleImpl : public POA_simple +{ +public: + + // implementation of corba interface + char* op1(const char * name ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException)) + { + cout << "Got: " << name << endl; + + return(CORBA::string_dup (name)); + }; +}; + +// ------------------------------------------------------------ +// Main routine +// ------------------------------------------------------------ +int main(int argc, char *argv[]) +{ + + ACE_TRY_NEW_ENV + { + // Init the orb + CORBA::ORB_var orb= CORBA::ORB_init (argc, argv); + ACE_TRY_CHECK; + + // Initialize POA + CORBA::Object_var poa_object= + orb->resolve_initial_references("RootPOA"); + ACE_TRY_CHECK; + + // Check POA + if(CORBA::is_nil(poa_object.in())) + { + cout << "Couldn't initialize POA" << endl; + return(1); + } + ACE_TRY_CHECK; + + // Get the ROOT POA + PortableServer::POA_var root_poa= + PortableServer::POA::_narrow (poa_object.in ()); + ACE_TRY_CHECK; + + // Get the POA manager + PortableServer::POAManager_var poa_manager = + root_poa->the_POAManager (); + ACE_TRY_CHECK; + + // Create a C++ implementation of CORBA object + SimpleImpl* my_impl= new SimpleImpl; + + // Create CORBA object for servant and REGISTER with POA + simple_var server= my_impl->_this(); + ACE_TRY_CHECK; + + // Get the IOR for our object + CORBA::String_var ior= orb->object_to_string (server.in ()); + ACE_TRY_CHECK; + + // Save IOR + cout << "Writing IOR to file: \n" << endl; + cout << ior.in() << endl; + + ofstream fstr; + fstr.open("server.ior"); + if (fstr.bad()) + { + cout << "Cannot open server.ior!" << endl; + exit(1); + } + else + { + fstr << ior.in() << endl; + } + + ACE_TRY_CHECK; + + // Activate POA manager + poa_manager->activate(); + ACE_TRY_CHECK; + + // Wait for calls + orb->run(ACE_ENV_SINGLE_ARG_PARAMETER); + ACE_TRY_CHECK; + + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "Exception caught:"); + return 1; + } + ACE_ENDTRY; + +} diff --git a/TAO/tests/CodeSets/simple/simple.idl b/TAO/tests/CodeSets/simple/simple.idl new file mode 100644 index 00000000000..e137e083b14 --- /dev/null +++ b/TAO/tests/CodeSets/simple/simple.idl @@ -0,0 +1,6 @@ +// $Id$ + +interface simple +{ + string op1(in string name); +}; diff --git a/TAO/utils/catior/catior.cpp b/TAO/utils/catior/catior.cpp index b00019c826f..636ffd2d7d2 100644 --- a/TAO/utils/catior/catior.cpp +++ b/TAO/utils/catior/catior.cpp @@ -18,6 +18,7 @@ // // ============================================================================ +#include "ace/Codeset_Registry.h" #include "ace/Get_Opt.h" #include "ace/streams.h" #include "tao/corba.h" @@ -828,6 +829,98 @@ cat_object_key (TAO_InputCDR& stream) return cat_octet_seq ("Object Key", stream); } +ACE_CString + _find_info (CORBA::ULong id) +{ + ACE_CString locale=""; + ACE_Codeset_Registry::registry_to_locale(id, locale, NULL, NULL); + return locale; +} + +void displayHex( TAO_InputCDR &str ) +{ + if (str.good_bit () == 0 ) + return; + + TAO_InputCDR clone_str( str ); + CORBA::ULong theSetId ; + str.read_ulong(theSetId); + ACE_DEBUG ((LM_DEBUG," Hex - %x", theSetId)); + ACE_DEBUG ((LM_DEBUG," Description - ")); + ACE_CString theDescr = _find_info ( theSetId ); + + if( theDescr.length() == 0 ) + { + ACE_DEBUG ((LM_DEBUG," Unknown CodeSet \n ")); + return; + } + + ACE_DEBUG (( LM_DEBUG," %s \n", theDescr.c_str())); +} + +static CORBA::Boolean +cat_codeset_info(TAO_InputCDR& stream) +{ + // Component Length + CORBA::ULong compLen=0L; + stream >> compLen; + ACE_DEBUG ((LM_DEBUG, "\tComponent Length %u \n", compLen)); + + // Byte Order + CORBA::ULong byteOrder; + stream >> byteOrder; + + if( byteOrder ) + { + ACE_DEBUG ((LM_DEBUG, + "\tThe Component Byte Order:\tLittle Endian\n")); + } + else + ACE_DEBUG ((LM_DEBUG, + "\tThe Component Byte Order:\tBig Endian\n")); + + // CodesetId for char + // CORBA::ULong c_ncsId; + ACE_DEBUG ((LM_DEBUG, "\tNative CodeSet for char: ")); + displayHex( stream ); + + // number of Conversion Codesets for char + CORBA::ULong c_ccslen=0; + stream >> c_ccslen; + ACE_DEBUG ((LM_DEBUG, "\tNumber of CCS for char %u \n", c_ccslen)); + + if( c_ccslen ) + ACE_DEBUG ((LM_DEBUG, "\tConversion Codesets for char are: \n")); + + // Loop through and display them + for( CORBA::ULong index=0; index < c_ccslen; ++index) + { + // CodesetId for char + ACE_DEBUG ((LM_DEBUG, "\t%u) ", index + 1L)); + displayHex( stream ); + } + + // CodesetId for wchar + ACE_DEBUG ((LM_DEBUG, "\tNative CodeSet for wchar: ")); + displayHex( stream ); + + // number of Conversion Codesets for char + CORBA::ULong w_ccslen=0; + stream >> w_ccslen; + ACE_DEBUG ((LM_DEBUG, "\tNumber of CCS for wchar %u \n", w_ccslen)); + + if( w_ccslen ) + ACE_DEBUG ((LM_DEBUG, "\tConversion Codesets for wchar are: \n")); + + // Loop through and display them + for( CORBA::ULong index=0; index < w_ccslen; ++index) + { + ACE_DEBUG ((LM_DEBUG, "\t %u) ", index + 1L)); + displayHex( stream ); + } + return 1; +} + static CORBA::Boolean cat_tagged_components (TAO_InputCDR& stream) { @@ -854,7 +947,7 @@ cat_tagged_components (TAO_InputCDR& stream) } else if (tag == IOP::TAG_CODE_SETS) { ACE_DEBUG ((LM_DEBUG,"%d (TAG_CODE_SETS)\n", tag)); ACE_DEBUG ((LM_DEBUG, "%{%{")); - cat_octet_seq ("Component Value" ,stream); + cat_codeset_info(stream); ACE_DEBUG ((LM_DEBUG, "%}%}")); } else if (tag == IOP::TAG_ALTERNATE_IIOP_ADDRESS) { |