summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r--TAO/TAO_IDL/Makefile.BE2070
-rw-r--r--TAO/TAO_IDL/Makefile.EXE27
-rw-r--r--TAO/TAO_IDL/Makefile.FE740
-rw-r--r--TAO/TAO_IDL/TAO_IDL_BE.bor1
-rw-r--r--TAO/TAO_IDL/TAO_IDL_BE_DLL.dsp24
-rw-r--r--TAO/TAO_IDL/TAO_IDL_BE_LIB.dsp24
-rw-r--r--TAO/TAO_IDL/ast/ast_decl.cpp12
-rw-r--r--TAO/TAO_IDL/ast/ast_field.cpp3
-rw-r--r--TAO/TAO_IDL/ast/ast_generator.cpp7
-rw-r--r--TAO/TAO_IDL/ast/ast_module.cpp29
-rw-r--r--TAO/TAO_IDL/ast/ast_string.cpp48
-rw-r--r--TAO/TAO_IDL/ast/ast_valuetype.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_argument.cpp14
-rw-r--r--TAO/TAO_IDL/be/be_array.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_attribute.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_codegen.cpp1188
-rw-r--r--TAO/TAO_IDL/be/be_decl.cpp475
-rw-r--r--TAO/TAO_IDL/be/be_enum.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_exception.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_generator.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_global.cpp13
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp872
-rw-r--r--TAO/TAO_IDL/be/be_interface_fwd.cpp32
-rw-r--r--TAO/TAO_IDL/be/be_operation.cpp22
-rw-r--r--TAO/TAO_IDL/be/be_predefined_type.cpp23
-rw-r--r--TAO/TAO_IDL/be/be_sequence.cpp234
-rw-r--r--TAO/TAO_IDL/be/be_string.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_structure.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_type.cpp87
-rw-r--r--TAO/TAO_IDL/be/be_typedef.cpp21
-rw-r--r--TAO/TAO_IDL/be/be_union.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_valuetype.cpp257
-rw-r--r--TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_arg_traits.cpp695
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp49
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp37
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp48
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp113
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp32
-rw-r--r--TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp38
-rw-r--r--TAO/TAO_IDL/be/be_visitor_ccm_pre_proc.cpp95
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp26
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp58
-rw-r--r--TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp38
-rw-r--r--TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp91
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp31
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp14
-rw-r--r--TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface.cpp9
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_rh_sh.cpp10
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_rh_ss.cpp17
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp27
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp45
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp91
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp57
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp76
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface.cpp35
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp179
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp100
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp561
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp32
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp423
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp20
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp194
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp291
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp44
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp81
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp278
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp77
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp160
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp19
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/argument.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp174
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp26
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp37
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/interceptors_exceptlist.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/operation.cpp1037
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp157
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp112
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp69
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp212
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/root.cpp314
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp20
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp9
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp38
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp23
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp69
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp61
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp681
-rw-r--r--TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp38
-rw-r--r--TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp27
-rw-r--r--TAO/TAO_IDL/be/be_visitor_tmplinst.cpp60
-rw-r--r--TAO/TAO_IDL/be/be_visitor_tmplinst/arg_tmplinst.cpp722
-rw-r--r--TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst.cpp262
-rw-r--r--TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst_cs.cpp1215
-rw-r--r--TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst_ss.cpp508
-rw-r--r--TAO/TAO_IDL/be/be_visitor_traits.cpp264
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp27
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typedef.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp23
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp38
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp29
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp12
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp48
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp24
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp26
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp42
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp13
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp260
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp102
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp17
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp197
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp11
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp19
-rw-r--r--TAO/TAO_IDL/be_include/be_codegen.h32
-rw-r--r--TAO/TAO_IDL/be_include/be_decl.h80
-rw-r--r--TAO/TAO_IDL/be_include/be_global.h10
-rw-r--r--TAO/TAO_IDL/be_include/be_interface.h54
-rw-r--r--TAO/TAO_IDL/be_include/be_interface_fwd.h6
-rw-r--r--TAO/TAO_IDL/be_include/be_sequence.h7
-rw-r--r--TAO/TAO_IDL/be_include/be_type.h20
-rw-r--r--TAO/TAO_IDL/be_include/be_typedef.h6
-rw-r--r--TAO/TAO_IDL/be_include/be_valuetype.h34
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_arg_traits.h76
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument.h6
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h5
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_interface.h9
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_ss.h10
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation.h7
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/operation.h16
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h7
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/proxy_impl_xh.h2
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_root/root.h6
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h15
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_tmplinst.h34
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_tmplinst/arg_tmplinst.h111
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst.h71
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_cs.h77
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_ss.h58
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_traits.h17
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h3
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_valuetype/arglist.h2
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype.h39
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype_cs.h5
-rw-r--r--TAO/TAO_IDL/driver/drv_args.cpp8
-rw-r--r--TAO/TAO_IDL/driver/drv_preproc.cpp1
-rw-r--r--TAO/TAO_IDL/fe/idl.yy26
-rw-r--r--TAO/TAO_IDL/fe/y.tab.cpp26
-rw-r--r--TAO/TAO_IDL/include/ast_decl.h8
-rw-r--r--TAO/TAO_IDL/include/ast_module.h4
-rw-r--r--TAO/TAO_IDL/include/ast_valuetype.h3
-rw-r--r--TAO/TAO_IDL/include/idl_global.h37
-rw-r--r--TAO/TAO_IDL/include/utl_idlist.h7
-rw-r--r--TAO/TAO_IDL/include/utl_indenter.h7
-rw-r--r--TAO/TAO_IDL/include/utl_scope.h2
-rw-r--r--TAO/TAO_IDL/include/utl_strlist.h7
-rw-r--r--TAO/TAO_IDL/util/utl_global.cpp87
-rw-r--r--TAO/TAO_IDL/util/utl_scope.cpp91
172 files changed, 12139 insertions, 6608 deletions
diff --git a/TAO/TAO_IDL/Makefile.BE b/TAO/TAO_IDL/Makefile.BE
index b34255d750e..ab296bc39b1 100644
--- a/TAO/TAO_IDL/Makefile.BE
+++ b/TAO/TAO_IDL/Makefile.BE
@@ -98,6 +98,9 @@ FILES = be/be_array \
be/be_visitor_sequence \
be/be_visitor_structure \
be/be_visitor_structure_fwd \
+ be/be_visitor_traits \
+ be/be_visitor_arg_traits \
+ be/be_visitor_tmplinst \
be/be_visitor_typecode \
be/be_visitor_typedef \
be/be_visitor_union \
@@ -157,7 +160,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -225,8 +229,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -248,8 +254,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_array.h \
- include/ast_concrete_type.h be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_array.h include/ast_concrete_type.h be_include/be_codegen.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -340,7 +346,33 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h be_include/be_helper.h be_include/be_visitor.h \
- include/utl_identifier.h include/idl_defines.h
+ include/utl_identifier.h include/idl_defines.h include/global_extern.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/ast_predefined_type.h include/utl_stack.h
.obj/be_argument.o .obj/be_argument.so .shobj/be_argument.o .shobj/be_argument.so: be/be_argument.cpp be_include/be_argument.h \
be_include/be_decl.h include/ast_decl.h include/utl_scoped_name.h \
@@ -349,7 +381,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -417,8 +450,34 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_argument.h include/ast_field.h be_include/be_visitor.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_argument.h include/ast_field.h \
+ be_include/be_type.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SStringfwd.h \
+ $(ACE_ROOT)/ace/String_Base.h \
+ $(ACE_ROOT)/ace/String_Base_Const.h \
+ $(ACE_ROOT)/ace/String_Base.i \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/String_Base.cpp \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Flag_Manip.h \
+ $(ACE_ROOT)/ace/Flag_Manip.i \
+ $(ACE_ROOT)/ace/Handle_Ops.h \
+ $(ACE_ROOT)/ace/Handle_Ops.i \
+ $(ACE_ROOT)/ace/Lib_Find.h \
+ $(ACE_ROOT)/ace/Lib_Find.i \
+ $(ACE_ROOT)/ace/Init_ACE.h \
+ $(ACE_ROOT)/ace/Init_ACE.i \
+ $(ACE_ROOT)/ace/Sock_Connect.h \
+ $(ACE_ROOT)/ace/Sock_Connect.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp \
+ $(ACE_ROOT)/ace/SString.i \
+ be_include/be_visitor.h include/nr_extern.h
.obj/be_attribute.o .obj/be_attribute.so .shobj/be_attribute.o .shobj/be_attribute.so: be/be_attribute.cpp be_include/be_attribute.h \
include/ast_attribute.h include/ast_field.h include/ast_decl.h \
@@ -428,7 +487,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -496,9 +556,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- be_include/be_decl.h be_include/be_operation_strategy.h \
- be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h be_include/be_decl.h \
+ be_include/be_operation_strategy.h be_include/be_codegen.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -589,7 +650,55 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
- be_include/TAO_IDL_BE_Export.h be_include/be_visitor.h
+ be_include/TAO_IDL_BE_Export.h be_include/be_type.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/SStringfwd.h \
+ $(ACE_ROOT)/ace/String_Base.h \
+ $(ACE_ROOT)/ace/String_Base_Const.h \
+ $(ACE_ROOT)/ace/String_Base.i \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/String_Base.cpp \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp \
+ $(ACE_ROOT)/ace/SString.i \
+ be_include/be_visitor.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/ast_expression.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/CDR_Base.inl \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ include/ast_predefined_type.h include/ast_concrete_type.h \
+ include/utl_stack.h
.obj/be_component.o .obj/be_component.so .shobj/be_component.o .shobj/be_component.so: be/be_component.cpp be_include/be_component.h \
be_include/be_interface.h be_include/be_scope.h include/utl_scope.h \
@@ -599,7 +708,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -667,8 +777,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -681,7 +792,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -797,7 +909,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -865,8 +978,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -899,7 +1014,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -967,8 +1083,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_constant.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_constant.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1102,7 +1219,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1170,8 +1288,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1184,7 +1303,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -1204,8 +1324,99 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_enum.h \
- include/ast_concrete_type.h be_include/be_visitor.h
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_enum.h include/ast_concrete_type.h be_include/be_visitor.h \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Guard_T.h \
+ $(ACE_ROOT)/ace/Lock.h \
+ $(ACE_ROOT)/ace/Lock.inl \
+ $(ACE_ROOT)/ace/Guard_T.inl \
+ $(ACE_ROOT)/ace/Guard_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Auto_Event.h \
+ $(ACE_ROOT)/ace/Event.h \
+ $(ACE_ROOT)/ace/Event.inl \
+ $(ACE_ROOT)/ace/Auto_Event.inl \
+ $(ACE_ROOT)/ace/Barrier.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Barrier.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Manual_Event.h \
+ $(ACE_ROOT)/ace/Manual_Event.inl \
+ $(ACE_ROOT)/ace/Mutex.h \
+ $(ACE_ROOT)/ace/Mutex.inl \
+ $(ACE_ROOT)/ace/Null_Barrier.h \
+ $(ACE_ROOT)/ace/Null_Condition.h \
+ $(ACE_ROOT)/ace/Null_Mutex.h \
+ $(ACE_ROOT)/ace/Null_Semaphore.h \
+ $(ACE_ROOT)/ace/RW_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Mutex.inl \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Semaphore.h \
+ $(ACE_ROOT)/ace/Semaphore.inl \
+ $(ACE_ROOT)/ace/Thread_Semaphore.h \
+ $(ACE_ROOT)/ace/Thread_Semaphore.inl \
+ $(ACE_ROOT)/ace/TSS_Adapter.h \
+ $(ACE_ROOT)/ace/TSS_Adapter.inl \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.inl \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.cpp \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.h \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.inl \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.cpp \
+ $(ACE_ROOT)/ace/TSS_T.h \
+ $(ACE_ROOT)/ace/TSS_T.inl \
+ $(ACE_ROOT)/ace/TSS_T.cpp \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Condition_T.h \
+ $(ACE_ROOT)/ace/Condition_T.inl \
+ $(ACE_ROOT)/ace/Condition_T.cpp \
+ $(ACE_ROOT)/ace/Synch_Traits.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/ast_predefined_type.h include/utl_stack.h
.obj/be_enum_val.o .obj/be_enum_val.so .shobj/be_enum_val.o .shobj/be_enum_val.so: be/be_enum_val.cpp be_include/be_enum_val.h \
be_include/be_decl.h include/ast_decl.h include/utl_scoped_name.h \
@@ -1214,7 +1425,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1282,8 +1494,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_enum_val.h include/ast_constant.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_enum_val.h include/ast_constant.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1418,7 +1632,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1486,8 +1701,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1500,7 +1716,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -1618,7 +1835,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1686,8 +1904,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -1741,7 +1961,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1809,8 +2030,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1823,7 +2045,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -1855,7 +2078,88 @@ realclean: clean
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- be_include/be_visitor.h
+ be_include/be_visitor.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Guard_T.h \
+ $(ACE_ROOT)/ace/Lock.h \
+ $(ACE_ROOT)/ace/Lock.inl \
+ $(ACE_ROOT)/ace/Guard_T.inl \
+ $(ACE_ROOT)/ace/Guard_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Auto_Event.h \
+ $(ACE_ROOT)/ace/Event.h \
+ $(ACE_ROOT)/ace/Event.inl \
+ $(ACE_ROOT)/ace/Auto_Event.inl \
+ $(ACE_ROOT)/ace/Barrier.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Barrier.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Manual_Event.h \
+ $(ACE_ROOT)/ace/Manual_Event.inl \
+ $(ACE_ROOT)/ace/Mutex.h \
+ $(ACE_ROOT)/ace/Mutex.inl \
+ $(ACE_ROOT)/ace/Null_Barrier.h \
+ $(ACE_ROOT)/ace/Null_Condition.h \
+ $(ACE_ROOT)/ace/Null_Mutex.h \
+ $(ACE_ROOT)/ace/Null_Semaphore.h \
+ $(ACE_ROOT)/ace/RW_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Mutex.inl \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Semaphore.h \
+ $(ACE_ROOT)/ace/Semaphore.inl \
+ $(ACE_ROOT)/ace/Thread_Semaphore.h \
+ $(ACE_ROOT)/ace/Thread_Semaphore.inl \
+ $(ACE_ROOT)/ace/TSS_Adapter.h \
+ $(ACE_ROOT)/ace/TSS_Adapter.inl \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.inl \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.cpp \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.h \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.inl \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.cpp \
+ $(ACE_ROOT)/ace/TSS_T.h \
+ $(ACE_ROOT)/ace/TSS_T.inl \
+ $(ACE_ROOT)/ace/TSS_T.cpp \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Condition_T.h \
+ $(ACE_ROOT)/ace/Condition_T.inl \
+ $(ACE_ROOT)/ace/Condition_T.cpp \
+ $(ACE_ROOT)/ace/Synch_Traits.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/ast_predefined_type.h include/utl_stack.h
.obj/be_expression.o .obj/be_expression.so .shobj/be_expression.o .shobj/be_expression.so: be/be_expression.cpp be_include/be_expression.h \
include/ast_expression.h \
@@ -1944,7 +2248,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i be_include/be_visitor.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ be_include/be_visitor.h
.obj/be_factory.o .obj/be_factory.so .shobj/be_factory.o .shobj/be_factory.so: be/be_factory.cpp be_include/be_factory.h \
be_include/be_scope.h include/utl_scope.h include/ast_decl.h \
@@ -1954,7 +2260,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -2022,8 +2329,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -2045,7 +2353,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -2113,9 +2422,11 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_field.h be_include/be_visitor.h be_include/be_type.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_field.h be_include/be_visitor.h \
+ be_include/be_type.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -2229,8 +2540,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -2343,6 +2655,7 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
+ $(ACE_ROOT)/ace/streams.h \
include/ast_predefined_type.h include/ast_concrete_type.h \
include/ast_type.h include/ast_decl.h include/idl_narrow.h \
include/utl_stack.h
@@ -2355,7 +2668,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -2423,8 +2737,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -2437,7 +2752,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -2553,7 +2869,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -2621,8 +2938,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -2635,7 +2953,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -2744,11 +3063,13 @@ realclean: clean
be_include/be_interface_strategy.h be_include/be_attribute.h \
include/ast_attribute.h include/ast_field.h \
be_include/be_operation_strategy.h be_include/be_operation.h \
- include/ast_operation.h be_include/be_visitor.h be_include/be_helper.h \
- be_include/be_stream_factory.h be_include/be_extern.h \
- be_include/be_global.h include/utl_identifier.h include/ast_generator.h \
- include/ast_argument.h include/ast_predefined_type.h \
- include/ast_concrete_type.h include/ast_union_label.h \
+ include/ast_operation.h be_include/be_exception.h \
+ include/ast_exception.h include/ast_structure.h \
+ include/ast_concrete_type.h be_include/be_visitor.h \
+ be_include/be_helper.h be_include/be_stream_factory.h \
+ be_include/be_extern.h be_include/be_global.h include/utl_identifier.h \
+ include/utl_exceptlist.h include/ast_generator.h include/ast_argument.h \
+ include/ast_predefined_type.h include/ast_union_label.h \
include/ast_component.h include/global_extern.h include/idl_global.h \
$(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
$(ACE_ROOT)/ace/Functor.h \
@@ -2943,8 +3264,9 @@ realclean: clean
be_include/TAO_IDL_BE_Export.h be_include/be_interface.h \
be_include/be_scope.h include/utl_scope.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
- include/TAO_IDL_FE_Export.h include/idl_bool.h include/idl_narrow.h \
- include/ast_expression.h \
+ include/TAO_IDL_FE_Export.h include/idl_bool.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -2957,7 +3279,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -2982,7 +3305,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3050,8 +3374,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -3074,8 +3400,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
$(ACE_ROOT)/ace/SString.i \
- include/ast_interface_fwd.h be_include/be_visitor.h \
- include/ast_interface.h include/utl_scope.h include/ast_expression.h \
+ include/ast_interface_fwd.h be_include/be_interface.h \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -3085,16 +3411,92 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.i \
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
- include/ast_typedef.h \
+ include/ast_typedef.h be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/TSS_T.h \
+ $(ACE_ROOT)/ace/Lock.h \
+ $(ACE_ROOT)/ace/Lock.inl \
+ $(ACE_ROOT)/ace/Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/TSS_T.inl \
+ $(ACE_ROOT)/ace/TSS_T.cpp \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Guard_T.h \
+ $(ACE_ROOT)/ace/Guard_T.inl \
+ $(ACE_ROOT)/ace/Guard_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Framework_Component.h \
+ $(ACE_ROOT)/ace/Framework_Component.inl \
+ $(ACE_ROOT)/ace/Framework_Component_T.h \
+ $(ACE_ROOT)/ace/Framework_Component_T.inl \
+ $(ACE_ROOT)/ace/Framework_Component_T.cpp \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Auto_Event.h \
+ $(ACE_ROOT)/ace/Event.h \
+ $(ACE_ROOT)/ace/Event.inl \
+ $(ACE_ROOT)/ace/Auto_Event.inl \
+ $(ACE_ROOT)/ace/Barrier.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Barrier.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Manual_Event.h \
+ $(ACE_ROOT)/ace/Manual_Event.inl \
+ $(ACE_ROOT)/ace/Mutex.h \
+ $(ACE_ROOT)/ace/Mutex.inl \
+ $(ACE_ROOT)/ace/Null_Barrier.h \
+ $(ACE_ROOT)/ace/Null_Condition.h \
+ $(ACE_ROOT)/ace/Null_Mutex.h \
+ $(ACE_ROOT)/ace/Null_Semaphore.h \
+ $(ACE_ROOT)/ace/RW_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Mutex.inl \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Semaphore.h \
+ $(ACE_ROOT)/ace/Semaphore.inl \
+ $(ACE_ROOT)/ace/Thread_Semaphore.h \
+ $(ACE_ROOT)/ace/Thread_Semaphore.inl \
+ $(ACE_ROOT)/ace/TSS_Adapter.h \
+ $(ACE_ROOT)/ace/TSS_Adapter.inl \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.inl \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.cpp \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.h \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.inl \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.cpp \
+ $(ACE_ROOT)/ace/Condition_T.h \
+ $(ACE_ROOT)/ace/Condition_T.inl \
+ $(ACE_ROOT)/ace/Condition_T.cpp \
+ $(ACE_ROOT)/ace/Synch_Traits.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ be_include/TAO_IDL_BE_Export.h include/ast_interface.h \
$(ACE_ROOT)/ace/Unbounded_Queue.h \
$(ACE_ROOT)/ace/Node.h \
$(ACE_ROOT)/ace/Node.cpp \
$(ACE_ROOT)/ace/Unbounded_Queue.inl \
$(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
+ be_include/be_visitor.h
.obj/be_valuetype.o .obj/be_valuetype.so .shobj/be_valuetype.o .shobj/be_valuetype.so: be/be_valuetype.cpp be_include/be_valuetype.h \
be_include/be_interface.h be_include/be_scope.h include/utl_scope.h \
@@ -3104,7 +3506,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3172,8 +3575,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -3186,7 +3590,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -3327,7 +3732,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3395,8 +3801,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -3450,7 +3858,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3518,8 +3927,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -3551,7 +3961,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3619,8 +4030,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -3642,8 +4055,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_native.h \
- be_include/be_visitor.h
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_native.h be_include/be_visitor.h
.obj/be_operation.o .obj/be_operation.so .shobj/be_operation.o .shobj/be_operation.so: be/be_operation.cpp be_include/be_operation.h \
be_include/be_scope.h include/utl_scope.h include/ast_decl.h \
@@ -3653,7 +4066,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3721,8 +4135,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -3828,7 +4243,8 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.cpp \
be_include/TAO_IDL_BE_Export.h include/ast_operation.h \
be_include/be_operation_strategy.h be_include/be_predefined_type.h \
- be_include/be_type.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -3839,7 +4255,32 @@ realclean: clean
$(ACE_ROOT)/ace/SString.i \
include/ast_predefined_type.h include/ast_concrete_type.h \
be_include/be_argument.h include/ast_argument.h include/ast_field.h \
- be_include/be_visitor.h
+ be_include/be_visitor.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/utl_stack.h
.obj/be_operation_strategy.o .obj/be_operation_strategy.so .shobj/be_operation_strategy.o .shobj/be_operation_strategy.so: be/be_operation_strategy.cpp \
be_include/be_operation_strategy.h be_include/be_codegen.h \
@@ -4016,7 +4457,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4084,8 +4526,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -4110,10 +4554,107 @@ realclean: clean
$(ACE_ROOT)/ace/SString.i \
include/ast_predefined_type.h include/ast_concrete_type.h \
be_include/be_visitor.h include/utl_identifier.h \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
$(ACE_ROOT)/ace/Log_Msg.h \
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Guard_T.h \
+ $(ACE_ROOT)/ace/Lock.h \
+ $(ACE_ROOT)/ace/Lock.inl \
+ $(ACE_ROOT)/ace/Guard_T.inl \
+ $(ACE_ROOT)/ace/Guard_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Auto_Event.h \
+ $(ACE_ROOT)/ace/Event.h \
+ $(ACE_ROOT)/ace/Event.inl \
+ $(ACE_ROOT)/ace/Auto_Event.inl \
+ $(ACE_ROOT)/ace/Barrier.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Barrier.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Manual_Event.h \
+ $(ACE_ROOT)/ace/Manual_Event.inl \
+ $(ACE_ROOT)/ace/Mutex.h \
+ $(ACE_ROOT)/ace/Mutex.inl \
+ $(ACE_ROOT)/ace/Null_Barrier.h \
+ $(ACE_ROOT)/ace/Null_Condition.h \
+ $(ACE_ROOT)/ace/Null_Mutex.h \
+ $(ACE_ROOT)/ace/Null_Semaphore.h \
+ $(ACE_ROOT)/ace/RW_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Mutex.inl \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Semaphore.h \
+ $(ACE_ROOT)/ace/Semaphore.inl \
+ $(ACE_ROOT)/ace/Thread_Semaphore.h \
+ $(ACE_ROOT)/ace/Thread_Semaphore.inl \
+ $(ACE_ROOT)/ace/TSS_Adapter.h \
+ $(ACE_ROOT)/ace/TSS_Adapter.inl \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.inl \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.cpp \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.h \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.inl \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.cpp \
+ $(ACE_ROOT)/ace/TSS_T.h \
+ $(ACE_ROOT)/ace/TSS_T.inl \
+ $(ACE_ROOT)/ace/TSS_T.cpp \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Condition_T.h \
+ $(ACE_ROOT)/ace/Condition_T.inl \
+ $(ACE_ROOT)/ace/Condition_T.cpp \
+ $(ACE_ROOT)/ace/Synch_Traits.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/ast_expression.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/CDR_Base.inl \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ include/utl_stack.h
.obj/be_root.o .obj/be_root.so .shobj/be_root.o .shobj/be_root.so: be/be_root.cpp be_include/be_root.h be_include/be_decl.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
@@ -4122,7 +4663,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4190,8 +4732,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h be_include/be_scope.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4225,7 +4769,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4293,8 +4838,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4307,7 +4853,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -4419,7 +4966,27 @@ realclean: clean
be_include/be_predefined_type.h include/ast_predefined_type.h \
be_include/be_field.h include/ast_field.h be_include/be_visitor.h \
be_include/be_helper.h include/utl_identifier.h include/idl_defines.h \
- include/nr_extern.h
+ include/nr_extern.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/utl_stack.h
.obj/be_string.o .obj/be_string.so .shobj/be_string.o .shobj/be_string.so: be/be_string.cpp be_include/be_string.h be_include/be_type.h \
be_include/be_decl.h include/ast_decl.h include/utl_scoped_name.h \
@@ -4428,7 +4995,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4496,8 +5064,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -4519,9 +5089,110 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_string.h \
- include/ast_concrete_type.h be_include/be_visitor.h \
- include/utl_identifier.h
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_string.h include/ast_concrete_type.h \
+ be_include/be_visitor.h include/utl_identifier.h \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Guard_T.h \
+ $(ACE_ROOT)/ace/Lock.h \
+ $(ACE_ROOT)/ace/Lock.inl \
+ $(ACE_ROOT)/ace/Guard_T.inl \
+ $(ACE_ROOT)/ace/Guard_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Auto_Event.h \
+ $(ACE_ROOT)/ace/Event.h \
+ $(ACE_ROOT)/ace/Event.inl \
+ $(ACE_ROOT)/ace/Auto_Event.inl \
+ $(ACE_ROOT)/ace/Barrier.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Barrier.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Manual_Event.h \
+ $(ACE_ROOT)/ace/Manual_Event.inl \
+ $(ACE_ROOT)/ace/Mutex.h \
+ $(ACE_ROOT)/ace/Mutex.inl \
+ $(ACE_ROOT)/ace/Null_Barrier.h \
+ $(ACE_ROOT)/ace/Null_Condition.h \
+ $(ACE_ROOT)/ace/Null_Mutex.h \
+ $(ACE_ROOT)/ace/Null_Semaphore.h \
+ $(ACE_ROOT)/ace/RW_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Mutex.inl \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Semaphore.h \
+ $(ACE_ROOT)/ace/Semaphore.inl \
+ $(ACE_ROOT)/ace/Thread_Semaphore.h \
+ $(ACE_ROOT)/ace/Thread_Semaphore.inl \
+ $(ACE_ROOT)/ace/TSS_Adapter.h \
+ $(ACE_ROOT)/ace/TSS_Adapter.inl \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.inl \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.cpp \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.h \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.inl \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.cpp \
+ $(ACE_ROOT)/ace/TSS_T.h \
+ $(ACE_ROOT)/ace/TSS_T.inl \
+ $(ACE_ROOT)/ace/TSS_T.cpp \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Condition_T.h \
+ $(ACE_ROOT)/ace/Condition_T.inl \
+ $(ACE_ROOT)/ace/Condition_T.cpp \
+ $(ACE_ROOT)/ace/Synch_Traits.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/ast_expression.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/CDR_Base.inl \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ include/ast_predefined_type.h include/utl_stack.h
.obj/be_structure.o .obj/be_structure.so .shobj/be_structure.o .shobj/be_structure.so: be/be_structure.cpp be_include/be_structure.h \
be_include/be_scope.h include/utl_scope.h include/ast_decl.h \
@@ -4531,7 +5202,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4599,8 +5271,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4613,7 +5286,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -4721,7 +5395,28 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.cpp \
be_include/TAO_IDL_BE_Export.h be_include/be_helper.h \
be_include/be_visitor.h be_include/be_extern.h be_include/be_global.h \
- include/ast_field.h include/utl_identifier.h include/idl_defines.h
+ include/ast_field.h include/utl_identifier.h include/idl_defines.h \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/ast_predefined_type.h include/utl_stack.h
.obj/be_structure_fwd.o .obj/be_structure_fwd.so .shobj/be_structure_fwd.o .shobj/be_structure_fwd.so: be/be_structure_fwd.cpp be_include/be_structure_fwd.h \
be_include/be_type.h be_include/be_decl.h include/ast_decl.h \
@@ -4731,7 +5426,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4799,8 +5495,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -4832,7 +5530,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4900,8 +5599,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -4923,8 +5624,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/SString.i \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -5024,7 +5725,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5092,8 +5794,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -5115,8 +5819,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_typedef.h \
- be_include/be_visitor.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_typedef.h be_include/be_visitor.h \
$(ACE_ROOT)/ace/Log_Msg.h \
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
@@ -5129,7 +5833,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5197,8 +5902,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -5220,8 +5927,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/SString.i \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -5320,7 +6027,27 @@ realclean: clean
be_include/TAO_IDL_BE_Export.h be_include/be_helper.h \
be_include/be_extern.h be_include/be_global.h \
include/ast_union_branch.h include/ast_field.h include/utl_identifier.h \
- include/idl_defines.h
+ include/idl_defines.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/ast_predefined_type.h include/utl_stack.h
.obj/be_union_fwd.o .obj/be_union_fwd.so .shobj/be_union_fwd.o .shobj/be_union_fwd.so: be/be_union_fwd.cpp be_include/be_union_fwd.h \
be_include/be_structure_fwd.h be_include/be_type.h be_include/be_decl.h \
@@ -5330,7 +6057,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5398,8 +6126,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -5453,7 +6183,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5521,9 +6252,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_union_branch.h include/ast_field.h be_include/be_union.h \
- be_include/be_type.h include/ast_type.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_union_branch.h include/ast_field.h \
+ be_include/be_union.h be_include/be_type.h include/ast_type.h \
$(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
@@ -5546,8 +6278,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/SString.i \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -5645,7 +6377,8 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i be_include/be_visitor.h
+ $(ACE_ROOT)/ace/OS.i \
+ be_include/be_visitor.h
.obj/be_generator.o .obj/be_generator.so .shobj/be_generator.o .shobj/be_generator.so: be/be_generator.cpp be_include/be_generator.h \
be_include/TAO_IDL_BE_Export.h \
@@ -5724,8 +6457,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -6087,8 +6821,9 @@ realclean: clean
be_include/be_visitor_ccm_pre_proc.h include/ast_component.h \
include/ast_interface.h include/ast_type.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
- include/TAO_IDL_FE_Export.h include/idl_narrow.h include/utl_scope.h \
- include/ast_expression.h \
+ include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -6206,7 +6941,8 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/OS.i \
+ be_include/be_codegen.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -6475,7 +7211,8 @@ realclean: clean
$(ACE_ROOT)/ace/Unbounded_Queue.cpp \
$(ACE_ROOT)/ace/Malloc_Base.h \
include/global_extern.h include/TAO_IDL_FE_Export.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -6513,6 +7250,7 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
+ $(ACE_ROOT)/ace/streams.h \
include/ast_predefined_type.h include/ast_concrete_type.h \
include/ast_type.h include/ast_decl.h include/idl_narrow.h \
include/utl_stack.h include/utl_string.h include/idl_defines.h
@@ -6593,7 +7331,8 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/Message_Block.h \
@@ -6604,8 +7343,9 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
- include/TAO_IDL_FE_Export.h include/idl_bool.h include/utl_identifier.h \
- include/utl_string.h
+ include/TAO_IDL_FE_Export.h include/idl_bool.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/utl_identifier.h include/utl_string.h
.obj/be_decl.o .obj/be_decl.so .shobj/be_decl.o .shobj/be_decl.so: be/be_decl.cpp be_include/be_decl.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
@@ -6614,7 +7354,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6682,8 +7423,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h be_include/be_scope.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -6696,7 +7439,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_interface.h \
- be_include/be_type.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -6816,7 +7560,26 @@ realclean: clean
be_include/be_union.h include/ast_union.h be_include/be_enum.h \
include/ast_enum.h be_include/be_operation.h include/ast_operation.h \
be_include/be_factory.h include/ast_factory.h be_include/be_sequence.h \
- include/ast_sequence.h be_include/be_visitor.h include/utl_identifier.h
+ include/ast_sequence.h be_include/be_visitor.h \
+ include/ast_structure_fwd.h include/ast_string.h \
+ include/utl_identifier.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/ast_predefined_type.h include/utl_stack.h
.obj/be_scope.o .obj/be_scope.so .shobj/be_scope.o .shobj/be_scope.so: be/be_scope.cpp be_include/be_scope.h include/utl_scope.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
@@ -6825,7 +7588,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6893,8 +7657,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -7204,7 +7969,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -7272,8 +8038,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- be_include/be_visitor_factory.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h be_include/be_visitor_factory.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -7575,6 +8342,7 @@ realclean: clean
be_include/be_visitor_context.h be_include/be_root.h \
be_include/be_decl.h include/ast_decl.h include/utl_scoped_name.h \
include/utl_idlist.h include/utl_list.h include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
include/idl_narrow.h be_include/be_scope.h include/utl_scope.h \
include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
@@ -7788,6 +8556,7 @@ realclean: clean
be_include/be_visitor_context.h be_include/be_root.h \
be_include/be_decl.h include/ast_decl.h include/utl_scoped_name.h \
include/utl_idlist.h include/utl_list.h include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
include/idl_narrow.h be_include/be_scope.h include/utl_scope.h \
include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
@@ -7817,7 +8586,24 @@ realclean: clean
include/ast_operation.h be_include/be_predefined_type.h \
include/ast_predefined_type.h include/ast_concrete_type.h \
be_include/be_argument.h include/ast_argument.h \
- include/utl_identifier.h
+ include/utl_identifier.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/utl_stack.h
.obj/be_visitor_argument.o .obj/be_visitor_argument.so .shobj/be_visitor_argument.o .shobj/be_visitor_argument.so: be/be_visitor_argument.cpp \
be_include/be_visitor_argument.h include/idl_defines.h \
@@ -7990,16 +8776,13 @@ realclean: clean
be_include/be_visitor_argument/argument.h include/ast_argument.h \
include/ast_field.h include/ast_decl.h include/utl_scoped_name.h \
include/utl_idlist.h include/utl_list.h include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
include/idl_narrow.h be_include/be_visitor_argument/arglist.h \
be_include/be_visitor_argument/vardecl_ss.h \
be_include/be_visitor_argument/upcall_ss.h \
be_include/be_visitor_argument/post_upcall_ss.h \
be_include/be_visitor_argument/marshal_ss.h \
- be_include/be_visitor_argument/pre_invoke_cs.h \
be_include/be_visitor_argument/invoke_cs.h \
- be_include/be_visitor_argument/post_invoke_cs.h \
- be_include/be_visitor_argument/request_info_ch.h \
- be_include/be_visitor_argument/request_info_cs.h \
be_include/be_visitor_argument/paramlist.h \
be_include/be_visitor_argument/request_info_sh.h \
be_include/be_visitor_argument/request_info_ss.h \
@@ -8017,9 +8800,10 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i be_include/be_array.h \
- include/ast_array.h include/ast_concrete_type.h be_include/be_enum.h \
- be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/SString.i \
+ be_include/be_array.h include/ast_array.h include/ast_concrete_type.h \
+ be_include/be_enum.h be_include/be_scope.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -8056,11 +8840,7 @@ realclean: clean
be/be_visitor_argument/post_upcall_ss.cpp \
be/be_visitor_argument/upcall_ss.cpp \
be/be_visitor_argument/vardecl_ss.cpp \
- be/be_visitor_argument/pre_invoke_cs.cpp \
be/be_visitor_argument/invoke_cs.cpp \
- be/be_visitor_argument/post_invoke_cs.cpp \
- be/be_visitor_argument/request_info_ch.cpp \
- be/be_visitor_argument/request_info_cs.cpp \
be/be_visitor_argument/paramlist.cpp \
be/be_visitor_argument/request_info_sh.cpp \
be/be_visitor_argument/request_info_ss.cpp \
@@ -8075,7 +8855,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -8143,8 +8924,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -8157,7 +8939,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -8177,8 +8960,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_enum.h \
- include/ast_concrete_type.h be_include/be_typedef.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_enum.h include/ast_concrete_type.h be_include/be_typedef.h \
be_include/be_predefined_type.h include/ast_predefined_type.h \
be_include/be_array.h include/ast_array.h be_include/be_string.h \
include/ast_string.h be_include/be_interface.h be_include/be_codegen.h \
@@ -8330,7 +9113,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -8398,9 +9182,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- be_include/be_decl.h be_include/be_operation_strategy.h \
- be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h be_include/be_decl.h \
+ be_include/be_operation_strategy.h be_include/be_codegen.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -8534,8 +9319,6 @@ realclean: clean
be_include/be_visitor_operation/arglist.h \
be_include/be_visitor_operation/rettype.h \
be_include/be_visitor_operation/rettype_is.h \
- be_include/be_visitor_operation/rettype_vardecl_cs.h \
- be_include/be_visitor_operation/rettype_post_invoke_cs.h \
be_include/be_visitor_operation/rettype_return_cs.h \
be_include/be_visitor_operation/exceptlist_cs.h \
be_include/be_visitor_operation/argument.h \
@@ -8545,7 +9328,6 @@ realclean: clean
be_include/be_visitor_operation/rettype_assign_ss.h \
be_include/be_visitor_operation/rettype_post_upcall_ss.h \
be_include/be_visitor_operation/rettype_marshal_ss.h \
- be_include/be_visitor_operation/rettype_pre_invoke_cs.h \
be_include/be_visitor_operation/ami_ch.h \
be_include/be_visitor_operation/ami_cs.h \
be_include/be_visitor_operation/ami_handler_reply_stub_operation_ch.h \
@@ -8553,17 +9335,13 @@ realclean: clean
be_include/be_visitor_operation/ami_exception_holder_operation_cs.h \
be_include/be_visitor_operation/smart_proxy_ch.h \
be_include/be_visitor_operation/smart_proxy_cs.h \
- be_include/be_visitor_operation/interceptors_ch.h \
- be_include/be_visitor_operation/interceptors_cs.h \
be_include/be_visitor_operation/interceptors_arglist.h \
be_include/be_visitor_operation/interceptors_sh.h \
be_include/be_visitor_operation/interceptors_ss.h \
be_include/be_visitor_operation/interceptors_exceptlist.h \
be_include/be_visitor_operation/interceptors_info_rettype.h \
be_include/be_visitor_operation/interceptors_result.h \
- be_include/be_visitor_operation/base_proxy_impl_ch.h \
be_include/be_visitor_operation/proxy_impl_xh.h \
- be_include/be_visitor_operation/remote_proxy_impl_cs.h \
be_include/be_visitor_operation/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_operation/direct_proxy_impl_ss.h \
be_include/be_visitor_operation/amh_sh.h \
@@ -8742,8 +9520,9 @@ realclean: clean
be_include/TAO_IDL_BE_Export.h include/idl_bool.h \
include/ast_component.h include/ast_interface.h include/ast_type.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
- include/utl_list.h include/TAO_IDL_FE_Export.h include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ include/utl_list.h include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -8818,7 +9597,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -8886,8 +9666,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -8900,7 +9681,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -9034,18 +9816,9 @@ realclean: clean
be_include/be_visitor_interface/ami_interface_ch.h \
be_include/be_visitor_interface/smart_proxy_ch.h \
be_include/be_visitor_interface/smart_proxy_cs.h \
- be_include/be_visitor_interface/interceptors_cs.h \
be_include/be_visitor_interface/interceptors_ss.h \
- be_include/be_visitor_interface/proxy_brokers_ch.h \
- be_include/be_visitor_interface/base_proxy_broker_ch.h \
- be_include/be_visitor_interface/remote_proxy_broker_ch.h \
- be_include/be_visitor_interface/remote_proxy_broker_cs.h \
be_include/be_visitor_interface/strategized_proxy_broker_sh.h \
be_include/be_visitor_interface/strategized_proxy_broker_ss.h \
- be_include/be_visitor_interface/proxy_impls_ch.h \
- be_include/be_visitor_interface/base_proxy_impl_ch.h \
- be_include/be_visitor_interface/remote_proxy_impl_ch.h \
- be_include/be_visitor_interface/remote_proxy_impl_cs.h \
be_include/be_visitor_interface/thru_poa_proxy_impl_sh.h \
be_include/be_visitor_interface/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_interface/direct_proxy_impl_sh.h \
@@ -9084,8 +9857,6 @@ realclean: clean
be_include/be_visitor_operation/arglist.h \
be_include/be_visitor_operation/rettype.h \
be_include/be_visitor_operation/rettype_is.h \
- be_include/be_visitor_operation/rettype_vardecl_cs.h \
- be_include/be_visitor_operation/rettype_post_invoke_cs.h \
be_include/be_visitor_operation/rettype_return_cs.h \
be_include/be_visitor_operation/exceptlist_cs.h \
be_include/be_visitor_operation/argument.h \
@@ -9095,7 +9866,6 @@ realclean: clean
be_include/be_visitor_operation/rettype_assign_ss.h \
be_include/be_visitor_operation/rettype_post_upcall_ss.h \
be_include/be_visitor_operation/rettype_marshal_ss.h \
- be_include/be_visitor_operation/rettype_pre_invoke_cs.h \
be_include/be_visitor_operation/ami_ch.h \
be_include/be_visitor_operation/ami_cs.h \
be_include/be_visitor_operation/ami_handler_reply_stub_operation_ch.h \
@@ -9103,17 +9873,13 @@ realclean: clean
be_include/be_visitor_operation/ami_exception_holder_operation_cs.h \
be_include/be_visitor_operation/smart_proxy_ch.h \
be_include/be_visitor_operation/smart_proxy_cs.h \
- be_include/be_visitor_operation/interceptors_ch.h \
- be_include/be_visitor_operation/interceptors_cs.h \
be_include/be_visitor_operation/interceptors_arglist.h \
be_include/be_visitor_operation/interceptors_sh.h \
be_include/be_visitor_operation/interceptors_ss.h \
be_include/be_visitor_operation/interceptors_exceptlist.h \
be_include/be_visitor_operation/interceptors_info_rettype.h \
be_include/be_visitor_operation/interceptors_result.h \
- be_include/be_visitor_operation/base_proxy_impl_ch.h \
be_include/be_visitor_operation/proxy_impl_xh.h \
- be_include/be_visitor_operation/remote_proxy_impl_cs.h \
be_include/be_visitor_operation/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_operation/direct_proxy_impl_ss.h \
be_include/be_visitor_operation/amh_sh.h \
@@ -9198,7 +9964,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -9266,8 +10033,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -9398,7 +10167,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -9466,8 +10236,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_constant.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_constant.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -9623,7 +10394,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -9691,9 +10463,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_argument.h include/ast_field.h be_include/be_array.h \
- be_include/be_type.h include/ast_type.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_argument.h include/ast_field.h \
+ be_include/be_array.h be_include/be_type.h include/ast_type.h \
$(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
@@ -9716,10 +10489,10 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_array.h \
- include/ast_concrete_type.h be_include/be_attribute.h \
- include/ast_attribute.h be_include/be_operation_strategy.h \
- be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_array.h include/ast_concrete_type.h \
+ be_include/be_attribute.h include/ast_attribute.h \
+ be_include/be_operation_strategy.h be_include/be_codegen.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -10028,8 +10801,10 @@ realclean: clean
be_include/be_visitor_context.h include/idl_bool.h \
be_include/be_typedef.h be_include/be_type.h be_include/be_decl.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
- include/utl_list.h include/TAO_IDL_FE_Export.h include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ include/utl_list.h include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -10039,7 +10814,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_typedef.h
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_typedef.h
.obj/be_visitor_enum.o .obj/be_visitor_enum.so .shobj/be_visitor_enum.o .shobj/be_visitor_enum.so: be/be_visitor_enum.cpp be_include/be_enum.h \
be_include/be_scope.h include/utl_scope.h include/ast_decl.h \
@@ -10049,7 +10825,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -10117,8 +10894,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -10131,7 +10909,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -10151,8 +10930,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_enum.h \
- include/ast_concrete_type.h be_include/be_enum_val.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_enum.h include/ast_concrete_type.h be_include/be_enum_val.h \
include/ast_enum_val.h include/ast_constant.h include/global_extern.h \
include/idl_global.h \
$(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
@@ -10377,6 +11156,7 @@ realclean: clean
be_include/be_interface.h be_include/be_scope.h include/utl_scope.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
include/utl_list.h include/TAO_IDL_FE_Export.h include/idl_bool.h \
+ $(ACE_ROOT)/ace/streams.h \
include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
@@ -10547,7 +11327,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -10615,8 +11396,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -10744,7 +11527,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -10812,9 +11596,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_field.h be_include/be_exception.h be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_field.h be_include/be_exception.h \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -11025,7 +11810,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -11093,8 +11879,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -11116,9 +11904,9 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i be_include/be_field.h \
- include/ast_field.h be_include/be_array.h include/ast_array.h \
- include/ast_concrete_type.h be_include/be_typedef.h \
+ $(ACE_ROOT)/ace/SString.i \
+ be_include/be_field.h include/ast_field.h be_include/be_array.h \
+ include/ast_array.h include/ast_concrete_type.h be_include/be_typedef.h \
include/ast_typedef.h be_include/be_enum.h be_include/be_scope.h \
include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
@@ -11129,8 +11917,8 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.h \
$(ACE_ROOT)/ace/Message_Block_T.i \
$(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Stream.i include/ast_enum.h \
- be_include/be_interface.h be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ include/ast_enum.h be_include/be_interface.h be_include/be_codegen.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -11293,7 +12081,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -11361,8 +12150,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -11375,7 +12165,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -11494,7 +12285,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -11562,9 +12354,11 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_argument.h include/ast_field.h be_include/be_interface.h \
- be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_argument.h include/ast_field.h \
+ be_include/be_interface.h be_include/be_scope.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -11737,18 +12531,9 @@ realclean: clean
be_include/be_visitor_interface/ami_interface_ch.h \
be_include/be_visitor_interface/smart_proxy_ch.h \
be_include/be_visitor_interface/smart_proxy_cs.h \
- be_include/be_visitor_interface/interceptors_cs.h \
be_include/be_visitor_interface/interceptors_ss.h \
- be_include/be_visitor_interface/proxy_brokers_ch.h \
- be_include/be_visitor_interface/base_proxy_broker_ch.h \
- be_include/be_visitor_interface/remote_proxy_broker_ch.h \
- be_include/be_visitor_interface/remote_proxy_broker_cs.h \
be_include/be_visitor_interface/strategized_proxy_broker_sh.h \
be_include/be_visitor_interface/strategized_proxy_broker_ss.h \
- be_include/be_visitor_interface/proxy_impls_ch.h \
- be_include/be_visitor_interface/base_proxy_impl_ch.h \
- be_include/be_visitor_interface/remote_proxy_impl_ch.h \
- be_include/be_visitor_interface/remote_proxy_impl_cs.h \
be_include/be_visitor_interface/thru_poa_proxy_impl_sh.h \
be_include/be_visitor_interface/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_interface/direct_proxy_impl_sh.h \
@@ -11828,8 +12613,6 @@ realclean: clean
be_include/be_visitor_operation/arglist.h \
be_include/be_visitor_operation/rettype.h \
be_include/be_visitor_operation/rettype_is.h \
- be_include/be_visitor_operation/rettype_vardecl_cs.h \
- be_include/be_visitor_operation/rettype_post_invoke_cs.h \
be_include/be_visitor_operation/rettype_return_cs.h \
be_include/be_visitor_operation/exceptlist_cs.h \
be_include/be_visitor_operation/argument.h \
@@ -11839,7 +12622,6 @@ realclean: clean
be_include/be_visitor_operation/rettype_assign_ss.h \
be_include/be_visitor_operation/rettype_post_upcall_ss.h \
be_include/be_visitor_operation/rettype_marshal_ss.h \
- be_include/be_visitor_operation/rettype_pre_invoke_cs.h \
be_include/be_visitor_operation/ami_ch.h \
be_include/be_visitor_operation/ami_cs.h \
be_include/be_visitor_operation/ami_handler_reply_stub_operation_ch.h \
@@ -11847,17 +12629,13 @@ realclean: clean
be_include/be_visitor_operation/ami_exception_holder_operation_cs.h \
be_include/be_visitor_operation/smart_proxy_ch.h \
be_include/be_visitor_operation/smart_proxy_cs.h \
- be_include/be_visitor_operation/interceptors_ch.h \
- be_include/be_visitor_operation/interceptors_cs.h \
be_include/be_visitor_operation/interceptors_arglist.h \
be_include/be_visitor_operation/interceptors_sh.h \
be_include/be_visitor_operation/interceptors_ss.h \
be_include/be_visitor_operation/interceptors_exceptlist.h \
be_include/be_visitor_operation/interceptors_info_rettype.h \
be_include/be_visitor_operation/interceptors_result.h \
- be_include/be_visitor_operation/base_proxy_impl_ch.h \
be_include/be_visitor_operation/proxy_impl_xh.h \
- be_include/be_visitor_operation/remote_proxy_impl_cs.h \
be_include/be_visitor_operation/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_operation/direct_proxy_impl_ss.h \
be_include/be_visitor_operation/amh_sh.h \
@@ -11885,18 +12663,9 @@ realclean: clean
be/be_visitor_interface/smart_proxy_ch.cpp \
be/be_visitor_interface/smart_proxy_cs.cpp \
be/be_visitor_interface/ami_interface_ch.cpp \
- be/be_visitor_interface/interceptors_cs.cpp \
be/be_visitor_interface/interceptors_ss.cpp \
- be/be_visitor_interface/base_proxy_broker_ch.cpp \
- be/be_visitor_interface/proxy_brokers_ch.cpp \
- be/be_visitor_interface/remote_proxy_broker_ch.cpp \
- be/be_visitor_interface/remote_proxy_broker_cs.cpp \
be/be_visitor_interface/strategized_proxy_broker_sh.cpp \
be/be_visitor_interface/strategized_proxy_broker_ss.cpp \
- be/be_visitor_interface/proxy_impls_ch.cpp \
- be/be_visitor_interface/base_proxy_impl_ch.cpp \
- be/be_visitor_interface/remote_proxy_impl_ch.cpp \
- be/be_visitor_interface/remote_proxy_impl_cs.cpp \
be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp \
be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp \
be/be_visitor_interface/direct_proxy_impl_sh.cpp \
@@ -11914,7 +12683,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -11982,8 +12752,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -12123,7 +12895,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -12191,9 +12964,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_argument.h include/ast_field.h be_include/be_array.h \
- be_include/be_type.h include/ast_type.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_argument.h include/ast_field.h \
+ be_include/be_array.h be_include/be_type.h include/ast_type.h \
$(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
@@ -12216,10 +12990,10 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_array.h \
- include/ast_concrete_type.h be_include/be_attribute.h \
- include/ast_attribute.h be_include/be_operation_strategy.h \
- be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_array.h include/ast_concrete_type.h \
+ be_include/be_attribute.h include/ast_attribute.h \
+ be_include/be_operation_strategy.h be_include/be_codegen.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -12392,11 +13166,7 @@ realclean: clean
be_include/be_visitor_argument/upcall_ss.h \
be_include/be_visitor_argument/post_upcall_ss.h \
be_include/be_visitor_argument/marshal_ss.h \
- be_include/be_visitor_argument/pre_invoke_cs.h \
be_include/be_visitor_argument/invoke_cs.h \
- be_include/be_visitor_argument/post_invoke_cs.h \
- be_include/be_visitor_argument/request_info_ch.h \
- be_include/be_visitor_argument/request_info_cs.h \
be_include/be_visitor_argument/paramlist.h \
be_include/be_visitor_argument/request_info_sh.h \
be_include/be_visitor_argument/request_info_ss.h \
@@ -12487,8 +13257,6 @@ realclean: clean
be_include/be_visitor_operation/arglist.h \
be_include/be_visitor_operation/rettype.h \
be_include/be_visitor_operation/rettype_is.h \
- be_include/be_visitor_operation/rettype_vardecl_cs.h \
- be_include/be_visitor_operation/rettype_post_invoke_cs.h \
be_include/be_visitor_operation/rettype_return_cs.h \
be_include/be_visitor_operation/exceptlist_cs.h \
be_include/be_visitor_operation/argument.h \
@@ -12498,7 +13266,6 @@ realclean: clean
be_include/be_visitor_operation/rettype_assign_ss.h \
be_include/be_visitor_operation/rettype_post_upcall_ss.h \
be_include/be_visitor_operation/rettype_marshal_ss.h \
- be_include/be_visitor_operation/rettype_pre_invoke_cs.h \
be_include/be_visitor_operation/ami_ch.h \
be_include/be_visitor_operation/ami_cs.h \
be_include/be_visitor_operation/ami_handler_reply_stub_operation_ch.h \
@@ -12506,17 +13273,13 @@ realclean: clean
be_include/be_visitor_operation/ami_exception_holder_operation_cs.h \
be_include/be_visitor_operation/smart_proxy_ch.h \
be_include/be_visitor_operation/smart_proxy_cs.h \
- be_include/be_visitor_operation/interceptors_ch.h \
- be_include/be_visitor_operation/interceptors_cs.h \
be_include/be_visitor_operation/interceptors_arglist.h \
be_include/be_visitor_operation/interceptors_sh.h \
be_include/be_visitor_operation/interceptors_ss.h \
be_include/be_visitor_operation/interceptors_exceptlist.h \
be_include/be_visitor_operation/interceptors_info_rettype.h \
be_include/be_visitor_operation/interceptors_result.h \
- be_include/be_visitor_operation/base_proxy_impl_ch.h \
be_include/be_visitor_operation/proxy_impl_xh.h \
- be_include/be_visitor_operation/remote_proxy_impl_cs.h \
be_include/be_visitor_operation/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_operation/direct_proxy_impl_ss.h \
be_include/be_visitor_operation/amh_sh.h \
@@ -12592,7 +13355,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -12660,8 +13424,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -12674,7 +13439,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -12804,7 +13570,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -12872,8 +13639,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -12897,7 +13665,8 @@ realclean: clean
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
be_include/be_constant.h include/ast_constant.h include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -13099,18 +13868,9 @@ realclean: clean
be_include/be_visitor_interface/ami_interface_ch.h \
be_include/be_visitor_interface/smart_proxy_ch.h \
be_include/be_visitor_interface/smart_proxy_cs.h \
- be_include/be_visitor_interface/interceptors_cs.h \
be_include/be_visitor_interface/interceptors_ss.h \
- be_include/be_visitor_interface/proxy_brokers_ch.h \
- be_include/be_visitor_interface/base_proxy_broker_ch.h \
- be_include/be_visitor_interface/remote_proxy_broker_ch.h \
- be_include/be_visitor_interface/remote_proxy_broker_cs.h \
be_include/be_visitor_interface/strategized_proxy_broker_sh.h \
be_include/be_visitor_interface/strategized_proxy_broker_ss.h \
- be_include/be_visitor_interface/proxy_impls_ch.h \
- be_include/be_visitor_interface/base_proxy_impl_ch.h \
- be_include/be_visitor_interface/remote_proxy_impl_ch.h \
- be_include/be_visitor_interface/remote_proxy_impl_cs.h \
be_include/be_visitor_interface/thru_poa_proxy_impl_sh.h \
be_include/be_visitor_interface/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_interface/direct_proxy_impl_sh.h \
@@ -13229,7 +13989,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -13297,9 +14058,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_argument.h include/ast_field.h be_include/be_array.h \
- be_include/be_type.h include/ast_type.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_argument.h include/ast_field.h \
+ be_include/be_array.h be_include/be_type.h include/ast_type.h \
$(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
@@ -13322,10 +14084,10 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_array.h \
- include/ast_concrete_type.h be_include/be_attribute.h \
- include/ast_attribute.h be_include/be_operation_strategy.h \
- be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_array.h include/ast_concrete_type.h \
+ be_include/be_attribute.h include/ast_attribute.h \
+ be_include/be_operation_strategy.h be_include/be_codegen.h \
$(ACE_ROOT)/ace/Singleton.h \
$(ACE_ROOT)/ace/TSS_T.h \
$(ACE_ROOT)/ace/Lock.h \
@@ -13452,8 +14214,6 @@ realclean: clean
be_include/be_visitor_operation/arglist.h \
be_include/be_visitor_operation/rettype.h \
be_include/be_visitor_operation/rettype_is.h \
- be_include/be_visitor_operation/rettype_vardecl_cs.h \
- be_include/be_visitor_operation/rettype_post_invoke_cs.h \
be_include/be_visitor_operation/rettype_return_cs.h \
be_include/be_visitor_operation/exceptlist_cs.h \
be_include/be_visitor_operation/argument.h \
@@ -13463,7 +14223,6 @@ realclean: clean
be_include/be_visitor_operation/rettype_assign_ss.h \
be_include/be_visitor_operation/rettype_post_upcall_ss.h \
be_include/be_visitor_operation/rettype_marshal_ss.h \
- be_include/be_visitor_operation/rettype_pre_invoke_cs.h \
be_include/be_visitor_operation/ami_ch.h \
be_include/be_visitor_operation/ami_cs.h \
be_include/be_visitor_operation/ami_handler_reply_stub_operation_ch.h \
@@ -13471,17 +14230,13 @@ realclean: clean
be_include/be_visitor_operation/ami_exception_holder_operation_cs.h \
be_include/be_visitor_operation/smart_proxy_ch.h \
be_include/be_visitor_operation/smart_proxy_cs.h \
- be_include/be_visitor_operation/interceptors_ch.h \
- be_include/be_visitor_operation/interceptors_cs.h \
be_include/be_visitor_operation/interceptors_arglist.h \
be_include/be_visitor_operation/interceptors_sh.h \
be_include/be_visitor_operation/interceptors_ss.h \
be_include/be_visitor_operation/interceptors_exceptlist.h \
be_include/be_visitor_operation/interceptors_info_rettype.h \
be_include/be_visitor_operation/interceptors_result.h \
- be_include/be_visitor_operation/base_proxy_impl_ch.h \
be_include/be_visitor_operation/proxy_impl_xh.h \
- be_include/be_visitor_operation/remote_proxy_impl_cs.h \
be_include/be_visitor_operation/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_operation/direct_proxy_impl_ss.h \
be_include/be_visitor_operation/amh_sh.h \
@@ -13495,11 +14250,7 @@ realclean: clean
be_include/be_visitor_argument/upcall_ss.h \
be_include/be_visitor_argument/post_upcall_ss.h \
be_include/be_visitor_argument/marshal_ss.h \
- be_include/be_visitor_argument/pre_invoke_cs.h \
be_include/be_visitor_argument/invoke_cs.h \
- be_include/be_visitor_argument/post_invoke_cs.h \
- be_include/be_visitor_argument/request_info_ch.h \
- be_include/be_visitor_argument/request_info_cs.h \
be_include/be_visitor_argument/paramlist.h \
be_include/be_visitor_argument/request_info_sh.h \
be_include/be_visitor_argument/request_info_ss.h \
@@ -13521,30 +14272,23 @@ realclean: clean
be/be_visitor_operation/rettype_is.cpp \
be/be_visitor_operation/rettype_assign_ss.cpp \
be/be_visitor_operation/rettype_marshal_ss.cpp \
- be/be_visitor_operation/rettype_post_invoke_cs.cpp \
be/be_visitor_operation/rettype_post_upcall_ss.cpp \
be/be_visitor_operation/rettype_return_cs.cpp \
- be/be_visitor_operation/rettype_vardecl_cs.cpp \
be/be_visitor_operation/rettype_vardecl_ss.cpp \
be/be_visitor_operation/tie_sh.cpp be/be_visitor_operation/tie_si.cpp \
- be/be_visitor_operation/rettype_pre_invoke_cs.cpp \
be/be_visitor_operation/ami_ch.cpp be/be_visitor_operation/ami_cs.cpp \
be/be_visitor_operation/ami_handler_reply_stub_operation_ch.cpp \
be/be_visitor_operation/ami_handler_reply_stub_operation_cs.cpp \
be/be_visitor_operation/ami_exception_holder_operation_cs.cpp \
be/be_visitor_operation/smart_proxy_ch.cpp \
be/be_visitor_operation/smart_proxy_cs.cpp \
- be/be_visitor_operation/interceptors_ch.cpp \
- be/be_visitor_operation/interceptors_cs.cpp \
be/be_visitor_operation/interceptors_arglist.cpp \
be/be_visitor_operation/interceptors_sh.cpp \
be/be_visitor_operation/interceptors_ss.cpp \
be/be_visitor_operation/interceptors_exceptlist.cpp \
be/be_visitor_operation/interceptors_info_rettype.cpp \
be/be_visitor_operation/interceptors_result.cpp \
- be/be_visitor_operation/base_proxy_impl_ch.cpp \
be/be_visitor_operation/proxy_impl_xh.cpp \
- be/be_visitor_operation/remote_proxy_impl_cs.cpp \
be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp \
be/be_visitor_operation/direct_proxy_impl_ss.cpp \
be/be_visitor_operation/amh_ss.cpp be/be_visitor_operation/amh_sh.cpp \
@@ -13558,7 +14302,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -13626,8 +14371,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_constant.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_constant.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -13858,18 +14604,9 @@ realclean: clean
be_include/be_visitor_interface/ami_interface_ch.h \
be_include/be_visitor_interface/smart_proxy_ch.h \
be_include/be_visitor_interface/smart_proxy_cs.h \
- be_include/be_visitor_interface/interceptors_cs.h \
be_include/be_visitor_interface/interceptors_ss.h \
- be_include/be_visitor_interface/proxy_brokers_ch.h \
- be_include/be_visitor_interface/base_proxy_broker_ch.h \
- be_include/be_visitor_interface/remote_proxy_broker_ch.h \
- be_include/be_visitor_interface/remote_proxy_broker_cs.h \
be_include/be_visitor_interface/strategized_proxy_broker_sh.h \
be_include/be_visitor_interface/strategized_proxy_broker_ss.h \
- be_include/be_visitor_interface/proxy_impls_ch.h \
- be_include/be_visitor_interface/base_proxy_impl_ch.h \
- be_include/be_visitor_interface/remote_proxy_impl_ch.h \
- be_include/be_visitor_interface/remote_proxy_impl_cs.h \
be_include/be_visitor_interface/thru_poa_proxy_impl_sh.h \
be_include/be_visitor_interface/thru_poa_proxy_impl_ss.h \
be_include/be_visitor_interface/direct_proxy_impl_sh.h \
@@ -13981,6 +14718,11 @@ realclean: clean
be_include/be_visitor_component_fwd/cdr_op_ch.h \
be_include/be_visitor_component_fwd/cdr_op_ci.h \
be_include/be_visitor_home.h be_include/be_visitor_home/home_ch.h \
+ be_include/be_visitor_arg_traits.h be_include/be_visitor_tmplinst.h \
+ include/ast_argument.h be_include/be_visitor_tmplinst/tmplinst.h \
+ be_include/be_visitor_tmplinst/arg_tmplinst.h \
+ be_include/be_visitor_tmplinst/tmplinst_cs.h \
+ be_include/be_visitor_tmplinst/tmplinst_ss.h \
be_include/be_visitor_context.h be/be_visitor_root/root.cpp \
be/be_visitor_root/root_ch.cpp be/be_visitor_root/root_ci.cpp \
be/be_visitor_root/root_cs.cpp be/be_visitor_root/root_sh.cpp \
@@ -13996,7 +14738,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -14064,9 +14807,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_argument.h include/ast_field.h be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_argument.h include/ast_field.h \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -14181,7 +14925,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -14249,8 +14994,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -14272,9 +15019,9 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_array.h \
- include/ast_concrete_type.h be_include/be_enum.h be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_array.h include/ast_concrete_type.h be_include/be_enum.h \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -14435,7 +15182,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -14503,9 +15251,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_field.h be_include/be_structure.h be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_field.h be_include/be_structure.h \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -14695,7 +15444,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -14763,8 +15513,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -14890,6 +15642,475 @@ realclean: clean
be_include/be_visitor_context.h be_include/be_helper.h \
be/be_visitor_structure_fwd/structure_fwd_ch.cpp
+.obj/be_visitor_arg_traits.o .obj/be_visitor_arg_traits.so .shobj/be_visitor_arg_traits.o .shobj/be_visitor_arg_traits.so: be/be_visitor_arg_traits.cpp \
+ be_include/be_visitor_arg_traits.h be_include/be_visitor_scope.h \
+ be_include/be_visitor_decl.h be_include/be_visitor.h \
+ be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/pre.h \
+ $(ACE_ROOT)/ace/post.h \
+ $(ACE_ROOT)/ace/ace_wchar.h \
+ $(ACE_ROOT)/ace/ace_wchar.inl \
+ $(ACE_ROOT)/ace/TSS_T.h \
+ $(ACE_ROOT)/ace/Lock.h \
+ $(ACE_ROOT)/ace/ACE_export.h \
+ $(ACE_ROOT)/ace/Lock.inl \
+ $(ACE_ROOT)/ace/Thread_Mutex.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/OS_Dirent.h \
+ $(ACE_ROOT)/ace/OS_Export.h \
+ $(ACE_ROOT)/ace/OS_Errno.h \
+ $(ACE_ROOT)/ace/os_include/os_errno.h \
+ $(ACE_ROOT)/ace/OS_Errno.inl \
+ $(ACE_ROOT)/ace/os_include/os_dirent.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_types.h \
+ $(ACE_ROOT)/ace/os_include/os_stddef.h \
+ $(ACE_ROOT)/ace/os_include/os_limits.h \
+ $(ACE_ROOT)/ace/os_include/os_unistd.h \
+ $(ACE_ROOT)/ace/os_include/os_inttypes.h \
+ $(ACE_ROOT)/ace/os_include/os_stdint.h \
+ $(ACE_ROOT)/ace/os_include/os_stdio.h \
+ $(ACE_ROOT)/ace/os_include/os_stdarg.h \
+ $(ACE_ROOT)/ace/OS_Dirent.inl \
+ $(ACE_ROOT)/ace/OS_String.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/os_include/os_float.h \
+ $(ACE_ROOT)/ace/os_include/os_stdlib.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_wait.h \
+ $(ACE_ROOT)/ace/os_include/os_signal.h \
+ $(ACE_ROOT)/ace/os_include/os_time.h \
+ $(ACE_ROOT)/ace/os_include/os_ucontext.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_resource.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_time.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_select.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/OS_String.inl \
+ $(ACE_ROOT)/ace/os_include/os_string.h \
+ $(ACE_ROOT)/ace/os_include/os_strings.h \
+ $(ACE_ROOT)/ace/os_include/os_ctype.h \
+ $(ACE_ROOT)/ace/OS_Memory.h \
+ $(ACE_ROOT)/ace/OS_Memory.inl \
+ $(ACE_ROOT)/ace/OS_TLI.h \
+ $(ACE_ROOT)/ace/OS_TLI.inl \
+ $(ACE_ROOT)/ace/os_include/os_dlfcn.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_mman.h \
+ $(ACE_ROOT)/ace/os_include/os_netdb.h \
+ $(ACE_ROOT)/ace/os_include/netinet/os_in.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_socket.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_uio.h \
+ $(ACE_ROOT)/ace/os_include/net/os_if.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_sem.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_ipc.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/Time_Value.inl \
+ $(ACE_ROOT)/ace/Default_Constants.h \
+ $(ACE_ROOT)/ace/Global_Macros.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/os_include/os_pthread.h \
+ $(ACE_ROOT)/ace/os_include/os_assert.h \
+ $(ACE_ROOT)/ace/os_include/os_fcntl.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_stat.h \
+ $(ACE_ROOT)/ace/iosfwd.h \
+ $(ACE_ROOT)/ace/os_include/arpa/os_inet.h \
+ $(ACE_ROOT)/ace/os_include/netinet/os_tcp.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_shm.h \
+ $(ACE_ROOT)/ace/os_include/os_pwd.h \
+ $(ACE_ROOT)/ace/os_include/os_stropts.h \
+ $(ACE_ROOT)/ace/os_include/os_termios.h \
+ $(ACE_ROOT)/ace/os_include/os_aio.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_un.h \
+ $(ACE_ROOT)/ace/os_include/os_poll.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_msg.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
+ $(ACE_ROOT)/ace/os_include/os_syslog.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/TSS_T.inl \
+ $(ACE_ROOT)/ace/TSS_T.cpp \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/Guard_T.h \
+ $(ACE_ROOT)/ace/Guard_T.inl \
+ $(ACE_ROOT)/ace/Guard_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Framework_Component.h \
+ $(ACE_ROOT)/ace/Framework_Component.inl \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Flag_Manip.h \
+ $(ACE_ROOT)/ace/Flag_Manip.i \
+ $(ACE_ROOT)/ace/Handle_Ops.h \
+ $(ACE_ROOT)/ace/Handle_Ops.i \
+ $(ACE_ROOT)/ace/Lib_Find.h \
+ $(ACE_ROOT)/ace/Lib_Find.i \
+ $(ACE_ROOT)/ace/Init_ACE.h \
+ $(ACE_ROOT)/ace/Init_ACE.i \
+ $(ACE_ROOT)/ace/Sock_Connect.h \
+ $(ACE_ROOT)/ace/Sock_Connect.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Framework_Component_T.h \
+ $(ACE_ROOT)/ace/Framework_Component_T.inl \
+ $(ACE_ROOT)/ace/Framework_Component_T.cpp \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Auto_Event.h \
+ $(ACE_ROOT)/ace/Event.h \
+ $(ACE_ROOT)/ace/Event.inl \
+ $(ACE_ROOT)/ace/Auto_Event.inl \
+ $(ACE_ROOT)/ace/Barrier.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Barrier.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Manual_Event.h \
+ $(ACE_ROOT)/ace/Manual_Event.inl \
+ $(ACE_ROOT)/ace/Mutex.h \
+ $(ACE_ROOT)/ace/Mutex.inl \
+ $(ACE_ROOT)/ace/Null_Barrier.h \
+ $(ACE_ROOT)/ace/Null_Condition.h \
+ $(ACE_ROOT)/ace/Null_Mutex.h \
+ $(ACE_ROOT)/ace/Null_Semaphore.h \
+ $(ACE_ROOT)/ace/RW_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Mutex.inl \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Semaphore.h \
+ $(ACE_ROOT)/ace/Semaphore.inl \
+ $(ACE_ROOT)/ace/Thread_Semaphore.h \
+ $(ACE_ROOT)/ace/Thread_Semaphore.inl \
+ $(ACE_ROOT)/ace/TSS_Adapter.h \
+ $(ACE_ROOT)/ace/TSS_Adapter.inl \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.inl \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.cpp \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.h \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.inl \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.cpp \
+ $(ACE_ROOT)/ace/Condition_T.h \
+ $(ACE_ROOT)/ace/Condition_T.inl \
+ $(ACE_ROOT)/ace/Condition_T.cpp \
+ $(ACE_ROOT)/ace/Synch_Traits.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ be_include/TAO_IDL_BE_Export.h include/idl_bool.h \
+ be_include/be_visitor_context.h be_include/be_root.h \
+ be_include/be_decl.h include/ast_decl.h include/utl_scoped_name.h \
+ include/utl_idlist.h include/utl_list.h include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h be_include/be_scope.h include/utl_scope.h \
+ include/ast_expression.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/CDR_Base.inl \
+ $(ACE_ROOT)/ace/SStringfwd.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ include/ast_typedef.h include/ast_type.h include/ast_root.h \
+ include/ast_module.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ be_include/be_module.h be_include/be_interface.h be_include/be_type.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/String_Base.h \
+ $(ACE_ROOT)/ace/String_Base_Const.h \
+ $(ACE_ROOT)/ace/String_Base.i \
+ $(ACE_ROOT)/ace/String_Base.cpp \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_interface.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ be_include/be_valuetype.h include/ast_valuetype.h include/ast_field.h \
+ be_include/be_interface_fwd.h include/ast_interface_fwd.h \
+ be_include/be_valuetype_fwd.h include/ast_valuetype_fwd.h \
+ be_include/be_eventtype.h include/ast_eventtype.h \
+ be_include/be_eventtype_fwd.h include/ast_eventtype_fwd.h \
+ be_include/be_array.h include/ast_array.h include/ast_concrete_type.h \
+ be_include/be_enum.h include/ast_enum.h be_include/be_predefined_type.h \
+ include/ast_predefined_type.h be_include/be_sequence.h \
+ include/ast_sequence.h be_include/be_string.h include/ast_string.h \
+ be_include/be_structure.h include/ast_structure.h be_include/be_field.h \
+ be_include/be_union.h include/ast_union.h be_include/be_union_branch.h \
+ include/ast_union_branch.h be_include/be_typedef.h \
+ be_include/be_helper.h be_include/be_extern.h be_include/be_global.h \
+ include/utl_identifier.h include/idl_defines.h
+
+.obj/be_visitor_tmplinst.o .obj/be_visitor_tmplinst.so .shobj/be_visitor_tmplinst.o .shobj/be_visitor_tmplinst.so: be/be_visitor_tmplinst.cpp be_include/be_root.h \
+ be_include/be_decl.h include/ast_decl.h include/utl_scoped_name.h \
+ include/utl_idlist.h include/utl_list.h include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/pre.h \
+ $(ACE_ROOT)/ace/post.h \
+ $(ACE_ROOT)/ace/ace_wchar.h \
+ $(ACE_ROOT)/ace/ace_wchar.inl \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
+ $(ACE_ROOT)/ace/OS_Dirent.h \
+ $(ACE_ROOT)/ace/OS_Export.h \
+ $(ACE_ROOT)/ace/OS_Errno.h \
+ $(ACE_ROOT)/ace/os_include/os_errno.h \
+ $(ACE_ROOT)/ace/OS_Errno.inl \
+ $(ACE_ROOT)/ace/os_include/os_dirent.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_types.h \
+ $(ACE_ROOT)/ace/os_include/os_stddef.h \
+ $(ACE_ROOT)/ace/os_include/os_limits.h \
+ $(ACE_ROOT)/ace/os_include/os_unistd.h \
+ $(ACE_ROOT)/ace/os_include/os_inttypes.h \
+ $(ACE_ROOT)/ace/os_include/os_stdint.h \
+ $(ACE_ROOT)/ace/os_include/os_stdio.h \
+ $(ACE_ROOT)/ace/os_include/os_stdarg.h \
+ $(ACE_ROOT)/ace/OS_Dirent.inl \
+ $(ACE_ROOT)/ace/OS_String.h \
+ $(ACE_ROOT)/ace/Basic_Types.h \
+ $(ACE_ROOT)/ace/os_include/os_float.h \
+ $(ACE_ROOT)/ace/os_include/os_stdlib.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_wait.h \
+ $(ACE_ROOT)/ace/os_include/os_signal.h \
+ $(ACE_ROOT)/ace/os_include/os_time.h \
+ $(ACE_ROOT)/ace/os_include/os_ucontext.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_resource.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_time.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_select.h \
+ $(ACE_ROOT)/ace/ACE_export.h \
+ $(ACE_ROOT)/ace/Basic_Types.i \
+ $(ACE_ROOT)/ace/OS_String.inl \
+ $(ACE_ROOT)/ace/os_include/os_string.h \
+ $(ACE_ROOT)/ace/os_include/os_strings.h \
+ $(ACE_ROOT)/ace/os_include/os_ctype.h \
+ $(ACE_ROOT)/ace/OS_Memory.h \
+ $(ACE_ROOT)/ace/OS_Memory.inl \
+ $(ACE_ROOT)/ace/OS_TLI.h \
+ $(ACE_ROOT)/ace/OS_TLI.inl \
+ $(ACE_ROOT)/ace/os_include/os_dlfcn.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_mman.h \
+ $(ACE_ROOT)/ace/os_include/os_netdb.h \
+ $(ACE_ROOT)/ace/os_include/netinet/os_in.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_socket.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_uio.h \
+ $(ACE_ROOT)/ace/os_include/net/os_if.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_sem.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_ipc.h \
+ $(ACE_ROOT)/ace/Time_Value.h \
+ $(ACE_ROOT)/ace/Time_Value.inl \
+ $(ACE_ROOT)/ace/Default_Constants.h \
+ $(ACE_ROOT)/ace/Global_Macros.h \
+ $(ACE_ROOT)/ace/Min_Max.h \
+ $(ACE_ROOT)/ace/os_include/os_pthread.h \
+ $(ACE_ROOT)/ace/os_include/os_assert.h \
+ $(ACE_ROOT)/ace/os_include/os_fcntl.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_stat.h \
+ $(ACE_ROOT)/ace/iosfwd.h \
+ $(ACE_ROOT)/ace/os_include/arpa/os_inet.h \
+ $(ACE_ROOT)/ace/os_include/netinet/os_tcp.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_shm.h \
+ $(ACE_ROOT)/ace/os_include/os_pwd.h \
+ $(ACE_ROOT)/ace/os_include/os_stropts.h \
+ $(ACE_ROOT)/ace/os_include/os_termios.h \
+ $(ACE_ROOT)/ace/os_include/os_aio.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_un.h \
+ $(ACE_ROOT)/ace/os_include/os_poll.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_msg.h \
+ $(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
+ $(ACE_ROOT)/ace/os_include/os_syslog.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h be_include/be_scope.h include/utl_scope.h \
+ include/ast_expression.h \
+ $(ACE_ROOT)/ace/CDR_Stream.h \
+ $(ACE_ROOT)/ace/CDR_Base.h \
+ $(ACE_ROOT)/ace/CDR_Base.inl \
+ $(ACE_ROOT)/ace/SStringfwd.h \
+ $(ACE_ROOT)/ace/Message_Block.h \
+ $(ACE_ROOT)/ace/Message_Block.i \
+ $(ACE_ROOT)/ace/Message_Block_T.h \
+ $(ACE_ROOT)/ace/Message_Block_T.i \
+ $(ACE_ROOT)/ace/Message_Block_T.cpp \
+ $(ACE_ROOT)/ace/Malloc_Base.h \
+ $(ACE_ROOT)/ace/CDR_Stream.i \
+ include/ast_typedef.h include/ast_type.h include/ast_root.h \
+ include/ast_module.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ be_include/be_module.h be_include/be_interface.h be_include/be_type.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/String_Base.h \
+ $(ACE_ROOT)/ace/String_Base_Const.h \
+ $(ACE_ROOT)/ace/String_Base.i \
+ $(ACE_ROOT)/ace/String_Base.cpp \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Flag_Manip.h \
+ $(ACE_ROOT)/ace/Flag_Manip.i \
+ $(ACE_ROOT)/ace/Handle_Ops.h \
+ $(ACE_ROOT)/ace/Handle_Ops.i \
+ $(ACE_ROOT)/ace/Lib_Find.h \
+ $(ACE_ROOT)/ace/Lib_Find.i \
+ $(ACE_ROOT)/ace/Init_ACE.h \
+ $(ACE_ROOT)/ace/Init_ACE.i \
+ $(ACE_ROOT)/ace/Sock_Connect.h \
+ $(ACE_ROOT)/ace/Sock_Connect.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp \
+ $(ACE_ROOT)/ace/SString.i \
+ be_include/be_codegen.h \
+ $(ACE_ROOT)/ace/Singleton.h \
+ $(ACE_ROOT)/ace/TSS_T.h \
+ $(ACE_ROOT)/ace/Lock.h \
+ $(ACE_ROOT)/ace/Lock.inl \
+ $(ACE_ROOT)/ace/Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/TSS_T.inl \
+ $(ACE_ROOT)/ace/TSS_T.cpp \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Guard_T.h \
+ $(ACE_ROOT)/ace/Guard_T.inl \
+ $(ACE_ROOT)/ace/Guard_T.cpp \
+ $(ACE_ROOT)/ace/Singleton.i \
+ $(ACE_ROOT)/ace/Singleton.cpp \
+ $(ACE_ROOT)/ace/Object_Manager.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Object_Manager.i \
+ $(ACE_ROOT)/ace/Managed_Object.h \
+ $(ACE_ROOT)/ace/Managed_Object.i \
+ $(ACE_ROOT)/ace/Managed_Object.cpp \
+ $(ACE_ROOT)/ace/Framework_Component.h \
+ $(ACE_ROOT)/ace/Framework_Component.inl \
+ $(ACE_ROOT)/ace/Framework_Component_T.h \
+ $(ACE_ROOT)/ace/Framework_Component_T.inl \
+ $(ACE_ROOT)/ace/Framework_Component_T.cpp \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Auto_Event.h \
+ $(ACE_ROOT)/ace/Event.h \
+ $(ACE_ROOT)/ace/Event.inl \
+ $(ACE_ROOT)/ace/Auto_Event.inl \
+ $(ACE_ROOT)/ace/Barrier.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Barrier.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Manual_Event.h \
+ $(ACE_ROOT)/ace/Manual_Event.inl \
+ $(ACE_ROOT)/ace/Mutex.h \
+ $(ACE_ROOT)/ace/Mutex.inl \
+ $(ACE_ROOT)/ace/Null_Barrier.h \
+ $(ACE_ROOT)/ace/Null_Condition.h \
+ $(ACE_ROOT)/ace/Null_Mutex.h \
+ $(ACE_ROOT)/ace/Null_Semaphore.h \
+ $(ACE_ROOT)/ace/RW_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Mutex.inl \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Semaphore.h \
+ $(ACE_ROOT)/ace/Semaphore.inl \
+ $(ACE_ROOT)/ace/Thread_Semaphore.h \
+ $(ACE_ROOT)/ace/Thread_Semaphore.inl \
+ $(ACE_ROOT)/ace/TSS_Adapter.h \
+ $(ACE_ROOT)/ace/TSS_Adapter.inl \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.inl \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.cpp \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.h \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.inl \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.cpp \
+ $(ACE_ROOT)/ace/Condition_T.h \
+ $(ACE_ROOT)/ace/Condition_T.inl \
+ $(ACE_ROOT)/ace/Condition_T.cpp \
+ $(ACE_ROOT)/ace/Synch_Traits.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ be_include/TAO_IDL_BE_Export.h include/ast_interface.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ be_include/be_valuetype.h include/ast_valuetype.h include/ast_field.h \
+ be_include/be_array.h include/ast_array.h include/ast_concrete_type.h \
+ be_include/be_enum.h include/ast_enum.h be_include/be_sequence.h \
+ include/ast_sequence.h be_include/be_string.h include/ast_string.h \
+ be_include/be_structure.h include/ast_structure.h be_include/be_union.h \
+ include/ast_union.h be_include/be_operation.h include/ast_operation.h \
+ be_include/be_argument.h include/ast_argument.h \
+ be_include/be_interface_fwd.h include/ast_interface_fwd.h \
+ be_include/be_valuetype_fwd.h include/ast_valuetype_fwd.h \
+ be_include/be_eventtype.h include/ast_eventtype.h \
+ be_include/be_eventtype_fwd.h include/ast_eventtype_fwd.h \
+ be_include/be_structure_fwd.h include/ast_structure_fwd.h \
+ be_include/be_field.h be_include/be_union_fwd.h include/ast_union_fwd.h \
+ be_include/be_union_branch.h include/ast_union_branch.h \
+ be_include/be_typedef.h be_include/be_helper.h be_include/be_extern.h \
+ be_include/be_global.h include/utl_identifier.h include/global_extern.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ include/ast_predefined_type.h include/utl_stack.h \
+ be_include/be_visitor_tmplinst.h include/idl_defines.h \
+ be_include/be_visitor_scope.h be_include/be_visitor_decl.h \
+ be_include/be_visitor.h be_include/be_visitor_tmplinst/tmplinst.h \
+ be_include/be_visitor_tmplinst/arg_tmplinst.h \
+ be_include/be_visitor_tmplinst/tmplinst_cs.h \
+ be_include/be_visitor_tmplinst/tmplinst_ss.h \
+ be_include/be_visitor_context.h be/be_visitor_tmplinst/tmplinst.cpp \
+ be/be_visitor_tmplinst/arg_tmplinst.cpp \
+ be/be_visitor_tmplinst/tmplinst_cs.cpp \
+ be/be_visitor_tmplinst/tmplinst_ss.cpp
+
.obj/be_visitor_typecode.o .obj/be_visitor_typecode.so .shobj/be_visitor_typecode.o .shobj/be_visitor_typecode.so: be/be_visitor_typecode.cpp be_include/be_array.h \
be_include/be_type.h be_include/be_decl.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
@@ -14898,7 +16119,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -14966,8 +16188,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -14989,9 +16213,9 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_array.h \
- include/ast_concrete_type.h be_include/be_enum.h be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_array.h include/ast_concrete_type.h be_include/be_enum.h \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -15137,7 +16361,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -15205,8 +16430,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -15228,9 +16455,9 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_array.h \
- include/ast_concrete_type.h be_include/be_enum.h be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_array.h include/ast_concrete_type.h be_include/be_enum.h \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -15326,6 +16553,7 @@ realclean: clean
$(ACE_ROOT)/ace/Node.cpp \
$(ACE_ROOT)/ace/Unbounded_Queue.inl \
$(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ be_include/be_interface_fwd.h include/ast_interface_fwd.h \
be_include/be_predefined_type.h include/ast_predefined_type.h \
be_include/be_sequence.h include/ast_sequence.h be_include/be_string.h \
include/ast_string.h be_include/be_structure.h include/ast_structure.h \
@@ -15420,7 +16648,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -15488,8 +16717,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -15502,7 +16732,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h be_include/be_type.h \
- be_include/be_decl.h $(ACE_ROOT)/ace/SString.h \
+ be_include/be_decl.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -15522,8 +16753,8 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_enum.h \
- include/ast_concrete_type.h be_include/be_typedef.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_enum.h include/ast_concrete_type.h be_include/be_typedef.h \
be_include/be_predefined_type.h include/ast_predefined_type.h \
be_include/be_union.h include/ast_union.h include/ast_structure.h \
$(ACE_ROOT)/ace/Unbounded_Queue.h \
@@ -15685,7 +16916,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -15753,8 +16985,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -15889,7 +17123,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -15957,8 +17192,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -15980,9 +17217,9 @@ realclean: clean
$(ACE_ROOT)/ace/Auto_Ptr.h \
$(ACE_ROOT)/ace/Auto_Ptr.i \
$(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/SString.i include/ast_array.h \
- include/ast_concrete_type.h be_include/be_enum.h be_include/be_scope.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/SString.i \
+ include/ast_array.h include/ast_concrete_type.h be_include/be_enum.h \
+ be_include/be_scope.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -16349,6 +17586,7 @@ realclean: clean
be_include/be_visitor_factory.h include/ast_interface.h \
include/ast_type.h include/ast_decl.h include/utl_scoped_name.h \
include/utl_idlist.h include/utl_list.h include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/SStringfwd.h \
diff --git a/TAO/TAO_IDL/Makefile.EXE b/TAO/TAO_IDL/Makefile.EXE
index 046a11bdb47..073c8989665 100644
--- a/TAO/TAO_IDL/Makefile.EXE
+++ b/TAO/TAO_IDL/Makefile.EXE
@@ -227,8 +227,9 @@ endif # !def TAO_IDL_PREPROCESSOR
be_include/TAO_IDL_BE_Export.h be_include/be_generator.h \
include/ast_generator.h include/ast_operation.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
- include/TAO_IDL_FE_Export.h include/idl_bool.h include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ include/TAO_IDL_FE_Export.h include/idl_bool.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -284,8 +285,8 @@ endif # !def TAO_IDL_PREPROCESSOR
$(ACE_ROOT)/ace/Process.h \
$(ACE_ROOT)/ace/Handle_Set.h \
$(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Process.i ../tao/Version.h \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/Process.i \
+ ../tao/Version.h
.obj/drv_args.o .obj/drv_args.so .shobj/drv_args.o .shobj/drv_args.so: driver/drv_args.cpp include/idl_defines.h \
include/global_extern.h include/TAO_IDL_FE_Export.h \
@@ -293,7 +294,8 @@ endif # !def TAO_IDL_PREPROCESSOR
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/Basic_Types.h \
$(ACE_ROOT)/ace/os_include/os_limits.h \
@@ -473,8 +475,8 @@ endif # !def TAO_IDL_PREPROCESSOR
$(ACE_ROOT)/ace/Condition_T.cpp \
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp include/idl_bool.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/idl_bool.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -485,6 +487,7 @@ endif # !def TAO_IDL_PREPROCESSOR
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
+ $(ACE_ROOT)/ace/streams.h \
include/ast_predefined_type.h include/ast_concrete_type.h \
include/ast_type.h include/ast_decl.h include/idl_narrow.h \
include/utl_stack.h include/drv_extern.h be_include/be_global.h \
@@ -501,7 +504,8 @@ endif # !def TAO_IDL_PREPROCESSOR
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/Basic_Types.h \
$(ACE_ROOT)/ace/os_include/os_limits.h \
@@ -693,10 +697,12 @@ endif # !def TAO_IDL_PREPROCESSOR
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
+ $(ACE_ROOT)/ace/streams.h \
include/ast_predefined_type.h include/ast_concrete_type.h \
include/ast_type.h include/ast_decl.h include/idl_narrow.h \
include/utl_stack.h include/fe_extern.h include/drv_extern.h \
- include/utl_string.h $(ACE_ROOT)/ace/Version.h \
+ include/utl_string.h \
+ $(ACE_ROOT)/ace/Version.h \
$(ACE_ROOT)/ace/Process_Manager.h \
$(ACE_ROOT)/ace/Reactor.h \
$(ACE_ROOT)/ace/Handle_Set.h \
@@ -727,7 +733,6 @@ endif # !def TAO_IDL_PREPROCESSOR
$(ACE_ROOT)/ace/Env_Value_T.i \
$(ACE_ROOT)/ace/Env_Value_T.cpp \
$(ACE_ROOT)/ace/ARGV.h \
- $(ACE_ROOT)/ace/ARGV.i \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/ARGV.i
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/TAO_IDL/Makefile.FE b/TAO/TAO_IDL/Makefile.FE
index 8081fa47ae3..87d5ec65bc9 100644
--- a/TAO/TAO_IDL/Makefile.FE
+++ b/TAO/TAO_IDL/Makefile.FE
@@ -142,7 +142,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -210,9 +211,11 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/ast_array.h \
- include/ast_concrete_type.h include/ast_type.h include/ast_decl.h \
- include/idl_narrow.h include/utl_err.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/ast_array.h include/ast_concrete_type.h include/ast_type.h \
+ include/ast_decl.h include/idl_narrow.h include/utl_err.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -224,7 +227,8 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -445,7 +449,8 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h
.obj/fe_init.o .obj/fe_init.so .shobj/fe_init.o .shobj/fe_init.so: fe/fe_init.cpp include/ast_module.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
@@ -454,7 +459,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -522,8 +528,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -649,8 +656,8 @@ realclean: clean
$(ACE_ROOT)/ace/Condition_T.cpp \
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp include/utl_stack.h \
- include/fe_extern.h
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/utl_stack.h include/fe_extern.h
.obj/fe_extern.o .obj/fe_extern.so .shobj/fe_extern.o .shobj/fe_extern.so: fe/fe_extern.cpp include/fe_extern.h \
include/TAO_IDL_FE_Export.h \
@@ -660,7 +667,8 @@ realclean: clean
$(ACE_ROOT)/ace/ace_wchar.inl \
include/ast_root.h include/ast_module.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -728,8 +736,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -869,7 +878,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -937,9 +947,11 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/ast_valuetype.h \
- include/ast_interface.h include/ast_type.h include/ast_decl.h \
- include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/ast_valuetype.h include/ast_interface.h include/ast_type.h \
+ include/ast_decl.h include/idl_narrow.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1075,7 +1087,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1143,8 +1156,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1220,7 +1234,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1288,9 +1303,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_array.h include/ast_concrete_type.h include/ast_type.h \
- include/ast_attribute.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_array.h include/ast_concrete_type.h \
+ include/ast_type.h include/ast_attribute.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1419,17 +1435,19 @@ realclean: clean
$(ACE_ROOT)/ace/Condition_T.cpp \
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp include/utl_stack.h \
- include/ast_union.h include/ast_structure.h include/ast_union_fwd.h \
- include/ast_structure_fwd.h include/ast_extern.h include/ast_enum.h \
- include/ast_root.h include/ast_sequence.h include/ast_string.h \
- include/ast_factory.h include/ast_exception.h include/fe_declarator.h \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/utl_stack.h include/ast_union.h include/ast_structure.h \
+ include/ast_union_fwd.h include/ast_structure_fwd.h \
+ include/ast_extern.h include/ast_enum.h include/ast_root.h \
+ include/ast_sequence.h include/ast_string.h include/ast_factory.h \
+ include/ast_exception.h include/fe_declarator.h \
include/fe_interface_header.h include/utl_identifier.h \
include/utl_err.h include/utl_string.h include/utl_strlist.h \
include/utl_namelist.h include/utl_exprlist.h include/utl_labellist.h \
include/utl_decllist.h include/nr_extern.h
-.obj/lex.yy.o .obj/lex.yy.so .shobj/lex.yy.o .shobj/lex.yy.so: fe/lex.yy.cpp $(ACE_ROOT)/ace/OS.h \
+.obj/lex.yy.o .obj/lex.yy.so .shobj/lex.yy.o .shobj/lex.yy.so: fe/lex.yy.cpp \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/pre.h \
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
@@ -1501,8 +1519,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/utl_strlist.h \
- include/utl_list.h include/TAO_IDL_FE_Export.h include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.i \
+ include/utl_strlist.h include/utl_list.h include/TAO_IDL_FE_Export.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/streams.h \
include/utl_exprlist.h include/utl_labellist.h include/utl_decllist.h \
include/utl_string.h include/utl_err.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
@@ -1643,7 +1663,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1711,8 +1732,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -1728,8 +1750,7 @@ realclean: clean
$(ACE_ROOT)/ace/Log_Msg.h \
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
.obj/ast_argument.o .obj/ast_argument.so .shobj/ast_argument.o .shobj/ast_argument.so: ast/ast_argument.cpp include/ast_argument.h \
include/ast_field.h include/ast_decl.h include/utl_scoped_name.h \
@@ -1738,7 +1759,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1806,8 +1828,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_visitor.h $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_visitor.h
.obj/ast_attribute.o .obj/ast_attribute.so .shobj/ast_attribute.o .shobj/ast_attribute.so: ast/ast_attribute.cpp include/ast_attribute.h \
include/ast_field.h include/ast_decl.h include/utl_scoped_name.h \
@@ -1816,7 +1839,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -1884,8 +1908,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_exception.h include/ast_structure.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_exception.h include/ast_structure.h \
include/ast_concrete_type.h include/ast_type.h include/utl_scope.h \
include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
@@ -2013,8 +2038,7 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
include/ast_predefined_type.h include/utl_stack.h \
- include/global_extern.h \
- $(ACE_ROOT)/ace/streams.h
+ include/global_extern.h
.obj/ast_check.o .obj/ast_check.so .shobj/ast_check.o .shobj/ast_check.so: ast/ast_check.cpp include/global_extern.h \
include/TAO_IDL_FE_Export.h \
@@ -2022,7 +2046,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/Basic_Types.h \
$(ACE_ROOT)/ace/os_include/os_limits.h \
@@ -2202,8 +2227,8 @@ realclean: clean
$(ACE_ROOT)/ace/Condition_T.cpp \
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp include/idl_bool.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/idl_bool.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -2214,6 +2239,7 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
+ $(ACE_ROOT)/ace/streams.h \
include/ast_predefined_type.h include/ast_concrete_type.h \
include/ast_type.h include/ast_decl.h include/idl_narrow.h \
include/utl_stack.h include/utl_err.h
@@ -2226,7 +2252,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -2294,8 +2321,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -2319,7 +2347,8 @@ realclean: clean
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
include/ast_attribute.h include/ast_field.h include/ast_visitor.h \
include/utl_identifier.h include/utl_indenter.h include/utl_err.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -2421,8 +2450,7 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
include/ast_predefined_type.h include/ast_concrete_type.h \
- include/utl_stack.h include/global_extern.h \
- $(ACE_ROOT)/ace/streams.h
+ include/utl_stack.h include/global_extern.h
.obj/ast_component_fwd.o .obj/ast_component_fwd.so .shobj/ast_component_fwd.o .shobj/ast_component_fwd.so: ast/ast_component_fwd.cpp \
include/ast_component_fwd.h include/ast_interface_fwd.h \
@@ -2432,7 +2460,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -2500,9 +2529,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_visitor.h include/utl_identifier.h \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_visitor.h include/utl_identifier.h
.obj/ast_concrete_type.o .obj/ast_concrete_type.so .shobj/ast_concrete_type.o .shobj/ast_concrete_type.so: ast/ast_concrete_type.cpp \
include/ast_concrete_type.h include/ast_type.h include/ast_decl.h \
@@ -2512,7 +2541,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -2580,7 +2610,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h
.obj/ast_constant.o .obj/ast_constant.so .shobj/ast_constant.o .shobj/ast_constant.so: ast/ast_constant.cpp include/ast_constant.h \
include/ast_expression.h \
@@ -2669,8 +2701,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/ast_decl.h \
- include/idl_narrow.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/ast_decl.h include/idl_narrow.h include/global_extern.h \
+ include/idl_global.h \
$(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -2785,8 +2819,7 @@ realclean: clean
include/ast_type.h include/utl_stack.h include/utl_identifier.h \
include/ast_visitor.h include/ast_generator.h include/ast_operation.h \
include/utl_scope.h include/ast_typedef.h include/ast_argument.h \
- include/ast_field.h include/ast_union_label.h include/nr_extern.h \
- $(ACE_ROOT)/ace/streams.h
+ include/ast_field.h include/ast_union_label.h include/nr_extern.h
.obj/ast_decl.o .obj/ast_decl.so .shobj/ast_decl.o .shobj/ast_decl.so: ast/ast_decl.cpp include/ast_interface.h include/ast_type.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
@@ -2795,7 +2828,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -2863,8 +2897,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -3002,7 +3037,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3070,8 +3106,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -3198,8 +3235,7 @@ realclean: clean
include/ast_predefined_type.h include/utl_stack.h \
include/ast_generator.h include/ast_operation.h include/ast_argument.h \
include/ast_field.h include/ast_union_label.h include/ast_visitor.h \
- include/utl_identifier.h include/utl_err.h include/utl_indenter.h \
- $(ACE_ROOT)/ace/streams.h
+ include/utl_identifier.h include/utl_err.h include/utl_indenter.h
.obj/ast_enum_val.o .obj/ast_enum_val.so .shobj/ast_enum_val.o .shobj/ast_enum_val.so: ast/ast_enum_val.cpp include/ast_enum_val.h \
include/ast_constant.h include/ast_expression.h \
@@ -3288,8 +3324,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/ast_decl.h \
- include/idl_narrow.h include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/ast_decl.h include/idl_narrow.h include/global_extern.h \
+ include/idl_global.h \
$(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -3411,7 +3449,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3479,8 +3518,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -3504,7 +3544,8 @@ realclean: clean
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
include/ast_field.h include/ast_union.h include/ast_enum.h \
include/ast_enum_val.h include/ast_constant.h include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -3606,8 +3647,7 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
include/ast_predefined_type.h include/utl_stack.h include/ast_visitor.h \
- include/utl_err.h include/utl_identifier.h include/utl_indenter.h \
- $(ACE_ROOT)/ace/streams.h
+ include/utl_err.h include/utl_identifier.h include/utl_indenter.h
.obj/ast_expression.o .obj/ast_expression.so .shobj/ast_expression.o .shobj/ast_expression.so: ast/ast_expression.cpp include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
@@ -3695,9 +3735,11 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/ast_constant.h \
- include/ast_decl.h include/idl_narrow.h include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/ast_constant.h include/ast_decl.h include/idl_narrow.h \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -3810,8 +3852,7 @@ realclean: clean
include/ast_predefined_type.h include/ast_concrete_type.h \
include/ast_type.h include/utl_stack.h include/ast_visitor.h \
include/utl_err.h include/utl_scope.h include/ast_typedef.h \
- include/utl_string.h include/nr_extern.h \
- $(ACE_ROOT)/ace/streams.h
+ include/utl_string.h include/nr_extern.h
.obj/ast_eventtype.o .obj/ast_eventtype.so .shobj/ast_eventtype.o .shobj/ast_eventtype.so: ast/ast_eventtype.cpp include/ast_eventtype.h \
include/ast_valuetype.h include/ast_interface.h include/ast_type.h \
@@ -3821,7 +3862,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -3889,8 +3931,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4016,7 +4059,7 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
include/ast_predefined_type.h include/ast_concrete_type.h \
- include/utl_stack.h $(ACE_ROOT)/ace/streams.h
+ include/utl_stack.h
.obj/ast_eventtype_fwd.o .obj/ast_eventtype_fwd.so .shobj/ast_eventtype_fwd.o .shobj/ast_eventtype_fwd.so: ast/ast_eventtype_fwd.cpp \
include/ast_eventtype_fwd.h include/ast_valuetype_fwd.h \
@@ -4027,7 +4070,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4095,8 +4139,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_interface.h include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_interface.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4118,8 +4164,7 @@ realclean: clean
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- include/ast_visitor.h include/utl_identifier.h \
- $(ACE_ROOT)/ace/streams.h
+ include/ast_visitor.h include/utl_identifier.h
.obj/ast_factory.o .obj/ast_factory.so .shobj/ast_factory.o .shobj/ast_factory.so: ast/ast_factory.cpp include/ast_factory.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
@@ -4128,7 +4173,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4196,8 +4242,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4325,8 +4372,7 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.cpp \
include/ast_predefined_type.h include/utl_stack.h include/utl_err.h \
include/utl_identifier.h include/utl_exceptlist.h \
- include/utl_namelist.h \
- $(ACE_ROOT)/ace/streams.h
+ include/utl_namelist.h
.obj/ast_field.o .obj/ast_field.so .shobj/ast_field.o .shobj/ast_field.so: ast/ast_field.cpp include/ast_field.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
@@ -4335,7 +4381,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4403,9 +4450,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_type.h include/ast_visitor.h include/utl_identifier.h \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_type.h include/ast_visitor.h \
+ include/utl_identifier.h
.obj/ast_home.o .obj/ast_home.so .shobj/ast_home.o .shobj/ast_home.so: ast/ast_home.cpp include/ast_home.h include/ast_interface.h \
include/ast_type.h include/ast_decl.h include/utl_scoped_name.h \
@@ -4414,7 +4462,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4482,8 +4531,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4610,7 +4660,7 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
include/ast_predefined_type.h include/ast_concrete_type.h \
- include/utl_stack.h $(ACE_ROOT)/ace/streams.h
+ include/utl_stack.h
.obj/ast_interface.o .obj/ast_interface.so .shobj/ast_interface.o .shobj/ast_interface.so: ast/ast_interface.cpp include/ast_interface.h \
include/ast_type.h include/ast_decl.h include/utl_scoped_name.h \
@@ -4619,7 +4669,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4687,8 +4738,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4712,7 +4764,8 @@ realclean: clean
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
include/ast_interface_fwd.h include/ast_valuetype.h \
include/ast_component.h include/ast_constant.h include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -4820,7 +4873,7 @@ realclean: clean
include/ast_union_fwd.h include/ast_structure_fwd.h \
include/ast_native.h include/ast_visitor.h include/ast_extern.h \
include/utl_err.h include/utl_identifier.h include/utl_indenter.h \
- include/nr_extern.h $(ACE_ROOT)/ace/streams.h
+ include/nr_extern.h
.obj/ast_interface_fwd.o .obj/ast_interface_fwd.so .shobj/ast_interface_fwd.o .shobj/ast_interface_fwd.so: ast/ast_interface_fwd.cpp \
include/ast_interface_fwd.h include/ast_type.h include/ast_decl.h \
@@ -4830,7 +4883,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4898,8 +4952,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_interface.h include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_interface.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -4921,8 +4977,7 @@ realclean: clean
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- include/ast_visitor.h include/utl_identifier.h \
- $(ACE_ROOT)/ace/streams.h
+ include/ast_visitor.h include/utl_identifier.h
.obj/ast_module.o .obj/ast_module.so .shobj/ast_module.o .shobj/ast_module.so: ast/ast_module.cpp include/ast_module.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
@@ -4931,7 +4986,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -4999,8 +5055,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -5128,14 +5185,14 @@ realclean: clean
$(ACE_ROOT)/ace/Condition_T.cpp \
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp include/utl_stack.h \
- include/ast_exception.h include/ast_structure.h include/ast_union.h \
- include/ast_union_fwd.h include/ast_structure_fwd.h include/ast_enum.h \
- include/ast_enum_val.h include/ast_native.h include/ast_generator.h \
- include/ast_operation.h include/ast_argument.h include/ast_field.h \
- include/ast_union_label.h include/ast_visitor.h include/ast_extern.h \
- include/utl_err.h include/utl_identifier.h include/utl_indenter.h \
- include/nr_extern.h $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/utl_stack.h include/ast_exception.h include/ast_structure.h \
+ include/ast_union.h include/ast_union_fwd.h include/ast_structure_fwd.h \
+ include/ast_enum.h include/ast_enum_val.h include/ast_native.h \
+ include/ast_generator.h include/ast_operation.h include/ast_argument.h \
+ include/ast_field.h include/ast_union_label.h include/ast_visitor.h \
+ include/ast_extern.h include/utl_err.h include/utl_identifier.h \
+ include/utl_indenter.h include/nr_extern.h
.obj/ast_native.o .obj/ast_native.so .shobj/ast_native.o .shobj/ast_native.so: ast/ast_native.cpp include/ast_native.h include/ast_type.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
@@ -5144,7 +5201,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5212,8 +5270,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_visitor.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_visitor.h
.obj/ast_operation.o .obj/ast_operation.so .shobj/ast_operation.o .shobj/ast_operation.so: ast/ast_operation.cpp include/ast_operation.h \
include/ast_decl.h include/utl_scoped_name.h include/utl_idlist.h \
@@ -5222,7 +5281,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5290,8 +5350,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -5416,11 +5477,10 @@ realclean: clean
$(ACE_ROOT)/ace/Condition_T.cpp \
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp include/utl_stack.h \
- include/utl_namelist.h include/utl_exceptlist.h \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/utl_stack.h include/utl_namelist.h include/utl_exceptlist.h \
include/utl_identifier.h include/utl_string.h include/utl_strlist.h \
- include/global_extern.h \
- $(ACE_ROOT)/ace/streams.h
+ include/global_extern.h
.obj/ast_predefined_type.o .obj/ast_predefined_type.so .shobj/ast_predefined_type.o .shobj/ast_predefined_type.so: ast/ast_predefined_type.cpp \
include/ast_predefined_type.h include/ast_concrete_type.h \
@@ -5430,7 +5490,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5498,9 +5559,11 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_visitor.h include/utl_identifier.h include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_visitor.h include/utl_identifier.h \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -5631,7 +5694,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5699,8 +5763,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -5733,7 +5798,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5801,8 +5867,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -5818,8 +5885,7 @@ realclean: clean
$(ACE_ROOT)/ace/Log_Msg.h \
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
.obj/ast_string.o .obj/ast_string.so .shobj/ast_string.o .shobj/ast_string.so: ast/ast_string.cpp include/ast_string.h \
include/ast_concrete_type.h include/ast_type.h include/ast_decl.h \
@@ -5829,7 +5895,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5897,8 +5964,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -5910,7 +5978,119 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
- include/ast_visitor.h $(ACE_ROOT)/ace/streams.h
+ include/ast_visitor.h include/utl_identifier.h include/idl_defines.h \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/String_Base.h \
+ $(ACE_ROOT)/ace/String_Base_Const.h \
+ $(ACE_ROOT)/ace/String_Base.i \
+ $(ACE_ROOT)/ace/String_Base.cpp \
+ $(ACE_ROOT)/ace/ACE.h \
+ $(ACE_ROOT)/ace/Flag_Manip.h \
+ $(ACE_ROOT)/ace/Flag_Manip.i \
+ $(ACE_ROOT)/ace/Handle_Ops.h \
+ $(ACE_ROOT)/ace/Handle_Ops.i \
+ $(ACE_ROOT)/ace/Lib_Find.h \
+ $(ACE_ROOT)/ace/Lib_Find.i \
+ $(ACE_ROOT)/ace/Init_ACE.h \
+ $(ACE_ROOT)/ace/Init_ACE.i \
+ $(ACE_ROOT)/ace/Sock_Connect.h \
+ $(ACE_ROOT)/ace/Sock_Connect.i \
+ $(ACE_ROOT)/ace/ACE.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.h \
+ $(ACE_ROOT)/ace/Auto_Ptr.i \
+ $(ACE_ROOT)/ace/Auto_Ptr.cpp \
+ $(ACE_ROOT)/ace/SString.i \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
+ $(ACE_ROOT)/ace/Functor.h \
+ $(ACE_ROOT)/ace/Functor.i \
+ $(ACE_ROOT)/ace/Functor_T.h \
+ $(ACE_ROOT)/ace/Functor_T.i \
+ $(ACE_ROOT)/ace/Functor_T.cpp \
+ $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/Log_Priority.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
+ $(ACE_ROOT)/ace/Guard_T.h \
+ $(ACE_ROOT)/ace/Lock.h \
+ $(ACE_ROOT)/ace/Lock.inl \
+ $(ACE_ROOT)/ace/Guard_T.inl \
+ $(ACE_ROOT)/ace/Guard_T.cpp \
+ $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
+ $(ACE_ROOT)/ace/Containers_T.h \
+ $(ACE_ROOT)/ace/Containers.h \
+ $(ACE_ROOT)/ace/Containers.i \
+ $(ACE_ROOT)/ace/Node.h \
+ $(ACE_ROOT)/ace/Node.cpp \
+ $(ACE_ROOT)/ace/Array_Base.h \
+ $(ACE_ROOT)/ace/Array_Base.inl \
+ $(ACE_ROOT)/ace/Array_Base.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Set.h \
+ $(ACE_ROOT)/ace/Unbounded_Set.inl \
+ $(ACE_ROOT)/ace/Unbounded_Set.cpp \
+ $(ACE_ROOT)/ace/Unbounded_Queue.h \
+ $(ACE_ROOT)/ace/Unbounded_Queue.inl \
+ $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
+ $(ACE_ROOT)/ace/Containers_T.i \
+ $(ACE_ROOT)/ace/Containers_T.cpp \
+ $(ACE_ROOT)/ace/Synch_T.h \
+ $(ACE_ROOT)/ace/Synch.h \
+ $(ACE_ROOT)/ace/Auto_Event.h \
+ $(ACE_ROOT)/ace/Event.h \
+ $(ACE_ROOT)/ace/Event.inl \
+ $(ACE_ROOT)/ace/Auto_Event.inl \
+ $(ACE_ROOT)/ace/Barrier.h \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Barrier.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Condition_Recursive_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Manual_Event.h \
+ $(ACE_ROOT)/ace/Manual_Event.inl \
+ $(ACE_ROOT)/ace/Mutex.h \
+ $(ACE_ROOT)/ace/Mutex.inl \
+ $(ACE_ROOT)/ace/Null_Barrier.h \
+ $(ACE_ROOT)/ace/Null_Condition.h \
+ $(ACE_ROOT)/ace/Null_Mutex.h \
+ $(ACE_ROOT)/ace/Null_Semaphore.h \
+ $(ACE_ROOT)/ace/RW_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Mutex.inl \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.h \
+ $(ACE_ROOT)/ace/RW_Thread_Mutex.inl \
+ $(ACE_ROOT)/ace/Semaphore.h \
+ $(ACE_ROOT)/ace/Semaphore.inl \
+ $(ACE_ROOT)/ace/Thread_Semaphore.h \
+ $(ACE_ROOT)/ace/Thread_Semaphore.inl \
+ $(ACE_ROOT)/ace/TSS_Adapter.h \
+ $(ACE_ROOT)/ace/TSS_Adapter.inl \
+ $(ACE_ROOT)/ace/Synch.i \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.h \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.inl \
+ $(ACE_ROOT)/ace/Lock_Adapter_T.cpp \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.h \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.inl \
+ $(ACE_ROOT)/ace/Reverse_Lock_T.cpp \
+ $(ACE_ROOT)/ace/TSS_T.h \
+ $(ACE_ROOT)/ace/TSS_T.inl \
+ $(ACE_ROOT)/ace/TSS_T.cpp \
+ $(ACE_ROOT)/ace/Thread.h \
+ $(ACE_ROOT)/ace/Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
+ $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread_Adapter.inl \
+ $(ACE_ROOT)/ace/Thread.i \
+ $(ACE_ROOT)/ace/Condition_T.h \
+ $(ACE_ROOT)/ace/Condition_T.inl \
+ $(ACE_ROOT)/ace/Condition_T.cpp \
+ $(ACE_ROOT)/ace/Synch_Traits.h \
+ $(ACE_ROOT)/ace/Synch_T.i \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/ast_predefined_type.h include/utl_stack.h
.obj/ast_structure.o .obj/ast_structure.so .shobj/ast_structure.o .shobj/ast_structure.so: ast/ast_structure.cpp include/ast_union.h \
include/ast_structure.h include/ast_concrete_type.h include/ast_type.h \
@@ -5920,7 +6100,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -5988,8 +6169,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -6013,7 +6195,8 @@ realclean: clean
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
include/ast_structure_fwd.h include/ast_field.h include/ast_enum.h \
include/ast_enum_val.h include/ast_constant.h include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -6115,8 +6298,7 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.i \
$(ACE_ROOT)/ace/Synch_T.cpp \
include/ast_predefined_type.h include/utl_stack.h include/ast_visitor.h \
- include/utl_err.h include/utl_indenter.h \
- $(ACE_ROOT)/ace/streams.h
+ include/utl_err.h include/utl_indenter.h
.obj/ast_structure_fwd.o .obj/ast_structure_fwd.so .shobj/ast_structure_fwd.o .shobj/ast_structure_fwd.so: ast/ast_structure_fwd.cpp \
include/ast_structure_fwd.h include/ast_type.h include/ast_decl.h \
@@ -6126,7 +6308,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6194,8 +6377,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_structure.h include/ast_concrete_type.h include/utl_scope.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_structure.h \
+ include/ast_concrete_type.h include/utl_scope.h \
include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
@@ -6218,8 +6403,7 @@ realclean: clean
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- include/ast_visitor.h include/utl_identifier.h \
- $(ACE_ROOT)/ace/streams.h
+ include/ast_visitor.h include/utl_identifier.h
.obj/ast_type.o .obj/ast_type.so .shobj/ast_type.o .shobj/ast_type.so: ast/ast_type.cpp include/ast_type.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
@@ -6228,7 +6412,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6296,9 +6481,11 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_visitor.h include/utl_identifier.h include/idl_defines.h \
- include/nr_extern.h $(ACE_ROOT)/ace/Log_Msg.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_visitor.h include/utl_identifier.h \
+ include/idl_defines.h include/nr_extern.h \
+ $(ACE_ROOT)/ace/Log_Msg.h \
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
@@ -6310,7 +6497,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6378,13 +6566,13 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_visitor.h include/utl_identifier.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_visitor.h include/utl_identifier.h \
$(ACE_ROOT)/ace/Log_Msg.h \
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
.obj/ast_union.o .obj/ast_union.so .shobj/ast_union.o .shobj/ast_union.so: ast/ast_union.cpp include/ast_union.h \
include/ast_structure.h include/ast_concrete_type.h include/ast_type.h \
@@ -6394,7 +6582,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6462,8 +6651,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -6589,10 +6779,9 @@ realclean: clean
$(ACE_ROOT)/ace/Condition_T.cpp \
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp include/utl_stack.h \
- include/ast_visitor.h include/utl_err.h include/utl_identifier.h \
- include/utl_indenter.h \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/utl_stack.h include/ast_visitor.h include/utl_err.h \
+ include/utl_identifier.h include/utl_indenter.h
.obj/ast_union_fwd.o .obj/ast_union_fwd.so .shobj/ast_union_fwd.o .shobj/ast_union_fwd.so: ast/ast_union_fwd.cpp include/ast_union_fwd.h \
include/ast_structure_fwd.h include/ast_type.h include/ast_decl.h \
@@ -6602,7 +6791,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6670,9 +6860,11 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_union.h include/ast_structure.h include/ast_concrete_type.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_union.h include/ast_structure.h \
+ include/ast_concrete_type.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -6694,8 +6886,7 @@ realclean: clean
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- include/ast_visitor.h include/utl_identifier.h \
- $(ACE_ROOT)/ace/streams.h
+ include/ast_visitor.h include/utl_identifier.h
.obj/ast_union_branch.o .obj/ast_union_branch.so .shobj/ast_union_branch.o .shobj/ast_union_branch.so: ast/ast_union_branch.cpp include/ast_union_branch.h \
include/ast_field.h include/ast_decl.h include/utl_scoped_name.h \
@@ -6704,7 +6895,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6772,9 +6964,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_union_label.h include/ast_visitor.h include/utl_labellist.h \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_union_label.h include/ast_visitor.h \
+ include/utl_labellist.h
.obj/ast_union_label.o .obj/ast_union_label.so .shobj/ast_union_label.o .shobj/ast_union_label.so: ast/ast_union_label.cpp include/ast_union_label.h \
include/TAO_IDL_FE_Export.h \
@@ -6850,7 +7043,8 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -6863,8 +7057,9 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
- include/idl_bool.h include/ast_visitor.h \
- $(ACE_ROOT)/ace/streams.h
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/ast_visitor.h
.obj/ast_valuetype.o .obj/ast_valuetype.so .shobj/ast_valuetype.o .shobj/ast_valuetype.so: ast/ast_valuetype.cpp include/ast_valuetype.h \
include/ast_interface.h include/ast_type.h include/ast_decl.h \
@@ -6874,7 +7069,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -6942,8 +7138,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -7070,8 +7267,7 @@ realclean: clean
$(ACE_ROOT)/ace/Synch_T.cpp \
include/ast_predefined_type.h include/ast_concrete_type.h \
include/utl_stack.h include/utl_identifier.h include/utl_indenter.h \
- include/global_extern.h include/nr_extern.h \
- $(ACE_ROOT)/ace/streams.h
+ include/global_extern.h include/nr_extern.h
.obj/ast_valuetype_fwd.o .obj/ast_valuetype_fwd.so .shobj/ast_valuetype_fwd.o .shobj/ast_valuetype_fwd.so: ast/ast_valuetype_fwd.cpp \
include/ast_valuetype_fwd.h include/ast_interface_fwd.h \
@@ -7081,7 +7277,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -7149,8 +7346,10 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_interface.h include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_interface.h include/utl_scope.h \
+ include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -7172,8 +7371,7 @@ realclean: clean
$(ACE_ROOT)/ace/Log_Priority.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
$(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- include/ast_visitor.h include/utl_identifier.h \
- $(ACE_ROOT)/ace/streams.h
+ include/ast_visitor.h include/utl_identifier.h
.obj/ast_generator.o .obj/ast_generator.so .shobj/ast_generator.o .shobj/ast_generator.so: ast/ast_generator.cpp include/ast_root.h \
include/ast_module.h include/ast_decl.h include/utl_scoped_name.h \
@@ -7182,7 +7380,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -7250,8 +7449,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -7285,7 +7485,8 @@ realclean: clean
include/ast_field.h include/ast_union.h include/ast_union_fwd.h \
include/ast_structure_fwd.h include/ast_union_branch.h \
include/ast_enum_val.h include/ast_constant.h include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -7396,7 +7597,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -7464,7 +7666,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h
.obj/ast_recursive.o .obj/ast_recursive.so .shobj/ast_recursive.o .shobj/ast_recursive.so: ast/ast_recursive.cpp include/ast_union.h \
include/ast_structure.h include/ast_concrete_type.h include/ast_type.h \
@@ -7474,7 +7678,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -7542,8 +7747,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -7683,7 +7889,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -7751,8 +7958,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -7889,8 +8097,7 @@ realclean: clean
include/ast_attribute.h include/ast_field.h include/ast_operation.h \
include/ast_argument.h include/ast_union.h include/ast_union_fwd.h \
include/ast_union_branch.h include/ast_enum_val.h include/ast_native.h \
- include/ast_factory.h include/ast_visitor.h include/nr_extern.h \
- $(ACE_ROOT)/ace/streams.h
+ include/ast_factory.h include/ast_visitor.h include/nr_extern.h
.obj/utl_stack.o .obj/utl_stack.so .shobj/utl_stack.o .shobj/utl_stack.so: util/utl_stack.cpp include/utl_stack.h \
include/TAO_IDL_FE_Export.h \
@@ -7968,8 +8175,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -7982,7 +8190,8 @@ realclean: clean
$(ACE_ROOT)/ace/Malloc_Base.h \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/ast_typedef.h include/ast_type.h include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
$(ACE_ROOT)/ace/String_Base.i \
@@ -8100,7 +8309,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -8168,8 +8378,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -8292,10 +8503,10 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
+ $(ACE_ROOT)/ace/streams.h \
include/ast_predefined_type.h include/ast_concrete_type.h \
include/ast_type.h include/ast_decl.h include/idl_narrow.h \
- include/utl_stack.h include/utl_err.h \
- $(ACE_ROOT)/ace/streams.h
+ include/utl_stack.h include/utl_err.h
.obj/utl_decllist.o .obj/utl_decllist.so .shobj/utl_decllist.o .shobj/utl_decllist.so: util/utl_decllist.cpp include/utl_decllist.h \
include/TAO_IDL_FE_Export.h \
@@ -8373,7 +8584,8 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h
.obj/utl_labellist.o .obj/utl_labellist.so .shobj/utl_labellist.o .shobj/utl_labellist.so: util/utl_labellist.cpp include/utl_labellist.h \
include/utl_list.h include/TAO_IDL_FE_Export.h \
@@ -8390,7 +8602,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -8458,7 +8671,8 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h
.obj/utl_exceptlist.o .obj/utl_exceptlist.so .shobj/utl_exceptlist.o .shobj/utl_exceptlist.so: util/utl_exceptlist.cpp include/utl_exceptlist.h \
include/utl_list.h include/TAO_IDL_FE_Export.h \
@@ -8474,7 +8688,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -8542,8 +8757,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/utl_string.h \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/utl_string.h
.obj/utl_list.o .obj/utl_list.so .shobj/utl_list.o .shobj/utl_list.so: util/utl_list.cpp include/utl_list.h \
include/TAO_IDL_FE_Export.h \
@@ -8551,7 +8767,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -8715,7 +8932,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_global.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_global.h \
$(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -8832,7 +9051,7 @@ realclean: clean
include/global_extern.h include/nr_extern.h include/ast_interface.h \
include/utl_scope.h include/ast_typedef.h include/ast_enum.h \
include/ast_union.h include/ast_structure.h include/ast_union_label.h \
- include/idl_defines.h $(ACE_ROOT)/ace/streams.h
+ include/idl_defines.h
.obj/utl_indenter.o .obj/utl_indenter.so .shobj/utl_indenter.o .shobj/utl_indenter.so: util/utl_indenter.cpp include/utl_indenter.h \
$(ACE_ROOT)/ace/OS.h \
@@ -8916,7 +9135,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -8984,8 +9204,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/global_extern.h \
- include/idl_global.h $(ACE_ROOT)/ace/SString.h \
+ $(ACE_ROOT)/ace/OS.i \
+ include/global_extern.h include/idl_global.h \
+ $(ACE_ROOT)/ace/SString.h \
$(ACE_ROOT)/ace/SStringfwd.h \
$(ACE_ROOT)/ace/String_Base.h \
$(ACE_ROOT)/ace/String_Base_Const.h \
@@ -9108,10 +9329,10 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
+ $(ACE_ROOT)/ace/streams.h \
include/ast_predefined_type.h include/ast_concrete_type.h \
include/ast_type.h include/ast_decl.h include/idl_narrow.h \
- include/utl_stack.h include/utl_err.h include/utl_string.h \
- $(ACE_ROOT)/ace/streams.h
+ include/utl_stack.h include/utl_err.h include/utl_string.h
.obj/utl_idlist.o .obj/utl_idlist.so .shobj/utl_idlist.o .shobj/utl_idlist.so: util/utl_idlist.cpp include/utl_idlist.h include/utl_list.h \
include/TAO_IDL_FE_Export.h \
@@ -9119,7 +9340,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -9187,8 +9409,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/utl_identifier.h \
- $(ACE_ROOT)/ace/streams.h
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/utl_identifier.h
.obj/utl_global.o .obj/utl_global.so .shobj/utl_global.o .shobj/utl_global.so: util/utl_global.cpp include/idl_global.h \
$(ACE_ROOT)/ace/SString.h \
@@ -9375,8 +9598,8 @@ realclean: clean
$(ACE_ROOT)/ace/Condition_T.cpp \
$(ACE_ROOT)/ace/Synch_Traits.h \
$(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Synch_T.cpp include/idl_bool.h \
- include/ast_expression.h \
+ $(ACE_ROOT)/ace/Synch_T.cpp \
+ include/idl_bool.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
@@ -9387,14 +9610,15 @@ realclean: clean
$(ACE_ROOT)/ace/Message_Block_T.cpp \
$(ACE_ROOT)/ace/CDR_Stream.i \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
- include/TAO_IDL_FE_Export.h include/ast_predefined_type.h \
- include/ast_concrete_type.h include/ast_type.h include/ast_decl.h \
- include/idl_narrow.h include/utl_stack.h include/global_extern.h \
- include/ast_root.h include/ast_module.h include/utl_scope.h \
- include/ast_typedef.h include/ast_generator.h include/ast_operation.h \
- include/ast_argument.h include/ast_field.h include/ast_union_label.h \
- include/utl_identifier.h include/utl_indenter.h include/utl_err.h \
- include/utl_string.h
+ include/TAO_IDL_FE_Export.h \
+ $(ACE_ROOT)/ace/streams.h \
+ include/ast_predefined_type.h include/ast_concrete_type.h \
+ include/ast_type.h include/ast_decl.h include/idl_narrow.h \
+ include/utl_stack.h include/global_extern.h include/ast_root.h \
+ include/ast_module.h include/utl_scope.h include/ast_typedef.h \
+ include/ast_generator.h include/ast_operation.h include/ast_argument.h \
+ include/ast_field.h include/ast_union_label.h include/utl_identifier.h \
+ include/utl_indenter.h include/utl_err.h include/utl_string.h
.obj/narrow.o .obj/narrow.so .shobj/narrow.o .shobj/narrow.so: narrow/narrow.cpp include/ast_module.h include/ast_decl.h \
include/utl_scoped_name.h include/utl_idlist.h include/utl_list.h \
@@ -9403,7 +9627,8 @@ realclean: clean
$(ACE_ROOT)/ace/post.h \
$(ACE_ROOT)/ace/ace_wchar.h \
$(ACE_ROOT)/ace/ace_wchar.inl \
- include/idl_bool.h $(ACE_ROOT)/ace/OS.h \
+ include/idl_bool.h \
+ $(ACE_ROOT)/ace/OS.h \
$(ACE_ROOT)/ace/OS_Dirent.h \
$(ACE_ROOT)/ace/OS_Export.h \
$(ACE_ROOT)/ace/OS_Errno.h \
@@ -9471,8 +9696,9 @@ realclean: clean
$(ACE_ROOT)/ace/os_include/sys/os_msg.h \
$(ACE_ROOT)/ace/os_include/sys/os_utsname.h \
$(ACE_ROOT)/ace/os_include/os_syslog.h \
- $(ACE_ROOT)/ace/OS.i include/idl_narrow.h \
- include/utl_scope.h include/ast_expression.h \
+ $(ACE_ROOT)/ace/OS.i \
+ $(ACE_ROOT)/ace/streams.h \
+ include/idl_narrow.h include/utl_scope.h include/ast_expression.h \
$(ACE_ROOT)/ace/CDR_Stream.h \
$(ACE_ROOT)/ace/CDR_Base.h \
$(ACE_ROOT)/ace/CDR_Base.inl \
diff --git a/TAO/TAO_IDL/TAO_IDL_BE.bor b/TAO/TAO_IDL/TAO_IDL_BE.bor
index abeeb785cff..deb35c43f18 100644
--- a/TAO/TAO_IDL/TAO_IDL_BE.bor
+++ b/TAO/TAO_IDL/TAO_IDL_BE.bor
@@ -78,6 +78,7 @@ OBJFILES = \
$(OBJDIR)\be_visitor_sequence.obj \
$(OBJDIR)\be_visitor_structure.obj \
$(OBJDIR)\be_visitor_structure_fwd.obj \
+ $(OBJDIR)\be_visitor_tmplinst.obj \
$(OBJDIR)\be_visitor_typecode.obj \
$(OBJDIR)\be_visitor_typedef.obj \
$(OBJDIR)\be_visitor_union.obj \
diff --git a/TAO/TAO_IDL/TAO_IDL_BE_DLL.dsp b/TAO/TAO_IDL/TAO_IDL_BE_DLL.dsp
index f7dd64a26d0..188950395d6 100644
--- a/TAO/TAO_IDL/TAO_IDL_BE_DLL.dsp
+++ b/TAO/TAO_IDL/TAO_IDL_BE_DLL.dsp
@@ -298,6 +298,10 @@ SOURCE=.\be\be_visitor_ami_pre_proc.cpp
# End Source File
# Begin Source File
+SOURCE=.\be\be_visitor_arg_traits.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\be\be_visitor_argument.cpp
# End Source File
# Begin Source File
@@ -398,6 +402,14 @@ SOURCE=.\be\be_visitor_structure_fwd.cpp
# End Source File
# Begin Source File
+SOURCE=.\be\be_visitor_tmplinst.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\be\be_visitor_traits.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\be\be_visitor_typecode.cpp
# End Source File
# Begin Source File
@@ -622,6 +634,10 @@ SOURCE=.\be_include\be_visitor_ami_pre_proc.h
# End Source File
# Begin Source File
+SOURCE=.\be_include\be_visitor_arg_traits.h
+# End Source File
+# Begin Source File
+
SOURCE=.\be_include\be_visitor_argument.h
# End Source File
# Begin Source File
@@ -722,6 +738,14 @@ SOURCE=.\be_include\be_visitor_structure_fwd.h
# End Source File
# Begin Source File
+SOURCE=.\be_include\be_visitor_tmplinst.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\be_include\be_visitor_traits.h
+# End Source File
+# Begin Source File
+
SOURCE=.\be_include\be_visitor_typecode.h
# End Source File
# Begin Source File
diff --git a/TAO/TAO_IDL/TAO_IDL_BE_LIB.dsp b/TAO/TAO_IDL/TAO_IDL_BE_LIB.dsp
index f769a35d27a..018e7f31bdd 100644
--- a/TAO/TAO_IDL/TAO_IDL_BE_LIB.dsp
+++ b/TAO/TAO_IDL/TAO_IDL_BE_LIB.dsp
@@ -291,6 +291,10 @@ SOURCE=.\be\be_visitor_ami_pre_proc.cpp
# End Source File
# Begin Source File
+SOURCE=.\be\be_visitor_arg_traits.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\be\be_visitor_argument.cpp
# End Source File
# Begin Source File
@@ -391,6 +395,14 @@ SOURCE=.\be\be_visitor_structure_fwd.cpp
# End Source File
# Begin Source File
+SOURCE=.\be\be_visitor_tmplinst.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\be\be_visitor_traits.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\be\be_visitor_typecode.cpp
# End Source File
# Begin Source File
@@ -611,6 +623,10 @@ SOURCE=.\be_include\be_visitor_ami_pre_proc.h
# End Source File
# Begin Source File
+SOURCE=.\be_include\be_visitor_arg_traits.h
+# End Source File
+# Begin Source File
+
SOURCE=.\be_include\be_visitor_argument.h
# End Source File
# Begin Source File
@@ -711,6 +727,14 @@ SOURCE=.\be_include\be_visitor_structure_fwd.h
# End Source File
# Begin Source File
+SOURCE=.\be_include\be_visitor_tmplinst.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\be_include\be_visitor_traits.h
+# End Source File
+# Begin Source File
+
SOURCE=.\be_include\be_visitor_typecode.h
# End Source File
# Begin Source File
diff --git a/TAO/TAO_IDL/ast/ast_decl.cpp b/TAO/TAO_IDL/ast/ast_decl.cpp
index 98c87780efe..9f1bbb0673c 100644
--- a/TAO/TAO_IDL/ast/ast_decl.cpp
+++ b/TAO/TAO_IDL/ast/ast_decl.cpp
@@ -122,6 +122,7 @@ COMMON_Base::destroy (void)
AST_Decl::AST_Decl (void)
: COMMON_Base (),
repoID_ (0),
+ flat_name_ (0),
contains_wstring_ (-1),
pd_imported (I_FALSE),
pd_in_main_file (I_FALSE),
@@ -137,7 +138,6 @@ AST_Decl::AST_Decl (void)
version_ (0),
anonymous_ (I_FALSE),
typeid_set_ (I_FALSE),
- flat_name_ (0),
last_referenced_as_ (0),
prefix_scope_ (0)
{
@@ -148,6 +148,7 @@ AST_Decl::AST_Decl (NodeType nt,
idl_bool anonymous)
: COMMON_Base (),
repoID_ (0),
+ flat_name_ (0),
contains_wstring_ (-1),
pd_imported (idl_global->imported ()),
pd_in_main_file (idl_global->in_main_file ()),
@@ -166,7 +167,6 @@ AST_Decl::AST_Decl (NodeType nt,
version_ (0),
anonymous_ (anonymous),
typeid_set_ (I_FALSE),
- flat_name_ (0),
last_referenced_as_ (0),
prefix_scope_ (0)
{
@@ -1310,6 +1310,14 @@ void
AST_Decl::last_referenced_as (UTL_ScopedName *n)
{
this->last_referenced_as_ = n;
+
+ if (idl_global->in_main_file ()
+ && ACE_OS_String::strcmp (n->last_component ()->get_string (),
+ "ParameterMode") == 0)
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.parametermode_seen_);
+ }
}
UTL_Scope *
diff --git a/TAO/TAO_IDL/ast/ast_field.cpp b/TAO/TAO_IDL/ast/ast_field.cpp
index ac6bb9f0571..de1ac0e3bcf 100644
--- a/TAO/TAO_IDL/ast/ast_field.cpp
+++ b/TAO/TAO_IDL/ast/ast_field.cpp
@@ -107,7 +107,8 @@ AST_Field::AST_Field (AST_Decl::NodeType nt,
AST_Type *ft,
UTL_ScopedName *n,
Visibility vis)
- : AST_Decl (nt,
+ : COMMON_Base (),
+ AST_Decl (nt,
n),
pd_field_type (ft),
pd_visibility (vis)
diff --git a/TAO/TAO_IDL/ast/ast_generator.cpp b/TAO/TAO_IDL/ast/ast_generator.cpp
index bc5b623b8da..a2c1e55191d 100644
--- a/TAO/TAO_IDL/ast/ast_generator.cpp
+++ b/TAO/TAO_IDL/ast/ast_generator.cpp
@@ -180,13 +180,6 @@ AST_Generator::create_module (UTL_Scope *s,
}
}
- // If we are opening module CORBA, we must add the predefined
- // types TypeCode, TCKind and maybe ValueBase.
- if (!ACE_OS::strcmp (retval->local_name ()->get_string (), "CORBA"))
- {
- retval->add_CORBA_members ();
- }
-
return retval;
}
diff --git a/TAO/TAO_IDL/ast/ast_module.cpp b/TAO/TAO_IDL/ast/ast_module.cpp
index e8818547782..47626e3fc6b 100644
--- a/TAO/TAO_IDL/ast/ast_module.cpp
+++ b/TAO/TAO_IDL/ast/ast_module.cpp
@@ -1641,28 +1641,6 @@ AST_Module::be_add_interface (AST_Interface *i,
}
void
-AST_Module::add_CORBA_members (void)
-{
- UTL_ScopedName *sn = 0;
- Identifier *id = 0;
-
- ACE_NEW (id,
- Identifier ("TypeCode"));
-
- ACE_NEW (sn,
- UTL_ScopedName (id,
- 0));
-
- AST_PredefinedType *pdt =
- idl_global->gen ()->create_predefined_type (
- AST_PredefinedType::PT_pseudo,
- sn
- );
-
- this->fe_add_predefined_type (pdt);
-}
-
-void
AST_Module::add_to_previous (AST_Module *m)
{
// Here, we depend on the scope iterator in
@@ -1686,7 +1664,12 @@ AST_Module::add_to_previous (AST_Module *m)
// of this one.
if (d->node_type () == AST_Decl::NT_pre_defined)
{
- continue;
+ AST_PredefinedType *pdt = AST_PredefinedType::narrow_from_decl (d);
+
+ if (pdt->pt () != AST_PredefinedType::PT_pseudo)
+ {
+ continue;
+ }
}
else if (d->node_type () == AST_Decl::NT_interface_fwd)
{
diff --git a/TAO/TAO_IDL/ast/ast_string.cpp b/TAO/TAO_IDL/ast/ast_string.cpp
index 14fa1cc5222..2cb55e956dc 100644
--- a/TAO/TAO_IDL/ast/ast_string.cpp
+++ b/TAO/TAO_IDL/ast/ast_string.cpp
@@ -73,6 +73,9 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
#include "ast_expression.h"
#include "ast_visitor.h"
#include "ace/streams.h"
+#include "utl_identifier.h"
+#include "idl_defines.h"
+#include "global_extern.h"
ACE_RCSID (ast,
ast_string,
@@ -107,6 +110,51 @@ AST_String::AST_String (AST_Decl::NodeType nt,
{
// Always the case.
this->size_type (AST_Type::VARIABLE);
+
+ Identifier *id = 0;
+ UTL_ScopedName *new_name = 0;
+ UTL_ScopedName *conc_name = 0;
+
+ ACE_NEW (id,
+ Identifier (this->width () == 1 ? "Char *" : "WChar *"));
+
+ ACE_NEW (conc_name,
+ UTL_ScopedName (id,
+ 0));
+
+ ACE_NEW (id,
+ Identifier ("CORBA"));
+
+ ACE_NEW (new_name,
+ UTL_ScopedName (id,
+ conc_name));
+
+ this->set_name (new_name);
+
+ unsigned long bound = ms->ev ()->u.ulval;
+
+ static char namebuf[NAMEBUFSIZE];
+ static char boundbuf[NAMEBUFSIZE];
+ ACE_OS::memset (namebuf,
+ '\0',
+ NAMEBUFSIZE);
+ ACE_OS::memset (boundbuf,
+ '\0',
+ NAMEBUFSIZE);
+
+ if (bound)
+ {
+ ACE_OS::sprintf (boundbuf,
+ "_%d",
+ bound);
+ }
+
+ ACE_OS::sprintf (namebuf,
+ "CORBA_%sSTRING%s",
+ (wide == 1 ? "" : "W"),
+ boundbuf);
+
+ this->flat_name_ = ACE::strnew (namebuf);
}
AST_String::~AST_String (void)
diff --git a/TAO/TAO_IDL/ast/ast_valuetype.cpp b/TAO/TAO_IDL/ast/ast_valuetype.cpp
index 5b4c90570bb..30b17fd7c42 100644
--- a/TAO/TAO_IDL/ast/ast_valuetype.cpp
+++ b/TAO/TAO_IDL/ast/ast_valuetype.cpp
@@ -126,6 +126,12 @@ AST_ValueType::custom (void) const
return this->pd_custom;
}
+idl_bool
+AST_ValueType::will_have_factory (void)
+{
+ return I_FALSE;
+}
+
void
AST_ValueType::destroy (void)
{
diff --git a/TAO/TAO_IDL/be/be_argument.cpp b/TAO/TAO_IDL/be/be_argument.cpp
index a46c0d4f8d3..8abc9f8b000 100644
--- a/TAO/TAO_IDL/be/be_argument.cpp
+++ b/TAO/TAO_IDL/be/be_argument.cpp
@@ -20,10 +20,12 @@
// ============================================================================
#include "be_argument.h"
+#include "be_type.h"
#include "be_visitor.h"
+#include "nr_extern.h"
-ACE_RCSID (be,
- be_argument,
+ACE_RCSID (be,
+ be_argument,
"$Id$")
be_argument::be_argument (void)
@@ -50,6 +52,14 @@ be_argument::be_argument (AST_Argument::Direction d,
be_decl (AST_Decl::NT_argument,
n)
{
+ AST_Decl *dcl = ScopeAsDecl (this->defined_in ());
+
+ if (!dcl->imported () && !dcl->is_local ())
+ {
+ be_type *bt = be_type::narrow_from_decl (ft);
+ bt->seen_in_operation (I_TRUE);
+ this->set_arg_seen_bit (bt);
+ }
}
diff --git a/TAO/TAO_IDL/be/be_array.cpp b/TAO/TAO_IDL/be/be_array.cpp
index 1032e8011ca..dd7088e3603 100644
--- a/TAO/TAO_IDL/be/be_array.cpp
+++ b/TAO/TAO_IDL/be/be_array.cpp
@@ -26,6 +26,8 @@
#include "be_visitor.h"
#include "utl_identifier.h"
#include "idl_defines.h"
+#include "global_extern.h"
+
#include "ace/Log_Msg.h"
ACE_RCSID (be,
@@ -67,6 +69,11 @@ be_array::be_array (UTL_ScopedName *n,
be_type (AST_Decl::NT_array,
n)
{
+ if (!this->imported ())
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.array_seen_);
+ }
}
be_array::~be_array (void)
diff --git a/TAO/TAO_IDL/be/be_attribute.cpp b/TAO/TAO_IDL/be/be_attribute.cpp
index e94a5e951af..652a768516c 100644
--- a/TAO/TAO_IDL/be/be_attribute.cpp
+++ b/TAO/TAO_IDL/be/be_attribute.cpp
@@ -20,8 +20,11 @@
// ============================================================================
#include "be_attribute.h"
+#include "be_type.h"
#include "be_visitor.h"
+#include "global_extern.h"
+
ACE_RCSID (be,
be_attribute,
"$Id$")
@@ -73,6 +76,15 @@ be_attribute::be_attribute (idl_bool ro,
ACE_NEW (bods,
be_operation_default_strategy (0));
this->set_strategy_ = bods;
+
+ if (!this->imported () && !this->is_local ())
+ {
+ // For the return types of the two operations
+ // generated from this attribute.
+ this->set_arg_seen_bit (be_type::narrow_from_decl (ft));
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.basic_arg_seen_);
+ }
}
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp
index 77aca753446..904e937e591 100644
--- a/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/TAO/TAO_IDL/be/be_codegen.cpp
@@ -145,179 +145,130 @@ TAO_CodeGen::start_client_header (const char *fname)
{
return -1;
}
- else
- {
- *this->client_header_ << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__
- << be_nl << be_nl;
- // Generate the #ident string, if any.
- this->gen_ident_string (this->client_header_);
+ *this->client_header_ << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__
+ << be_nl << be_nl;
- // Generate the #ifndef clause.
- this->gen_ifndef_string (fname,
- this->client_header_,
- "_TAO_IDL_",
- "_H_");
+ // Generate the #ident string, if any.
+ this->gen_ident_string (this->client_header_);
- if (be_global->pre_include () != 0)
- {
- *this->client_header_ << "#include \""
- << be_global->pre_include ()
- << "\"\n";
- }
+ // Generate the #ifndef clause.
+ this->gen_ifndef_string (fname,
+ this->client_header_,
+ "_TAO_IDL_",
+ "_H_");
- // Including standard files.
- this->gen_standard_include (this->client_header_,
- "tao/corba.h");
+ if (be_global->pre_include () != 0)
+ {
+ *this->client_header_ << "#include /**/ \""
+ << be_global->pre_include ()
+ << "\"\n\n";
+ }
- // Some compilers don't optimize the #ifndef header include
- // protection, but do optimize based on #pragma once.
- *this->client_header_ << "\n\n#if !defined (ACE_LACKS_PRAGMA_ONCE)\n"
- << "# pragma once\n"
- << "#endif /* ACE_LACKS_PRAGMA_ONCE */\n";
+ // This one is a good candidate to go first since applications need
+ // full knowledge of CORBA::ORB. It's rather heavyweight though
+ // (includes PolicyC.h) and should probably be refactored somehow.
+ *this->client_header_ << "#include \"tao/ORB.h\"";
- // Other include files.
+ // Some compilers don't optimize the #ifndef header include
+ // protection, but do optimize based on #pragma once.
+ *this->client_header_ << "\n\n#if !defined (ACE_LACKS_PRAGMA_ONCE)\n"
+ << "# pragma once\n"
+ << "#endif /* ACE_LACKS_PRAGMA_ONCE */";
- if (be_global->stub_export_include () != 0)
- {
- *this->client_header_ << "\n\n#include \""
- << be_global->stub_export_include ()
- << "\"";
- }
+ *this->client_header_ << be_nl;
- // Include the Messaging files if AMI is enabled.
- if (be_global->ami_call_back () == I_TRUE)
- {
- // Include Messaging skeleton file.
- this->gen_standard_include (this->client_header_,
- "tao/Messaging/Messaging.h");
+ // Other include files.
- // Turn on generation of files from the Valuetype library.
- ACE_SET_BITS (idl_global->decls_seen_info_,
- idl_global->decls_seen_masks.valuetype_seen_);
- }
+ if (be_global->stub_export_include () != 0)
+ {
+ *this->client_header_ << "\n#include \""
+ << be_global->stub_export_include ()
+ << "\"";
+ }
- idl_global->root ();
+ this->gen_stub_hdr_includes ();
- if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
- idl_global->decls_seen_masks.abstract_iface_seen_))
- {
- // Include the AbstractBase file from the Valuetype library.
- this->gen_standard_include (this->client_header_,
- "tao/Valuetype/AbstractBase.h");
+ size_t nfiles = idl_global->n_included_idl_files ();
- // Turn on generation of the rest of the Valuetype library files.
- ACE_SET_BITS (idl_global->decls_seen_info_,
- idl_global->decls_seen_masks.valuetype_seen_);
- }
+ if (nfiles > 0)
+ {
+ *this->client_header_ << "\n";
+ }
- if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
- idl_global->decls_seen_masks.valuetype_seen_))
- {
- // Include files from the Valuetype library.
- this->gen_standard_include (this->client_header_,
- "tao/Valuetype/ValueBase.h");
- this->gen_standard_include (this->client_header_,
- "tao/Valuetype/Value_VarOut_T.h");
- this->gen_standard_include (this->client_header_,
- "tao/Valuetype/Valuetype_Adapter_Impl.h");
+ // We must include all the client headers corresponding to
+ // IDL files included by the current IDL file.
+ // We will use the included IDL file names as they appeared
+ // in the original main IDL file, not the one which went
+ // thru CC preprocessor.
+ for (size_t j = 0; j < nfiles; ++j)
+ {
+ char* idl_name = idl_global->included_idl_files ()[j];
- // @@@@ (JP) These can be logically separated later
- // with additional checks.
- this->gen_standard_include (this->client_header_,
- "tao/Valuetype/ValueFactory.h");
- this->gen_standard_include (this->client_header_,
- "tao/Valuetype/Sequence_T.h");
- }
+ // Make a String out of it.
+ UTL_String idl_name_str = idl_name;
- // Include the smart proxy base class if smart proxies are enabled.
- if (be_global->gen_smart_proxies () == I_TRUE)
- {
- this->gen_standard_include (this->client_header_,
- "tao/SmartProxies/Smart_Proxies.h");
- }
+ // Make sure this file was actually got included, not
+ // ignored by some #if defined compiler directive.
- size_t nfiles = idl_global->n_included_idl_files ();
- if (nfiles > 0)
- {
- *this->client_header_ << "\n";
- }
+ // Get the clnt header from the IDL file name.
+ const char* client_hdr =
+ BE_GlobalData::be_get_client_hdr (&idl_name_str,
+ 1);
- // We must include all the skeleton headers corresponding to
- // IDL files included by the current IDL file.
- // We will use the included IDL file names as they appeared
- // in the original main IDL file, not the one which went
- // thru CC preprocessor.
- for (size_t j = 0; j < nfiles; ++j)
+ // Sanity check and then print.
+ if (client_hdr != 0)
{
- char* idl_name = idl_global->included_idl_files ()[j];
-
- // Make a String out of it.
- UTL_String idl_name_str = idl_name;
-
- // Make sure this file was actually got included, not
- // ignored by some #if defined compiler directive.
-
-
- // Get the clnt header from the IDL file name.
- const char* client_hdr =
- BE_GlobalData::be_get_client_hdr (&idl_name_str,
- 1);
-
- // Sanity check and then print.
- if (client_hdr != 0)
- {
- this->client_header_->print ("\n#include \"%s\"",
- client_hdr);
- }
- else
- {
- ACE_ERROR ((LM_WARNING,
- ACE_TEXT ("\nWARNING, invalid file '%s' included"),
- idl_name));
- }
+ this->client_header_->print ("\n#include \"%s\"",
+ client_hdr);
}
-
- // Generate the TAO_EXPORT_MACRO macro.
- *this->client_header_ << "\n\n#if defined (TAO_EXPORT_MACRO)\n";
- *this->client_header_ << "#undef TAO_EXPORT_MACRO\n";
- *this->client_header_ << "#endif\n";
- *this->client_header_ << "#define TAO_EXPORT_MACRO "
- << be_global->stub_export_macro ();
-
- // Generate export macro for nested classes.
- *this->client_header_ << "\n\n#if defined (TAO_EXPORT_NESTED_CLASSES)\n"
- << "# if defined (TAO_EXPORT_NESTED_MACRO)\n"
- << "# undef TAO_EXPORT_NESTED_MACRO\n"
- << "# endif /* defined "
- << "(TAO_EXPORT_NESTED_MACRO) */\n"
- << "# define TAO_EXPORT_NESTED_MACRO "
- << be_global->stub_export_macro ()
- << be_nl
- << "#endif /* TAO_EXPORT_NESTED_CLASSES */";
-
- *this->client_header_ << "\n\n#if defined(_MSC_VER)\n"
- << "#if (_MSC_VER >= 1200)\n"
- << "#pragma warning(push)\n"
- << "#endif /* _MSC_VER >= 1200 */\n"
- << "#pragma warning(disable:4250)";
-
- if (be_global->use_raw_throw ())
+ else
{
- *this->client_header_ << "\n#pragma warning(disable:4290)";
+ ACE_ERROR ((LM_WARNING,
+ ACE_TEXT ("\nWARNING, invalid file '%s' included"),
+ idl_name));
}
+ }
- *this->client_header_ << "\n#endif /* _MSC_VER */";
+ // Generate the TAO_EXPORT_MACRO macro.
+ *this->client_header_ << "\n\n#if defined (TAO_EXPORT_MACRO)\n";
+ *this->client_header_ << "#undef TAO_EXPORT_MACRO\n";
+ *this->client_header_ << "#endif\n";
+ *this->client_header_ << "#define TAO_EXPORT_MACRO "
+ << be_global->stub_export_macro ();
+
+ // Generate export macro for nested classes.
+ *this->client_header_ << "\n\n#if defined (TAO_EXPORT_NESTED_CLASSES)\n"
+ << "# if defined (TAO_EXPORT_NESTED_MACRO)\n"
+ << "# undef TAO_EXPORT_NESTED_MACRO\n"
+ << "# endif /* defined "
+ << "(TAO_EXPORT_NESTED_MACRO) */\n"
+ << "# define TAO_EXPORT_NESTED_MACRO "
+ << be_global->stub_export_macro ()
+ << be_nl
+ << "#endif /* TAO_EXPORT_NESTED_CLASSES */";
+
+ *this->client_header_ << "\n\n#if defined(_MSC_VER)\n"
+ << "#if (_MSC_VER >= 1200)\n"
+ << "#pragma warning(push)\n"
+ << "#endif /* _MSC_VER >= 1200 */\n"
+ << "#pragma warning(disable:4250)";
+
+ if (be_global->use_raw_throw ())
+ {
+ *this->client_header_ << "\n#pragma warning(disable:4290)";
+ }
- *this->client_header_
- << "\n\n#if defined (__BORLANDC__)\n"
- << "#pragma option push -w-rvl -w-rch -w-ccc -w-inl\n"
- << "#endif /* __BORLANDC__ */";
+ *this->client_header_ << "\n#endif /* _MSC_VER */";
- return 0;
- }
+ *this->client_header_
+ << "\n\n#if defined (__BORLANDC__)\n"
+ << "#pragma option push -w-rvl -w-rch -w-ccc -w-inl\n"
+ << "#endif /* __BORLANDC__ */";
+
+ return 0;
}
// Get the client header stream.
@@ -354,55 +305,7 @@ TAO_CodeGen::start_client_stubs (const char *fname)
// Generate the ident string, if any.
this->gen_ident_string (this->client_stubs_);
- // Generate the include statement for the precompiled header file.
- if (be_global->pch_include ())
- {
- *this->client_stubs_ << "#include \""
- << be_global->pch_include ()
- << "\"";
- }
-
- // Generate the include statement for the client header. We just
- // need to put only the base names. Path info is not required.
- *this->client_stubs_ << "\n#include \""
- << be_global->be_get_client_hdr_fname (1)
- << "\"";
-
- this->gen_standard_include (this->client_stubs_, "tao/Stub.h");
- this->gen_standard_include (this->client_stubs_, "tao/ORB_Core.h");
- this->gen_standard_include (this->client_stubs_, "tao/Invocation.h");
-
- // The following header must always be included.
- this->gen_standard_include (this->client_stubs_,
- "tao/PortableInterceptor.h");
-
- // Include the Portable Interceptor related headers.
- *this->client_stubs_ << "\n\n#if TAO_HAS_INTERCEPTORS == 1";
- this->gen_standard_include (this->client_stubs_,
- "tao/RequestInfo_Util.h");
- this->gen_standard_include (this->client_stubs_,
- "tao/ClientRequestInfo_i.h");
- this->gen_standard_include (this->client_stubs_,
- "tao/ClientInterceptorAdapter.h");
- *this->client_stubs_ << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */\n";
-
- if (be_global->ami_call_back () == I_TRUE)
- {
- // Including Asynch Invocation file.
- this->gen_standard_include (this->client_stubs_,
- "tao/Messaging/Twoway_Asynch_Invocation.h");
- *this->client_stubs_ << "\n#if TAO_HAS_INTERCEPTORS == 1\n";
- this->gen_standard_include (this->client_stubs_,
- "tao/Messaging/AMI_ClientRequestInfo_i.h");
- *this->client_stubs_ << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */\n";
- }
-
- if (be_global->gen_amh_classes () == I_TRUE)
- {
- // Necessary for the AIX compiler.
- this->gen_standard_include (this->client_stubs_,
- "ace/Auto_Ptr.h");
- }
+ this->gen_stub_src_includes ();
*this->client_stubs_ << "\n\n#if defined (__BORLANDC__)\n"
<< "#pragma option -w-rvl -w-rch -w-ccc -w-aus -w-sig\n"
@@ -482,136 +385,130 @@ TAO_CodeGen::start_server_header (const char *fname)
{
return -1;
}
- else
- {
- *this->server_header_ << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__
- << be_nl << be_nl;
-
- // Generate the ident string, if any.
- this->gen_ident_string (this->server_header_);
- // Generate the #ifndef clause.
- this->gen_ifndef_string (fname,
- this->server_header_,
- "_TAO_IDL_",
- "_H_");
+ *this->server_header_ << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__
+ << be_nl << be_nl;
- if (be_global->pre_include () != 0)
- {
- *this->server_header_ << "#include \""
- << be_global->pre_include ()
- << "\"";
- }
+ // Generate the ident string, if any.
+ this->gen_ident_string (this->server_header_);
- // Include the Messaging files if AMI is enabled.
- if (be_global->ami_call_back () == I_TRUE)
- {
- // Include Messaging skeleton file.
- this->gen_standard_include (this->server_header_,
- "tao/Messaging/MessagingS.h");
- }
+ // Generate the #ifndef clause.
+ this->gen_ifndef_string (fname,
+ this->server_header_,
+ "_TAO_IDL_",
+ "_H_");
- // We must include all the skeleton headers corresponding to
- // IDL files included by the current IDL file.
- // We will use the included IDL file names as they appeared
- // in the original main IDL file, not the one which went
- // thru CC preprocessor.
- for (size_t j = 0;
- j < idl_global->n_included_idl_files ();
- ++j)
- {
- char* idl_name = idl_global->included_idl_files ()[j];
+ if (be_global->pre_include () != 0)
+ {
+ *this->server_header_ << "#include /**/ \""
+ << be_global->pre_include ()
+ << "\"\n";
+ }
- // String'ifying the name.
- UTL_String idl_name_str (idl_name);
+ // We must include all the skeleton headers corresponding to
+ // IDL files included by the current IDL file.
+ // We will use the included IDL file names as they appeared
+ // in the original main IDL file, not the one which went
+ // thru CC preprocessor.
+ for (size_t j = 0;
+ j < idl_global->n_included_idl_files ();
+ ++j)
+ {
+ char* idl_name = idl_global->included_idl_files ()[j];
- const char* server_hdr =
- BE_GlobalData::be_get_server_hdr (&idl_name_str, 1);
+ // String'ifying the name.
+ UTL_String idl_name_str (idl_name);
- this->server_header_->print ("\n#include \"%s\"",
- server_hdr);
- }
+ const char* server_hdr =
+ BE_GlobalData::be_get_server_hdr (&idl_name_str, 1);
- // The server header should include the client header.
- *this->server_header_ << "\n#include \""
- << be_global->be_get_client_hdr_fname (1)
- << "\"";
+ this->server_header_->print ("\n#include \"%s\"",
+ server_hdr);
+ }
- // Some compilers don't optimize the #ifndef header include
- // protection, but do optimize based on #pragma once.
- *this->server_header_ << "\n\n#if !defined (ACE_LACKS_PRAGMA_ONCE)\n"
- << "# pragma once\n"
- << "#endif /* ACE_LACKS_PRAGMA_ONCE */\n";
-
- // Include the definitions for the PortableServer namespace,
- // this forces the application to link the POA library, a good
- // thing, because we need the definitions there, it also
- // registers the POA factory with the Service_Configurator, so
- // the ORB can automatically find it.
- this->gen_standard_include (this->server_header_,
- "tao/PortableServer/PortableServer.h");
- this->gen_standard_include (this->server_header_,
- "tao/PortableServer/Servant_Base.h");
- this->gen_standard_include (this->server_header_,
- "tao/PortableServer/Collocated_Object.h");
+ // Include the Messaging files if AMI is enabled.
+ if (be_global->ami_call_back () == I_TRUE)
+ {
+ // Include Messaging skeleton file.
this->gen_standard_include (this->server_header_,
- "tao/PortableServer/ThruPOA_Object_Proxy_Impl.h");
+ "tao/Messaging/MessagingS.h");
+ }
+
+ // The server header should include the client header.
+ *this->server_header_ << "\n#include \""
+ << be_global->be_get_client_hdr_fname (1)
+ << "\"";
+
+ // Some compilers don't optimize the #ifndef header include
+ // protection, but do optimize based on #pragma once.
+ *this->server_header_ << "\n\n#if !defined (ACE_LACKS_PRAGMA_ONCE)\n"
+ << "# pragma once\n"
+ << "#endif /* ACE_LACKS_PRAGMA_ONCE */\n";
+
+ // Include the definitions for the PortableServer namespace,
+ // this forces the application to link the POA library, a good
+ // thing, because we need the definitions there, it also
+ // registers the POA factory with the Service_Configurator, so
+ // the ORB can automatically find it.
+ this->gen_standard_include (this->server_header_,
+ "tao/Collocation_Proxy_Broker.h");
+ this->gen_standard_include (this->server_header_,
+ "tao/PortableServer/PortableServer.h");
+ this->gen_standard_include (this->server_header_,
+ "tao/PortableServer/Servant_Base.h");
+
+ if (be_global->gen_amh_classes ())
+ {
this->gen_standard_include (this->server_header_,
- "tao/PortableServer/Direct_Object_Proxy_Impl.h");
+ "tao/PortableServer/AMH_Response_Handler.h");
+ }
- if (be_global->gen_amh_classes ())
- {
- this->gen_standard_include (this->server_header_,
- "tao/PortableServer/AMH_Response_Handler.h");
- }
+ *this->server_header_ << be_nl << be_nl
+ << "#if defined(_MSC_VER)\n"
+ << "#if (_MSC_VER >= 1200)\n"
+ << "#pragma warning(push)\n"
+ << "#endif /* _MSC_VER >= 1200 */\n"
+ << "#pragma warning(disable:4250)";
- *this->server_header_ << be_nl << be_nl
- << "#if defined(_MSC_VER)\n"
- << "#if (_MSC_VER >= 1200)\n"
- << "#pragma warning(push)\n"
- << "#endif /* _MSC_VER >= 1200 */\n"
- << "#pragma warning(disable:4250)";
+ if (be_global->use_raw_throw ())
+ {
+ *this->server_header_ << "\n#pragma warning(disable:4290)";
+ }
- if (be_global->use_raw_throw ())
- {
- *this->server_header_ << "\n#pragma warning(disable:4290)";
- }
+ *this->server_header_ << "\n#endif /* _MSC_VER */";
- *this->server_header_ << "\n#endif /* _MSC_VER */";
+ *this->server_header_
+ << "\n\n#if defined (__BORLANDC__)\n"
+ << "#pragma option push -w-rvl -w-rch -w-ccc -w-inl\n"
+ << "#endif /* __BORLANDC__ */";
- *this->server_header_
- << "\n\n#if defined (__BORLANDC__)\n"
- << "#pragma option push -w-rvl -w-rch -w-ccc -w-inl\n"
- << "#endif /* __BORLANDC__ */";
+ if (be_global->skel_export_include () != 0)
+ {
+ *this->server_header_ << "\n\n#include \""
+ << be_global->skel_export_include ()
+ << "\"";
- if (be_global->skel_export_include () != 0)
- {
- *this->server_header_ << "\n\n#include \""
- << be_global->skel_export_include ()
- << "\"";
-
- // Generate the TAO_EXPORT_MACRO macro.
- *this->server_header_ << "\n\n#if defined (TAO_EXPORT_MACRO)\n";
- *this->server_header_ << "#undef TAO_EXPORT_MACRO\n";
- *this->server_header_ << "#endif\n";
- *this->server_header_ << "#define TAO_EXPORT_MACRO "
- << be_global->skel_export_macro ();
-
- // Generate export macro for nested classes.
- *this->server_header_
- << "\n#if defined (TAO_EXPORT_NESTED_CLASSES)\n"
- << "# if defined (TAO_EXPORT_NESTED_MACRO)\n"
- << "# undef TAO_EXPORT_NESTED_MACRO\n"
- << "# endif /* defined (TAO_EXPORT_NESTED_MACRO) */\n"
- << "# define TAO_EXPORT_NESTED_MACRO "
- << be_global->skel_export_macro ()
- << be_nl
- << "#endif /* TAO_EXPORT_NESTED_CLASSES */";
- }
+ // Generate the TAO_EXPORT_MACRO macro.
+ *this->server_header_ << "\n\n#if defined (TAO_EXPORT_MACRO)\n";
+ *this->server_header_ << "#undef TAO_EXPORT_MACRO\n";
+ *this->server_header_ << "#endif\n";
+ *this->server_header_ << "#define TAO_EXPORT_MACRO "
+ << be_global->skel_export_macro ();
- return 0;
+ // Generate export macro for nested classes.
+ *this->server_header_
+ << "\n#if defined (TAO_EXPORT_NESTED_CLASSES)\n"
+ << "# if defined (TAO_EXPORT_NESTED_MACRO)\n"
+ << "# undef TAO_EXPORT_NESTED_MACRO\n"
+ << "# endif /* defined (TAO_EXPORT_NESTED_MACRO) */\n"
+ << "# define TAO_EXPORT_NESTED_MACRO "
+ << be_global->skel_export_macro ()
+ << be_nl
+ << "#endif /* TAO_EXPORT_NESTED_CLASSES */";
}
+
+ return 0;
}
// Get the server header stream.
@@ -642,44 +539,42 @@ TAO_CodeGen::start_server_template_header (const char *fname)
{
return -1;
}
- else
- {
- *this->server_template_header_ << be_nl << "// TAO_IDL - Generated from"
- << be_nl
- << "// " << __FILE__ << ":" << __LINE__
- << be_nl << be_nl;
-
- // Generate the ident string, if any.
- this->gen_ident_string (this->server_template_header_);
- // Generate the #ifndef clause.
- this->gen_ifndef_string (fname,
- this->server_template_header_,
- "_TAO_IDL_",
- "_H_");
+ *this->server_template_header_ << be_nl << "// TAO_IDL - Generated from"
+ << be_nl
+ << "// " << __FILE__ << ":" << __LINE__
+ << be_nl << be_nl;
- if (be_global->pre_include () != 0)
- {
- *this->server_template_header_ << "#include \""
- << be_global->pre_include ()
- << "\"";
- }
+ // Generate the ident string, if any.
+ this->gen_ident_string (this->server_template_header_);
- *this->server_template_header_ << "\n\n#if defined(_MSC_VER)\n"
- << "#if (_MSC_VER >= 1200)\n"
- << "#pragma warning(push)\n"
- << "#endif /* _MSC_VER >= 1200 */\n"
- << "#pragma warning(disable:4250)\n";
+ // Generate the #ifndef clause.
+ this->gen_ifndef_string (fname,
+ this->server_template_header_,
+ "_TAO_IDL_",
+ "_H_");
- if (be_global->use_raw_throw ())
- {
- *this->server_template_header_ << "#pragma warning(disable:4290)\n";
- }
+ if (be_global->pre_include () != 0)
+ {
+ *this->server_template_header_ << "#include /**/ \""
+ << be_global->pre_include ()
+ << "\"";
+ }
- *this->server_template_header_ << "#endif /* _MSC_VER */\n";
+ *this->server_template_header_ << "\n\n#if defined(_MSC_VER)\n"
+ << "#if (_MSC_VER >= 1200)\n"
+ << "#pragma warning(push)\n"
+ << "#endif /* _MSC_VER >= 1200 */\n"
+ << "#pragma warning(disable:4250)\n";
- return 0;
+ if (be_global->use_raw_throw ())
+ {
+ *this->server_template_header_ << "#pragma warning(disable:4290)\n";
}
+
+ *this->server_template_header_ << "#endif /* _MSC_VER */\n";
+
+ return 0;
}
// Get the server header stream.
@@ -738,45 +633,7 @@ TAO_CodeGen::start_server_skeletons (const char *fname)
<< be_global->be_get_server_hdr_fname (1)
<< "\"";
- this->gen_standard_include (this->server_skeletons_,
- "tao/PortableServer/Object_Adapter.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/PortableServer/Operation_Table.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/TAO_Server_Request.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/ORB_Core.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/Profile.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/Stub.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/IFR_Client_Adapter.h");
-
- // The following header must always be included.
- this->gen_standard_include (this->server_skeletons_,
- "tao/PortableInterceptor.h");
-
- // Include Portable Interceptor related headers.
- *this->server_skeletons_ << "\n#if TAO_HAS_INTERCEPTORS == 1";
- this->gen_standard_include (this->server_skeletons_,
- "tao/RequestInfo_Util.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/PICurrent.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/PortableServer/ServerRequestInfo.h");
- this->gen_standard_include (this->server_skeletons_,
- "tao/PortableServer/ServerInterceptorAdapter.h");
- *this->server_skeletons_ << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */\n";
-
- this->gen_standard_include (this->server_skeletons_,
- "ace/Dynamic_Service.h");
-
- if (be_global->lookup_strategy () == BE_GlobalData::TAO_DYNAMIC_HASH)
- this->gen_standard_include (this->server_skeletons_,
- "ace/Malloc_Allocator.h");
-
-
+ this->gen_skel_src_includes ();
*this->server_skeletons_ << "\n\n#if defined (__BORLANDC__)\n"
<< "#pragma option -w-rvl -w-rch -w-ccc -w-aus\n"
@@ -788,7 +645,7 @@ TAO_CodeGen::start_server_skeletons (const char *fname)
*this->server_skeletons_ << "#include \""
<< be_global->be_get_server_inline_fname (1)
<< "\"\n";
- *this->server_skeletons_ << "#endif /* !defined INLINE */\n\n";
+ *this->server_skeletons_ << "#endif /* !defined INLINE */";
return 0;
}
@@ -821,39 +678,37 @@ TAO_CodeGen::start_server_template_skeletons (const char *fname)
{
return -1;
}
- else
- {
- *this->server_template_skeletons_ << be_nl << "// TAO_IDL - Generated from "
- << be_nl << "// "
- << __FILE__ << ":" << __LINE__
- << be_nl << be_nl;
- // Generate the ident string, if any.
- this->gen_ident_string (this->server_template_skeletons_);
+ *this->server_template_skeletons_ << be_nl << "// TAO_IDL - Generated from "
+ << be_nl << "// "
+ << __FILE__ << ":" << __LINE__
+ << be_nl << be_nl;
- // Generate the #ifndef clause.
- this->gen_ifndef_string (fname,
- this->server_template_skeletons_,
- "_TAO_IDL_",
- "_CPP_");
+ // Generate the ident string, if any.
+ this->gen_ident_string (this->server_template_skeletons_);
+
+ // Generate the #ifndef clause.
+ this->gen_ifndef_string (fname,
+ this->server_template_skeletons_,
+ "_TAO_IDL_",
+ "_CPP_");
- // Generate the include statement for the server header.
- *this->server_template_skeletons_
- << "#include \""
- << be_global->be_get_server_template_hdr_fname (1)
- << "\"";
+ // Generate the include statement for the server header.
+ *this->server_template_skeletons_
+ << "#include \""
+ << be_global->be_get_server_template_hdr_fname (1)
+ << "\"";
- // Generate the code that includes the inline file if not included in the
- // header file.
- *this->server_template_skeletons_ << "\n\n#if !defined (__ACE_INLINE__)";
- *this->server_template_skeletons_
- << "\n#include \""
- << be_global->be_get_server_template_inline_fname (1)
- << "\"";
- *this->server_template_skeletons_ << "\n#endif /* !defined INLINE */\n\n";
+ // Generate the code that includes the inline file if not included in the
+ // header file.
+ *this->server_template_skeletons_ << "\n\n#if !defined (__ACE_INLINE__)";
+ *this->server_template_skeletons_
+ << "\n#include \""
+ << be_global->be_get_server_template_inline_fname (1)
+ << "\"";
+ *this->server_template_skeletons_ << "\n#endif /* !defined INLINE */\n\n";
- return 0;
- }
+ return 0;
}
// Get the server template skeletons stream.
@@ -959,33 +814,31 @@ TAO_CodeGen::start_implementation_header (const char *fname)
{
return -1;
}
- else
- {
- *this->implementation_header_ << be_nl << "// TAO_IDL - Generated from "
- << be_nl << "// "
- << __FILE__ << ":" << __LINE__
- << be_nl << be_nl;
- // Generate the ident string, if any.
- this->gen_ident_string (this->implementation_header_);
+ *this->implementation_header_ << be_nl << "// TAO_IDL - Generated from "
+ << be_nl << "// "
+ << __FILE__ << ":" << __LINE__
+ << be_nl << be_nl;
+
+ // Generate the ident string, if any.
+ this->gen_ident_string (this->implementation_header_);
- // Generate the #ifndef clause.
- this->gen_ifndef_string (fname,
- this->implementation_header_,
- "",
- "_H_");
+ // Generate the #ifndef clause.
+ this->gen_ifndef_string (fname,
+ this->implementation_header_,
+ "",
+ "_H_");
- const char* server_hdr = BE_GlobalData::be_get_server_hdr_fname (1);
+ const char* server_hdr = BE_GlobalData::be_get_server_hdr_fname (1);
- *this->implementation_header_<< "#include \"" << server_hdr <<"\"";
+ *this->implementation_header_<< "#include \"" << server_hdr <<"\"";
- *this->implementation_header_
- << "\n\n#if !defined (ACE_LACKS_PRAGMA_ONCE)\n"
- << "#pragma once\n"
- << "#endif /* ACE_LACKS_PRAGMA_ONCE */\n\n";
+ *this->implementation_header_
+ << "\n\n#if !defined (ACE_LACKS_PRAGMA_ONCE)\n"
+ << "#pragma once\n"
+ << "#endif /* ACE_LACKS_PRAGMA_ONCE */\n\n";
- return 0;
- }
+ return 0;
}
@@ -1022,24 +875,22 @@ TAO_CodeGen::start_implementation_skeleton (const char *fname)
{
return -1;
}
- else
- {
- *this->implementation_skeleton_ << be_nl << "// TAO_IDL - Generated from "
- << be_nl << "// "
- << __FILE__ << ":" << __LINE__
- << be_nl << be_nl;
- // Generate the ident string, if any.
- this->gen_ident_string (this->implementation_skeleton_);
+ *this->implementation_skeleton_ << be_nl << "// TAO_IDL - Generated from "
+ << be_nl << "// "
+ << __FILE__ << ":" << __LINE__
+ << be_nl << be_nl;
- const char* impl_hdr =
- BE_GlobalData::be_get_implementation_hdr_fname ();
+ // Generate the ident string, if any.
+ this->gen_ident_string (this->implementation_skeleton_);
- this->implementation_skeleton_->print ("#include \"%s\"\n\n",
- impl_hdr);
+ const char* impl_hdr =
+ BE_GlobalData::be_get_implementation_hdr_fname ();
- return 0;
- }
+ this->implementation_skeleton_->print ("#include \"%s\"\n\n",
+ impl_hdr);
+
+ return 0;
}
@@ -1079,9 +930,9 @@ TAO_CodeGen::end_client_header (void)
if (be_global->post_include () != 0)
{
- *this->client_header_ << "#include \""
+ *this->client_header_ << "#include /**/ \""
<< be_global->post_include ()
- << "\"\n";
+ << "\"\n\n";
}
*this->client_header_ << "#endif /* ifndef */" << be_nl << be_nl;
@@ -1123,7 +974,7 @@ TAO_CodeGen::end_server_header (void)
if (be_global->post_include () != 0)
{
- *this->server_header_ << "#include \""
+ *this->server_header_ << "#include /**/ \""
<< be_global->post_include ()
<< "\"\n";
}
@@ -1226,7 +1077,7 @@ TAO_CodeGen::end_server_template_header (void)
if (be_global->post_include () != 0)
{
- *this->server_template_header_ << "#include \""
+ *this->server_template_header_ << "#include /**/ \""
<< be_global->post_include ()
<< "\"\n";
}
@@ -1256,7 +1107,7 @@ int
TAO_CodeGen::end_server_skeletons (void)
{
// Code to put the last #endif.
- *this->server_skeletons_ << "\n#endif /* ifndef */\n";
+ *this->server_skeletons_ << "\n\n#endif /* ifndef */\n";
return 0;
}
@@ -1409,3 +1260,446 @@ TAO_CodeGen::gen_standard_include (TAO_OutStream *stream,
<< included_file
<< end_delimiter;
}
+
+void
+TAO_CodeGen::gen_stub_hdr_includes (void)
+{
+ // Always included.
+
+ this->gen_standard_include (this->client_header_,
+ "tao/CDR.h");
+ this->gen_standard_include (this->client_header_,
+ "tao/Environment.h");
+
+ // Conditionally included.
+
+ // Non-abstract interface or keyword 'Object'.
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.non_local_iface_seen_
+ | idl_global->decls_seen_masks.local_iface_seen_
+ | idl_global->decls_seen_masks.base_object_seen_,
+ "tao/Object.h",
+ this->client_header_
+ );
+
+ // Not needed at the moment, since Exception.h is pulled in by ORB.h,
+ // included at the top of the stub header file. May change if ORB.h
+ // is rearranged to make a lighter include for applications.
+#if 0
+ // System exception throw spec for every operation may change soon.
+ // For IDL exception, we need full knowledge of CORBA::UserException.
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.operation_seen_
+ | idl_global->decls_seen_masks.exception_seen_,
+ "tao/Exception.h",
+ this->client_header_
+ );
+#endif
+
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.abstract_iface_seen_))
+ {
+ // Include the AbstractBase file from the Valuetype library.
+ this->gen_standard_include (this->client_header_,
+ "tao/Valuetype/AbstractBase.h");
+
+ // Turn on generation of the rest of the Valuetype library includes.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuetype_seen_);
+ }
+
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuetype_seen_))
+ {
+ // Include files from the Valuetype library.
+ this->gen_standard_include (this->client_header_,
+ "tao/Valuetype/ValueBase.h");
+ this->gen_standard_include (this->client_header_,
+ "tao/Valuetype/Valuetype_Adapter_Impl.h");
+
+ // Check for setting this bit performed in y.tab.cpp, actual checking
+ // code is in be_valuetype.cpp.
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.valuefactory_seen_,
+ "tao/Valuetype/ValueFactory.h",
+ this->client_header_
+ );
+ }
+
+ // This is true if we have a typecode or TCKind in the IDL file.
+ // If not included here, it will appear in *C.cpp, if TCs not suppressed.
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.typecode_seen_,
+ "tao/Typecode.h",
+ this->client_header_
+ );
+
+ // This is true if we have an 'any' in the IDL file.
+ // If not included here, it will appear in *C.cpp, if Anys not suppressed.
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.any_seen_,
+ "tao/Any.h",
+ this->client_header_
+ );
+
+ // ParameterMode is so rarely used, it was put in a separate TAO file.
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.parametermode_seen_,
+ "tao/ParameterMode.h",
+ this->client_header_
+ );
+
+ // Include the Messaging library entry point, if AMI is enabled.
+ if (be_global->ami_call_back () == I_TRUE)
+ {
+ // Include Messaging skeleton file.
+ this->gen_standard_include (this->client_header_,
+ "tao/Messaging/Messaging.h");
+ }
+
+ // Include the smart proxy base class if smart proxies are enabled.
+ if (be_global->gen_smart_proxies () == I_TRUE)
+ {
+ this->gen_standard_include (this->client_header_,
+ "tao/SmartProxies/Smart_Proxies.h");
+ }
+
+ // Must have knowledge of the base class.
+ this->gen_seq_file_includes ();
+
+ // _vars and _outs are typedefs of template class instantiations.
+ this->gen_var_file_includes ();
+}
+
+void
+TAO_CodeGen::gen_stub_src_includes (void)
+{
+ // Generate the include statement for the precompiled header file.
+ if (be_global->pch_include ())
+ {
+ *this->client_stubs_ << "#include \""
+ << be_global->pch_include ()
+ << "\"";
+ }
+
+ // Generate the include statement for the client header. We just
+ // need to put only the base names. Path info is not required.
+ *this->client_stubs_ << "\n#include \""
+ << be_global->be_get_client_hdr_fname (1)
+ << "\"";
+
+ // Conditional includes.
+
+ // Operations for local interfaces are pure virtual.
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.non_local_op_seen_))
+ {
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Exception_Data.h");
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Invocation_Adapter.h");
+
+ // Any abstract interface present will probably have an operation.
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.abstract_iface_seen_))
+ {
+ this->gen_standard_include (
+ this->client_stubs_,
+ "tao/Valuetype/AbstractBase_Invocation_Adapter.h"
+ );
+
+ this->gen_standard_include (
+ this->client_stubs_,
+ "tao/Valuetype/AbstractBase_T.h"
+ );
+ }
+ }
+
+ if (be_global->ami_call_back () == I_TRUE)
+ {
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Messaging/Asynch_Invocation_Adapter.h");
+
+ // If a valuetype has been seen, this will already be in the header file.
+ if (!ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuetype_seen_))
+ {
+ // For AMI exception holders.
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Valuetype/ValueBase.h");
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Valuetype/Valuetype_Adapter_Impl.h");
+ }
+ }
+
+ // If valuefactory_seen_ was set, this was generated in the stub header file,
+ // otherwise it needs to go here - used in _tao_unmarshal().
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuetype_seen_)
+ && !ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuefactory_seen_))
+ {
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Valuetype/ValueFactory.h");
+ }
+
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.non_local_iface_seen_))
+ {
+ // Needed for _narrow(), which is now template-based.
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Object_T.h");
+ }
+
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.octet_seq_seen_))
+ {
+ // Needed for the TAO_NO_COPY_OCTET_SEQUENCES optimization. Note that
+ // it is preferable to just refer to CORBA::OctetSeq in the IDL file.
+ this->gen_standard_include (this->client_stubs_,
+ "tao/ORB_Core.h");
+ }
+
+ // We generate this include if we have typecode support and have not
+ // already included it in the header file.
+ if (!ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.typecode_seen_)
+ && be_global->tc_support ())
+ {
+ this->gen_standard_include (this->client_stubs_,
+ "tao/Typecode.h");
+ }
+
+ // Includes whatever Any template classes that may be needed.
+ this->gen_any_file_includes ();
+
+ // Includes whatever arg helper template classes that may be needed.
+ this->gen_arg_file_includes (this->client_stubs_);
+
+ if (be_global->gen_amh_classes () == I_TRUE)
+ {
+ *this->client_stubs_ << be_nl;
+
+ // Necessary for the AIX compiler.
+ this->gen_standard_include (this->client_stubs_,
+ "ace/Auto_Ptr.h");
+ }
+}
+
+void
+TAO_CodeGen::gen_skel_src_includes (void)
+{
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/PortableServer/Object_Adapter.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/PortableServer/Operation_Table.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/TAO_Server_Request.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/ORB_Core.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/Profile.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/Stub.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/IFR_Client_Adapter.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/Object_T.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/Typecode.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/DynamicC.h");
+
+ if (be_global->gen_thru_poa_collocation ()
+ || be_global->gen_direct_collocation ())
+ {
+ this->gen_arg_file_includes (this->server_skeletons_);
+ }
+
+ // The following header must always be included.
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/PortableInterceptor.h");
+
+ // Include Portable Interceptor related headers.
+ *this->server_skeletons_ << "\n#if TAO_HAS_INTERCEPTORS == 1";
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/RequestInfo_Util.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/PICurrent.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/PortableServer/ServerRequestInfo.h");
+ this->gen_standard_include (this->server_skeletons_,
+ "tao/PortableServer/ServerInterceptorAdapter.h");
+ *this->server_skeletons_ << "\n#endif /* TAO_HAS_INTERCEPTORS == 1 */\n";
+
+ this->gen_standard_include (this->server_skeletons_,
+ "ace/Dynamic_Service.h");
+ // To get ACE_UNUSED_ARGS
+ this->gen_standard_include (this->server_skeletons_,
+ "ace/config-all.h");
+}
+
+void
+TAO_CodeGen::gen_seq_file_includes (void)
+{
+ // @@@ (JP) These can get more specialized, after the TAO seq template
+ // files have been split up.
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.vt_seq_seen_,
+ "tao/Valuetype/Sequence_T.h",
+ this->client_header_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.seq_seen_,
+ "tao/Sequence_T.h",
+ this->client_header_
+ );
+}
+
+void
+TAO_CodeGen::gen_any_file_includes (void)
+{
+ if (be_global->any_support ())
+ {
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.interface_seen_
+ | idl_global->decls_seen_masks.valuetype_seen_,
+ "tao/Any_Impl_T.h",
+ this->client_stubs_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.aggregate_seen_
+ | idl_global->decls_seen_masks.seq_seen_
+ | idl_global->decls_seen_masks.exception_seen_,
+ "tao/Any_Dual_Impl_T.h",
+ this->client_stubs_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.array_seen_,
+ "tao/Any_Array_Impl_T.h",
+ this->client_stubs_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.enum_seen_,
+ "tao/Any_Basic_Impl_T.h",
+ this->client_stubs_
+ );
+ }
+}
+
+void
+TAO_CodeGen::gen_var_file_includes (void)
+{
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.interface_seen_
+ | idl_global->decls_seen_masks.fwd_iface_seen_,
+ "tao/Objref_VarOut_T.h",
+ this->client_header_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.valuetype_seen_
+ | idl_global->decls_seen_masks.fwd_valuetype_seen_,
+ "tao/Valuetype/Value_VarOut_T.h",
+ this->client_header_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.seq_seen_,
+ "tao/Seq_Var_T.h",
+ this->client_header_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.seq_seen_,
+ "tao/Seq_Out_T.h",
+ this->client_header_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.aggregate_seen_,
+ "tao/VarOut_T.h",
+ this->client_header_
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.array_seen_,
+ "tao/Array_VarOut_T.h",
+ this->client_header_
+ );
+}
+
+void
+TAO_CodeGen::gen_arg_file_includes (TAO_OutStream *stream)
+{
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.basic_arg_seen_,
+ "tao/Basic_Arguments.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.bd_string_arg_seen_,
+ "tao/BD_String_Argument_T.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.fixed_array_arg_seen_,
+ "tao/Fixed_Array_Argument_T.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.fixed_size_arg_seen_,
+ "tao/Fixed_Size_Argument_T.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.object_arg_seen_,
+ "tao/Object_Argument_T.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.special_basic_arg_seen_,
+ "tao/Special_Basic_Arguments.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.ub_string_arg_seen_,
+ "tao/UB_String_Arguments.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.var_array_arg_seen_,
+ "tao/Var_Array_Argument_T.h",
+ stream
+ );
+
+ this->gen_cond_file_include (
+ idl_global->decls_seen_masks.var_size_arg_seen_,
+ "tao/Var_Size_Argument_T.h",
+ stream
+ );
+}
+
+void
+TAO_CodeGen::gen_cond_file_include (ACE_UINT64 mask,
+ const char *filepath,
+ TAO_OutStream *stream)
+{
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_, mask))
+ {
+ this->gen_standard_include (stream,
+ filepath);
+ }
+}
diff --git a/TAO/TAO_IDL/be/be_decl.cpp b/TAO/TAO_IDL/be/be_decl.cpp
index 8cb81746844..57655611b4a 100644
--- a/TAO/TAO_IDL/be/be_decl.cpp
+++ b/TAO/TAO_IDL/be/be_decl.cpp
@@ -37,12 +37,15 @@
#include "be_factory.h"
#include "be_sequence.h"
#include "be_visitor.h"
+#include "ast_structure_fwd.h"
+#include "ast_string.h"
#include "utl_identifier.h"
+#include "global_extern.h"
#include "ace/Log_Msg.h"
#include "ace/String_Base.h"
-ACE_RCSID (be,
- be_decl,
+ACE_RCSID (be,
+ be_decl,
"$Id$")
// Default Constructor
@@ -62,7 +65,31 @@ be_decl::be_decl (void)
cli_hdr_cdr_op_gen_ (I_FALSE),
cli_stub_cdr_op_gen_ (I_FALSE),
cli_inline_cdr_op_gen_ (I_FALSE),
- cli_inline_cdr_decl_gen_ (I_FALSE)
+ cli_inline_cdr_decl_gen_ (I_FALSE),
+ cli_traits_gen_ (I_FALSE),
+ cli_arg_traits_gen_ (I_FALSE),
+ srv_arg_traits_gen_ (I_FALSE),
+ srv_sarg_traits_gen_ (I_FALSE),
+ cli_tmpl_class_gen_ (I_FALSE),
+ cli_pragma_inst_gen_ (I_FALSE),
+ cli_inarg_tmpl_class_gen_ (I_FALSE),
+ cli_inarg_pragma_inst_gen_ (I_FALSE),
+ cli_inoutarg_tmpl_class_gen_ (I_FALSE),
+ cli_inoutarg_pragma_inst_gen_ (I_FALSE),
+ cli_outarg_tmpl_class_gen_ (I_FALSE),
+ cli_outarg_pragma_inst_gen_ (I_FALSE),
+ cli_retarg_tmpl_class_gen_ (I_FALSE),
+ cli_retarg_pragma_inst_gen_ (I_FALSE),
+ srv_tmpl_class_gen_ (I_FALSE),
+ srv_pragma_inst_gen_ (I_FALSE),
+ srv_inarg_tmpl_class_gen_ (I_FALSE),
+ srv_inarg_pragma_inst_gen_ (I_FALSE),
+ srv_inoutarg_tmpl_class_gen_ (I_FALSE),
+ srv_inoutarg_pragma_inst_gen_ (I_FALSE),
+ srv_outarg_tmpl_class_gen_ (I_FALSE),
+ srv_outarg_pragma_inst_gen_ (I_FALSE),
+ srv_retarg_tmpl_class_gen_ (I_FALSE),
+ srv_retarg_pragma_inst_gen_ (I_FALSE)
{
}
@@ -85,7 +112,31 @@ be_decl::be_decl (AST_Decl::NodeType type,
cli_hdr_cdr_op_gen_ (I_FALSE),
cli_stub_cdr_op_gen_ (I_FALSE),
cli_inline_cdr_op_gen_ (I_FALSE),
- cli_inline_cdr_decl_gen_ (I_FALSE)
+ cli_inline_cdr_decl_gen_ (I_FALSE),
+ cli_traits_gen_ (I_FALSE),
+ cli_arg_traits_gen_ (I_FALSE),
+ srv_arg_traits_gen_ (I_FALSE),
+ srv_sarg_traits_gen_ (I_FALSE),
+ cli_tmpl_class_gen_ (I_FALSE),
+ cli_pragma_inst_gen_ (I_FALSE),
+ cli_inarg_tmpl_class_gen_ (I_FALSE),
+ cli_inarg_pragma_inst_gen_ (I_FALSE),
+ cli_inoutarg_tmpl_class_gen_ (I_FALSE),
+ cli_inoutarg_pragma_inst_gen_ (I_FALSE),
+ cli_outarg_tmpl_class_gen_ (I_FALSE),
+ cli_outarg_pragma_inst_gen_ (I_FALSE),
+ cli_retarg_tmpl_class_gen_ (I_FALSE),
+ cli_retarg_pragma_inst_gen_ (I_FALSE),
+ srv_tmpl_class_gen_ (I_FALSE),
+ srv_pragma_inst_gen_ (I_FALSE),
+ srv_inarg_tmpl_class_gen_ (I_FALSE),
+ srv_inarg_pragma_inst_gen_ (I_FALSE),
+ srv_inoutarg_tmpl_class_gen_ (I_FALSE),
+ srv_inoutarg_pragma_inst_gen_ (I_FALSE),
+ srv_outarg_tmpl_class_gen_ (I_FALSE),
+ srv_outarg_pragma_inst_gen_ (I_FALSE),
+ srv_retarg_tmpl_class_gen_ (I_FALSE),
+ srv_retarg_pragma_inst_gen_ (I_FALSE)
{
}
@@ -320,6 +371,150 @@ be_decl::cli_inline_cdr_decl_gen (void)
}
idl_bool
+be_decl::cli_traits_gen (void)
+{
+ return this->cli_traits_gen_;
+}
+
+idl_bool
+be_decl::cli_arg_traits_gen (void)
+{
+ return this->cli_arg_traits_gen_;
+}
+
+idl_bool
+be_decl::srv_arg_traits_gen (void)
+{
+ return this->srv_arg_traits_gen_;
+}
+
+idl_bool
+be_decl::srv_sarg_traits_gen (void)
+{
+ return this->srv_sarg_traits_gen_;
+}
+
+idl_bool
+be_decl::cli_tmpl_class_gen (void)
+{
+ return this->cli_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::cli_pragma_inst_gen (void)
+{
+ return this->cli_pragma_inst_gen_;
+}
+
+idl_bool
+be_decl::cli_inarg_tmpl_class_gen (void)
+{
+ return this->cli_inarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::cli_inarg_pragma_inst_gen (void)
+{
+ return this->cli_inarg_pragma_inst_gen_;
+}
+
+idl_bool
+be_decl::cli_inoutarg_tmpl_class_gen (void)
+{
+ return this->cli_inoutarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::cli_inoutarg_pragma_inst_gen (void)
+{
+ return this->cli_inoutarg_pragma_inst_gen_;
+}
+
+idl_bool
+be_decl::cli_outarg_tmpl_class_gen (void)
+{
+ return this->cli_outarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::cli_outarg_pragma_inst_gen (void)
+{
+ return this->cli_outarg_pragma_inst_gen_;
+}
+
+idl_bool
+be_decl::cli_retarg_tmpl_class_gen (void)
+{
+ return this->cli_retarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::cli_retarg_pragma_inst_gen (void)
+{
+ return this->cli_retarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::srv_tmpl_class_gen (void)
+{
+ return this->srv_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::srv_pragma_inst_gen (void)
+{
+ return this->srv_pragma_inst_gen_;
+}
+
+idl_bool
+be_decl::srv_inarg_tmpl_class_gen (void)
+{
+ return this->srv_inarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::srv_inarg_pragma_inst_gen (void)
+{
+ return this->srv_inarg_pragma_inst_gen_;
+}
+
+idl_bool
+be_decl::srv_inoutarg_tmpl_class_gen (void)
+{
+ return this->srv_inoutarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::srv_inoutarg_pragma_inst_gen (void)
+{
+ return this->srv_inoutarg_pragma_inst_gen_;
+}
+
+idl_bool
+be_decl::srv_outarg_tmpl_class_gen (void)
+{
+ return this->srv_outarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::srv_outarg_pragma_inst_gen (void)
+{
+ return this->srv_outarg_pragma_inst_gen_;
+}
+
+idl_bool
+be_decl::srv_retarg_tmpl_class_gen (void)
+{
+ return this->srv_retarg_tmpl_class_gen_;
+}
+
+idl_bool
+be_decl::srv_retarg_pragma_inst_gen (void)
+{
+ return this->cli_retarg_pragma_inst_gen_;
+}
+
+idl_bool
be_decl::cli_inline_gen (void)
{
return this->cli_inline_gen_;
@@ -411,6 +606,150 @@ be_decl::cli_inline_gen (idl_bool val)
}
void
+be_decl::cli_traits_gen (idl_bool val)
+{
+ this->cli_traits_gen_ = val;
+}
+
+void
+be_decl::cli_arg_traits_gen (idl_bool val)
+{
+ this->cli_arg_traits_gen_ = val;
+}
+
+void
+be_decl::srv_arg_traits_gen (idl_bool val)
+{
+ this->srv_arg_traits_gen_ = val;
+}
+
+void
+be_decl::srv_sarg_traits_gen (idl_bool val)
+{
+ this->srv_sarg_traits_gen_ = val;
+}
+
+void
+be_decl::cli_tmpl_class_gen (idl_bool val)
+{
+ this->cli_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::cli_pragma_inst_gen (idl_bool val)
+{
+ this->cli_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::cli_inarg_tmpl_class_gen (idl_bool val)
+{
+ this->cli_inarg_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::cli_inarg_pragma_inst_gen (idl_bool val)
+{
+ this->cli_inarg_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::cli_inoutarg_tmpl_class_gen (idl_bool val)
+{
+ this->cli_inoutarg_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::cli_inoutarg_pragma_inst_gen (idl_bool val)
+{
+ this->cli_inoutarg_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::cli_outarg_tmpl_class_gen (idl_bool val)
+{
+ this->cli_outarg_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::cli_outarg_pragma_inst_gen (idl_bool val)
+{
+ this->cli_outarg_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::cli_retarg_tmpl_class_gen (idl_bool val)
+{
+ this->cli_retarg_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::cli_retarg_pragma_inst_gen (idl_bool val)
+{
+ this->cli_retarg_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::srv_tmpl_class_gen (idl_bool val)
+{
+ this->srv_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::srv_pragma_inst_gen (idl_bool val)
+{
+ this->srv_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::srv_inarg_tmpl_class_gen (idl_bool val)
+{
+ this->srv_inarg_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::srv_inarg_pragma_inst_gen (idl_bool val)
+{
+ this->srv_inarg_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::srv_inoutarg_tmpl_class_gen (idl_bool val)
+{
+ this->srv_inoutarg_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::srv_inoutarg_pragma_inst_gen (idl_bool val)
+{
+ this->srv_inoutarg_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::srv_outarg_tmpl_class_gen (idl_bool val)
+{
+ this->srv_outarg_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::srv_outarg_pragma_inst_gen (idl_bool val)
+{
+ this->srv_outarg_pragma_inst_gen_ = val;
+}
+
+void
+be_decl::srv_retarg_tmpl_class_gen (idl_bool val)
+{
+ this->srv_retarg_tmpl_class_gen_ = val;
+}
+
+void
+be_decl::srv_retarg_pragma_inst_gen (idl_bool val)
+{
+ this->srv_retarg_pragma_inst_gen_ = val;
+}
+
+void
be_decl::srv_hdr_gen (idl_bool val)
{
this->srv_hdr_gen_ = val;
@@ -441,6 +780,134 @@ be_decl::accept (be_visitor *visitor)
return visitor->visit_decl (this);
}
+void
+be_decl::set_arg_seen_bit (be_type *bt)
+{
+ if (bt == 0)
+ {
+ return;
+ }
+
+ switch (bt->node_type ())
+ {
+ case NT_typedef:
+ {
+ AST_Typedef *td = AST_Typedef::narrow_from_decl (bt);
+ this->set_arg_seen_bit (
+ be_type::narrow_from_decl (td->primitive_base_type ())
+ );
+ break;
+ }
+ case NT_interface:
+ case NT_interface_fwd:
+ case NT_valuetype:
+ case NT_valuetype_fwd:
+ case NT_component:
+ case NT_component_fwd:
+ case NT_home:
+ case NT_eventtype:
+ case NT_eventtype_fwd:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.object_arg_seen_);
+ break;
+ case NT_union:
+ case NT_struct:
+ if (bt->size_type () == AST_Type::FIXED)
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.fixed_size_arg_seen_);
+ }
+ else
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.var_size_arg_seen_);
+ }
+
+ break;
+ case NT_struct_fwd:
+ case NT_union_fwd:
+ {
+ AST_StructureFwd *fwd = AST_StructureFwd::narrow_from_decl (bt);
+ be_type *fd = be_type::narrow_from_decl (fwd->full_definition ());
+ this->set_arg_seen_bit (fd);
+ break;
+ }
+ case NT_enum:
+ case NT_enum_val:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.basic_arg_seen_);
+ break;
+ case NT_string:
+ case NT_wstring:
+ {
+ AST_String *str = AST_String::narrow_from_decl (bt);
+
+ if (str->max_size ()->ev ()->u.ulval == 0)
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.ub_string_arg_seen_);
+ }
+ else
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.bd_string_arg_seen_);
+ }
+
+ break;
+ }
+ case NT_array:
+ if (bt->size_type () == AST_Type::FIXED)
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.fixed_array_arg_seen_);
+ }
+ else
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.var_array_arg_seen_);
+ }
+
+ break;
+ case NT_sequence:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.var_size_arg_seen_);
+ break;
+ case NT_pre_defined:
+ {
+ AST_PredefinedType *pdt = AST_PredefinedType::narrow_from_decl (bt);
+
+ switch (pdt->pt ())
+ {
+ case AST_PredefinedType::PT_object:
+ case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_value:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.object_arg_seen_);
+ break;
+ case AST_PredefinedType::PT_any:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.var_size_arg_seen_);
+ break;
+ case AST_PredefinedType::PT_char:
+ case AST_PredefinedType::PT_wchar:
+ case AST_PredefinedType::PT_octet:
+ case AST_PredefinedType::PT_boolean:
+ ACE_SET_BITS (
+ idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.special_basic_arg_seen_
+ );
+ break;
+ default:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.basic_arg_seen_);
+ break;
+ }
+ }
+ default:
+ break;
+ }
+}
+
// Narrowing methods.
IMPL_NARROW_METHODS1 (be_decl, AST_Decl)
IMPL_NARROW_FROM_DECL (be_decl)
diff --git a/TAO/TAO_IDL/be/be_enum.cpp b/TAO/TAO_IDL/be/be_enum.cpp
index bf64194e970..bb40996f128 100644
--- a/TAO/TAO_IDL/be/be_enum.cpp
+++ b/TAO/TAO_IDL/be/be_enum.cpp
@@ -22,6 +22,8 @@
#include "be_enum.h"
#include "be_visitor.h"
+#include "global_extern.h"
+
ACE_RCSID (be,
be_enum,
"$Id$")
@@ -60,6 +62,11 @@ be_enum::be_enum (UTL_ScopedName *n,
be_type (AST_Decl::NT_enum,
n)
{
+ if (!this->imported ())
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.enum_seen_);
+ }
}
void
diff --git a/TAO/TAO_IDL/be/be_exception.cpp b/TAO/TAO_IDL/be/be_exception.cpp
index 5febe51f74a..93996373ab8 100644
--- a/TAO/TAO_IDL/be/be_exception.cpp
+++ b/TAO/TAO_IDL/be/be_exception.cpp
@@ -23,6 +23,8 @@
#include "be_exception.h"
#include "be_visitor.h"
+#include "global_extern.h"
+
ACE_RCSID (be,
be_exception,
"$Id$")
@@ -66,6 +68,12 @@ be_exception::be_exception (UTL_ScopedName *n,
{
// Always the case.
this->size_type (AST_Type::VARIABLE);
+
+ if (!this->imported ())
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.exception_seen_);
+ }
}
void
diff --git a/TAO/TAO_IDL/be/be_generator.cpp b/TAO/TAO_IDL/be/be_generator.cpp
index 32886afd97c..edfedc607c5 100644
--- a/TAO/TAO_IDL/be/be_generator.cpp
+++ b/TAO/TAO_IDL/be/be_generator.cpp
@@ -196,13 +196,6 @@ be_generator::create_module (UTL_Scope *s,
}
}
- // If we are opening module CORBA, we must add the predefined
- // types TypeCode, TCKind and maybe ValueBase.
- if (!ACE_OS::strcmp (retval->local_name ()->get_string (), "CORBA"))
- {
- retval->add_CORBA_members ();
- }
-
return retval;
}
diff --git a/TAO/TAO_IDL/be/be_global.cpp b/TAO/TAO_IDL/be/be_global.cpp
index 994412c6469..d5d52e6a8e1 100644
--- a/TAO/TAO_IDL/be/be_global.cpp
+++ b/TAO/TAO_IDL/be/be_global.cpp
@@ -71,6 +71,7 @@ BE_GlobalData::BE_GlobalData (void)
gen_tie_classes_ (I_TRUE),
gen_smart_proxies_ (I_FALSE),
gen_inline_constants_ (I_FALSE),
+ gen_tmplinst_ (I_FALSE),
lookup_strategy_ (TAO_PERFECT_HASH),
void_type_ (0),
ccmobject_ (0)
@@ -813,6 +814,18 @@ BE_GlobalData::gen_inline_constants (void) const
}
void
+BE_GlobalData::gen_tmplinst (idl_bool val)
+{
+ this->gen_tmplinst_ = val;
+}
+
+idl_bool
+BE_GlobalData::gen_tmplinst (void) const
+{
+ return this->gen_tmplinst_;
+}
+
+void
BE_GlobalData::lookup_strategy (LOOKUP_STRATEGY s)
{
this->lookup_strategy_ = s;
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index 19195ff29e1..f0f79f7ad91 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -24,16 +24,19 @@
#include "be_interface_strategy.h"
#include "be_attribute.h"
#include "be_operation.h"
+#include "be_exception.h"
#include "be_visitor.h"
#include "be_helper.h"
#include "be_stream_factory.h"
#include "be_extern.h"
#include "utl_identifier.h"
+#include "utl_exceptlist.h"
#include "ast_generator.h"
#include "ast_component.h"
#include "global_extern.h"
#include "idl_defines.h"
#include "nr_extern.h"
+
#include "ace/Process.h"
ACE_RCSID (be,
@@ -95,10 +98,42 @@ be_interface::be_interface (UTL_ScopedName *n,
ACE_NEW (this->strategy_,
be_interface_default_strategy (this));
- if (abstract && this->is_defined ())
+ if (this->imported () || this->node_type () == AST_Decl::NT_valuetype)
+ {
+ return ;
+ }
+
+ if (this->is_defined ())
{
+ // Set the flag that says we have a interface in this IDL file.
ACE_SET_BITS (idl_global->decls_seen_info_,
- idl_global->decls_seen_masks.abstract_iface_seen_);
+ idl_global->decls_seen_masks.interface_seen_);
+
+ if (abstract)
+ {
+ // Set the flag for abstract interface seen in this IDL file.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.abstract_iface_seen_);
+ }
+
+ if (local)
+ {
+ // Set the flag for local interface seen in this IDL file.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.local_iface_seen_);
+ }
+ else
+ {
+ // Set the flag for non-local interface seen in this IDL file.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.non_local_iface_seen_);
+ }
+ }
+ else
+ {
+ // Forward declared non-defined interface. Still gets a _var decl.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.fwd_iface_seen_);
}
}
@@ -141,7 +176,7 @@ be_interface::full_name (void)
}
const char *
-be_interface::flat_name (void) const
+be_interface::flat_name (void)
{
// Return the flattened full scoped name.
return this->strategy_->flat_name ();
@@ -419,51 +454,6 @@ be_interface::redefine (AST_Interface *from)
AST_Interface::redefine (from);
}
-// Gen copy constructors,
-void
-be_interface::gen_copy_ctors (TAO_OutStream *os)
-{
- this->traverse_inheritance_graph (
- be_interface::gen_copy_ctors_helper,
- os
- );
-
- return;
-}
-
-int
-be_interface::gen_copy_ctors_helper (be_interface *node,
- be_interface *base,
- TAO_OutStream *os)
-{
- static int first = 0;
-
- if (node != base)
- {
- if (first)
- {
- *os << be_global->impl_class_prefix () << base->flat_name ()
- << be_global->impl_class_suffix () << " (t)"
- << ", " << base->full_skel_name () << " (t)";
-
- first = 0;
- }
- else
- {
- *os << ", " << be_global->impl_class_prefix () << base->flat_name ()
- << be_global->impl_class_suffix () << " (t)"
- << ", " << base->full_skel_name () << " (t)"; ;
- }
- }
- else
- {
- *os << ":";
- first = 1;
- }
-
- return 1;
-}
-
// Generate default constructors.
void
be_interface::gen_def_ctors (TAO_OutStream *os)
@@ -525,14 +515,17 @@ be_interface::gen_stub_ctor (TAO_OutStream *os)
<< "CORBA::Boolean _tao_collocated," << be_nl
<< "TAO_Abstract_ServantBase *servant," << be_nl
<< "TAO_ORB_Core *oc" << be_uidt_nl
- << ")"
- << be_nl;
- *os << ": ACE_NESTED_CLASS (CORBA, Object) (objref, _tao_collocated, servant, oc)," << be_idt_nl
- << "the"<< this->base_proxy_broker_name () << "_ (0)" << be_uidt_nl;
+ << ")" << be_nl
+ << ": ";
- if (this->has_mixed_parentage_)
+ if (this->has_mixed_parentage_ && ! this->is_abstract ())
{
- *os << be_idt;
+ *os << "ACE_NESTED_CLASS (CORBA, AbstractBase) ("
+ << be_idt << be_idt << be_idt_nl
+ << "objref," << be_nl
+ << "_tao_collocated," << be_nl
+ << "servant" << be_uidt_nl
+ << ")" << be_uidt;
int status =
this->traverse_inheritance_graph (
@@ -547,19 +540,52 @@ be_interface::gen_stub_ctor (TAO_OutStream *os)
"be_interface::gen_stub_ctor - "
"inheritance graph traversal failed\n"));
}
+ }
- *os << "," << be_nl
- << "ACE_NESTED_CLASS (CORBA, AbstractBase) (objref, _tao_collocated, servant)"
- << be_uidt << be_uidt;
+ if (this->has_mixed_parentage_ && ! this->is_abstract ())
+ {
+ *os << "," << be_nl;
}
else
{
- *os << be_uidt;
+ *os << be_idt;
}
+ if (is_abstract_)
+ {
+ if (this->pd_n_inherits == 0)
+ {
+ *os << "ACE_NESTED_CLASS (CORBA, AbstractBase) ("
+ << be_idt << be_idt_nl
+ << "objref," << be_nl
+ << "_tao_collocated," << be_nl
+ << "servant" << be_uidt_nl
+ << ")" << be_uidt;
+ }
+ }
+ else
+ {
+ *os << "ACE_NESTED_CLASS (CORBA, Object) ("
+ << be_idt << be_idt_nl
+ << "objref," << be_nl
+ << "_tao_collocated," << be_nl
+ << "servant," << be_nl
+ << "oc" << be_uidt_nl
+ << ")" << be_uidt;
+ }
+
+ *os << "," << be_nl
+ << "the"<< this->base_proxy_broker_name () << "_ (0)"
+ << be_uidt << be_uidt;
+
*os << be_nl << "{" << be_idt_nl
<< "this->" << this->flat_name ()
- << "_setup_collocation (_tao_collocated);";
+ << "_setup_collocation (_tao_collocated);" << be_nl;
+
+ if (this->is_abstract ())
+ {
+ *os << "ACE_UNUSED_ARG (oc);" << be_nl;
+ }
*os << be_uidt_nl
<< "}";
@@ -585,32 +611,25 @@ be_interface:: gen_var_out_seq_decls (void)
// Generate the ifdefined macro for this interface.
os->gen_ifdef_macro (this->flat_name (),
- "odds_n_ends");
+ "var_out");
*os << be_nl << be_nl
<< "class " << lname << ";" << be_nl
- << "typedef " << lname << " *" << lname << "_ptr;" << be_nl
- << "struct tao_" << lname << "_life;" << be_nl << be_nl
- << "typedef" << be_idt_nl
- << "TAO_Objref_Var_T<" << be_idt << be_idt_nl
- << lname << "," << be_nl
- << "tao_" << lname << "_life" << be_uidt_nl
- << ">" << be_uidt_nl
- << lname << "_var;" << be_uidt_nl << be_nl
- << "typedef" << be_idt_nl
- << "TAO_Objref_Out_T<" << be_idt << be_idt_nl
- << lname << "," << be_nl
- << "tao_" << lname << "_life" << be_uidt_nl
- << ">" << be_uidt_nl
- << lname << "_out;" << be_uidt;
+ << "typedef " << lname << " *" << lname << "_ptr;";
+#if 0
*os << be_nl << be_nl
- << "struct " << be_global->stub_export_macro ()
- << " tao_" << lname << "_life" << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "struct " << be_global->stub_export_macro () << " TAO::Objref_Traits<"
+ << lname << ">" << be_nl
<< "{" << be_idt_nl
<< "static " << lname << "_ptr tao_duplicate ("
- << lname << "_ptr);" << be_nl
- << "static void tao_release (" << lname << "_ptr);" << be_nl
+ << be_idt << be_idt_nl
+ << lname << "_ptr" << be_uidt_nl << ");"
+ << be_uidt_nl
+ << "static void tao_release (" << be_idt << be_idt_nl
+ << lname << "_ptr" << be_uidt_nl
+ << ");" << be_uidt_nl
<< "static " << lname << "_ptr tao_nil (void);" << be_nl
<< "static CORBA::Boolean tao_marshal (" << be_idt << be_idt_nl
<< lname << "_ptr," << be_nl
@@ -618,19 +637,37 @@ be_interface:: gen_var_out_seq_decls (void)
<< ");" << be_uidt << be_uidt_nl
<< "};";
- if (! this->is_abstract ())
- {
- *os << be_nl << be_nl
- << "struct " << be_global->stub_export_macro ()
- << " tao_" << lname << "_cast" << be_nl
- << "{" << be_idt_nl
- << "static " << lname << "_ptr tao_narrow (" << be_idt << be_idt_nl
- << "CORBA::Object_ptr"
- << be_nl << "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");" << be_uidt_nl
- << "static CORBA::Object_ptr tao_upcast (void *);" << be_uidt_nl
- << "};";
- }
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "struct " << be_global->stub_export_macro () << " TAO::Objref_Traits<"
+ << lname << ">" << be_nl
+ << "{" << be_idt_nl
+ << "static " << lname << "_ptr tao_duplicate ("
+ << be_idt << be_idt_nl
+ << lname << "_ptr" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "static void tao_release (" << be_idt << be_idt_nl
+ << lname << "_ptr" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "static " << lname << "_ptr tao_nil (void);" << be_nl
+ << "static CORBA::Boolean tao_marshal (" << be_idt << be_idt_nl
+ << lname << "_ptr," << be_nl
+ << "TAO_OutputCDR &" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "};";
+#endif /*if 0*/
+
+ *os << be_nl << be_nl
+ << "typedef" << be_idt_nl
+ << "TAO_Objref_Var_T<" << be_idt << be_idt_nl
+ << lname << be_uidt_nl
+ << ">" << be_uidt_nl
+ << lname << "_var;" << be_uidt_nl << be_nl
+ << "typedef" << be_idt_nl
+ << "TAO_Objref_Out_T<" << be_idt << be_idt_nl
+ << lname << be_uidt_nl
+ << ">" << be_uidt_nl
+ << lname << "_out;" << be_uidt;
os->gen_endif ();
@@ -665,14 +702,16 @@ TAO_IDL_Gen_OpTable_Worker (const char *skeleton_name)
}
int
-TAO_IDL_Gen_OpTable_Worker::emit (be_interface * /* derived_interface */,
+TAO_IDL_Gen_OpTable_Worker::emit (be_interface *derived_interface,
TAO_OutStream *os,
be_interface *base_interface)
{
// Generate entries for the derived class using the properties of its
// ancestors.
be_interface *bi = be_interface::narrow_from_decl (base_interface);
- return bi->gen_optable_entries (this->skeleton_name_, os);
+ return bi->gen_optable_entries (derived_interface,
+ this->skeleton_name_,
+ os);
}
int
@@ -691,10 +730,8 @@ be_interface::gen_operation_table (const char *flat_name,
os->indent ();
// Start the table generation.
- *os << "static const TAO_operation_db_entry " << flat_name <<
- "_operations [] = {" << be_nl;
-
- os->incr_indent (0);
+ *os << "static const TAO_operation_db_entry " << flat_name
+ << "_operations [] = {" << be_idt_nl;
// Make sure the queues are empty.
this->insert_queue.reset ();
@@ -721,21 +758,26 @@ be_interface::gen_operation_table (const char *flat_name,
// Generate the skeleton for the is_a method.
*os << "{\"_is_a\", &" << skeleton_class_name
- << "::_is_a_skel}," << be_nl;
+ << "::_is_a_skel, 0, 0}," << be_nl;
this->skel_count_++;
*os << "{\"_non_existent\", &" << skeleton_class_name
- << "::_non_existent_skel}," << be_nl;
+ << "::_non_existent_skel, 0, 0}," << be_nl;
+
+ this->skel_count_++;
+
+ *os << "{\"_component\", &" << skeleton_class_name
+ << "::_component_skel, 0, 0}," << be_nl;
this->skel_count_++;
*os << "{\"_interface\", &" << skeleton_class_name
- << "::_interface_skel}" << be_uidt_nl;
+ << "::_interface_skel, 0, 0}" << be_uidt_nl;
this->skel_count_++;
- *os << "};\n" << be_nl;
+ *os << "};" << be_nl << be_nl;
*os << "static const CORBA::Long _tao_" << flat_name
<< "_optable_size = sizeof (ACE_Hash_Map_Entry<const char *,"
<< " TAO_Skeleton>) * (" << (3 * this->skel_count_)
@@ -865,29 +907,26 @@ be_interface::gen_operation_table (const char *flat_name,
-1);
}
- // Generate the skeleton for the is_a method.
- os->indent ();
-
- *os << "_is_a, &"
+ *os << "_is_a,&"
<< skeleton_class_name
- << "::_is_a_skel" << be_nl;
+ << "::_is_a_skel, 0, 0" << be_nl;
this->skel_count_++;
- *os << "_non_existent, &"
+ *os << "_non_existent,&"
<< skeleton_class_name
- << "::_non_existent_skel" << be_nl;
+ << "::_non_existent_skel, 0, 0" << be_nl;
this->skel_count_++;
- *os << "_component, &"
+ *os << "_component,&"
<< skeleton_class_name
- << "::_component_skel" << be_nl;
+ << "::_component_skel, 0, 0" << be_nl;
this->skel_count_++;
- *os << "_interface, &"
+ *os << "_interface,&"
<< skeleton_class_name
- << "::_interface_skel" << be_nl;
+ << "::_interface_skel, 0, 0" << be_nl;
this->skel_count_++;
@@ -910,20 +949,6 @@ be_interface::gen_operation_table (const char *flat_name,
return 0;
}
-// Helper.
-int
-be_interface::gen_operation_table (void)
-{
- const char *flat_name =
- this->flat_name ();
- const char *skeleton_class_name =
- this->full_skel_name ();
-
- return this->gen_operation_table (flat_name, skeleton_class_name);
-}
-
-
-
// Output the header (type declaration and %%) to the gperf's input
// file.
void
@@ -944,7 +969,8 @@ be_interface::gen_gperf_input_header (TAO_OutStream *os)
// code. The parameter "derived" is the one for which the entire operation
// table is being built.
int
-be_interface::gen_optable_entries (const char *full_skeleton_name,
+be_interface::gen_optable_entries (be_interface *derived_interface,
+ const char *full_skeleton_name,
TAO_OutStream *os)
{
int lookup_strategy =
@@ -961,13 +987,36 @@ be_interface::gen_optable_entries (const char *full_skeleton_name,
if (d->node_type () == AST_Decl::NT_op)
{
- // Start from current indentation level.
- os->indent ();
-
// We are an operation node.
*os << "{\"" << d->original_local_name () << "\", &"
<< full_skeleton_name << "::"
- << d->local_name () << "_skel},\n";
+ << d->local_name () << "_skel,";
+
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_thru_poa_proxy_impl_name ()
+ << "::" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << ",";
+
+ if (be_global->gen_direct_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_direct_proxy_impl_name ()
+ << "::" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << "}," << be_nl;
this->skel_count_++;
}
@@ -979,24 +1028,72 @@ be_interface::gen_optable_entries (const char *full_skeleton_name,
if (attr == 0)
return -1;
- // Start from current indentation level.
- os->indent ();
-
// Generate only the "get" entry if we are
// readonly.
*os << "{\"_get_" << d->original_local_name ()
<< "\", &" << full_skeleton_name
- << "::_get_" << d->local_name () << "_skel},\n";
+ << "::_get_" << d->local_name () << "_skel,";
+
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_thru_poa_proxy_impl_name ()
+ << "::_get_" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << ",";
+
+ if (be_global->gen_direct_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_direct_proxy_impl_name ()
+ << "::_get_" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << "}," << be_nl;
this->skel_count_++;
if (!attr->readonly ())
{
// The set method
- os->indent (); // Start from current indentation level.
*os << "{\"_set_" << d->original_local_name ()
<< "\", &" << full_skeleton_name
- << "::_set_" << d->local_name () << "_skel},\n";
+ << "::_set_" << d->local_name () << "_skel,";
+
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_thru_poa_proxy_impl_name ()
+ << "::_set_" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << ",";
+
+ if (be_global->gen_direct_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_direct_proxy_impl_name ()
+ << "::_set_" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << "}," << be_nl;
this->skel_count_++;
}
@@ -1024,14 +1121,37 @@ be_interface::gen_optable_entries (const char *full_skeleton_name,
{
// Generate operation name.
- // Start from current indentation level
- os->indent ();
-
// We are an operation node. We use the original
// operation name, not the one with _cxx_ in it.
- *os << d->original_local_name () << ",\t&"
+ *os << d->original_local_name () << ",&"
<< full_skeleton_name << "::"
- << d->local_name () << "_skel" << "\n";
+ << d->local_name () << "_skel,";
+
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_thru_poa_proxy_impl_name ();
+ *os << "::" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << ",";
+
+ if (be_global->gen_direct_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_direct_proxy_impl_name ();
+ *os << "::" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << "\n";
this->skel_count_++;
}
@@ -1041,24 +1161,75 @@ be_interface::gen_optable_entries (const char *full_skeleton_name,
AST_Attribute::narrow_from_decl (d);
if (attr == 0)
- return -1;
-
- os->indent ();
+ {
+ return -1;
+ }
// Generate only the "get" entry if we are readonly.
- *os << "_get_" << d->original_local_name () << ",\t&"
+ *os << "_get_" << d->original_local_name () << ",&"
<< full_skeleton_name << "::_get_"
- << d->local_name () << "_skel\n";
+ << d->local_name () << "_skel,";
+
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_thru_poa_proxy_impl_name ()
+ << "::_get_" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << ",";
+
+ if (be_global->gen_direct_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_direct_proxy_impl_name ()
+ << "::_get_" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << "\n";
this->skel_count_++;
if (!attr->readonly ())
{
// The set method
- os->indent ();
- *os << "_set_" << d->original_local_name () << ",\t&"
+ *os << "_set_" << d->original_local_name () << ",&"
<< full_skeleton_name << "::_set_"
- << d->local_name () << "_skel\n";
+ << d->local_name () << "_skel,";
+
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_thru_poa_proxy_impl_name ()
+ << "::_set_" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << ",";
+
+ if (be_global->gen_direct_collocation ())
+ {
+ *os << " &"
+ << derived_interface->full_direct_proxy_impl_name ()
+ << "::_set_" << d->local_name ();
+ }
+ else
+ {
+ *os << " 0";
+ }
+
+ *os << "\n";
this->skel_count_++;
}
@@ -1077,6 +1248,47 @@ be_interface::gen_optable_entries (const char *full_skeleton_name,
}
void
+be_interface::gen_collocated_skel_body (be_interface *derived,
+ be_interface *ancestor,
+ AST_Decl *d,
+ const char *prefix,
+ idl_bool direct,
+ UTL_ExceptList *list,
+ TAO_OutStream *os)
+{
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ // Generate the static method corresponding to this method.
+ *os << be_nl << be_nl
+ << "ACE_INLINE void" << be_nl
+ << (direct ? derived->full_direct_proxy_impl_name ()
+ : derived->full_thru_poa_proxy_impl_name ())
+ << "::" << prefix << d->local_name () << " (" << be_idt << be_idt_nl
+ << "TAO_Abstract_ServantBase *servant," << be_nl
+ << "TAO::Argument ** args," << be_nl
+ << "int num_args" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ")";
+
+ be_interface::gen_throw_spec (list, os);
+
+ *os << be_uidt_nl
+ << "{" << be_idt_nl
+ << (direct ? ancestor->full_direct_proxy_impl_name ()
+ : ancestor->full_thru_poa_proxy_impl_name ())
+ << "::" << prefix << d->local_name () << " (" << be_idt << be_idt_nl
+ << "servant," << be_nl
+ << "args," << be_nl
+ << "num_args" << be_nl
+ << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "}"<< be_nl;
+
+
+}
+
+void
be_interface::analyze_parentage (void)
{
this->has_mixed_parentage_ = 0;
@@ -1327,18 +1539,16 @@ be_interface::gen_perfect_hash_class_definition (const char *flat_name)
TAO_OutStream *os = this->strategy_->get_out_stream ();
*os << "class " << "TAO_" << flat_name << "_Perfect_Hash_OpTable"
- << " : public TAO_Perfect_Hash_OpTable"
- << be_nl
- << "{"
- << be_nl
- << "private:"
- << be_nl
- << " unsigned int hash (const char *str, unsigned int len);"
- << be_nl
- << "public:"
- << be_nl
- << " const TAO_operation_db_entry * lookup (const char *str, unsigned int len);"
- << be_nl
+ << be_idt_nl
+ << ": public TAO_Perfect_Hash_OpTable" << be_uidt_nl
+ << "{" << be_nl
+ << "private:" << be_idt_nl
+ << "unsigned int hash (const char *str, unsigned int len);"
+ << be_uidt_nl << be_nl
+ << "public:" << be_idt_nl
+ << "const TAO_operation_db_entry * lookup "
+ << "(const char *str, unsigned int len);"
+ << be_uidt_nl
<< "};\n\n";
}
@@ -1351,14 +1561,12 @@ be_interface::gen_binary_search_class_definition (const char *flat_name)
TAO_OutStream *os = this->strategy_->get_out_stream ();
*os << "class " << "TAO_" << flat_name << "_Binary_Search_OpTable"
- << " : public TAO_Binary_Search_OpTable"
- << be_nl
- << "{"
- << be_nl
- << "public:"
- << be_nl
- << " const TAO_operation_db_entry * lookup (const char *str);"
- << be_nl
+ << be_idt_nl
+ << ": public TAO_Binary_Search_OpTable" << be_uidt_nl
+ << "{" << be_nl
+ << "public:" << be_idt_nl
+ << "const TAO_operation_db_entry * lookup (const char *str);"
+ << be_uidt_nl
<< "};\n\n";
}
@@ -1371,14 +1579,12 @@ be_interface::gen_linear_search_class_definition (const char *flat_name)
TAO_OutStream *ss = this->strategy_->get_out_stream ();
*ss << "class " << "TAO_" << flat_name << "_Linear_Search_OpTable"
- << " : public TAO_Linear_Search_OpTable"
- << be_nl
- << "{"
- << be_nl
- << "public:"
- << be_nl
- << " const TAO_operation_db_entry * lookup (const char *str);"
- << be_nl
+ << be_idt_nl
+ << ": public TAO_Linear_Search_OpTable" << be_nl
+ << "{" << be_nl
+ << "public:" << be_idt_nl
+ << "const TAO_operation_db_entry * lookup (const char *str);"
+ << be_uidt_nl
<< "};\n\n";
}
@@ -1460,7 +1666,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
" "
"-D -E -T -f 0"
" "
- "-F 0"
+ "-F 0,0,0"
" "
"-a -o -t -p -K"
" "
@@ -1483,7 +1689,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
" "
"-D -E -T -f 0"
" "
- "-F 0"
+ "-F 0,0,0"
" "
"-a -o -t -p -K"
" "
@@ -1506,7 +1712,7 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
" "
"-D -E -T -f 0"
" "
- "-F 0"
+ "-F 0,0,0"
" "
"-a -o -t -p -K"
" "
@@ -1568,10 +1774,10 @@ be_interface::gen_perfect_hash_instance (const char *flat_name)
// Outstream.
TAO_OutStream *os = this->strategy_->get_out_stream ();
- *os << "static TAO_" << flat_name << "_Perfect_Hash_OpTable"
+ *os << be_nl
+ << "static TAO_" << flat_name << "_Perfect_Hash_OpTable"
<< " "
- << "tao_" << flat_name << "_optable"
- << ";\n" << be_nl;
+ << "tao_" << flat_name << "_optable;";
}
// Create an instance of the binary search optable.
@@ -1581,10 +1787,10 @@ be_interface::gen_binary_search_instance (const char *flat_name)
// Outstream.
TAO_OutStream *os = this->strategy_->get_out_stream ();
- *os << "static TAO_" << flat_name << "_Binary_Search_OpTable"
+ *os << be_nl
+ << "static TAO_" << flat_name << "_Binary_Search_OpTable"
<< " "
- << "tao_" << flat_name << "_optable"
- << ";\n" << be_nl;
+ << "tao_" << flat_name << "_optable;";
}
@@ -1595,10 +1801,10 @@ be_interface::gen_linear_search_instance (const char *flat_name)
// Outstream.
TAO_OutStream *os = this->strategy_->get_out_stream ();
- *os << "static TAO_" << flat_name << "_Linear_Search_OpTable"
+ *os << be_nl
+ << "static TAO_" << flat_name << "_Linear_Search_OpTable"
<< " "
- << "tao_" << flat_name << "_optable"
- << ";\n" << be_nl;
+ << "tao_" << flat_name << "_optable;";
}
int
@@ -1701,7 +1907,6 @@ be_interface::downcast_helper (be_interface * /* derived */,
return 0;
}
-
int
be_interface::gen_skel_helper (be_interface *derived,
be_interface *ancestor,
@@ -1748,7 +1953,8 @@ be_interface::gen_skel_helper (be_interface *derived,
if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR)
{
// Generate the static method corresponding to this method.
- *os << "static void " << d->local_name ()
+ *os << "static void" << be_nl
+ << d->local_name ()
<< "_skel (" << be_idt << be_idt_nl
<< "TAO_ServerRequest &req, " << be_nl
<< "void *obj," << be_nl
@@ -1794,12 +2000,11 @@ be_interface::gen_skel_helper (be_interface *derived,
return -1;
}
- // Start from current indentation level.
- os->indent ();
if (os->stream_type () == TAO_OutStream::TAO_SVR_HDR)
{
// Generate the static method corresponding to this method.
- *os << "static void _get_" << d->local_name ()
+ *os << "static void" << be_nl
+ << "_get_" << d->local_name ()
<< "_skel (" << be_idt << be_idt_nl
<< "TAO_ServerRequest &req," << be_nl
<< "void *obj," << be_nl
@@ -1844,7 +2049,8 @@ be_interface::gen_skel_helper (be_interface *derived,
{
// Generate the static method corresponding to
// this method.
- *os << "static void _set_" << d->local_name ()
+ *os << "static void" << be_nl
+ << "_set_" << d->local_name ()
<< "_skel (" << be_idt << be_idt_nl
<< "TAO_ServerRequest &req," << be_nl
<< "void *obj," << be_nl
@@ -1890,6 +2096,231 @@ be_interface::gen_skel_helper (be_interface *derived,
}
int
+be_interface::gen_colloc_op_decl_helper (be_interface *derived,
+ be_interface *ancestor,
+ TAO_OutStream *os)
+{
+ // If derived and ancestor are same, skip it.
+ if (derived == ancestor)
+ {
+ return 0;
+ }
+
+ // If an operation or an attribute is abstract (declared in an
+ // abstract interface), we will either generate the full
+ // definition (if there are no concrete interfaces between the
+ // abstract ancestor and us) or, if there is a concrete ancestor
+ // in between, we will catch its definition elsewhere in this
+ // traversal.
+ if (ancestor->is_abstract () || ancestor->nmembers () == 0)
+ {
+ return 0;
+ }
+
+ UTL_ExceptList *list = 0;
+
+ for (UTL_ScopeActiveIterator si (ancestor, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ // Get the next AST decl node
+ AST_Decl *d = si.item ();
+
+ if (d->node_type () == AST_Decl::NT_op)
+ {
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+
+ // Generate the static method corresponding to this method.
+ *os << "static void" << be_nl
+ << d->local_name () << " (" << be_idt << be_idt_nl
+ << "TAO_Abstract_ServantBase *servant, " << be_nl
+ << "TAO::Argument ** args," << be_nl
+ << "int num_args" << be_nl
+ << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ")";
+
+ list = be_operation::narrow_from_decl (d)->exceptions ();
+ be_interface::gen_throw_spec (list, os);
+
+ *os << ";";
+ }
+ else if (d->node_type () == AST_Decl::NT_attr)
+ {
+ AST_Attribute *attr = AST_Attribute::narrow_from_decl (d);
+
+ if (attr == 0)
+ {
+ return -1;
+ }
+
+ // Generate the static method corresponding to this method.
+ *os << "static void" << be_nl
+ << "_get_" << d->local_name () << " (" << be_idt << be_idt_nl
+ << "TAO_Abstract_ServantBase *servant, " << be_nl
+ << "TAO::Argument ** args," << be_nl
+ << "int num_args" << be_nl
+ << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ")";
+
+ list = attr->get_get_exceptions ();
+ be_interface::gen_throw_spec (list, os);
+
+ *os << ";";
+
+ if (!attr->readonly ())
+ {
+ *os << be_nl << be_nl;
+
+ // Generate the static method corresponding to
+ // this method.
+ *os << "static void" << be_nl
+ << "_set_" << d->local_name () << " (" << be_idt << be_idt_nl
+ << "TAO_Abstract_ServantBase *servant, " << be_nl
+ << "TAO::Argument ** args," << be_nl
+ << "int num_args" << be_nl
+ << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ")";
+
+ list = attr->get_set_exceptions ();
+ be_interface::gen_throw_spec (list, os);
+
+ *os << ";";
+ }
+ }
+ }
+
+ return 0;
+}
+
+int
+be_interface::gen_colloc_op_defn_helper (be_interface *derived,
+ be_interface *ancestor,
+ TAO_OutStream *os)
+{
+ // If derived and ancestor are same, skip it.
+ if (derived == ancestor)
+ {
+ return 0;
+ }
+
+ // If an operation or an attribute is abstract (declared in an
+ // abstract interface), we will either generate the full
+ // definition (if there are no concrete interfaces between the
+ // abstract ancestor and us) or, if there is a concrete ancestor
+ // in between, we will catch its definition elsewhere in this
+ // traversal.
+ if (ancestor->is_abstract () || ancestor->nmembers () == 0)
+ {
+ return 0;
+ }
+
+ AST_Decl *d = 0;
+ be_operation *op = 0;
+
+ for (UTL_ScopeActiveIterator si (ancestor, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ // Get the next AST decl node
+ d = si.item ();
+
+ if (d->node_type () == AST_Decl::NT_op)
+ {
+ op = be_operation::narrow_from_decl (d);
+
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ be_interface::gen_collocated_skel_body (derived,
+ ancestor,
+ d,
+ "",
+ I_FALSE,
+ op->exceptions (),
+ os);
+ }
+
+ if (be_global->gen_direct_collocation ())
+ {
+ be_interface::gen_collocated_skel_body (derived,
+ ancestor,
+ d,
+ "",
+ I_TRUE,
+ op->exceptions (),
+ os);
+ }
+ }
+ else if (d->node_type () == AST_Decl::NT_attr)
+ {
+ AST_Attribute *attr = AST_Attribute::narrow_from_decl (d);
+
+ if (attr == 0)
+ {
+ return -1;
+ }
+
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ be_interface::gen_collocated_skel_body (
+ derived,
+ ancestor,
+ d,
+ "_get_",
+ I_FALSE,
+ attr->get_get_exceptions (),
+ os
+ );
+ }
+
+ if (be_global->gen_direct_collocation ())
+ {
+ be_interface::gen_collocated_skel_body (
+ derived,
+ ancestor,
+ d,
+ "_get_",
+ I_TRUE,
+ attr->get_get_exceptions (),
+ os
+ );
+ }
+
+ if (!attr->readonly ())
+ {
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ be_interface::gen_collocated_skel_body (
+ derived,
+ ancestor,
+ d,
+ "_set_",
+ I_FALSE,
+ attr->get_set_exceptions (),
+ os
+ );
+ }
+
+ if (be_global->gen_direct_collocation ())
+ {
+ be_interface::gen_collocated_skel_body (
+ derived,
+ ancestor,
+ d,
+ "_set_",
+ I_TRUE,
+ attr->get_set_exceptions (),
+ os
+ );
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+int
be_interface::copy_ctor_helper (be_interface *derived,
be_interface *base,
TAO_OutStream *os)
@@ -1913,7 +2344,7 @@ be_interface::copy_ctor_helper (be_interface *derived,
}
else
{
- *os << " " << base->full_skel_name () << " (rhs)" << be_nl;
+ *os << " " << base->full_skel_name () << " (rhs)";
}
return 0;
@@ -1961,30 +2392,61 @@ be_interface::gen_abstract_init_helper (be_interface *node,
return 0;
}
- *os << ",";
+ *os << "," << be_nl;
if (base->is_nested ())
{
UTL_Scope *parent_scope = base->defined_in ();
AST_Decl *parent_decl = ScopeAsDecl (parent_scope);
- *os << be_nl
- << "ACE_NESTED_CLASS ("
+ *os << "ACE_NESTED_CLASS ("
<< parent_decl->name () << ", "
- << base->local_name ()
- << ") (objref, _tao_collocated, servant)";
+ << base->local_name ()<< ") (" << be_idt << be_idt_nl;
}
else
{
- *os << be_nl
- << base->name ()
- << " (objref, _tao_collocated, servant)";
+ *os << base->name () << " (" << be_idt << be_idt_nl;
}
+ *os << "objref," << be_nl
+ << "_tao_collocated," << be_nl
+ << "servant" << be_uidt_nl
+ << ")" << be_uidt;
+
+
return 0;
}
void
+be_interface::gen_throw_spec (UTL_ExceptList *list,
+ TAO_OutStream *os)
+{
+ const char *throw_spec_open = "throw (";
+ const char *throw_spec_close = ")";
+
+ if (!be_global->use_raw_throw ())
+ {
+ throw_spec_open = "ACE_THROW_SPEC ((";
+ throw_spec_close = "))";
+ }
+
+ *os << be_nl << throw_spec_open;
+ *os << be_idt_nl << "CORBA::SystemException";
+
+ // Initialize an iterator to iterate thru the exception list.
+ for (UTL_ExceptlistActiveIterator ei (list);
+ !ei.is_done ();
+ ei.next ())
+ {
+ *os << "," << be_nl
+ << ei.item ()->name ();
+ }
+
+ *os << be_uidt_nl
+ << throw_spec_close << be_uidt;
+}
+
+void
be_interface::destroy (void)
{
// Call the destroy methods of our base classes.
diff --git a/TAO/TAO_IDL/be/be_interface_fwd.cpp b/TAO/TAO_IDL/be/be_interface_fwd.cpp
index d115a0fba5b..a74eeceded9 100644
--- a/TAO/TAO_IDL/be/be_interface_fwd.cpp
+++ b/TAO/TAO_IDL/be/be_interface_fwd.cpp
@@ -20,11 +20,12 @@
// ============================================================================
#include "be_interface_fwd.h"
+#include "be_interface.h"
#include "be_visitor.h"
#include "ast_interface.h"
-ACE_RCSID (be,
- be_interface_fwd,
+ACE_RCSID (be,
+ be_interface_fwd,
"$Id$")
be_interface_fwd::be_interface_fwd (void)
@@ -63,6 +64,33 @@ be_interface_fwd::~be_interface_fwd (void)
}
void
+be_interface_fwd::seq_elem_tmplinst (idl_bool val)
+{
+ this->be_type::seq_elem_tmplinst (val);
+ be_interface *fd =
+ be_interface::narrow_from_decl (this->full_definition ());
+ fd->seq_elem_tmplinst (val);
+}
+
+void
+be_interface_fwd::seen_in_sequence (idl_bool val)
+{
+ this->be_type::seen_in_sequence (val);
+ be_interface *fd =
+ be_interface::narrow_from_decl (this->full_definition ());
+ fd->seen_in_sequence (val);
+}
+
+void
+be_interface_fwd::seen_in_operation (idl_bool val)
+{
+ this->be_type::seen_in_operation (val);
+ be_interface *fd =
+ be_interface::narrow_from_decl (this->full_definition ());
+ fd->seen_in_operation (val);
+}
+
+void
be_interface_fwd::destroy (void)
{
// Do nothing.
diff --git a/TAO/TAO_IDL/be/be_operation.cpp b/TAO/TAO_IDL/be/be_operation.cpp
index 1b1a2bfefb0..1f4d045fffd 100644
--- a/TAO/TAO_IDL/be/be_operation.cpp
+++ b/TAO/TAO_IDL/be/be_operation.cpp
@@ -24,9 +24,10 @@
#include "be_predefined_type.h"
#include "be_argument.h"
#include "be_visitor.h"
+#include "global_extern.h"
-ACE_RCSID (be,
- be_operation,
+ACE_RCSID (be,
+ be_operation,
"$Id$")
be_operation::be_operation (void)
@@ -62,6 +63,23 @@ be_operation::be_operation (AST_Type *rt,
{
ACE_NEW (this->strategy_,
be_operation_default_strategy (this));
+
+ if (this->imported ())
+ {
+ return;
+ }
+
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.operation_seen_);
+
+ if (!this->is_local ())
+ {
+ be_type *bt = be_type::narrow_from_decl (rt);
+ bt->seen_in_operation (I_TRUE);
+ this->set_arg_seen_bit (bt);
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.non_local_op_seen_);
+ }
}
diff --git a/TAO/TAO_IDL/be/be_predefined_type.cpp b/TAO/TAO_IDL/be/be_predefined_type.cpp
index 5da4db17078..af303cf6cbd 100644
--- a/TAO/TAO_IDL/be/be_predefined_type.cpp
+++ b/TAO/TAO_IDL/be/be_predefined_type.cpp
@@ -22,6 +22,8 @@
#include "be_predefined_type.h"
#include "be_visitor.h"
#include "utl_identifier.h"
+#include "global_extern.h"
+
#include "ace/Log_Msg.h"
#include "ace/ACE.h"
@@ -74,6 +76,27 @@ be_predefined_type::be_predefined_type (AST_PredefinedType::PredefinedType t,
{
this->fwd_helper_name_ = "CORBA::tao_ValueBase";
}
+
+ switch (t)
+ {
+ case AST_PredefinedType::PT_char:
+ case AST_PredefinedType::PT_wchar:
+ case AST_PredefinedType::PT_boolean:
+ case AST_PredefinedType::PT_octet:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.ambiguous_type_seen_);
+ break;
+ case AST_PredefinedType::PT_any:
+ case AST_PredefinedType::PT_object:
+ case AST_PredefinedType::PT_value:
+ case AST_PredefinedType::PT_void:
+ case AST_PredefinedType::PT_pseudo:
+ break;
+ default:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.basic_type_seen_);
+ break;
+ }
}
// Overriden method.
diff --git a/TAO/TAO_IDL/be/be_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp
index 565a2396fff..09f8da267fd 100644
--- a/TAO/TAO_IDL/be/be_sequence.cpp
+++ b/TAO/TAO_IDL/be/be_sequence.cpp
@@ -27,13 +27,16 @@
#include "be_field.h"
#include "be_visitor.h"
#include "be_helper.h"
+
#include "utl_identifier.h"
#include "idl_defines.h"
#include "nr_extern.h"
+#include "global_extern.h"
+
#include "ace/Log_Msg.h"
-ACE_RCSID (be,
- be_sequence,
+ACE_RCSID (be,
+ be_sequence,
"$Id$")
@@ -84,6 +87,73 @@ be_sequence::be_sequence (AST_Expression *v,
{
// Always the case.
this->has_constructor (I_TRUE);
+
+ // Don't want to set any bits below for imported nodes.
+ if (this->imported ())
+ {
+ return;
+ }
+
+ // This one gets set for all sequences, in addition to any specialized
+ // one that may get set below.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.seq_seen_);
+
+ // Don't need the return value - just set the member.
+ (void) this->managed_type ();
+
+ switch (this->mt_)
+ {
+ case MNG_OBJREF:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.iface_seq_seen_);
+ break;
+ case MNG_PSEUDO:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.pseudo_seq_seen_);
+ break;
+ case MNG_VALUE:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.vt_seq_seen_);
+ break;
+ case MNG_STRING:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.string_seq_seen_);
+ break;
+ case MNG_WSTRING:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.wstring_seq_seen_);
+ break;
+ default:
+ break;
+ }
+
+ AST_Decl::NodeType nt = t->node_type ();
+ AST_Typedef *td = 0;
+ AST_Type *pbt = 0;
+
+ if (nt == AST_Decl::NT_typedef)
+ {
+ td = AST_Typedef::narrow_from_decl (t);
+ pbt = td->primitive_base_type ();
+ nt = pbt->node_type ();
+ }
+
+ if (nt == AST_Decl::NT_pre_defined)
+ {
+ AST_PredefinedType *pdt =
+ AST_PredefinedType::narrow_from_decl (pbt ? pbt : t);
+
+ switch (pdt->pt ())
+ {
+ case AST_PredefinedType::PT_octet:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.octet_seq_seen_);
+ break;
+ default:
+ break;
+ }
+ }
}
// Helper to create_name.
@@ -148,9 +218,8 @@ be_sequence::gen_name (void)
else
{
ACE_OS::sprintf (namebuf,
- "_tao_seq_%s_%s",
- bt->local_name ()->get_string (),
- fn ? fn->local_name ()->get_string () : "");
+ "_tao_seq_%s_",
+ bt->flat_name ());
}
// Append the size (if any).
@@ -160,7 +229,7 @@ be_sequence::gen_name (void)
ACE_OS::sprintf (ulval_str,
"_%lu",
this->max_size ()->ev ()->u.ulval);
- ACE_OS::strcat (namebuf,
+ ACE_OS::strcat (namebuf,
ulval_str);
}
@@ -254,16 +323,6 @@ be_sequence::managed_type (void)
switch (prim_type->node_type ())
{
case AST_Decl::NT_interface:
- if (prim_type->is_abstract ())
- {
- this->mt_ = be_sequence::MNG_ABSTRACT;
- }
- else
- {
- this->mt_ = be_sequence::MNG_OBJREF;
- }
-
- break;
case AST_Decl::NT_interface_fwd:
this->mt_ = be_sequence::MNG_OBJREF;
break;
@@ -388,22 +447,6 @@ be_sequence::instance_name ()
}
break;
- case be_sequence::MNG_ABSTRACT:
- if (this->unbounded ())
- {
- ACE_OS::sprintf (namebuf,
- "_TAO_Unbounded_Abstract_Sequence_%s",
- prim_type->local_name ()->get_string ());
- }
- else
- {
- ACE_OS::sprintf (namebuf,
- "_TAO_Bounded_Abstract_Sequence_%s_%lu",
- prim_type->local_name ()->get_string (),
- this->max_size ()->ev ()->u.ulval);
- }
-
- break;
case be_sequence::MNG_VALUE:
if (this->unbounded ())
{
@@ -485,6 +528,7 @@ be_sequence::instance_name ()
int
be_sequence::gen_base_class_name (TAO_OutStream *os,
+ char * linebreak,
AST_Decl *ctx_scope)
{
be_type *elem = be_type::narrow_from_decl (this->base_type ());
@@ -495,47 +539,22 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
case be_sequence::MNG_OBJREF:
if (this->unbounded ())
{
- *os << "TAO_Unbounded_Object_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl;
- *os << elem->nested_type_name (ctx_scope, "_var") << "," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_life," << be_nl;
- *os << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_cast" << be_uidt_nl
- << ">" << be_uidt;
- }
- else
- {
- *os << "TAO_Bounded_Object_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl;
- *os << elem->nested_type_name (ctx_scope, "_var") << "," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_life," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_cast," << be_nl
- << this->max_size ()->ev ()->u.ulval << be_uidt_nl
- << ">" << be_uidt;
- }
-
- break;
- case be_sequence::MNG_ABSTRACT:
- if (this->unbounded ())
- {
- *os << "TAO_Unbounded_Abstract_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl;
- *os << elem->nested_type_name (ctx_scope, "_var") << "," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_life" << be_uidt_nl
+ *os << "TAO_Unbounded_Object_Sequence<" << linebreak
+ << be_idt << be_idt_nl
+ << elem->nested_type_name (ctx_scope) << "," << linebreak
+ << be_nl;
+ *os << elem->nested_type_name (ctx_scope, "_var") << linebreak
+ << be_uidt_nl
<< ">" << be_uidt;
}
else
{
- *os << "TAO_Bounded_Abstract_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl;
- *os << elem->nested_type_name (ctx_scope, "_var") << "," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_life," << be_nl
- << this->max_size ()->ev ()->u.ulval << be_uidt_nl
+ *os << "TAO_Bounded_Object_Sequence<" << linebreak
+ << be_idt << be_idt_nl
+ << elem->nested_type_name (ctx_scope) << "," << linebreak << be_nl;
+ *os << elem->nested_type_name (ctx_scope, "_var") << ","
+ << linebreak << be_nl;
+ *os << this->max_size ()->ev ()->u.ulval << linebreak << be_uidt_nl
<< ">" << be_uidt;
}
@@ -543,17 +562,18 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
case be_sequence::MNG_PSEUDO:
if (this->unbounded ())
{
- *os << "TAO_Unbounded_Pseudo_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl
- << elem->name () << "_var" << be_uidt_nl
+ *os << "TAO_Unbounded_Pseudo_Sequence<" << linebreak
+ << be_idt << be_idt_nl
+ << elem->nested_type_name (ctx_scope) << linebreak << be_uidt_nl
<< ">" << be_uidt;
}
else
{
- *os << "TAO_Bounded_Pseudo_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl
- << elem->name () << "_var," << be_nl
- << this->max_size ()->ev ()->u.ulval << be_uidt_nl
+ *os << "TAO_Bounded_Pseudo_Sequence<" << linebreak
+ << be_idt << be_idt_nl
+ << elem->nested_type_name (ctx_scope) << linebreak << be_nl
+ << this->max_size ()->ev ()->u.ulval << linebreak
+ << be_uidt_nl
<< ">" << be_uidt;
}
@@ -561,21 +581,23 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
case be_sequence::MNG_VALUE:
if (this->unbounded ())
{
- *os << "TAO_Unbounded_Valuetype_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl;
- *os << elem->nested_type_name (ctx_scope, "_var") << "," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_life" << be_uidt_nl
+ *os << "TAO_Unbounded_Valuetype_Sequence<" << linebreak
+ << be_idt << be_idt_nl
+ << elem->nested_type_name (ctx_scope) << "," << linebreak
+ << be_nl;
+ *os << elem->nested_type_name (ctx_scope, "_var") << linebreak
+ << be_uidt_nl
<< ">" << be_uidt;
}
else
{
- *os << "TAO_Bounded_Valuetype_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl;
- *os << elem->nested_type_name (ctx_scope, "_var") << "," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_life," << be_nl
- << this->max_size ()->ev ()->u.ulval << be_uidt_nl
+ *os << "TAO_Bounded_Valuetype_Sequence<" << linebreak
+ << be_idt << be_idt_nl
+ << elem->nested_type_name (ctx_scope) << "," << linebreak
+ << be_nl;
+ *os << elem->nested_type_name (ctx_scope, "_var") << ","
+ << linebreak << be_nl
+ << this->max_size ()->ev ()->u.ulval << linebreak << be_uidt_nl
<< ">" << be_uidt;
}
@@ -610,21 +632,24 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
case AST_Decl::NT_array:
if (this->unbounded ())
{
- *os << "TAO_Unbounded_Array_Sequence<"
+ *os << "TAO_Unbounded_Array_Sequence<" << linebreak
<< be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_life" << be_uidt_nl
+ << elem->nested_type_name (ctx_scope) << "," << linebreak
+ << be_nl;
+ *os << elem->nested_type_name (ctx_scope) << "_slice"
+ << linebreak << be_uidt_nl
<< ">" << be_uidt;
}
else
{
- *os << "TAO_Bounded_Array_Sequence<"
+ *os << "TAO_Bounded_Array_Sequence<" << linebreak
<< be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl
- << this->smart_fwd_helper_name (ctx_scope, elem)
- << "_life," << be_nl
- << this->max_size ()->ev ()->u.ulval << be_uidt_nl
+ << elem->nested_type_name (ctx_scope) << "," << linebreak
+ << be_nl;
+ *os << elem->nested_type_name (ctx_scope) << "_slice,"
+ << linebreak << be_nl
+ << this->max_size ()->ev ()->u.ulval << linebreak
+ << be_uidt_nl
<< ">" << be_uidt;
}
@@ -632,22 +657,27 @@ be_sequence::gen_base_class_name (TAO_OutStream *os,
default:
if (this->unbounded ())
{
- *os << "TAO_Unbounded_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << be_uidt_nl
+ *os << "TAO_Unbounded_Sequence<" << linebreak
+ << be_idt << be_idt_nl
+ << elem->nested_type_name (ctx_scope) << linebreak
+ << be_uidt_nl
<< ">" << be_uidt;
}
else
{
- *os << "TAO_Bounded_Sequence<" << be_idt << be_idt_nl
- << elem->nested_type_name (ctx_scope) << "," << be_nl
- << this->max_size ()->ev ()->u.ulval << be_uidt_nl
+ *os << "TAO_Bounded_Sequence<" << linebreak
+ << be_idt << be_idt_nl
+ << elem->nested_type_name (ctx_scope) << "," << linebreak
+ << be_nl
+ << this->max_size ()->ev ()->u.ulval << linebreak
+ << be_uidt_nl
<< ">" << be_uidt;
}
break;
}
- break;
+ break;
}
return 0;
diff --git a/TAO/TAO_IDL/be/be_string.cpp b/TAO/TAO_IDL/be/be_string.cpp
index c8c4a5da40b..861f91c3742 100644
--- a/TAO/TAO_IDL/be/be_string.cpp
+++ b/TAO/TAO_IDL/be/be_string.cpp
@@ -21,7 +21,9 @@
#include "be_string.h"
#include "be_visitor.h"
+
#include "utl_identifier.h"
+#include "global_extern.h"
ACE_RCSID (be,
be_string,
@@ -58,6 +60,8 @@ be_string::be_string (AST_Decl::NodeType nt,
be_type (nt,
n)
{
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.string_seen_);
}
// Overriden method.
diff --git a/TAO/TAO_IDL/be/be_structure.cpp b/TAO/TAO_IDL/be/be_structure.cpp
index 1c9bca77f0f..53aebd709b9 100644
--- a/TAO/TAO_IDL/be/be_structure.cpp
+++ b/TAO/TAO_IDL/be/be_structure.cpp
@@ -24,9 +24,11 @@
#include "be_helper.h"
#include "be_visitor.h"
#include "be_extern.h"
+
#include "ast_field.h"
#include "utl_identifier.h"
#include "idl_defines.h"
+#include "global_extern.h"
ACE_RCSID (be,
be_structure,
@@ -66,6 +68,11 @@ be_structure::be_structure (UTL_ScopedName *n,
be_type (AST_Decl::NT_struct,
n)
{
+ if (!this->imported ())
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.aggregate_seen_);
+ }
}
void
diff --git a/TAO/TAO_IDL/be/be_type.cpp b/TAO/TAO_IDL/be/be_type.cpp
index a5fe06ec7f0..40864e9ffdc 100644
--- a/TAO/TAO_IDL/be/be_type.cpp
+++ b/TAO/TAO_IDL/be/be_type.cpp
@@ -39,7 +39,9 @@ be_type::be_type (void)
be_decl (),
tc_name_ (0),
common_varout_gen_ (I_FALSE),
- seen_in_sequence_ (I_FALSE)
+ seq_elem_tmplinst_ (I_FALSE),
+ seen_in_sequence_ (I_FALSE),
+ seen_in_operation_ (I_FALSE)
{
}
@@ -54,7 +56,9 @@ be_type::be_type (AST_Decl::NodeType nt,
n),
tc_name_ (0),
common_varout_gen_ (I_FALSE),
- seen_in_sequence_ (I_FALSE)
+ seq_elem_tmplinst_ (I_FALSE),
+ seen_in_sequence_ (I_FALSE),
+ seen_in_operation_ (I_FALSE)
{
if (n != 0)
{
@@ -288,67 +292,16 @@ be_type::gen_common_varout (TAO_OutStream *os)
this->common_varout_gen_ = 1;
}
-void
-be_type::gen_common_tmplinst (TAO_OutStream *os)
+idl_bool
+be_type::seq_elem_tmplinst (void) const
{
- AST_Type::SIZE_TYPE st = this->size_type ();
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_AHETI ();
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << (st == AST_Type::FIXED ? "TAO_Fixed_Var_T<"
- : "TAO_Var_Var_T<")
- << be_idt << be_idt_nl
- << this->name () << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class TAO_Var_Base_T<"
- << be_idt << be_idt_nl
- << this->name () << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- if (st == AST_Type::VARIABLE)
- {
- *os << be_nl<< be_nl
- << "template class" << be_idt_nl
- << "TAO_Out_T<" << be_idt << be_idt_nl
- << this->name () << "," << be_nl
- << this->name () << "_var" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
- }
-
- os->gen_elif_AHETI ();
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << (st == AST_Type::FIXED ? "TAO_Fixed_Var_T< \\"
- : "TAO_Var_Var_T< \\")
- << be_idt << be_idt_nl
- << this->name () << " \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "#pragma instantiate TAO_Var_Base_T<"
- << be_idt << be_idt_nl
- << this->name () << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- if (st == AST_Type::VARIABLE)
- {
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_Out_T< \\" << be_idt << be_idt_nl
- << this->name () << ", \\" << be_nl
- << this->name () << "_var \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
- }
+ return this->seq_elem_tmplinst_;
+}
- os->gen_endif_AHETI ();
+void
+be_type::seq_elem_tmplinst (idl_bool val)
+{
+ this->seq_elem_tmplinst_ = val;
}
idl_bool
@@ -363,6 +316,18 @@ be_type::seen_in_sequence (idl_bool val)
this->seen_in_sequence_ = val;
}
+idl_bool
+be_type::seen_in_operation (void) const
+{
+ return this->seen_in_operation_;
+}
+
+void
+be_type::seen_in_operation (idl_bool val)
+{
+ this->seen_in_operation_ = val;
+}
+
AST_Decl::NodeType
be_type::base_node_type (void) const
{
diff --git a/TAO/TAO_IDL/be/be_typedef.cpp b/TAO/TAO_IDL/be/be_typedef.cpp
index 36377d19e15..ff8e0675230 100644
--- a/TAO/TAO_IDL/be/be_typedef.cpp
+++ b/TAO/TAO_IDL/be/be_typedef.cpp
@@ -58,6 +58,27 @@ be_typedef::be_typedef (AST_Type *bt,
{
}
+void
+be_typedef::seq_elem_tmplinst (idl_bool val)
+{
+ this->be_type::seq_elem_tmplinst (val);
+ this->primitive_base_type ()->seq_elem_tmplinst (val);
+}
+
+void
+be_typedef::seen_in_sequence (idl_bool val)
+{
+ this->be_type::seen_in_sequence (val);
+ this->primitive_base_type ()->seen_in_sequence (val);
+}
+
+void
+be_typedef::seen_in_operation (idl_bool val)
+{
+ this->be_type::seen_in_operation (val);
+ this->primitive_base_type ()->seen_in_operation (val);
+}
+
// Given a typedef node, traverse the chain of base types until they are no
// more typedefs, and return that most primitive base type.
be_type *
diff --git a/TAO/TAO_IDL/be/be_union.cpp b/TAO/TAO_IDL/be/be_union.cpp
index 64dd0864f90..cbbdaa952ea 100644
--- a/TAO/TAO_IDL/be/be_union.cpp
+++ b/TAO/TAO_IDL/be/be_union.cpp
@@ -24,9 +24,11 @@
#include "be_codegen.h"
#include "be_helper.h"
#include "be_extern.h"
+
#include "ast_union_branch.h"
#include "utl_identifier.h"
#include "idl_defines.h"
+#include "global_extern.h"
ACE_RCSID (be,
be_union,
@@ -78,6 +80,12 @@ be_union::be_union (AST_ConcreteType *dt,
{
// Always the case.
this->has_constructor (I_TRUE);
+
+ if (!this->imported ())
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.aggregate_seen_);
+ }
}
void
diff --git a/TAO/TAO_IDL/be/be_valuetype.cpp b/TAO/TAO_IDL/be/be_valuetype.cpp
index c05d99c3a63..22d9f0bd1c1 100644
--- a/TAO/TAO_IDL/be/be_valuetype.cpp
+++ b/TAO/TAO_IDL/be/be_valuetype.cpp
@@ -140,12 +140,22 @@ be_valuetype::be_valuetype (UTL_ScopedName *n,
}
}
+ if (this->imported ())
+ {
+ return;
+ }
+
// Set the flag that says we have a valuetype in this IDL file.
if (this->is_defined ())
{
ACE_SET_BITS (idl_global->decls_seen_info_,
idl_global->decls_seen_masks.valuetype_seen_);
}
+ else
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.fwd_valuetype_seen_);
+ }
}
be_valuetype::~be_valuetype (void)
@@ -194,6 +204,223 @@ be_valuetype::fwd_helper_name (void) const
return this->fwd_helper_name_.fast_rep ();
}
+be_valuetype::FactoryStyle
+be_valuetype::determine_factory_style (void)
+{
+ FactoryStyle factory_style = FS_UNKNOWN;
+
+
+ if (this->is_abstract ())
+ {
+ return FS_NO_FACTORY;
+ }
+
+ // Check whether we have at least one operation or not.
+ idl_bool have_operation = this->have_operation ();
+ idl_bool have_factory = 0;
+
+ // Try only our own scope.
+ if (this->nmembers () > 0)
+ {
+ // Initialize an iterator to iterate thru our scope
+ // Continue until each element is visited.
+ for (UTL_ScopeActiveIterator si (this,
+ UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next())
+ {
+ AST_Decl *d = si.item ();
+
+ if (!d)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_valuetype::"
+ "determine_factory_style"
+ "bad node in this scope\n"),
+ factory_style);
+
+ }
+
+ AST_Decl::NodeType node_type = d->node_type ();
+
+ if (node_type == AST_Decl::NT_factory)
+ {
+ have_factory = 1;
+ break;
+ }
+
+ } // end of for loop
+ } // end of if
+
+ if (!have_operation && !have_factory)
+ {
+ factory_style = FS_CONCRETE_FACTORY;
+ }
+ else if (have_operation && !have_factory)
+ {
+ factory_style = FS_NO_FACTORY;
+ }
+ else
+ {
+ factory_style = FS_ABSTRACT_FACTORY;
+ }
+
+ return factory_style;
+}
+
+idl_bool
+be_valuetype::have_operation (void)
+{
+ // Check whatever scope we get for operations/attributes.
+
+ idl_bool have_operation = I_FALSE;
+
+ // Operations are either operations or attributes of:
+ // -its own
+ // -derived (abstract VT | VT | abstract iface | iface)
+ //
+
+ // First try our own scope.
+ if (this->nmembers () > 0)
+ {
+ // Initialize an iterator to iterate thru our scope
+ // Continue until each element is checked.
+ for (UTL_ScopeActiveIterator si (this,
+ UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next())
+ {
+ AST_Decl *d = si.item ();
+
+ if (!d)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_valuetype::"
+ "has_operation"
+ "bad node in this scope\n"),
+ 0);
+
+ }
+
+ AST_Decl::NodeType nt = d->node_type();
+
+ if (nt == AST_Decl::NT_op || nt == AST_Decl::NT_attr)
+ {
+ have_operation = I_TRUE;
+ break;
+ }
+ } // end of for loop
+ } // end of if
+
+ if (! have_operation)
+ {
+ // Now traverse inheritance tree.
+ long i; // loop index
+ long n_inherits = this->n_inherits ();
+ AST_Interface **inherits = this->inherits ();
+
+ for (i = 0; i < n_inherits; ++i)
+ {
+ be_valuetype *vt = be_valuetype::narrow_from_decl (inherits[i]);
+
+ if (vt != 0 && vt->have_operation ())
+ {
+ have_operation = I_TRUE;
+ break;
+ }
+ }
+ }
+
+ if (! have_operation)
+ {
+ // Check for operations on supported interfaces
+ AST_Interface * supported = this->supports_concrete ();
+
+ if (supported != 0)
+ {
+ be_interface *intf = be_interface::narrow_from_decl (supported);
+
+ if (intf != 0)
+ {
+ have_operation = be_valuetype::have_supported_op (intf);
+ }
+ }
+ }
+
+ return have_operation;
+}
+
+idl_bool
+be_valuetype::have_supported_op (be_interface * node)
+{
+
+ idl_bool have_supported_op = 0;
+
+ if (node->nmembers () == 0)
+ {
+ return I_FALSE;
+ }
+
+ // Initialize an iterator for supported interface elements
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ si.is_done ();
+ si.next())
+ {
+ AST_Decl *d = si.item ();
+
+ if (!d)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_valuetype::"
+ "have_supported_op"
+ "bad node in this scope\n"),
+ 0);
+
+ }
+
+ AST_Decl::NodeType nt = d->node_type ();
+
+ // Check the type of each element in the supported interface
+ if (nt == AST_Decl::NT_op || nt == AST_Decl::NT_attr)
+ {
+ have_supported_op = 1;
+ break;
+ }
+ } // end for loop
+
+ if (! have_supported_op)
+ {
+ // Now traverse inheritance tree.
+ long i; // loop index
+ long n_inherits = node->n_inherits ();
+ AST_Interface **inherits = node->inherits ();
+ for (i = 0; i < n_inherits; ++i)
+ {
+ be_interface * intf = be_interface::narrow_from_decl (inherits[i]);
+
+ if (intf != 0)
+ {
+ have_supported_op = be_valuetype::have_supported_op (intf);
+
+ if (have_supported_op)
+ {
+ break;
+ }
+ }
+ }
+ }
+
+ return have_supported_op;
+}
+
+idl_bool
+be_valuetype::will_have_factory (void)
+{
+ FactoryStyle fs = this->determine_factory_style ();
+
+ return (fs == FS_ABSTRACT_FACTORY || fs == FS_CONCRETE_FACTORY);
+}
+
int
be_valuetype::gen_helper_header (char*,
char*)
@@ -206,7 +433,7 @@ be_valuetype::gen_helper_header (char*,
<< "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- *os << "TAO_NAMESPACE CORBA" << be_nl
+ *os << "namespace CORBA" << be_nl
<< "{"
<< be_idt_nl
<< "TAO_NAMESPACE_STORAGE_CLASS void add_ref ("
@@ -215,8 +442,7 @@ be_valuetype::gen_helper_header (char*,
<< this->full_name () << " *);";
*os << be_uidt_nl
- << "}" << be_nl
- << "TAO_NAMESPACE_CLOSE";
+ << "}";
return 0;
}
@@ -237,7 +463,7 @@ be_valuetype::gen_helper_inline (char*,
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
*os << "#if defined (__ACE_INLINE__)" << be_nl << be_nl
- << "TAO_NAMESPACE CORBA" << be_nl
+ << "namespace CORBA" << be_nl
<< "{"
<< be_idt_nl
<< "TAO_NAMESPACE_STORAGE_CLASS void add_ref ("
@@ -245,8 +471,7 @@ be_valuetype::gen_helper_inline (char*,
<< "TAO_NAMESPACE_STORAGE_CLASS void remove_ref ("
<< this->full_name () << " *);"
<< be_uidt_nl
- << "}" << be_nl
- << "TAO_NAMESPACE_CLOSE" << be_nl << be_nl
+ << "}" << be_nl << be_nl
<< "#endif /*__ACE_INLINE__*/";
return 0;
@@ -303,35 +528,23 @@ be_valuetype:: gen_var_out_seq_decls (void)
// Generate the ifdefined macro for this interface.
os->gen_ifdef_macro (this->flat_name (),
- "odds_n_ends");
+ "var_out");
const char *lname = this->local_name ();
*os << be_nl << be_nl
<< "class " << lname << ";" << be_nl
- << "struct tao_" << lname << "_life;" << be_nl << be_nl
<< "typedef" << be_idt_nl
<< "TAO_Value_Var_T<" << be_idt << be_idt_nl
- << lname << "," << be_nl
- << "tao_" << lname << "_life" << be_uidt_nl
+ << lname << be_uidt_nl
<< ">" << be_uidt_nl
<< lname << "_var;" << be_uidt_nl << be_nl
<< "typedef" << be_idt_nl
<< "TAO_Value_Out_T<" << be_idt << be_idt_nl
- << lname << "," << be_nl
- << "tao_" << lname << "_life" << be_uidt_nl
- << ">" << be_uidt_nl
+ << lname << be_uidt_nl
+ << ">" << be_uidt_nl
<< lname << "_out;" << be_uidt;
- *os << be_nl << be_nl
- << "struct " << be_global->stub_export_macro ()
- << " tao_" << lname << "_life" << be_nl
- << "{" << be_idt_nl
- << "static void tao_add_ref ("
- << lname << " *);" << be_nl
- << "static void tao_remove_ref (" << lname << " *);" << be_uidt_nl
- << "};";
-
os->gen_endif ();
this->var_out_seq_decls_gen_ = 1;
diff --git a/TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp b/TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp
index af105baf5e9..81cc2fe5902 100644
--- a/TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_amh_pre_proc.cpp
@@ -24,8 +24,13 @@
#include "be_predefined_type.h"
#include "be_argument.h"
#include "utl_identifier.h"
+#include "global_extern.h"
#include "ace/Log_Msg.h"
+ACE_RCSID (be,
+ be_visitor_amh_pre_proc,
+ "$Id$")
+
be_visitor_amh_pre_proc::be_visitor_amh_pre_proc (be_visitor_context *ctx)
: be_visitor_scope (ctx)
{
@@ -616,6 +621,13 @@ be_visitor_amh_pre_proc::visit_scope (be_scope *node)
be_valuetype *
be_visitor_amh_pre_proc::create_exception_holder (be_interface *node)
{
+ // AMH exception holders require both of these.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuetype_seen_);
+
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuefactory_seen_);
+
const int inherit_count = 0;
AST_Interface **p_intf = 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp b/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp
index 6d5e500ced9..6ef37c1a4fe 100644
--- a/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp
@@ -409,6 +409,7 @@ be_visitor_ami_pre_proc::create_exception_holder (be_interface *node)
0);
excep_holder->set_name (excep_holder_name);
+ excep_holder->seen_in_operation (I_TRUE);
// Now our customized valuetype is created, we have to
// add now the operations and attributes to the scope.
diff --git a/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp b/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp
new file mode 100644
index 00000000000..990a2967aa9
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_visitor_arg_traits.cpp
@@ -0,0 +1,695 @@
+//=============================================================================
+/**
+* @file be_visitor_arg_traits.cpp
+*
+* $Id$
+*
+* This visitor generates template specializations for argument traits classes.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+
+#include "be_visitor_arg_traits.h"
+#include "be_visitor_context.h"
+#include "be_root.h"
+#include "be_module.h"
+#include "be_interface.h"
+#include "be_valuetype.h"
+#include "be_interface_fwd.h"
+#include "be_valuetype_fwd.h"
+#include "be_eventtype.h"
+#include "be_eventtype_fwd.h"
+#include "be_array.h"
+#include "be_enum.h"
+#include "be_predefined_type.h"
+#include "be_sequence.h"
+#include "be_string.h"
+#include "be_structure.h"
+#include "be_field.h"
+#include "be_union.h"
+#include "be_union_branch.h"
+#include "be_typedef.h"
+#include "be_helper.h"
+#include "be_extern.h"
+#include "utl_identifier.h"
+#include "idl_defines.h"
+
+ACE_RCSID (be,
+ be_visitor_arg_traits,
+ "$Id$")
+
+be_visitor_arg_traits::be_visitor_arg_traits (char *S,
+ be_visitor_context *ctx)
+ : be_visitor_scope (ctx),
+ S_ (ACE::strnew (S))
+{
+}
+
+be_visitor_arg_traits::~be_visitor_arg_traits (void)
+{
+ delete [] this->S_;
+}
+
+int
+be_visitor_arg_traits::visit_root (be_root *node)
+{
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ *os << be_nl << be_nl
+ << "// Arg traits specializations." << be_nl
+ << "namespace TAO" << be_nl
+ << "{" << be_idt;
+
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_root - visit scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_module (be_module *node)
+{
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_module - visit scope failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_interface (be_interface *node)
+{
+ if (this->generated (node))
+ {
+ return 0;
+ }
+
+ if (node->seen_in_operation ())
+ {
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // This should be generated even for imported nodes. The ifdef guard prevents
+ // multiple declarations.
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<"
+ << node->name () << ">" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl
+ << "Object_" << this->S_ << "Arg_Traits_T<" << be_idt << be_idt_nl
+ << node->name () << "_ptr," << be_nl
+ << node->name () << "_var," << be_nl
+ << node->name () << "_out," << be_nl
+ << "TAO::Objref_Traits<" << node->name () << ">" << be_uidt_nl
+ << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_interface - visit scope failed\n"),
+ -1);
+ }
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_interface_fwd (be_interface_fwd *node)
+{
+ if (this->generated (node))
+ {
+ return 0;
+ }
+
+ be_interface *fd =
+ be_interface::narrow_from_decl (node->full_definition ());
+
+ // The logic in visit_interface() should handle what gets generated
+ // and what doesn't.
+ if (this->visit_interface (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_interface_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_valuetype (be_valuetype *node)
+{
+ if (this->generated (node))
+ {
+ return 0;
+ }
+
+ if (node->seen_in_operation ())
+ {
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // This should be generated even for imported nodes. The ifdef guard prevents
+ // multiple declarations.
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<"
+ << node->name () << ">" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl
+ << "Object_" << this->S_ << "Arg_Traits_T<" << be_idt << be_idt_nl
+ << node->name () << " *," << be_nl
+ << node->name () << "_var," << be_nl
+ << node->name () << "_out," << be_nl
+ << "TAO::Value_Traits<" << node->name () << ">" << be_uidt_nl
+ << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_valuetype - visit scope failed\n"),
+ -1);
+ }
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_valuetype_fwd (be_valuetype_fwd *node)
+{
+ if (this->generated (node))
+ {
+ return 0;
+ }
+
+ be_valuetype *fd =
+ be_valuetype::narrow_from_decl (node->full_definition ());
+
+ // The logic in visit_valuetype() should handle what gets generated
+ // and what doesn't.
+ int status = this->visit_valuetype (fd);
+
+ if (status != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_valuetype_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_eventtype (be_eventtype *node)
+{
+ return this->visit_valuetype (node);
+}
+
+int
+be_visitor_arg_traits::visit_eventtype_fwd (be_eventtype_fwd *node)
+{
+ return this->visit_valuetype_fwd (node);
+}
+
+int
+be_visitor_arg_traits::visit_sequence (be_sequence *node)
+{
+ if (this->generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_typedef *alias = this->ctx_->alias ();
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ // This will include the bound if there is one, and should also
+ // prevent duplication, even if there have been further typdefs.
+ os->gen_ifdef_macro (alias->flat_name (), "arg_traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<"
+ << alias->name () << ">" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl
+ << "Var_Size_" << this->S_ << "Arg_Traits_T<" << be_idt << be_idt_nl
+ << alias->name () << "," << be_nl
+ << alias->name () << "_var," << be_nl
+ << alias->name () << "_out" << be_uidt_nl
+ << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_string (be_string *node)
+{
+ if (this->generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ unsigned long bound = node->max_size ()->ev ()->u.ulval;
+ be_typedef *alias = this->ctx_->alias ();
+
+ // Unbounded (w)string args are handled as a predefined type.
+ // Bounded (w)strings must come in as a typedef - they can't
+ // be used directly as arguments or return types.
+ if (bound == 0 || alias == 0)
+ {
+ return 0;
+ }
+
+ idl_bool wide = (node->width () != 1);
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits");
+
+ // A workaround 'dummy' type, since bounded (w)strings are all
+ // generated as typedefs of (w)char *.
+ *os << be_nl << be_nl
+ << "struct " << alias->local_name () << "_" << bound << " {};";
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<"
+ << alias->local_name () << "_" << bound << ">" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl
+ << "BD_" << (wide ? "W" : "")
+ << "String_" << this->S_ << "Arg_Traits<" << bound << ">"
+ << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_array (be_array *node)
+{
+ if (this->generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // This should be generated even for imported nodes. The ifdef guard prevents
+ // multiple declarations.
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<"
+ << node->name () << ">" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl;
+
+ *os << (node->size_type () == AST_Type::FIXED ? "Fixed" : "Var")
+ << "_Array_" << this->S_ << "Arg_Traits_T<" << be_idt << be_idt_nl
+ << node->name () << "," << be_nl
+ << node->name () << "_slice," << be_nl
+ << node->name () << "_var," << be_nl;
+
+ if (node->size_type () == AST_Type::VARIABLE)
+ {
+ *os << node->name () << "_out," << be_nl;
+ }
+
+ *os << node->name () << "_forany" << be_uidt_nl
+ << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_enum (be_enum *node)
+{
+ if (this->generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ // This should be generated even for imported nodes. The ifdef guard prevents
+ // multiple declarations.
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<"
+ << node->name () << ">" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl;
+
+ *os << "Basic_" << this->S_ << "Arg_Traits_T<" << be_idt << be_idt_nl
+ << node->name () << be_uidt_nl
+ << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_predefined_type (be_predefined_type *node)
+{
+ if (this->generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ // Only for an Any used in an operation.
+ if (node->pt () != AST_PredefinedType::PT_any)
+ {
+ this->generated (node, I_TRUE);
+ return 0;
+ }
+
+ // This should be generated even for imported nodes. The ifdef guard prevents
+ // multiple declarations.
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ os->gen_ifdef_macro ("corba_any", "arg_traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<CORBA::Any>" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl
+ << "Var_Size_" << this->S_ << "Arg_Traits_T<" << be_idt << be_idt_nl
+ << "CORBA::Any," << be_nl
+ << "CORBA::Any_var," << be_nl
+ << "CORBA::Any_out" << be_uidt_nl
+ << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_structure (be_structure *node)
+{
+ if (this->generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ // This should be generated even for imported nodes. The ifdef guard prevents
+ // multiple declarations.
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<"
+ << node->name () << ">" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl;
+
+ *os << (node->size_type () == AST_Type::FIXED ? "Fixed" : "Var")
+ << "_Size_" << this->S_ << "Arg_Traits_T<" << be_idt << be_idt_nl
+ << node->name ();
+
+ if (node->size_type () == AST_Type::VARIABLE)
+ {
+ *os << "," << be_nl
+ << node->name () << "_var," << be_nl
+ << node->name () << "_out";
+ }
+
+ *os << be_uidt_nl
+ << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_structure - visit scope failed\n"),
+ -1);
+ }
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_field (be_field *node)
+{
+ be_type *bt = be_type::narrow_from_decl (node->field_type ());
+
+ if (!bt)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_field - "
+ "Bad field type\n"),
+ -1);
+ }
+
+ // Valuetypes may not be *declared* in a field, so this will
+ // get handled elsewhere, and will also avoid nested valuetype
+ // recursion. So we set the field node as processed (the
+ // field *type* may not have been reached yet) and return.
+ if (bt->base_node_type () == AST_Decl::NT_valuetype)
+ {
+ node->cli_traits_gen (I_TRUE);
+ return 0;
+ }
+
+ if (bt->accept (this) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_field - "
+ "codegen for field type failed\n"),
+ -1);
+ }
+
+ this->generated (node, I_TRUE);
+ this->generated (bt, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_union (be_union *node)
+{
+ if (this->generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ // This should be generated even for imported nodes. The ifdef guard prevents
+ // multiple declarations.
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "class " << be_global->stub_export_macro () << " "
+ << this->S_ << "Arg_Traits<"
+ << node->name () << ">" << be_idt_nl
+ << ": public" << be_idt << be_idt_nl;
+
+ *os << (node->size_type () == AST_Type::FIXED ? "Fixed" : "Var")
+ << "_Size_" << this->S_ << "Arg_Traits_T<" << be_idt << be_idt_nl
+ << node->name ();
+
+ if (node->size_type () == AST_Type::VARIABLE)
+ {
+ *os << "," << be_nl
+ << node->name () << "_var," << be_nl
+ << node->name () << "_out";
+ }
+
+ *os << be_uidt_nl
+ << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "};";
+
+ os->gen_endif ();
+
+ int status = this->visit_scope (node);
+
+ if (status != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_union - visit scope failed\n"),
+ -1);
+ }
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_union_branch (be_union_branch *node)
+{
+ be_type *bt = be_type::narrow_from_decl (node->field_type ());
+
+ if (!bt)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_union_branch - "
+ "Bad union_branch type\n"),
+ -1);
+ }
+
+ if (bt->accept (this) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_union_branch - "
+ "codegen for union_branch type failed\n"),
+ -1);
+ }
+
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_traits::visit_typedef (be_typedef *node)
+{
+ this->ctx_->alias (node);
+
+ // Make a decision based on the primitive base type.
+ be_type *bt = node->primitive_base_type ();
+
+ if (!bt || (bt->accept (this) == -1))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_traits::"
+ "visit_typedef - "
+ "Bad primitive type\n"),
+ -1);
+ }
+
+ this->ctx_->alias (0);
+ this->generated (node, I_TRUE);
+ return 0;
+}
+
+idl_bool
+be_visitor_arg_traits::generated (be_decl *node) const
+{
+ if (ACE_OS::strcmp (this->S_, "") == 0)
+ {
+ switch (this->ctx_->state ())
+ {
+ case TAO_CodeGen::TAO_ROOT_CS:
+ return node->cli_arg_traits_gen ();
+ case TAO_CodeGen::TAO_ROOT_SS:
+ return node->srv_arg_traits_gen ();
+ default:
+ return 0;
+ }
+ }
+
+ return node->srv_sarg_traits_gen ();
+}
+
+void
+be_visitor_arg_traits::generated (be_decl *node,
+ idl_bool )
+{
+ if (ACE_OS::strcmp (this->S_, "") == 0)
+ {
+ switch (this->ctx_->state ())
+ {
+ case TAO_CodeGen::TAO_ROOT_CS:
+ node->cli_arg_traits_gen (I_TRUE);
+ return;
+ case TAO_CodeGen::TAO_ROOT_SS:
+ node->srv_arg_traits_gen (I_TRUE);
+ return;
+ default:
+ return;
+ }
+ }
+
+ node->srv_sarg_traits_gen (I_TRUE);
+}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument.cpp b/TAO/TAO_IDL/be/be_visitor_argument.cpp
index 290bd87f2b5..75ab20cf610 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument.cpp
@@ -52,11 +52,7 @@
#include "be_visitor_argument/post_upcall_ss.cpp"
#include "be_visitor_argument/upcall_ss.cpp"
#include "be_visitor_argument/vardecl_ss.cpp"
-#include "be_visitor_argument/pre_invoke_cs.cpp"
#include "be_visitor_argument/invoke_cs.cpp"
-#include "be_visitor_argument/post_invoke_cs.cpp"
-#include "be_visitor_argument/request_info_ch.cpp"
-#include "be_visitor_argument/request_info_cs.cpp"
#include "be_visitor_argument/paramlist.cpp"
#include "be_visitor_argument/request_info_sh.cpp"
#include "be_visitor_argument/request_info_ss.cpp"
diff --git a/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp
index 1afce55d486..66ef68f5607 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp
@@ -54,6 +54,37 @@ be_visitor_array_any_op_cs::visit_array (be_array *node)
<< "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ // Since we don't generate CDR stream operators for types that
+ // explicitly contain a local interface (at some level), we
+ // must override these Any template class methods to avoid
+ // calling the non-existent operators. The zero return value
+ // will eventually cause CORBA::MARSHAL to be raised if this
+ // type is inserted into an Any and then marshaled.
+ if (node->is_local ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Array_Impl_T<" << be_idt << be_idt_nl
+ << node->name () << "_slice," << be_nl
+ << node->name () << "_forany" << be_uidt_nl
+ << ">::marshal_value (TAO_OutputCDR &)" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Array_Impl_T<" << be_idt << be_idt_nl
+ << node->name () << "_slice," << be_nl
+ << node->name () << "_forany" << be_uidt_nl
+ << ">::demarshal_value (TAO_OutputCDR &)" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+ }
+
*os << "void operator<<= (" << be_idt << be_idt_nl
<< "CORBA::Any &_tao_any," << be_nl
<< "const " << node->name () << "_forany &_tao_elem" << be_uidt_nl
@@ -88,8 +119,7 @@ be_visitor_array_any_op_cs::visit_array (be_array *node)
<< "TAO::Any_Array_Impl_T<" << be_idt << be_idt_nl
<< node->name () << "_slice," << be_nl
<< node->name () << "_forany" << be_uidt_nl
- << ">::extract ("
- << be_idt << be_idt_nl
+ << ">::extract (" << be_idt << be_idt_nl
<< "_tao_any," << be_nl
<< node->name () << "_forany::_tao_any_destructor," << be_nl
<< node->tc_name () << "," << be_nl
@@ -100,21 +130,6 @@ be_visitor_array_any_op_cs::visit_array (be_array *node)
<< ");" << be_uidt << be_uidt << be_uidt << be_uidt_nl
<< "}";
- *os << be_nl << be_nl
- << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl
- << "template class TAO::Any_Array_Impl_T<" << be_idt << be_idt_nl
- << node->name () << "_slice," << be_nl
- << node->name () << "_forany" << be_uidt_nl
- << ">;" << be_uidt << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate TAO::Any_Array_Impl_T< \\" << be_idt << be_idt_nl
- << node->name () << "_slice, \\" << be_nl
- << node->name () << "_forany \\" << be_uidt_nl
- << ">" << be_uidt_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
node->cli_stub_any_op_gen (1);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp
index f0bedf7632b..0b280c237a8 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp
@@ -199,27 +199,6 @@ int be_visitor_array_ch::visit_array (be_array *node)
*os << ";";
- // Generate helper struct for use of array in a sequence.
- *os << be_nl << be_nl
- << "struct " << be_global->stub_export_macro ()
- << " tao_" << node->local_name () << "_life" << be_nl
- << "{" << be_idt_nl
- << "static " << anon_p << node->local_name ()
- << "_slice * tao_alloc (void);" << be_nl
- << "static void tao_free (" << anon_p << node->local_name ()
- << "_slice * _tao_slice);" << be_nl
- << "static " << anon_p << node->local_name ()
- << "_slice * tao_dup (" << be_idt << be_idt_nl
- << "const " << anon_p << node->local_name () << "_slice * _tao_slice"
- << be_uidt_nl
- << ");" << be_uidt_nl
- << "static void tao_copy (" << be_idt << be_idt_nl
- << anon_p << node->local_name () << "_slice * _tao_to," << be_nl
- << "const " << anon_p << node->local_name ()
- << "_slice * _tao_from" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl
- << "};";
-
// No _var or _out class for an anonymous (non-typedef'd) array.
if (this->ctx_->tdef () != 0)
{
@@ -230,17 +209,17 @@ int be_visitor_array_ch::visit_array (be_array *node)
*os << be_nl << be_nl
<< "typedef" << be_idt_nl
<< "TAO_VarArray_Var_T<" << be_idt << be_idt_nl
- << node->local_name () << "_slice," << be_nl
- << "tao_" << node->local_name () << "_life" << be_uidt_nl
+ << node->local_name () << "," << be_nl
+ << node->local_name () << "_slice" << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_var;" << be_uidt;
*os << be_nl << be_nl
<< "typedef" << be_idt_nl
<< "TAO_Array_Out_T<" << be_idt << be_idt_nl
+ << node->local_name () << "," << be_nl
<< node->local_name () << "_var," << be_nl
- << node->local_name () << "_slice," << be_nl
- << "tao_" << node->local_name () << "_life" << be_uidt_nl
+ << node->local_name () << "_slice" << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_out;" << be_uidt;
}
@@ -249,8 +228,8 @@ int be_visitor_array_ch::visit_array (be_array *node)
*os << be_nl << be_nl
<< "typedef" << be_idt_nl
<< "TAO_FixedArray_Var_T<" << be_idt << be_idt_nl
- << node->local_name () << "_slice," << be_nl
- << "tao_" << node->local_name () << "_life" << be_uidt_nl
+ << node->local_name () << "," << be_nl
+ << node->local_name () << "_slice" << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_var;" << be_uidt;
@@ -264,8 +243,8 @@ int be_visitor_array_ch::visit_array (be_array *node)
*os << be_nl << be_nl
<< "typedef" << be_idt_nl
<< "TAO_Array_Forany_T<" << be_idt << be_idt_nl
- << anon_p << node->local_name () << "_slice," << be_nl
- << "tao_" << node->local_name () << "_life" << be_uidt_nl
+ << anon_p << node->local_name () << "," << be_nl
+ << anon_p << node->local_name () << "_slice" << be_uidt_nl
<< ">" << be_uidt_nl
<< anon_p << node->local_name () << "_forany;" << be_uidt;
diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp
index 44deb5b26df..8f1a98341a9 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp
@@ -152,16 +152,47 @@ int be_visitor_array_ci::visit_array (be_array *node)
}
}
- // Generate _life struct static member definitions.
TAO_OutStream *os = this->ctx_->stream ();
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
+ // Generate the array traits specialization definitions,
+ // guarded by #ifdef on unaliased array element type and length.
+
+ ACE_CString unique;
+
+ if (nt == AST_Decl::NT_typedef)
+ {
+ be_typedef *td = be_typedef::narrow_from_decl (bt);
+ unique = td->primitive_base_type ()->flat_name ();
+ }
+ else
+ {
+ unique = bt->flat_name ();
+ }
+
+ char buf[NAMEBUFSIZE];
+
+ for (unsigned long i = 0; i < node->n_dims (); ++i)
+ {
+ ACE_OS::memset (buf,
+ '\0',
+ NAMEBUFSIZE);
+ ACE_OS::sprintf (buf,
+ "_%d",
+ node->dims ()[i]->ev ()->u.ulval);
+ unique += buf;
+ }
+
+ unique += "_traits";
+ os->gen_ifdef_macro (unique.fast_rep ());
+
*os << be_nl << be_nl
<< "ACE_INLINE" << be_nl
<< "void" << be_nl
- << node->fwd_helper_name () << "_life::tao_free ("
+ << "TAO::Array_Traits<" << fname << ", "
+ << fname << "_slice>::tao_free ("
<< be_idt << be_idt_nl
<< fname << "_slice * _tao_slice" << be_uidt_nl
<< ")" << be_uidt_nl
@@ -172,7 +203,8 @@ int be_visitor_array_ci::visit_array (be_array *node)
*os << be_nl << be_nl
<< "ACE_INLINE" << be_nl
<< fname << "_slice *" << be_nl
- << node->fwd_helper_name () << "_life::tao_dup ("
+ << "TAO::Array_Traits<" << fname << ", "
+ << fname << "_slice>::tao_dup ("
<< be_idt << be_idt_nl
<< "const " << fname << "_slice * _tao_slice" << be_uidt_nl
<< ")" << be_uidt_nl
@@ -183,7 +215,8 @@ int be_visitor_array_ci::visit_array (be_array *node)
*os << be_nl << be_nl
<< "ACE_INLINE" << be_nl
<< "void" << be_nl
- << node->fwd_helper_name () << "_life::tao_copy ("
+ << "TAO::Array_Traits<" << fname << ", "
+ << fname << "_slice>::tao_copy ("
<< be_idt << be_idt_nl
<< fname << "_slice * _tao_to," << be_nl
<< "const " << fname << "_slice * _tao_from" << be_uidt_nl
@@ -195,11 +228,16 @@ int be_visitor_array_ci::visit_array (be_array *node)
*os << be_nl << be_nl
<< "ACE_INLINE" << be_nl
<< fname << "_slice *" << be_nl
- << node->fwd_helper_name () << "_life::tao_alloc (void)" << be_nl
+ << "TAO::Array_Traits<" << fname << ", "
+ << fname << "_slice>::tao_alloc (void)" << be_nl
<< "{" << be_idt_nl
<< "return " << fname << "_alloc ();" << be_uidt_nl
<< "}";
+ os->gen_endif ();
+
+ *os << be_nl;
+
node->cli_inline_gen (1);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp
index 4aa659f29d0..0ab3c10066d 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp
@@ -122,10 +122,9 @@ int be_visitor_array_cs::visit_array (be_array *node)
<< "}" << be_uidt_nl << be_nl;
*os << fname << "_copy (_tao_dup_array, _tao_src_array);" << be_nl;
*os << "return _tao_dup_array;" << be_uidt_nl;
- *os << "}\n\n";
+ *os << "}" << be_nl << be_nl;
// alloc method.
- os->indent ();
*os << fname << "_slice *" << be_nl;
*os << fname << "_alloc (void)" << be_nl;
*os << "{" << be_idt_nl;
@@ -152,20 +151,18 @@ int be_visitor_array_cs::visit_array (be_array *node)
*os << ", 0);" << be_nl;
*os << "return retval;" << be_uidt_nl;
- *os << "}\n\n";
+ *os << "}" << be_nl << be_nl;
// free method.
- os->indent ();
*os << "void" << be_nl
<< fname << "_free (" << be_idt << be_idt_nl
<< fname << "_slice *_tao_slice" << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
*os << "delete [] _tao_slice;" << be_uidt_nl;
- *os << "}\n\n";
+ *os << "}" << be_nl << be_nl;
// copy method.
- os->indent ();
*os << "void " << be_nl;
*os << fname << "_copy (" << be_idt << be_idt_nl
<< fname << "_slice * _tao_to," << be_nl
@@ -355,111 +352,7 @@ int be_visitor_array_cs::visit_array (be_array *node)
}
}
- this->gen_tmplinst (node,
- fname);
-
node->cli_stub_gen (I_TRUE);
return 0;
}
-void
-be_visitor_array_cs::gen_tmplinst (be_array *node,
- char *fname)
-{
- AST_Type::SIZE_TYPE st = node->size_type ();
- TAO_OutStream *os = this->ctx_->stream ();
- os->gen_ifdef_AHETI ();
-
- if (this->ctx_->tdef () != 0)
- {
- if (st == AST_Type::FIXED)
- {
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_FixedArray_Var_T<" << be_idt << be_idt_nl
- << fname << "_slice," << be_nl
- << node->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
- }
- else
- {
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_VarArray_Var_T<" << be_idt << be_idt_nl
- << fname << "_slice," << be_nl
- << node->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Array_Out_T<" << be_idt << be_idt_nl
- << fname << "_var," << be_nl
- << fname << "_slice," << be_nl
- << node->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
- }
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Array_Var_Base_T<" << be_idt << be_idt_nl
- << fname << "_slice," << be_nl
- << node->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
- }
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Array_Forany_T<" << be_idt << be_idt_nl
- << fname << "_slice," << be_nl
- << node->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- os->gen_elif_AHETI ();
-
- if (this->ctx_->tdef () != 0)
- {
- if (st == AST_Type::FIXED)
- {
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_FixedArray_Var_T< \\" << be_idt << be_idt_nl
- << fname << "_slice, \\" << be_nl
- << node->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
- }
- else
- {
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_VarArray_Var_T< \\" << be_idt << be_idt_nl
- << fname << "_slice, \\" << be_nl
- << node->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Array_Out_T< \\" << be_idt << be_idt_nl
- << fname << "_var, \\" << be_nl
- << fname << "_slice, \\" << be_nl
- << node->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
- }
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Array_Var_Base_T< \\" << be_idt << be_idt_nl
- << fname << "_slice, \\" << be_nl
- << node->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
- }
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Array_Forany_T< \\" << be_idt << be_idt_nl
- << fname << "_slice, \\" << be_nl
- << node->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- os->gen_endif_AHETI ();
-}
-
diff --git a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
index 98a3ee2ccca..6c0b5533d49 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
@@ -76,6 +76,34 @@ be_visitor_array_cdr_op_ci::visit_array (be_array *node)
AST_Decl::NodeType nt = bt->node_type ();
+ ACE_CString unique;
+
+ if (nt == AST_Decl::NT_typedef)
+ {
+ be_typedef *td = be_typedef::narrow_from_decl (bt);
+ unique = td->primitive_base_type ()->flat_name ();
+ }
+ else
+ {
+ unique = bt->flat_name ();
+ }
+
+ char buf[NAMEBUFSIZE];
+
+ for (unsigned long i = 0; i < node->n_dims (); ++i)
+ {
+ ACE_OS::memset (buf,
+ '\0',
+ NAMEBUFSIZE);
+ ACE_OS::sprintf (buf,
+ "_%d",
+ node->dims ()[i]->ev ()->u.ulval);
+ unique += buf;
+ }
+
+ unique += "_cdr_op";
+ os->gen_ifdef_macro (unique.fast_rep ());
+
// If the node is an array of anonymous sequence, we need to
// generate the sequence's cdr operator declaration here.
if (nt == AST_Decl::NT_sequence && bt->anonymous ())
@@ -220,6 +248,8 @@ be_visitor_array_cdr_op_ci::visit_array (be_array *node)
*os << "}";
+ os->gen_endif ();
+
node->cli_inline_cdr_op_gen (1);
return 0;
}
@@ -726,7 +756,7 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt)
*os << parent->name () << "::";
}
- *os << "tao_" << bt->local_name () << "_life::"
+ *os << "TAO::Objref_Traits<" << bt->name () << ">::"
<< "tao_marshal (_tao_array";
for (i = 0; i < ndims; ++i)
diff --git a/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp b/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp
index 2afe2296ea2..9eb582d7b89 100644
--- a/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp
@@ -116,13 +116,6 @@ be_visitor_attribute::visit_attribute (be_attribute *node)
status = get_op.accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH:
- {
- be_visitor_operation_base_proxy_impl_ch visitor (&ctx);
- status = get_op.accept (&visitor);
- break;
- }
- case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH:
case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH:
case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH:
{
@@ -130,12 +123,6 @@ be_visitor_attribute::visit_attribute (be_attribute *node)
status = get_op.accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS:
- {
- be_visitor_operation_remote_proxy_impl_cs visitor (&ctx);
- status = get_op.accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS:
{
be_visitor_operation_thru_poa_proxy_impl_ss visitor (&ctx);
@@ -160,12 +147,6 @@ be_visitor_attribute::visit_attribute (be_attribute *node)
status = get_op.accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS:
- {
- be_visitor_operation_interceptors_cs visitor (&ctx);
- status = get_op.accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH:
{
be_visitor_operation_interceptors_sh visitor (&ctx);
@@ -316,13 +297,6 @@ be_visitor_attribute::visit_attribute (be_attribute *node)
status = set_op.accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH:
- {
- be_visitor_operation_base_proxy_impl_ch visitor (&ctx);
- status = set_op.accept (&visitor);
- break;
- }
- case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH:
case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH:
case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH:
{
@@ -330,12 +304,6 @@ be_visitor_attribute::visit_attribute (be_attribute *node)
status = set_op.accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS:
- {
- be_visitor_operation_remote_proxy_impl_cs visitor (&ctx);
- status = set_op.accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS:
{
be_visitor_operation_thru_poa_proxy_impl_ss visitor (&ctx);
@@ -360,12 +328,6 @@ be_visitor_attribute::visit_attribute (be_attribute *node)
status = set_op.accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS:
- {
- be_visitor_operation_interceptors_cs visitor (&ctx);
- status = set_op.accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH:
{
be_visitor_operation_interceptors_sh visitor (&ctx);
diff --git a/TAO/TAO_IDL/be/be_visitor_ccm_pre_proc.cpp b/TAO/TAO_IDL/be/be_visitor_ccm_pre_proc.cpp
index 1b79626288c..83f86082c5a 100644
--- a/TAO/TAO_IDL/be/be_visitor_ccm_pre_proc.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_ccm_pre_proc.cpp
@@ -31,6 +31,10 @@
#include "global_extern.h"
#include "nr_extern.h"
+ACE_RCSID (be,
+ be_visitor_ccm_pre_proc,
+ "$Id$")
+
const char *EXCEP_NAMES[] =
{
"AlreadyConnected",
@@ -262,7 +266,7 @@ be_visitor_ccm_pre_proc::visit_eventtype (be_eventtype *node)
// ****************************************************************
-int
+int
be_visitor_ccm_pre_proc::gen_provides (be_component *node)
{
ACE_Unbounded_Queue<AST_Component::port_description> &s = node->provides ();
@@ -274,7 +278,7 @@ be_visitor_ccm_pre_proc::gen_provides (be_component *node)
iter.advance ())
{
iter.next (pd);
- UTL_ScopedName *op_name =
+ UTL_ScopedName *op_name =
this->create_scoped_name ("provide_",
pd->id->get_string (),
0,
@@ -295,7 +299,7 @@ be_visitor_ccm_pre_proc::gen_provides (be_component *node)
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_uses (be_component *node)
{
ACE_Unbounded_Queue<AST_Component::port_description> &s = node->uses ();
@@ -379,7 +383,7 @@ be_visitor_ccm_pre_proc::gen_uses (be_component *node)
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_emits (be_component *node)
{
ACE_Unbounded_Queue<AST_Component::port_description> &s = node->emits ();
@@ -413,7 +417,7 @@ be_visitor_ccm_pre_proc::gen_emits (be_component *node)
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_publishes (be_component *node)
{
ACE_Unbounded_Queue<AST_Component::port_description> &s = node->publishes ();
@@ -447,7 +451,7 @@ be_visitor_ccm_pre_proc::gen_publishes (be_component *node)
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_consumes (be_component *node)
{
ACE_Unbounded_Queue<AST_Component::port_description> &s = node->consumes ();
@@ -458,7 +462,7 @@ be_visitor_ccm_pre_proc::gen_consumes (be_component *node)
iter.advance ())
{
iter.next (pd);
-
+
if (this->gen_get_consumer (node, pd) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -472,7 +476,7 @@ be_visitor_ccm_pre_proc::gen_consumes (be_component *node)
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_factories (be_home *node,
AST_Interface *xplicit)
{
@@ -506,7 +510,7 @@ be_visitor_ccm_pre_proc::gen_factories (be_home *node,
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_finders (be_home *node,
AST_Interface *xplicit)
{
@@ -540,7 +544,7 @@ be_visitor_ccm_pre_proc::gen_finders (be_home *node,
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_implicit_ops (be_home *node,
AST_Interface *implicit)
{
@@ -592,7 +596,7 @@ be_visitor_ccm_pre_proc::gen_implicit_ops (be_home *node,
// **************************************************************
-int
+int
be_visitor_ccm_pre_proc::gen_connect_single (
be_component *node,
AST_Component::port_description *pd
@@ -603,7 +607,7 @@ be_visitor_ccm_pre_proc::gen_connect_single (
return -1;
}
- UTL_ScopedName *op_full_name =
+ UTL_ScopedName *op_full_name =
this->create_scoped_name ("connect_",
pd->id->get_string (),
0,
@@ -646,7 +650,7 @@ be_visitor_ccm_pre_proc::gen_connect_single (
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_disconnect_single (
be_component *node,
AST_Component::port_description *pd
@@ -657,7 +661,7 @@ be_visitor_ccm_pre_proc::gen_disconnect_single (
return -1;
}
- UTL_ScopedName *op_full_name =
+ UTL_ScopedName *op_full_name =
this->create_scoped_name ("disconnect_",
pd->id->get_string (),
0,
@@ -694,7 +698,7 @@ be_visitor_ccm_pre_proc::gen_get_connection_single (
return -1;
}
- UTL_ScopedName *op_full_name =
+ UTL_ScopedName *op_full_name =
this->create_scoped_name ("get_connection_",
pd->id->get_string (),
0,
@@ -713,7 +717,7 @@ be_visitor_ccm_pre_proc::gen_get_connection_single (
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_connect_multiple (
be_component *node,
AST_Component::port_description *pd
@@ -724,7 +728,7 @@ be_visitor_ccm_pre_proc::gen_connect_multiple (
return -1;
}
- UTL_ScopedName *op_full_name =
+ UTL_ScopedName *op_full_name =
this->create_scoped_name ("connect_",
pd->id->get_string (),
0,
@@ -766,7 +770,7 @@ be_visitor_ccm_pre_proc::gen_connect_multiple (
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_disconnect_multiple (
be_component *node,
AST_Component::port_description *pd
@@ -777,7 +781,7 @@ be_visitor_ccm_pre_proc::gen_disconnect_multiple (
return -1;
}
- UTL_ScopedName *op_full_name =
+ UTL_ScopedName *op_full_name =
this->create_scoped_name ("disconnect_",
pd->id->get_string (),
0,
@@ -814,7 +818,7 @@ be_visitor_ccm_pre_proc::gen_disconnect_multiple (
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_get_connection_multiple (
be_component *node,
AST_Component::port_description *pd
@@ -825,7 +829,7 @@ be_visitor_ccm_pre_proc::gen_get_connection_multiple (
return -1;
}
- UTL_ScopedName *op_full_name =
+ UTL_ScopedName *op_full_name =
this->create_scoped_name ("get_connection_",
pd->id->get_string (),
0,
@@ -849,7 +853,7 @@ int
be_visitor_ccm_pre_proc::gen_push_op (be_eventtype *node,
AST_Interface *consumer)
{
- UTL_ScopedName *op_full_name =
+ UTL_ScopedName *op_full_name =
this->create_scoped_name ("push_",
node->local_name (),
0,
@@ -888,7 +892,7 @@ int
be_visitor_ccm_pre_proc::gen_subscribe (be_component *node,
AST_Component::port_description *pd)
{
- UTL_ScopedName *op_name =
+ UTL_ScopedName *op_name =
this->create_scoped_name ("subscribe_",
pd->id->get_string (),
0,
@@ -904,7 +908,7 @@ be_visitor_ccm_pre_proc::gen_subscribe (be_component *node,
op->set_defined_in (node);
op->set_imported (node->imported ());
op->set_name (op_name);
-
+
AST_Interface *i = this->lookup_consumer (pd);
if (i == 0)
@@ -951,7 +955,7 @@ be_visitor_ccm_pre_proc::gen_unsubscribe (be_component *node,
-1);
}
- UTL_ScopedName *op_name =
+ UTL_ScopedName *op_name =
this->create_scoped_name ("unsubscribe_",
pd->id->get_string (),
0,
@@ -987,7 +991,7 @@ be_visitor_ccm_pre_proc::gen_unsubscribe (be_component *node,
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_emits_connect (
be_component *node,
AST_Component::port_description *pd
@@ -1040,7 +1044,7 @@ be_visitor_ccm_pre_proc::gen_emits_connect (
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_emits_disconnect (
be_component *node,
AST_Component::port_description *pd
@@ -1083,7 +1087,7 @@ be_visitor_ccm_pre_proc::gen_emits_disconnect (
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_get_consumer (
be_component *node,
AST_Component::port_description *pd
@@ -1120,7 +1124,7 @@ be_visitor_ccm_pre_proc::gen_get_consumer (
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_create (be_home *node,
AST_Interface *implicit)
{
@@ -1177,7 +1181,7 @@ be_visitor_ccm_pre_proc::gen_create (be_home *node,
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_find_by_primary_key (be_home *node,
AST_Interface *implicit)
{
@@ -1228,7 +1232,7 @@ be_visitor_ccm_pre_proc::gen_find_by_primary_key (be_home *node,
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_remove (be_home *node,
AST_Interface *implicit)
{
@@ -1279,7 +1283,7 @@ be_visitor_ccm_pre_proc::gen_remove (be_home *node,
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::gen_get_primary_key (be_home *node,
AST_Interface *implicit)
{
@@ -1323,7 +1327,7 @@ be_visitor_ccm_pre_proc::lookup_ccmobject (void)
0);
UTL_ScopedName sn (&this->module_id_,
&local_name);
- AST_Decl *d =
+ AST_Decl *d =
idl_global->scopes ().top_non_null ()->lookup_by_name (&sn,
I_TRUE);
@@ -1401,7 +1405,7 @@ be_visitor_ccm_pre_proc::lookup_exceptions (be_component *node)
return 0;
}
-int
+int
be_visitor_ccm_pre_proc::lookup_one_exception (be_component *node,
const char *name,
be_exception *&result)
@@ -1414,7 +1418,7 @@ be_visitor_ccm_pre_proc::lookup_one_exception (be_component *node,
AST_Decl *d = node->lookup_by_name (&scoped_name,
I_TRUE);
id.destroy ();
-
+
if (d == 0)
{
idl_global->err ()->lookup_error (&scoped_name);
@@ -1488,7 +1492,7 @@ be_visitor_ccm_pre_proc::create_uses_multiple_struct (
&o_sn),
-1);
o_id.destroy ();
-
+
if (this->connection_->be_add_field (m_objref) == 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -1634,7 +1638,7 @@ be_visitor_ccm_pre_proc::create_event_consumer (be_eventtype *node)
UTL_ScopedName (parent_id,
0),
-1);
- UTL_ScopedName *parent_full_name =
+ UTL_ScopedName *parent_full_name =
(UTL_ScopedName *)m->name ()->copy ();
parent_full_name->nconc (parent_local_name);
UTL_NameList parent_list (parent_full_name,
@@ -1701,7 +1705,7 @@ be_visitor_ccm_pre_proc::create_explicit (be_home *node)
I_FALSE,
I_TRUE);
parent_list->destroy ();
- UTL_ScopedName *explicit_name =
+ UTL_ScopedName *explicit_name =
this->create_scoped_name (0,
node->local_name (),
"Explicit",
@@ -1715,7 +1719,7 @@ be_visitor_ccm_pre_proc::create_explicit (be_home *node)
header.n_inherits_flat (),
I_FALSE,
I_FALSE),
- 0);
+ 0);
i->set_name (explicit_name);
i->set_defined_in (node->defined_in ());
i->set_imported (node->imported ());
@@ -1733,7 +1737,7 @@ be_visitor_ccm_pre_proc::create_explicit (be_home *node)
{
AST_Decl *d = iter.item ();
d->set_defined_in (i);
- UTL_ScopedName *new_name =
+ UTL_ScopedName *new_name =
this->create_scoped_name (0,
d->local_name ()->get_string (),
0,
@@ -1784,7 +1788,7 @@ be_visitor_ccm_pre_proc::create_implicit (be_home *node)
header.n_inherits_flat (),
I_FALSE,
I_FALSE),
- 0);
+ 0);
i->set_name (implicit_name);
i->set_defined_in (node->defined_in ());
i->set_imported (node->imported ());
@@ -1862,7 +1866,7 @@ be_visitor_ccm_pre_proc::create_scoped_name (const char *prefix,
UTL_ScopedName (local_id,
0),
0);
- UTL_ScopedName *full_name =
+ UTL_ScopedName *full_name =
ACE_static_cast (UTL_ScopedName *,
parent->name ()->copy ());
full_name->nconc (last_segment);
@@ -1894,11 +1898,11 @@ be_visitor_ccm_pre_proc::compute_inheritance (be_home *node)
UTL_NameList (full_name,
0),
0);
-
+
}
else
{
- UTL_ScopedName *parent_name =
+ UTL_ScopedName *parent_name =
ACE_static_cast (UTL_ScopedName *,
node->base_home ()->name ()->copy ());
ACE_NEW_RETURN (retval,
@@ -1913,7 +1917,7 @@ be_visitor_ccm_pre_proc::compute_inheritance (be_home *node)
for (long i = 0; i < n_supports; ++i)
{
- supported_name =
+ supported_name =
ACE_static_cast (UTL_ScopedName *,
node->inherits ()[i]->name ()->copy ());
ACE_NEW_RETURN (conc_value,
@@ -1925,4 +1929,3 @@ be_visitor_ccm_pre_proc::compute_inheritance (be_home *node)
return retval;
}
-
diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp
index ea3f89e51d8..6c150a1ff99 100644
--- a/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp
@@ -248,32 +248,6 @@ be_visitor_component_ch::visit_component (be_component *node)
-1);
}
- // Proxy Implementation Declaration.
- ctx = *this->ctx_;
- be_visitor_interface_proxy_impls_ch spi_visitor (&ctx);
-
- if (node->accept (&spi_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_component_ch::"
- "visit_component - "
- "codegen for Proxy Broker classes failed\n"),
- -1);
- }
-
- // Proxy Broker Declaration.
- ctx = *this->ctx_;
- be_visitor_interface_proxy_brokers_ch pb_visitor (&ctx);
-
- if (node->accept (&pb_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_component_ch::"
- "visit_component - "
- "codegen for Proxy Broker classes failed\n"),
- -1);
- }
-
os->gen_endif ();
if (be_global->tc_support ())
diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
index e08baec6be7..19d0b2843ef 100644
--- a/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component/component_cs.cpp
@@ -75,7 +75,7 @@ be_visitor_component_cs::visit_component (be_component *node)
*os << parent->name () << "::";
}
- *os << "tao_" << node->local_name () << "_life::"
+ *os << "TAO::Objref_Traits<" << node->name () << ">::"
<< "tao_duplicate (" << be_idt << be_idt_nl
<< node->full_name () << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
@@ -91,7 +91,7 @@ be_visitor_component_cs::visit_component (be_component *node)
*os << parent->name () << "::";
}
- *os << "tao_" << node->local_name () << "_life::"
+ *os << "TAO::Objref_Traits<" << node->name () << ">::"
<< "tao_release (" << be_idt << be_idt_nl
<< node->full_name () << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
@@ -106,7 +106,7 @@ be_visitor_component_cs::visit_component (be_component *node)
*os << parent->name () << "::";
}
- *os << "tao_" << node->local_name () << "_life::"
+ *os << "TAO::Objref_Traits<" << node->name () << ">::"
<< "tao_nil (" << be_idt << be_idt_nl
<< "void" << be_uidt_nl
<< ")" << be_uidt_nl
@@ -122,7 +122,7 @@ be_visitor_component_cs::visit_component (be_component *node)
*os << parent->name () << "::";
}
- *os << "tao_" << node->local_name () << "_life::"
+ *os << "TAO::Objref_Traits<" << node->name () << ">::"
<< "tao_marshal (" << be_idt << be_idt_nl
<< node->name () << "_ptr p," << be_nl
<< "TAO_OutputCDR &cdr" << be_uidt_nl
@@ -176,50 +176,6 @@ be_visitor_component_cs::visit_component (be_component *node)
<< "return p->marshal (strm);" << be_uidt_nl
<< "}";
-
- be_visitor_context ctx (*this->ctx_);
-
- // Interceptor classes. The interceptors helper classes must be
- // defined before the interface operations because they are used in
- // the implementation of said operations.
-
- ctx.state (TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS);
- be_visitor_interface_interceptors_cs ii_visitor (&ctx);
-
- if (node->accept (&ii_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_component_cs::"
- "visit_component - "
- "codegen for interceptors classes failed\n"),
- -1);
- }
-
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS);
- be_visitor_interface_remote_proxy_impl_cs irpi_visitor (&ctx);
-
- if (node->accept (&irpi_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_component_cs::"
- "visit_component - "
- "codegen for Base Proxy Broker class failed\n"),
- -1);
- }
-
- ctx = *this->ctx_;
- be_visitor_interface_remote_proxy_broker_cs irpb_visitor (&ctx);
-
- if (node->accept (&irpb_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_component_cs::"
- "visit_component - "
- "codegen for Base Proxy Broker class failed\n"),
- -1);
- }
-
*os << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
@@ -271,9 +227,9 @@ be_visitor_component_cs::visit_component (be_component *node)
<< node->name ()
<< "::_tao_any_destructor (void *_tao_void_pointer)" << be_nl
<< "{" << be_idt_nl
- << node->local_name () << " *tmp = ACE_static_cast ("
+ << node->local_name () << " *_tao_tmp_pointer = ACE_static_cast ("
<< node->local_name () << " *, _tao_void_pointer);" << be_nl
- << "CORBA::release (tmp);" << be_uidt_nl
+ << "CORBA::release (_tao_tmp_pointer);" << be_uidt_nl
<< "}" << be_nl << be_nl;
}
@@ -446,6 +402,8 @@ be_visitor_component_cs::visit_component (be_component *node)
-1);
}
+ be_visitor_context ctx (*this->ctx_);
+
// Smart Proxy classes.
if (be_global->gen_smart_proxies ())
{
diff --git a/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp
index d60696b0bd3..455e55432bf 100644
--- a/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp
@@ -94,8 +94,8 @@ be_visitor_constant_cs::gen_nested_namespace_begin (be_module *node)
if (ACE_OS::strcmp (item_name, "") != 0)
{
// leave the outermost root scope.
- *os << "TAO_NAMESPACE_BEGIN (" << item_name
- << ")" << be_nl;
+ *os << "namespace " << item_name << be_nl
+ << "{" << be_nl;
}
}
@@ -114,7 +114,7 @@ be_visitor_constant_cs::gen_nested_namespace_end (be_module *node)
if (ACE_OS::strcmp (i.item ()->get_string (), "") != 0)
{
// leave the outermost root scope.
- *os << "TAO_NAMESPACE_END" << be_nl;
+ *os << "}" << be_nl;
}
}
diff --git a/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp
index 38ea4d3d063..5198bcea272 100644
--- a/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp
@@ -51,6 +51,33 @@ be_visitor_enum_any_op_cs::visit_enum (be_enum *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ // Since we don't generate CDR stream operators for types that
+ // explicitly contain a local interface (at some level), we
+ // must override these Any template class methods to avoid
+ // calling the non-existent operators. The zero return value
+ // will eventually cause CORBA::MARSHAL to be raised if this
+ // type is inserted into an Any and then marshaled.
+ if (node->is_local ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Basic_Impl_T<" << node->name ()
+ << ">::marshal_value (TAO_OutputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Basic_Impl_T<" << node->name ()
+ << ">::demarshal_value (TAO_InputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+ }
+
// Generate the Any <<= and >>= operator declarations
// Any <<= and >>= operators.
*os << "void operator<<= (" << be_idt << be_idt_nl
@@ -80,17 +107,6 @@ be_visitor_enum_any_op_cs::visit_enum (be_enum *node)
<< ");" << be_uidt << be_uidt << be_uidt_nl
<< "}";
- *os << be_nl << be_nl
- << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl
- << "template class TAO::Any_Basic_Impl_T<" << node->name () << ">;"
- << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate TAO::Any_Basic_Impl_T<"
- << node->name () << ">" << be_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
node->cli_stub_any_op_gen (1);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp b/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp
index 292e45147ed..0bb8eb73e98 100644
--- a/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp
@@ -44,8 +44,7 @@ int
be_visitor_enum_cs::visit_enum (be_enum *node)
{
if (node->cli_stub_gen ()
- || node->imported ()
- || node->is_local ())
+ || node->imported ())
{
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp
index f330d3ecb05..8ccfcbf6c82 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp
@@ -49,31 +49,60 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node)
<< "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "CORBA::Boolean" << be_nl
- << "TAO::Any_Dual_Impl_T<" << node->name ()
- << ">::demarshal_value (" << be_idt << be_idt_nl
- << "TAO_InputCDR & cdr" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "CORBA::String_var id;" << be_nl << be_nl
- << "if ((cdr >> id.out ()) == 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "return 0;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "ACE_TRY_NEW_ENV" << be_idt_nl
- << "{" << be_idt_nl
- << "this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER);" << be_nl
- << "ACE_TRY_CHECK;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "ACE_CATCHANY" << be_idt_nl
- << "{" << be_idt_nl
- << "return 0;" << be_uidt_nl
- << "}" << be_uidt_nl
- << "ACE_ENDTRY;" << be_nl << be_nl
- << "return 1;" << be_uidt_nl
- << "}";
+ if (!node->is_local ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::demarshal_value (" << be_idt << be_idt_nl
+ << "TAO_InputCDR & cdr" << be_uidt_nl
+ << ")" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "CORBA::String_var id;" << be_nl << be_nl
+ << "if ((cdr >> id.out ()) == 0)" << be_idt_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
+ << "ACE_TRY_NEW_ENV" << be_idt_nl
+ << "{" << be_idt_nl
+ << "this->value_->_tao_decode (cdr ACE_ENV_ARG_PARAMETER);" << be_nl
+ << "ACE_TRY_CHECK;" << be_uidt_nl
+ << "}" << be_uidt_nl
+ << "ACE_CATCHANY" << be_idt_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}" << be_uidt_nl
+ << "ACE_ENDTRY;" << be_nl << be_nl
+ << "return 1;" << be_uidt_nl
+ << "}";
+ }
+ // Since we don't generate CDR stream operators for types that
+ // explicitly contain a local interface (at some level), we
+ // must override these Any template class methods to avoid
+ // calling the non-existent operators. The zero return value
+ // will eventually cause CORBA::MARSHAL to be raised if this
+ // type is inserted into an Any and then marshaled.
+ else
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::marshal_value (TAO_OutputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::demarshal_value (TAO_InputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+ }
// Copying insertion operator.
@@ -139,18 +168,6 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node)
<< ");" << be_uidt << be_uidt << be_uidt_nl
<< "}";
- *os << be_nl << be_nl
- << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl
- << "template class TAO::Any_Dual_Impl_T<" << node->name () << ">;"
- << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate TAO::Any_Dual_Impl_T<"
- << node->name () << " \\"
- << ">" << be_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
// all we have to do is to visit the scope and generate code
if (this->visit_scope (node) == -1)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp
index aeadd500ad9..676c51401bc 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp
@@ -54,37 +54,6 @@ int be_visitor_exception_ci::visit_exception (be_exception *node)
-1);
}
- // Since we don't generate CDR stream operators for types that
- // explicitly contain a local interface (at some level), we
- // must override these Any template class methods to avoid
- // calling the non-existent operators. The zero return value
- // will eventually cause CORBA::MARSHAL to be raised if this
- // type is inserted into an Any and then marshaled.
- if (node->is_local () && be_global->any_support ())
- {
- TAO_OutStream *os = this->ctx_->stream ();
-
- *os << be_nl << be_nl
- << "template<>" << be_nl
- << "ACE_INLINE" << be_nl
- << "CORBA::Boolean" << be_nl
- << "TAO::Any_Dual_Impl_T<" << node->name ()
- << ">::marshal_value (TAO_OutputCDR &)" << be_nl
- << "{" << be_idt_nl
- << "return 0;" << be_uidt_nl
- << "}";
-
- *os << be_nl << be_nl
- << "template<>" << be_nl
- << "ACE_INLINE" << be_nl
- << "CORBA::Boolean" << be_nl
- << "TAO::Any_Dual_Impl_T<" << node->name ()
- << ">::demarshal_value (TAO_InputCDR &)" << be_nl
- << "{" << be_idt_nl
- << "return 0;" << be_uidt_nl
- << "}";
- }
-
node->cli_inline_gen (I_TRUE);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp
index e645cd1f4fb..0e2a4b563d3 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp
@@ -140,9 +140,10 @@ int be_visitor_exception_cs::visit_exception (be_exception *node)
<< node->name ()
<< "::_tao_any_destructor (void *_tao_void_pointer)" << be_nl
<< "{" << be_idt_nl
- << node->local_name () << " *tmp = ACE_static_cast ("
- << node->local_name () << "*, _tao_void_pointer);" << be_nl
- << "delete tmp;" << be_uidt_nl
+ << node->local_name () << " *_tao_tmp_pointer =" << be_idt_nl
+ << "ACE_static_cast ("
+ << node->local_name () << "*, _tao_void_pointer);" << be_uidt_nl
+ << "delete _tao_tmp_pointer;" << be_uidt_nl
<< "}" << be_nl << be_nl;
}
@@ -294,11 +295,12 @@ int be_visitor_exception_cs::visit_exception (be_exception *node)
-1);
}
- *os << " : CORBA::UserException ("
- << be_idt << be_idt << be_idt << be_idt_nl
+ *os << be_idt_nl
+ << ": CORBA::UserException ("
+ << be_idt << be_idt << be_idt_nl
<< "\"" << node->repoID () << "\"," << be_nl
<< "\"" << node->local_name () << "\"" << be_uidt_nl
- << ")" << be_uidt << be_uidt << be_uidt << be_uidt_nl;
+ << ")" << be_uidt << be_uidt << be_uidt_nl;
*os << "{" << be_idt;
// Assign each individual member. We need yet another state.
diff --git a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp
index 687b4360fd0..df03b506419 100644
--- a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_ci.cpp
@@ -296,7 +296,7 @@ be_visitor_field_cdr_op_ci::visit_interface (be_interface *node)
*os << parent->name () << "::";
}
- *os << "tao_" << node->local_name () << "_life::tao_marshal ("
+ *os << "TAO::Objref_Traits<" << node->name () << ">::tao_marshal ("
<< be_idt << be_idt_nl
<< "_tao_aggregate." << f->local_name () << ".in ()," << be_nl
<< "strm" << be_uidt_nl
@@ -363,7 +363,7 @@ be_visitor_field_cdr_op_ci::visit_interface_fwd (be_interface_fwd *node)
*os << parent->name () << "::";
}
- *os << "tao_" << node->local_name () << "_life::tao_marshal ("
+ *os << "TAO::Objref_Traits<" << node->name () << ">::tao_marshal ("
<< be_idt << be_idt_nl
<< "_tao_aggregate." << f->local_name () << ".in ()," << be_nl
<< "strm" << be_uidt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface.cpp
index 6d14041f227..48579a009d4 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface.cpp
@@ -69,22 +69,13 @@
#include "be_visitor_interface/smart_proxy_ch.cpp"
#include "be_visitor_interface/smart_proxy_cs.cpp"
#include "be_visitor_interface/ami_interface_ch.cpp"
-#include "be_visitor_interface/interceptors_cs.cpp"
#include "be_visitor_interface/interceptors_ss.cpp"
// Proxy Brokers
-#include "be_visitor_interface/base_proxy_broker_ch.cpp"
-#include "be_visitor_interface/proxy_brokers_ch.cpp"
-#include "be_visitor_interface/remote_proxy_broker_ch.cpp"
-#include "be_visitor_interface/remote_proxy_broker_cs.cpp"
#include "be_visitor_interface/strategized_proxy_broker_sh.cpp"
#include "be_visitor_interface/strategized_proxy_broker_ss.cpp"
// Proxy Impls
-#include "be_visitor_interface/proxy_impls_ch.cpp"
-#include "be_visitor_interface/base_proxy_impl_ch.cpp"
-#include "be_visitor_interface/remote_proxy_impl_ch.cpp"
-#include "be_visitor_interface/remote_proxy_impl_cs.cpp"
#include "be_visitor_interface/thru_poa_proxy_impl_sh.cpp"
#include "be_visitor_interface/thru_poa_proxy_impl_ss.cpp"
#include "be_visitor_interface/direct_proxy_impl_sh.cpp"
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_rh_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_rh_sh.cpp
index 8ba0d0e6dc1..2633b1bc693 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/amh_rh_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_rh_sh.cpp
@@ -71,10 +71,11 @@ be_visitor_amh_rh_interface_sh::visit_interface (be_interface *node)
// Now generate the class definition
*os << "class " << be_global->skel_export_macro ()
<< " " << rh_skel_class_name.c_str () << be_idt_nl
- << ": public " << inherit_tao_parent.c_str ()
- << ", public " << inherit_client_parent.c_str () << be_nl;
+ << ": public " << inherit_tao_parent.c_str () << "," << be_idt_nl
+ << "public " << inherit_client_parent.c_str () << be_uidt << be_uidt;
- *os << be_uidt_nl << "{" << be_nl
+ *os << be_nl
+ << "{" << be_nl
<< "public:" << be_idt_nl
<< rh_skel_class_name.c_str () << " (TAO_ServerRequest &sr);" << be_nl
<< "virtual ~" << rh_skel_class_name.c_str () << " (void);";
@@ -89,7 +90,8 @@ be_visitor_amh_rh_interface_sh::visit_interface (be_interface *node)
-1);
}
- *os << be_uidt_nl << "};\n\n";
+ *os << be_uidt_nl
+ << "};";
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_rh_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_rh_ss.cpp
index 82426c28074..5fbc9db05cf 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/amh_rh_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_rh_ss.cpp
@@ -70,18 +70,17 @@ be_visitor_amh_rh_interface_ss::visit_interface (be_interface *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- *os << rh_skel_full_scope_name.c_str()
- << "::" << be_nl
- << " " << rh_skel_class_name.c_str()
- << " (TAO_ServerRequest &sr)" << be_nl
- << " : TAO_AMH_Response_Handler (sr)" << be_nl
- << " , " << node->full_name () << " ()" << be_nl
+ *os << rh_skel_full_scope_name.c_str ()
+ << "::" << rh_skel_class_name.c_str () << " (" << be_idt << be_idt_nl
+ << "TAO_ServerRequest &sr" << be_uidt_nl
+ << ")" << be_nl
+ << ": TAO_AMH_Response_Handler (sr)," << be_idt_nl
+ << node->full_name () << " ()" << be_uidt << be_uidt_nl
<< "{" << be_nl
<< "}" << be_nl << be_nl;
- *os << rh_skel_full_scope_name.c_str()
- << "::" << be_nl
- << " ~" << rh_skel_class_name.c_str()
+ *os << rh_skel_full_scope_name.c_str ()
+ << "::~" << rh_skel_class_name.c_str ()
<< " (void)" << be_nl;
*os << "{" << be_nl;
*os << "}";
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp
index 2898d832522..e8af94386d0 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_sh.cpp
@@ -110,21 +110,22 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node)
*os << be_uidt << be_uidt_nl
<< "{" << be_nl
<< "protected:" << be_idt_nl
- << class_name.c_str () << " (void);\n" << be_uidt_nl
+ << class_name.c_str () << " (void);" << be_uidt_nl << be_nl
<< "public:" << be_idt_nl;
// No copy constructor for locality constraint interface.
- *os << class_name.c_str () << " (const " << class_name.c_str () << "& rhs);" << be_nl
+ *os << class_name.c_str () << " (const " << class_name.c_str ()
+ << "& rhs);" << be_nl
<< "virtual ~" << class_name.c_str () << " (void);\n\n"
<< be_nl
<< "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl
<< "const char* logical_type_id" << be_nl
<< "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");\n" << be_uidt_nl;
+ << ");" << be_uidt_nl << be_nl;
*os << "virtual void* _downcast (" << be_idt << be_idt_nl
<< "const char* logical_type_id" << be_uidt_nl
- << ");\n" << be_uidt_nl;
+ << ");" << be_uidt_nl << be_nl;
// Add a skeleton for our _is_a method.
*os << "static void _is_a_skel (" << be_idt << be_idt_nl
@@ -132,7 +133,7 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node)
<< "void *obj," << be_nl
<< "void *servant_upcall" << be_nl
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");\n" << be_uidt_nl;
+ << ");" << be_uidt_nl << be_nl;
// Add a skeleton for our _non_existent method.
*os << "static void _non_existent_skel (" << be_idt << be_idt_nl
@@ -140,7 +141,7 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node)
<< "void *obj," << be_nl
<< "void *servant_upcall" << be_nl
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");\n" << be_uidt_nl;
+ << ");" << be_uidt_nl << be_nl;
// Add a skeleton for our _interface method.
*os << "static void _interface_skel (" << be_idt << be_idt_nl
@@ -148,7 +149,7 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node)
<< "void *obj," << be_nl
<< "void *servant_upcall" << be_nl
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");\n" << be_uidt_nl;
+ << ");" << be_uidt_nl << be_nl;
// Add a skeleton for our _component method.
*os << "static void _component_skel (" << be_idt << be_idt_nl
@@ -156,21 +157,21 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node)
<< "void *obj," << be_nl
<< "void *servant_upcall" << be_nl
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");\n" << be_uidt_nl;
+ << ");" << be_uidt_nl << be_nl;
// Add the dispatch method.
*os << "virtual void _dispatch (" << be_idt << be_idt_nl
<< "TAO_ServerRequest &req," << be_nl
<< "void *_servant_upcall" << be_nl
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");\n" << be_uidt_nl;
+ << ");" << be_uidt_nl << be_nl;
this->this_method (node);
// The _interface_repository_id method.
*os << be_nl
<< "virtual const char* _interface_repository_id "
- << "(void) const;\n";
+ << "(void) const;";
if (this->visit_scope (node) == -1)
{
@@ -193,7 +194,9 @@ be_visitor_amh_interface_sh::visit_interface (be_interface *node)
-1);
}
- *os << be_uidt_nl << "};\n\n";
+ *os << be_uidt_nl
+ << "};";
+
return 0;
}
@@ -221,7 +224,7 @@ be_visitor_amh_interface_sh::add_original_members (be_interface *node,
}
this->elem_number_ = 0;
- // initialize an iterator to iterate thru our scope
+
for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
!si.is_done ();
si.next ())
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
index 66b994cd74d..d0eb85710fa 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_ss.cpp
@@ -10,8 +10,8 @@
*/
//=============================================================================
-ACE_RCSID (be_visitor_interface,
- amh_ss,
+ACE_RCSID (be_visitor_interface,
+ amh_ss,
"$Id$")
be_visitor_amh_interface_ss::be_visitor_amh_interface_ss (
@@ -66,7 +66,7 @@ be_visitor_amh_interface_ss::this_method (be_interface *node)
this->generate_full_skel_name (node);
const char *full_skel_name = full_skel_name_holder.c_str ();
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
*os << non_amh_name.c_str() << "*" << be_nl
@@ -81,16 +81,41 @@ be_visitor_amh_interface_ss::this_method (be_interface *node)
<< be_nl
<< "if (stub->servant_orb_var ()->orb_core ()->optimize_collocation_objects ())"
<< be_idt_nl
- << "ACE_NEW_RETURN (tmp, CORBA::Object (stub, 1, this), 0);"
- << be_uidt_nl
+ << "{" << be_idt_nl
+ << "ACE_NEW_RETURN (" << be_idt << be_idt_nl
+ << "tmp," << be_nl
+ << "CORBA::Object (stub, 1, this)," << be_nl
+ << "0" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "}" << be_uidt_nl
<< "else"
<< be_idt_nl
- << "ACE_NEW_RETURN (tmp, CORBA::Object (stub, 0, this), 0);"
- << be_uidt_nl << be_nl
+ << "{" << be_idt_nl
+ << "ACE_NEW_RETURN (" << be_idt << be_idt_nl
+ << "tmp," << be_nl
+ << "CORBA::Object (stub, 0, this)," << be_nl
+ << "0" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
<< "CORBA::Object_var obj = tmp;" << be_nl << be_nl;
- *os << "return " << "::" << non_amh_name.c_str() << "::_unchecked_narrow (obj.in ());"
- << be_uidt_nl
+ *os << "typedef ::" << node->name () << " STUB_SCOPED_NAME;" << be_nl
+ << "return" << be_idt_nl;
+
+ if (!node->is_abstract ())
+ {
+ *os << "TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (";
+ }
+ else
+ {
+ *os << "TAO::AbstractBase_Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow (";
+ }
+ *os << be_idt << be_idt_nl
+ << "obj.in ()," << be_nl
+ << node->flat_client_enclosing_scope ()
+ << node->base_proxy_broker_name ()
+ << "_Factory_function_pointer" << be_uidt_nl
+ << ");" << be_uidt << be_uidt << be_uidt_nl
<< "}";
}
@@ -104,7 +129,7 @@ be_visitor_amh_interface_ss::dispatch_method (be_interface *node)
this->generate_full_skel_name (node);
const char *full_skel_name = full_skel_name_holder.c_str ();
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
*os << "void" << be_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp
index 538a13d1078..d30c009f4d6 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp
@@ -47,9 +47,72 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node)
TAO_OutStream *os = this->ctx_->stream ();
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ << "// " << __FILE__ << ":" << __LINE__;
- *os << "// Copying insertion." << be_nl
+ // All template specializations must be generated before the instantiations
+ // in the operators.
+
+ if (! node->is_abstract ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Impl_T<" << node->name () << ">::to_object ("
+ << be_idt << be_idt_nl
+ << "CORBA::Object_ptr &_tao_elem" << be_uidt_nl
+ << ") const" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "_tao_elem = CORBA::Object::_duplicate (this->value_);" << be_nl
+ << "return 1;" << be_uidt_nl
+ << "}";
+ }
+
+ if (node->is_abstract () || node->has_mixed_parentage ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Impl_T<" << node->name ()
+ << ">::to_abstract_base ("
+ << be_idt << be_idt_nl
+ << "CORBA::AbstractBase_ptr &_tao_elem" << be_uidt_nl
+ << ") const" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "_tao_elem = CORBA::AbstractBase::_duplicate (this->value_);"
+ << be_nl
+ << "return 1;" << be_uidt_nl
+ << "}";
+ }
+
+ // Since we don't generate CDR stream operators for types that
+ // explicitly contain a local interface (at some level), we
+ // must override these Any template class methods to avoid
+ // calling the non-existent operators. The zero return value
+ // will eventually cause CORBA::MARSHAL to be raised if this
+ // type is inserted into an Any and then marshaled.
+ if (node->is_local ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Impl_T<" << node->name ()
+ << ">::marshal_value (TAO_OutputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Impl_T<" << node->name ()
+ << ">::demarshal_value (TAO_InputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+ }
+
+ *os << be_nl << be_nl
+ << "// Copying insertion." << be_nl
<< "void" << be_nl
<< "operator<<= (" << be_idt << be_idt_nl
<< "CORBA::Any &_tao_any," << be_nl
@@ -93,28 +156,12 @@ be_visitor_interface_any_op_cs::visit_interface (be_interface *node)
<< ");" << be_uidt << be_uidt << be_uidt_nl
<< "}";
- *os << be_nl << be_nl
- << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl;
-
- *os << "template class TAO::Any_Impl_T<" << node->name () << ">;"
- << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl;
-
- *os << "# pragma instantiate TAO::Any_Impl_T<" << node->name () << ">"
- << be_uidt_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
// All we have to do is to visit the scope and generate code.
- if (!node->is_local ())
+ if (this->visit_scope (node) == -1)
{
- if (this->visit_scope (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_interface::visit_interface - "
- "codegen for scope failed\n"), -1);
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_interface::visit_interface - "
+ "codegen for scope failed\n"), -1);
}
node->cli_stub_any_op_gen (1);
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp
index ae69be3da59..74bdfc80ac9 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp
@@ -18,8 +18,8 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_interface,
- cdr_op_cs,
+ACE_RCSID (be_visitor_interface,
+ cdr_op_cs,
"$Id$")
be_visitor_interface_cdr_op_cs::be_visitor_interface_cdr_op_cs (
@@ -96,8 +96,6 @@ be_visitor_interface_cdr_op_cs::visit_interface (be_interface *node)
<< node->full_name () << "_ptr &_tao_objref" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl;
- *os << "ACE_TRY_NEW_ENV" << be_nl
- << "{" << be_idt_nl;
if (node->is_abstract ())
{
@@ -117,49 +115,30 @@ be_visitor_interface_cdr_op_cs::visit_interface (be_interface *node)
<< "{" << be_idt_nl
<< "return 0;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl
+ << "typedef ::" << node->name () << " RHS_SCOPED_NAME;"
+ << be_nl << be_nl
<< "// Narrow to the right type." << be_nl;
- if (node->is_abstract ())
+ *os << "_tao_objref =" << be_idt_nl;
+
+ if (!node->is_abstract ())
{
- *os << "if (obj->_is_objref ())" << be_idt_nl
- << "{" << be_idt_nl
- << "_tao_objref =" << be_idt_nl
- << node->full_name () << "::_unchecked_narrow ("
- << be_idt << be_idt_nl
- << "obj.in ()" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl
- << "_tao_objref =" << be_idt_nl
- << node->full_name () << "::_unchecked_narrow ("
- << be_idt << be_idt_nl
- << "obj._retn ()" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
+ *os << "TAO::Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow (";
}
else
{
- *os << "_tao_objref =" << be_idt_nl
- << node->full_name () << "::_unchecked_narrow ("
- << be_idt << be_idt_nl
- << "obj.in ()" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
+ *os << "TAO::AbstractBase_Narrow_Utils<RHS_SCOPED_NAME>::unchecked_narrow (";
}
- *os << "ACE_TRY_CHECK;" << be_nl;
- *os << "return 1;" << be_uidt_nl;
- *os << "}" << be_nl
- << "ACE_CATCHANY" << be_nl
- << "{" << be_idt_nl
- << "// do nothing" << be_uidt_nl
- << "}" << be_nl
- << "ACE_ENDTRY;" << be_nl
- << "return 0;" << be_uidt_nl;
- *os << "}";
+ *os << be_idt << be_idt_nl
+ << "obj.in ()," << be_nl
+ << node->flat_client_enclosing_scope ()
+ << node->base_proxy_broker_name ()
+ << "_Factory_function_pointer" << be_uidt_nl
+ << ");" << be_uidt_nl << be_uidt_nl;
+
+ *os << "return 1;" << be_uidt_nl
+ << "}";
node->cli_stub_cdr_op_gen (1);
return 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp
index 6ea03336c42..25c0ba626b2 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_sh.cpp
@@ -2,8 +2,8 @@
// $Id$
//
-ACE_RCSID (be_visitor_interface,
- direct_proxy_impl_sh,
+ACE_RCSID (be_visitor_interface,
+ direct_proxy_impl_sh,
"$Id$")
be_visitor_interface_direct_proxy_impl_sh::
@@ -26,42 +26,56 @@ be_visitor_interface_direct_proxy_impl_sh::visit_interface (
{
TAO_OutStream *os = this->ctx_->stream ();
- os->decr_indent (0);
+ *os << be_nl << be_nl
+ << "// TAO_IDL - Generated from " << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
- *os << be_nl
- << "///////////////////////////////////////////////////////////////////////"
+ *os << be_nl << be_nl
+ << "///////////////////////////////////////////////////////////////////////"
<< be_nl
<< "// Direct Impl. Declaration" << be_nl
<< "//" << be_nl << be_nl;
+
// Generate Class Declaration.
*os << "class " << be_global->skel_export_macro ()
<< " " << node->direct_proxy_impl_name ();
- *os << " : " << be_idt_nl << "public virtual "
- << node->full_base_proxy_impl_name ()
- << "," << be_nl << "public virtual " << "TAO_Direct_Object_Proxy_Impl";
+
+ idl_bool first_concrete = I_TRUE;
if (node->n_inherits () > 0)
{
- *os << "," << be_nl;
+ AST_Interface *parent = 0;
- for (int i = 0; i < node->n_inherits (); i++)
+ for (int i = 0; i < node->n_inherits (); ++i)
{
- be_interface *inherited =
- be_interface::narrow_from_decl (node->inherits ()[i]);
+ parent = node->inherits ()[i];
- *os << "public virtual ";
- *os << inherited->full_direct_proxy_impl_name ();
+ if (parent->is_abstract ())
+ {
+ continue;
+ }
- if (i < node->n_inherits () - 1)
+ be_interface *inherited =
+ be_interface::narrow_from_decl (parent);
+
+ if (first_concrete)
{
- *os << ", ";
+ *os << be_nl << " : " << be_idt << be_idt;
}
+ else
+ {
+ *os << "," << be_nl;
+ }
+
+ first_concrete = I_FALSE;
- *os << be_nl;
+ *os << "public virtual ::"
+ << inherited->full_direct_proxy_impl_name ();
}
}
- *os << be_uidt_nl;
+ *os << be_uidt << be_uidt_nl;
+
*os << "{" << be_nl << "public:" << be_idt_nl;
// Ctor
@@ -75,12 +89,29 @@ be_visitor_interface_direct_proxy_impl_sh::visit_interface (
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) direct_proxy_impl_sh::"
"visit_interface - "
- "codegen for scope failed\n"),
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ // Generate static collocated operations for operations of our base
+ // classes.
+ int status =
+ node->traverse_inheritance_graph (
+ be_interface::gen_colloc_op_decl_helper,
+ os
+ );
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "be_visitor_interface_direct_proxy_impl_sh::"
+ "visit_interface - "
+ "inheritance graph traversal failed\n"),
-1);
}
- *os << "};" << be_uidt << be_nl << be_nl;
- *os << be_nl
+ *os << be_uidt << be_uidt_nl
+ << "};" << be_nl << be_nl
<< "//" << be_nl
<< "// Direct Proxy Impl. Declaration" << be_nl
<< "///////////////////////////////////////////////////////////////////////"
@@ -89,7 +120,7 @@ be_visitor_interface_direct_proxy_impl_sh::visit_interface (
return 0;
}
-int
+int
be_visitor_interface_direct_proxy_impl_sh::gen_abstract_ops_helper (
be_interface *node,
be_interface *base,
@@ -148,4 +179,3 @@ int be_visitor_interface_direct_proxy_impl_sh::visit_component (
{
return this->visit_interface (node);
}
-
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp
index 0756a75d572..eaf2b68f65f 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/direct_proxy_impl_ss.cpp
@@ -27,9 +27,8 @@ be_visitor_interface_direct_proxy_impl_ss::visit_interface (
TAO_OutStream *os = this->ctx_->stream ();
this->ctx_->node (node);
- os->indent ();
- *os << be_nl
+ *os << be_nl << be_nl
<< "///////////////////////////////////////////////////////////////////////"
<< be_nl
<< "// Direct Proxy Implementation" << be_nl
@@ -49,11 +48,10 @@ be_visitor_interface_direct_proxy_impl_ss::visit_interface (
-1);
}
- *os << be_nl
+ *os << be_nl << be_nl
<< "//" << be_nl
<< "// End Direct Proxy Implementation" << be_nl
- << "///////////////////////////////////////////////////////////////////////"
- << be_nl;
+ << "///////////////////////////////////////////////////////////////////////";
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp
index 0a590a2f5ff..6842f925340 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interceptors_ss.cpp
@@ -48,7 +48,8 @@ int be_visitor_interface_interceptors_ss::visit_interface (be_interface *node)
TAO_OutStream *os = this->ctx_->stream ();
- *os << "// TAO_IDL - Generated from" << be_nl
+ *os << be_nl << be_nl
+ << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
// Generate code for the interface definition by traversing thru the
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp
index 6a960c8373b..c3c58f23847 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp
@@ -75,26 +75,10 @@ be_visitor_interface::visit_scope (be_scope *node)
helper =
be_visitor_interface_ch::gen_abstract_ops_helper;
break;
- case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH:
- helper =
- be_visitor_interface_base_proxy_impl_ch::gen_abstract_ops_helper;
- break;
- case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH:
- helper =
- be_visitor_interface_remote_proxy_impl_ch::gen_abstract_ops_helper;
- break;
case TAO_CodeGen::TAO_ROOT_CS:
helper =
be_visitor_interface_cs::gen_abstract_ops_helper;
break;
- case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS:
- helper =
- be_visitor_interface_remote_proxy_impl_cs::gen_abstract_ops_helper;
- break;
- case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS:
- helper =
- be_visitor_interface_interceptors_cs::gen_abstract_ops_helper;
- break;
case TAO_CodeGen::TAO_ROOT_SH:
helper =
be_visitor_interface_sh::gen_abstract_ops_helper;
@@ -454,12 +438,6 @@ be_visitor_interface::visit_operation (be_operation *node)
status = node->accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS:
- {
- be_visitor_operation_interceptors_cs visitor (&ctx);
- status = node->accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SH:
{
be_visitor_operation_interceptors_sh visitor (&ctx);
@@ -472,13 +450,6 @@ be_visitor_interface::visit_operation (be_operation *node)
status = node->accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_BASE_PROXY_IMPL_CH:
- {
- be_visitor_operation_base_proxy_impl_ch visitor (&ctx);
- status = node->accept (&visitor);
- break;
- }
- case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CH:
case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH:
case TAO_CodeGen::TAO_INTERFACE_DIRECT_PROXY_IMPL_SH:
{
@@ -498,12 +469,6 @@ be_visitor_interface::visit_operation (be_operation *node)
status = node->accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS:
- {
- be_visitor_operation_remote_proxy_impl_cs visitor (&ctx);
- status = node->accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS:
{
be_visitor_operation_thru_poa_proxy_impl_ss visitor (&ctx);
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp
index 3a6e1243271..6a928656b73 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp
@@ -21,6 +21,7 @@
ACE_RCSID (be_visitor_interface,
interface_ch,
"$Id$")
+
// ******************************************************
// Interface visitor for client header
// ******************************************************
@@ -55,16 +56,6 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
// Now the interface definition itself.
os->gen_ifdef_macro (node->flat_name ());
- if (!node->is_local () && !node->is_abstract ())
- {
- // Forward class declarations.
- *os << be_nl << be_nl
- << "class " << node->base_proxy_impl_name () << ";" << be_nl
- << "class " << node->remote_proxy_impl_name () << ";" << be_nl
- << "class " << node->base_proxy_broker_name () << ";" << be_nl
- << "class " << node->remote_proxy_broker_name () << ";";
- }
-
// Now generate the class definition.
*os << be_nl << be_nl
<< "class " << be_global->stub_export_macro ()
@@ -126,16 +117,23 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
// Generate the body.
*os << "{" << be_nl
- << "public:" << be_idt_nl
+ << "public:" << be_idt_nl;
- // Generate the _ptr_type and _var_type typedefs.
- << "typedef " << node->local_name () << "_ptr _ptr_type;"
+ if (!node->is_local () && !node->is_abstract ())
+ {
+ *os << "friend class TAO::Narrow_Utils<"
+ << node->local_name () << ">;" << be_nl;
+ }
+ else if (!node->is_local () && node->is_abstract ())
+ {
+ *os << "friend class TAO::AbstractBase_Narrow_Utils<"
+ << node->local_name () << ">;" << be_nl;
+ }
+
+ *os << "typedef " << node->local_name () << "_ptr _ptr_type;"
<< be_nl
<< "typedef " << node->local_name () << "_var _var_type;"
- << be_nl;
-
- // Generate the static variable that we use for narrowing.
- *os << "static int _tao_class_id;" << be_nl << be_nl;
+ << be_nl << be_nl;
// Generate the static _duplicate, _narrow, and _nil operations.
*os << "// The static operations." << be_nl
@@ -156,30 +154,14 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
*os << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
<< ");" << be_uidt_nl << be_nl;
- // There's no need for an _unchecked_narrow for locality
- // constrained object.
- *os << "static " << node->local_name () << "_ptr "
- << "_unchecked_narrow (" << be_idt << be_idt_nl;
-
- if (node->is_abstract ())
- {
- *os << "CORBA::AbstractBase_ptr obj" << be_nl;
- }
- else
- {
- *os << "CORBA::Object_ptr obj" << be_nl;
- }
-
- *os << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
// This method is defined in the header file to workaround old
// g++ problems.
*os << "static " << node->local_name () << "_ptr _nil (void)"
- << be_idt_nl << "{" << be_idt_nl
+ << be_nl
+ << "{" << be_idt_nl
<< "return (" << node->local_name ()
<< "_ptr)0;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
+ << "}" << be_nl << be_nl;
if (node->is_abstract ())
{
@@ -223,17 +205,10 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
}
// The _is_a method
- if (! node->is_local ())
- {
- *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl
- << "const char *type_id" << be_nl
- << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
- }
-
- // The _tao_QueryInterface method.
- *os << "virtual void *_tao_QueryInterface (ptrdiff_t type);"
- << be_nl << be_nl;
+ *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl
+ << "const char *type_id" << be_nl
+ << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
// The _interface_repository_id method.
*os << "virtual const char* _interface_repository_id (void) const;";
@@ -251,12 +226,12 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
<< "\n#endif /* _MSC_VER */";
}
- if (! node->is_local () && ! node->is_abstract ())
+ if (! node->is_local ())
{
// Add the Proxy Broker member variable.
*os << be_uidt_nl
<< "private:" << be_idt_nl
- << node->base_proxy_broker_name () << " *"
+ << "TAO::Collocation_Proxy_Broker *"
<< "the" << node->base_proxy_broker_name ()
<< "_;";
}
@@ -264,13 +239,17 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
*os << be_uidt_nl << be_nl
<< "protected:" << be_idt_nl;
- if (! node->is_local () && ! node->is_abstract ())
+ if (! node->is_local ())
{
// Generate the "protected" constructor so that users cannot
// instantiate us.
- *os << node->local_name () << " (int collocated = 0);"
- << be_nl << be_nl;
+ if (! node->is_abstract ())
+ {
+ *os << "// Concrete interface only." << be_nl
+ << node->local_name () << " (int collocated = 0);"
+ << be_nl << be_nl;
+ }
*os << "// These methods travese the inheritance tree and set the"
<< be_nl
@@ -283,47 +262,43 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
if (node->is_abstract () || node->is_local ())
{
// Protected default constructor for abstract interfaces.
- *os << node->local_name () << " (void);" << be_nl;
+ *os << "// Abstract or local interface only." << be_nl
+ << node->local_name () << " (void);" << be_nl << be_nl;
}
if (node->is_abstract ())
{
// Protected copy constructor for abstract interfaces.
- *os << node->local_name () << " (const "
- << node->local_name () << " &);" << be_nl;
+ *os << "// Protected for abstract interfaces." << be_nl
+ << node->local_name () << " (const "
+ << node->local_name () << " &);" << be_nl << be_nl;
}
// Local interfaces don't support stub objects.
if (! node->is_local ())
{
- *os << node->local_name ()
- << " (IOP::IOR *ior," << be_idt_nl
- << be_idt << "TAO_ORB_Core *orb_core = 0);" << be_uidt_nl
- << be_uidt_nl;
+ if (! node->is_abstract ())
+ {
+ *os << "// Concrete non-local interface only." << be_nl
+ << node->local_name () << " (" << be_idt << be_idt_nl
+ << "IOP::IOR *ior," << be_nl
+ << "TAO_ORB_Core *orb_core = 0" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+ }
- *os << node->local_name ()
- << " (" << be_idt << be_idt_nl << "TAO_Stub *objref, " << be_nl
+ *os << "// Non-local interface only." << be_nl
+ << node->local_name () << " (" << be_idt << be_idt_nl
+ << "TAO_Stub *objref," << be_nl
<< "CORBA::Boolean _tao_collocated = 0," << be_nl
<< "TAO_Abstract_ServantBase *servant = 0," << be_nl
<< "TAO_ORB_Core *orb_core = 0" << be_uidt_nl
- << ");" << be_uidt_nl;
+ << ");" << be_uidt_nl << be_nl;
}
// Protected destructor.
*os << "virtual ~" << node->local_name () << " (void);";
- if (! node->is_abstract () && ! node->is_local ())
- {
- // Friends declarations.
- *os << be_nl << be_nl
- << "friend class " << node->remote_proxy_impl_name () << ";"
- << be_nl
- << "friend class " << node->thru_poa_proxy_impl_name () << ";"
- << be_nl
- << "friend class " << node->direct_proxy_impl_name () << ";";
- }
-
// Private copy constructor and assignment operator. These are not
// allowed, hence they are private.
*os << be_uidt_nl << be_nl
@@ -332,8 +307,9 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
// Abstract interfaces have a *protected* copy constructor.
if (! node->is_abstract ())
{
- *os << node->local_name () << " (const "
- << node->local_name () << " &);" << be_nl;
+ *os << "// Private and unimplemented for concrete interfaces." << be_nl
+ << node->local_name () << " (const "
+ << node->local_name () << " &);" << be_nl << be_nl;
}
*os << "void operator= (const " << node->local_name () << " &);";
@@ -348,48 +324,27 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
*os << "};";
// Don't support smart proxies for local interfaces.
- // @@@ (JP) This is TODO for abstract interfaces.
- if (! node->is_local () && ! node->is_abstract ())
+ if (! node->is_local ())
{
- *os << be_nl << be_nl;
+ // List that generates proxy broker factory function pointer.
+ be_global->non_local_interfaces.enqueue_tail (node);
- // Smart Proxy related classes.
- ctx.state (TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH);
- be_visitor_interface_smart_proxy_ch sp_visitor (&ctx);
-
- if (node->accept (&sp_visitor) == -1)
+ if (be_global->gen_smart_proxies ())
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_ch::"
- "visit_interface - "
- "codegen for smart proxy classes failed\n"),
- -1);
- }
-
- // Proxy Implementation Declaration.
- ctx = *this->ctx_;
- be_visitor_interface_proxy_impls_ch spi_visitor (&ctx);
-
- if (node->accept (&spi_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_ch::"
- "visit_interface - "
- "codegen for Proxy Broker classes failed\n"),
- -1);
- }
+ *os << be_nl << be_nl;
- // Proxy Broker Declaration.
- ctx = *this->ctx_;
- be_visitor_interface_proxy_brokers_ch pb_visitor (&ctx);
+ // Smart Proxy related classes.
+ ctx.state (TAO_CodeGen::TAO_INTERFACE_SMART_PROXY_CH);
+ be_visitor_interface_smart_proxy_ch sp_visitor (&ctx);
- if (node->accept (&pb_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_ch::"
- "visit_interface - "
- "codegen for Proxy Broker classes failed\n"),
- -1);
+ if (node->accept (&sp_visitor) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "be_visitor_interface_ch::"
+ "visit_interface - "
+ "codegen for smart proxy classes failed\n"),
+ -1);
+ }
}
}
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp
index e16b93fe7b5..aaf21611898 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp
@@ -51,6 +51,13 @@ be_visitor_interface_ci::visit_interface (be_interface *node)
"codegen for scope failed\n"), -1);
}
+ // Nothing to generate for a local interface except from it scope.
+ if (node->is_local ())
+ {
+ node->cli_inline_gen (I_TRUE);
+ return 0;
+ }
+
// A forward declared interface may have set this flag.
if (node->cli_inline_gen ())
{
@@ -76,95 +83,11 @@ be_visitor_interface_ci::visit_interface (be_interface *node)
<< node->name () << "::" << node->local_name ()
<< " (const " << node->local_name () << " &rhs)" << be_idt_nl
<< ": ACE_NESTED_CLASS (CORBA, AbstractBase) (rhs)" << be_uidt_nl
- << "{}" << be_nl << be_nl;
-
- *os << "ACE_INLINE" << be_nl
- << node->name () << "::" << node->local_name ()
- << " (" << be_idt << be_idt_nl
- << "TAO_Stub *objref," << be_nl
- << "CORBA::Boolean _tao_collocated," << be_nl
- << "TAO_Abstract_ServantBase *servant," << be_nl
- << "TAO_ORB_Core *orb_core" << be_uidt_nl
- << ")" << be_nl
- << ": ACE_NESTED_CLASS (CORBA, AbstractBase) ("
- << be_idt << be_idt << be_idt_nl
- << "objref," << be_nl
- << "_tao_collocated," << be_nl
- << "servant" << be_uidt_nl
- << ")" << be_uidt << be_uidt << be_uidt_nl
<< "{}";
}
- else
- {
- // Generate the constructor from stub and servant.
- node->gen_stub_ctor (os);
- }
- if (be_global->any_support ())
- {
- if (! node->is_abstract ())
- {
- *os << be_nl << be_nl
- << "template<>" << be_nl
- << "ACE_INLINE" << be_nl
- << "CORBA::Boolean" << be_nl
- << "TAO::Any_Impl_T<" << node->name () << ">::to_object ("
- << be_idt << be_idt_nl
- << "CORBA::Object_ptr &_tao_elem" << be_uidt_nl
- << ") const" << be_uidt_nl
- << "{" << be_idt_nl
- << "_tao_elem = CORBA::Object::_duplicate (this->value_);" << be_nl
- << "return 1;" << be_uidt_nl
- << "}";
- }
-
- if (node->is_abstract () || node->has_mixed_parentage ())
- {
- *os << be_nl << be_nl
- << "template<>" << be_nl
- << "ACE_INLINE" << be_nl
- << "CORBA::Boolean" << be_nl
- << "TAO::Any_Impl_T<" << node->name ()
- << ">::to_abstract_base ("
- << be_idt << be_idt_nl
- << "CORBA::AbstractBase_ptr &_tao_elem" << be_uidt_nl
- << ") const" << be_uidt_nl
- << "{" << be_idt_nl
- << "_tao_elem = CORBA::AbstractBase::_duplicate (this->value_);"
- << be_nl
- << "return 1;" << be_uidt_nl
- << "}";
- }
-
- // Since we don't generate CDR stream operators for types that
- // explicitly contain a local interface (at some level), we
- // must override these Any template class methods to avoid
- // calling the non-existent operators. The zero return value
- // will eventually cause CORBA::MARSHAL to be raised if this
- // type is inserted into an Any and then marshaled.
- if (node->is_local ())
- {
- *os << be_nl << be_nl
- << "template<>" << be_nl
- << "ACE_INLINE" << be_nl
- << "CORBA::Boolean" << be_nl
- << "TAO::Any_Impl_T<" << node->name ()
- << ">::marshal_value (TAO_OutputCDR &)" << be_nl
- << "{" << be_idt_nl
- << "return 0;" << be_uidt_nl
- << "}";
-
- *os << be_nl << be_nl
- << "template<>" << be_nl
- << "ACE_INLINE" << be_nl
- << "CORBA::Boolean" << be_nl
- << "TAO::Any_Impl_T<" << node->name ()
- << ">::demarshal_value (TAO_InputCDR &)" << be_nl
- << "{" << be_idt_nl
- << "return 0;" << be_uidt_nl
- << "}";
- }
- }
+ // Generate the constructor from stub and servant.
+ node->gen_stub_ctor (os);
if (!node->is_local () && !node->is_abstract ())
{
@@ -177,9 +100,8 @@ be_visitor_interface_ci::visit_interface (be_interface *node)
<< "TAO_ORB_Core *oc" << be_uidt_nl
<< ")" << be_nl;
*os << ": ACE_NESTED_CLASS (CORBA, Object) (ior, oc)," << be_idt_nl
- << "the"<< node->base_proxy_broker_name () << "_ (0)" << be_uidt_nl;
-
- *os << be_uidt_nl
+ << "the"<< node->base_proxy_broker_name () << "_ (0)"
+ << be_uidt << be_uidt_nl
<< "{" << be_nl
<< "}" ;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
index cb7082edec0..276862bbc28 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp
@@ -1,8 +1,5 @@
//
// $Id$
-
-//
-
// ============================================================================
//
// = LIBRARY
@@ -40,7 +37,7 @@ be_visitor_interface_cs::~be_visitor_interface_cs (void)
int
be_visitor_interface_cs::visit_interface (be_interface *node)
{
- if (node->cli_stub_gen () || node->imported ())
+ if (node->imported () || node->cli_stub_gen ())
{
return 0;
}
@@ -62,88 +59,48 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- // Initialize the static narrrowing helper variable.
- *os << be_nl << be_nl
- << "int " << node->full_name () << "::_tao_class_id = 0;";
-
- const char *fhname = node->fwd_helper_name ();
-
- // Helper functions generated in case this interface was
- // forward declared in some other IDL file and not defined there.
- *os << be_nl << be_nl
- << node->full_name () << "_ptr" << be_nl
- << fhname << "_life::"
- << "tao_duplicate (" << be_idt << be_idt_nl
- << node->nested_type_name (this->ctx_->scope ())
- << "_ptr p" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "return " << node->nested_type_name (this->ctx_->scope ())
- << "::_duplicate (p);" << be_uidt_nl
- << "}";
-
- *os << be_nl << be_nl
- << "void" << be_nl
- << fhname << "_life::"
- << "tao_release (" << be_idt << be_idt_nl
- << node->nested_type_name (this->ctx_->scope ())
- << "_ptr p" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "CORBA::release (p);" << be_uidt_nl
- << "}";
-
- *os << be_nl << be_nl
- << node->full_name () << "_ptr" << be_nl
- << fhname << "_life::"
- << "tao_nil (" << be_idt << be_idt_nl
- << "void" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "return " << node->nested_type_name (this->ctx_->scope ())
- << "::_nil ();" << be_uidt_nl
- << "}";
+ if (node->is_defined ())
+ {
+ *os << be_nl << be_nl
+ << "// Traits specializations for " << node->name () << ".";
- *os << be_nl << be_nl
- << "CORBA::Boolean" << be_nl
- << fhname << "_life::"
- << "tao_marshal (" << be_idt << be_idt_nl
- << node->nested_type_name (this->ctx_->scope ())
- << "_ptr p," << be_nl
- << "TAO_OutputCDR &cdr" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "return p->marshal (cdr);" << be_uidt_nl
- << "}";
+ *os << be_nl << be_nl
+ << node->name () << "_ptr" << be_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao_duplicate ("
+ << be_idt << be_idt_nl
+ << node->name () << "_ptr p" << be_uidt_nl
+ << ")" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "return " << node->name () << "::_duplicate (p);" << be_uidt_nl
+ << "}";
- if (! node->is_abstract ())
- {
*os << be_nl << be_nl
- << node->full_name () << "_ptr" << be_nl
- << fhname << "_cast::"
- << "tao_narrow (" << be_idt << be_idt_nl
- << "CORBA::Object *p" << be_nl
- << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << "void" << be_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao_release ("
+ << be_idt << be_idt_nl
+ << node->name () << "_ptr p" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
- << "return " << node->nested_type_name (this->ctx_->scope ())
- << "::_narrow (p ACE_ENV_ARG_PARAMETER);"
- << be_uidt_nl
+ << "CORBA::release (p);" << be_uidt_nl
<< "}";
*os << be_nl << be_nl
- << "CORBA::Object *" << be_nl
- << fhname << "_cast::"
- << "tao_upcast (" << be_idt << be_idt_nl
- << "void *src" << be_uidt_nl
+ << node->name () << "_ptr" << be_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao_nil (void)"
+ << be_nl
+ << "{" << be_idt_nl
+ << "return " << node->name () << "::_nil ();" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao_marshal ("
+ << be_idt << be_idt_nl
+ << node->name () << "_ptr p," << be_nl
+ << "TAO_OutputCDR & cdr" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
- << node->nested_type_name (this->ctx_->scope ())
- << " **tmp =" << be_idt_nl
- << "ACE_static_cast ("
- << node->nested_type_name (this->ctx_->scope ())
- << " **, src);" << be_uidt_nl
- << "return *tmp;" << be_uidt_nl
+ << "return p->marshal (cdr);" << be_uidt_nl
<< "}";
}
@@ -151,8 +108,8 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
{
*os << be_nl << be_nl
<< "void" << be_nl
- << "CORBA::release ("
- << node->name ()
+ << "CORBA::release ("
+ << node->name ()
<< "_ptr p)" << be_nl
<< "{" << be_idt_nl
<< "CORBA::AbstractBase_ptr abs = p;" << be_nl
@@ -161,8 +118,8 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
*os << be_nl << be_nl
<< "CORBA::Boolean" << be_nl
- << "CORBA::is_nil ("
- << node->name ()
+ << "CORBA::is_nil ("
+ << node->name ()
<< "_ptr p)" << be_nl
<< "{" << be_idt_nl
<< "CORBA::Object_ptr obj = p;" << be_nl
@@ -170,80 +127,28 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "}";
}
- *os << be_nl
- << "\n#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)" << be_idt_nl
- << "template class" << be_idt_nl
- << "TAO_Objref_Var_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt_nl
- << "template class" << be_idt_nl
- << "TAO_Objref_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Objref_Var_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << node->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Objref_Out_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << node->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
- be_visitor_context ctx = (*this->ctx_);
-
- // Interceptor classes. The interceptors helper classes must be
- // defined before the interface operations because they are used in
- // the implementation of said operations.
-
- ctx.state (TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_CS);
- be_visitor_interface_interceptors_cs ii_visitor (&ctx);
-
- if (node->accept (&ii_visitor) == -1)
+ // Generate the proxy broker factory function pointer definition.
+ *os << be_nl << be_nl
+ << "// Function pointer for collocation factory initialization."
+ << be_nl
+ << "TAO::Collocation_Proxy_Broker * " << be_nl
+ << "(*" << node->flat_client_enclosing_scope ()
+ << node->base_proxy_broker_name ()
+ << "_Factory_function_pointer) ("
+ << be_idt << be_idt_nl
+ << "CORBA::Object_ptr obj" << be_uidt_nl
+ << ") = 0;" << be_uidt;
+
+ // Generate code for the elements of the interface.
+ if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_cs::"
+ "(%N:%l) be_visitor_interface_cs::"
"visit_interface - "
- "codegen for interceptors classes failed\n"),
+ "codegen for scope failed\n"),
-1);
}
- if (!node->is_local () && ! node->is_abstract ())
- {
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_INTERFACE_REMOTE_PROXY_IMPL_CS);
- be_visitor_interface_remote_proxy_impl_cs irpi_visitor (&ctx);
-
- if (node->accept (&irpi_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_cs::"
- "visit_interface - "
- "codegen for Base Proxy Broker class failed\n"),
- -1);
- }
-
- ctx = *this->ctx_;
- be_visitor_interface_remote_proxy_broker_cs irpb_visitor (&ctx);
-
- if (node->accept (&irpb_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_cs::"
- "visit_interface - "
- "codegen for Base Proxy Broker class failed\n"),
- -1);
- }
- }
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
if (node->is_local ())
{
*os << be_nl << be_nl
@@ -254,38 +159,48 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
if (! node->is_abstract () && ! node->is_local ())
{
- // Generate the destructor and default constructor.
*os << be_nl << be_nl
<< node->name () << "::" << node->local_name ()
<< " (int collocated)" << be_nl
+ << " : the" << node->base_proxy_broker_name () << "_ (0)" << be_nl
<< "{" << be_idt_nl
<< "this->" << node->flat_name ()
<< "_setup_collocation (collocated);" << be_uidt_nl
<< be_uidt << "}";
+ }
- // Collocation setup method.
+ if (! node->is_local ())
+ {
*os << be_nl << be_nl
<< "void" << be_nl
<< node->name () << "::" << node->flat_name ()
<< "_setup_collocation (int collocated)" << be_nl
<< "{" << be_idt_nl
<< "if (collocated)" << be_idt_nl
+ << "{" << be_idt_nl
<< "this->the" << node->base_proxy_broker_name ()
<< "_ =" << be_idt_nl
<< "::" << node->flat_client_enclosing_scope ()
<< node->base_proxy_broker_name ()
- << "_Factory_function_pointer (this);"
- << be_uidt << be_uidt_nl
- << "else" << be_idt_nl
- << "this->the" << node->base_proxy_broker_name ()
- << "_ =" << be_idt_nl
- << "::" << node->full_remote_proxy_broker_name ()
- << "::the" << node->remote_proxy_broker_name ()
- << " ();" << be_uidt << be_uidt;
+ << "_Factory_function_pointer (";
+
+ if (node->is_abstract ())
+ {
+ *os << be_idt << be_idt_nl
+ << "this->equivalent_objref ()" << be_uidt_nl
+ << ");" << be_uidt;
+ }
+ else
+ {
+ *os << "this);";
+ }
+
+ *os << be_uidt << be_uidt_nl
+ << "}" << be_uidt;
// Now we setup the immediate parents.
int n_parents = node->n_inherits ();
- int has_concrete_parent = 0;
+ int has_parent = 0;
if (n_parents > 0)
{
@@ -294,17 +209,12 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
be_interface *inherited =
be_interface::narrow_from_decl (node->inherits ()[i]);
- if (inherited->is_abstract ())
- {
- continue;
- }
-
- if (has_concrete_parent == 0)
+ if (has_parent == 0)
{
*os << be_nl;
}
- has_concrete_parent = 1;
+ has_parent = 1;
*os << be_nl
<< "this->" << inherited->flat_name ()
@@ -315,7 +225,8 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
*os << be_uidt_nl << "}";
}
- *os << be_nl << be_nl << node->name () << "::~" << node->local_name ()
+ *os << be_nl << be_nl
+ << node->name () << "::~" << node->local_name ()
<< " (void)" << be_nl;
*os << "{}" << be_nl << be_nl;
@@ -325,9 +236,10 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< node->name ()
<< "::_tao_any_destructor (void *_tao_void_pointer)" << be_nl
<< "{" << be_idt_nl
- << node->local_name () << " *tmp = ACE_static_cast ("
- << node->local_name () << " *, _tao_void_pointer);" << be_nl
- << "CORBA::release (tmp);" << be_uidt_nl
+ << node->local_name () << " *_tao_tmp_pointer =" << be_idt_nl
+ << "ACE_static_cast ("
+ << node->local_name () << " *, _tao_void_pointer);" << be_uidt_nl
+ << "CORBA::release (_tao_tmp_pointer);" << be_uidt_nl
<< "}" << be_nl << be_nl;
}
@@ -348,73 +260,56 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
if (node->is_abstract ())
{
- *os << "CORBA::AbstractBase_ptr obj" << be_nl;
+ *os << "CORBA::AbstractBase_ptr";
}
else
{
- *os << "CORBA::Object_ptr obj" << be_nl;
+ *os << "CORBA::Object_ptr";
}
- *os << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ *os << " _tao_objref" << be_nl
+ << "ACE_ENV_ARG_DECL"
+ << (node->is_local () ? "_NOT_USED" : "")
+ << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl;
- // Local interfaces have slightly different _narrow implementation.
- if (! node->is_local ())
+ if (node->is_local ())
{
- // Remote _narrow implementation.
- *os << "if (CORBA::is_nil (obj))" << be_idt_nl
- << "{" << be_idt_nl
- << "return " << bt->nested_type_name (this->ctx_->scope ())
- << "::_nil ();" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- if (! node->is_abstract ())
- {
- *os << "if (! obj->_is_local ())" << be_idt_nl
- << "{" << be_idt_nl;
- }
-
- *os << "CORBA::Boolean is_a =" << be_idt_nl
- << "obj->_is_a (" << be_idt << be_idt_nl
- << "\"" << node->repoID () << "\"" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl
- << "ACE_CHECK_RETURN (" << bt->nested_type_name (this->ctx_->scope ())
- << "::_nil ());" << be_nl << be_nl
- << "if (is_a == 0)" << be_idt_nl
+ *os << "if (CORBA::is_nil (_tao_objref))" << be_idt_nl
<< "{" << be_idt_nl
- << "return " << bt->nested_type_name (this->ctx_->scope ())
- << "::_nil ();" << be_uidt_nl;
+ << "return " << node->local_name () << "::_nil ();" << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
+ << node->local_name () << "_ptr proxy =" << be_idt_nl
+ << "dynamic_cast<" << node->local_name () << "_ptr> (_tao_objref);"
+ << be_uidt_nl << be_nl
+ << "return " << node->local_name () << "::_duplicate (proxy);" << be_uidt_nl
+ << "}" << be_nl << be_nl;
+ }
+ else
+ {
+ *os << "return" << be_idt_nl;
- if (node->is_abstract ())
- {
- *os << "}" << be_uidt_nl;
+ if (!node->is_abstract ())
+ {
+ *os << "TAO::Narrow_Utils<"
+ << node->local_name () << ">::narrow (";
}
else
{
- *os << "}" << be_uidt << be_uidt_nl;
- *os << "}" << be_uidt_nl;
+ *os << "TAO::AbstractBase_Narrow_Utils<"
+ << node->local_name () << ">::narrow (";
}
- *os << be_nl;
- }
-
- *os << "return " << bt->nested_type_name (this->ctx_->scope ())
- << "::_unchecked_narrow (obj ACE_ENV_ARG_PARAMETER);" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- if (node->is_abstract ())
- {
- this->gen_abstract_unchecked_narrow (node,
- bt,
- os);
- }
- else
- {
- this->gen_concrete_unchecked_narrow (node,
- bt,
- os);
+ *os << be_idt << be_idt_nl
+ << "_tao_objref," << be_nl
+ << "\"" << node->repoID () << "\"," << be_nl
+ << node->flat_client_enclosing_scope ()
+ << node->base_proxy_broker_name ()
+ << "_Factory_function_pointer" << be_nl
+ << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
+ << ");" << be_uidt << be_uidt << be_uidt_nl
+ << "}" << be_nl << be_nl;
}
if (node->is_abstract ())
@@ -481,7 +376,7 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
// The _duplicate method
*os << node->full_name () << "_ptr" << be_nl
<< node->full_name () << "::_duplicate ("
- << bt->nested_type_name (this->ctx_->scope ())
+ << bt->local_name ()
<< "_ptr obj)" << be_nl
<< "{" << be_idt_nl
<< "if (! CORBA::is_nil (obj))" << be_idt_nl
@@ -491,143 +386,85 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "return obj;" << be_uidt_nl
<< "}" << be_nl << be_nl;
- // Generate the is_a method (not supported on local objects).
- if (! node->is_local ())
- {
- *os << "CORBA::Boolean" << be_nl
- << node->full_name () << "::_is_a (" << be_idt << be_idt_nl
- << "const char *value" << be_nl
- << "ACE_ENV_ARG_DECL";
-
- if (node->is_abstract ())
- {
- *os << "_NOT_USED";
- }
-
- *os << be_uidt_nl << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "if (" << be_idt << be_idt_nl;
-
- int status =
- node->traverse_inheritance_graph (be_interface::is_a_helper,
- os);
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_interface_cs::"
- "visit_interface - "
- "_is_a method codegen failed\n"),
- -1);
- }
-
- if (node->is_abstract () || node->has_mixed_parentage ())
- {
- *os << "!ACE_OS::strcmp (" << be_idt << be_idt_nl
- << "(char *)value," << be_nl
- << "\"IDL:omg.org/CORBA/AbstractBase:1.0\"" << be_uidt_nl
- << ")";
- }
-
- if (node->has_mixed_parentage ())
- {
- *os << " ||" << be_uidt_nl;
- }
- else if (node->is_abstract ())
- {
- *os << be_uidt << be_uidt_nl;
- }
-
- if (! node->is_abstract ())
- {
- *os << "!ACE_OS::strcmp (" << be_idt << be_idt_nl
- << "(char *)value," << be_nl
- << "\"IDL:omg.org/CORBA/Object:1.0\"" << be_uidt_nl
- << ")" << be_uidt << be_uidt_nl;
- }
-
- *os << " )" << be_nl
- << "{" << be_idt_nl
- << "return 1; // success using local knowledge" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl;
-
- if (node->is_abstract ())
- {
- *os << "return 0;" << be_uidt_nl;
- }
- else
- {
- *os << "return this->ACE_NESTED_CLASS (CORBA, Object)::_is_a ("
- << be_idt << be_idt_nl
- << "value" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
- }
+ *os << "CORBA::Boolean" << be_nl
+ << node->full_name () << "::_is_a (" << be_idt << be_idt_nl
+ << "const char *value" << be_nl;
- *os << "}" << be_uidt << be_uidt_nl
- << "}" << be_nl << be_nl;
- }
+ if (node->is_local ())
+ *os << "ACE_ENV_ARG_DECL_NOT_USED";
+ else
+ *os << "ACE_ENV_ARG_DECL";
- // Generating _tao_QueryInterface method.
- *os << "void *" << node->full_name ()
- << "::_tao_QueryInterface (ptrdiff_t type)" << be_nl
+ *os << be_uidt_nl << ")" << be_uidt_nl
<< "{" << be_idt_nl
- << "void *retv = 0;" << be_nl << be_nl
- << "if ";
+ << "if (" << be_idt << be_idt_nl;
+
+ int status =
+ node->traverse_inheritance_graph (be_interface::is_a_helper,
+ os);
- if (node->traverse_inheritance_graph (
- be_interface::queryinterface_helper,
- os
- ) == -1)
+ if (status == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_interface_cs::"
"visit_interface - "
- "_tao_QueryInterface method codegen failed\n"),
+ "_is_a method codegen failed\n"),
-1);
}
- *os << "(type == ACE_reinterpret_cast ("
- << be_idt << be_idt << be_idt << be_idt << be_idt << be_idt_nl
- << " ptrdiff_t," << be_nl;
+ if (node->is_abstract () || node->has_mixed_parentage ())
+ {
+ *os << "!ACE_OS::strcmp (" << be_idt << be_idt_nl
+ << "(char *)value," << be_nl
+ << "\"IDL:omg.org/CORBA/AbstractBase:1.0\"" << be_uidt_nl
+ << ")";
+ }
+ else if (node->is_local ())
+ {
+ *os << "!ACE_OS::strcmp (" << be_idt << be_idt_nl
+ << "(char *)value," << be_nl
+ << "\"IDL:omg.org/CORBA/LocalObject:1.0\"" << be_uidt_nl
+ << ")";
+ }
- if (node->is_abstract ())
+ if (node->has_mixed_parentage () || node->is_local ())
{
- *os << " &CORBA::AbstractBase";
+ *os << " ||" << be_uidt_nl;
}
- else
+ else if (node->is_abstract ())
{
- *os << " &CORBA::Object";
+ *os << be_uidt << be_uidt_nl;
}
- *os << "::_tao_class_id)" << be_uidt_nl
- << " )" << be_uidt << be_uidt << be_uidt << be_uidt_nl
+ if (! node->is_abstract ())
+ {
+ *os << "!ACE_OS::strcmp (" << be_idt << be_idt_nl
+ << "(char *)value," << be_nl
+ << "\"IDL:omg.org/CORBA/Object:1.0\"" << be_uidt_nl
+ << ")" << be_uidt << be_uidt_nl;
+ }
+
+ *os << " )" << be_nl
<< "{" << be_idt_nl
- << "retv =" << be_idt_nl
- << "ACE_reinterpret_cast (" << be_idt << be_idt_nl
- << "void *," << be_nl
- << "ACE_static_cast (";
+ << "return 1; // success using local knowledge" << be_uidt_nl
+ << "}" << be_uidt_nl
+ << "else" << be_idt_nl
+ << "{" << be_idt_nl;
- if (node->is_abstract ())
+ if (node->is_abstract () || node->is_local ())
{
- *os << "CORBA::AbstractBase_ptr";
+ *os << "return 0;" << be_uidt_nl;
}
else
{
- *os << "CORBA::Object_ptr";
+ *os << "return this->ACE_NESTED_CLASS (CORBA, Object)::_is_a ("
+ << be_idt << be_idt_nl
+ << "value" << be_nl
+ << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl;
}
- *os << ", this)" << be_uidt_nl
- << ");" << be_uidt << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- *os << "if (retv != 0)" << be_idt_nl
- << "{" << be_idt_nl
- << "this->_add_ref ();" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "return retv;" << be_uidt_nl
+ *os << "}" << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
*os << "const char* " << node->full_name ()
@@ -656,16 +493,6 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
<< "}";
}
- // Generate code for the elements of the interface.
- if (this->visit_scope (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_interface_cs::"
- "visit_interface - "
- "codegen for scope failed\n"),
- -1);
- }
-
if (! node->is_abstract ())
{
// Smart Proxy classes.
@@ -689,6 +516,7 @@ be_visitor_interface_cs::visit_interface (be_interface *node)
if (be_global->tc_support ())
{
+ be_visitor_context ctx = *this->ctx_;
ctx.sub_state (TAO_CodeGen::TAO_TC_DEFN_TYPECODE);
be_visitor_typecode_defn tc_visitor (&ctx);
@@ -782,16 +610,15 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node,
<< "{" << be_idt_nl
<< "if (CORBA::is_nil (obj))" << be_idt_nl
<< "{" << be_idt_nl
- << "return " << bt->nested_type_name (this->ctx_->scope ())
- << "::_nil ();" << be_uidt_nl
+ << "return " << bt->local_name () << "::_nil ();" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
if (! node->is_local ())
{
// Declare the default proxy.
- *os << bt->nested_type_name (this->ctx_->scope ())
+ *os << bt->local_name ()
<< "_ptr default_proxy = "
- << bt->nested_type_name (this->ctx_->scope ())
+ << bt->local_name ()
<<"::_nil ();" << be_nl << be_nl;
// Code for lzay evaluation..
@@ -805,7 +632,7 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node,
<< " (" << be_idt << be_idt_nl
<< "obj->steal_ior ()," << be_nl
<< "obj->orb_core ()" << be_uidt_nl << ")," << be_uidt_nl
- << bt->nested_type_name (this->ctx_->scope ())
+ << bt->local_name ()
<< "::_nil ()" << be_uidt_nl << ");" << be_uidt_nl << be_nl
<< "return default_proxy;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
@@ -819,7 +646,7 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node,
<< "stub->_incr_refcnt ();" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
- // If the policy didtates that the proxy be collocated, use the
+ // If the policy dictates that the proxy be collocated, use the
// function to create one.
*os << "if (" << be_idt << be_idt_nl
<< "!CORBA::is_nil (stub->servant_orb_var ().ptr ()) &&" << be_nl
@@ -837,7 +664,7 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node,
<< "stub," << be_nl
<< "1," << be_nl
<< "obj->_servant ()" << be_uidt_nl << ")," << be_uidt_nl
- << bt->nested_type_name (this->ctx_->scope ())
+ << bt->local_name ()
<< "::_nil ()" << be_uidt_nl << ");"
<< be_uidt << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
@@ -854,7 +681,7 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node,
<< "0," << be_nl
<< "obj->_servant ()" << be_uidt_nl
<< ")," << be_uidt_nl
- << bt->nested_type_name (this->ctx_->scope ())
+ << bt->local_name ()
<< "::_nil ()" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
@@ -862,7 +689,8 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node,
if (be_global->gen_smart_proxies ())
{
*os << "return TAO_" << node->flat_name ()
- << "_PROXY_FACTORY_ADAPTER::instance ()->create_proxy (default_proxy);"
+ << "_PROXY_FACTORY_ADAPTER::instance ()->"
+ << "create_proxy (default_proxy);"
<< be_uidt_nl;
}
else
@@ -878,19 +706,16 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node,
*os << be_idt;
}
- // Local & lazily evaluated _unchecked_narrow.
- *os << "return" << be_idt_nl
- << "ACE_reinterpret_cast (" << be_idt << be_idt_nl
- << node->local_name () << "_ptr," << be_nl
- << "obj->_tao_QueryInterface (" << be_idt << be_idt_nl
- << "ACE_reinterpret_cast (" << be_idt << be_idt_nl
- << "ptrdiff_t," << be_nl
- << "&" << node->local_name () << "::_tao_class_id" << be_uidt_nl
- << ")" << be_uidt << be_uidt_nl
- << ")" << be_uidt << be_uidt_nl
- << ");" << be_uidt << be_uidt << be_uidt << be_uidt_nl;
+ *os << "{" << be_idt_nl
+ << "::" << node->name () << "_ptr p =" << be_idt_nl
+ << "dynamic_cast<::" << node->name () << "_ptr> (obj);"
+ << be_uidt_nl << be_nl
+ << "p->_add_ref ();" << be_nl << be_nl
+ << "return p;" << be_uidt_nl
+ << "}" << be_uidt << be_uidt;
- *os << "}" << be_nl << be_nl;
+ *os << be_nl
+ << "}" << be_nl << be_nl;
}
void
@@ -912,9 +737,9 @@ be_visitor_interface_cs::gen_abstract_unchecked_narrow (be_interface *node,
<< "}" << be_uidt_nl << be_nl;
// Declare the default proxy.
- *os << bt->nested_type_name (this->ctx_->scope ())
+ *os << bt->local_name ()
<< "_ptr default_proxy = "
- << bt->nested_type_name (this->ctx_->scope ())
+ << bt->local_name ()
<<"::_nil ();" << be_nl << be_nl;
*os << "if (obj->_is_objref ())" << be_idt_nl
@@ -927,7 +752,7 @@ be_visitor_interface_cs::gen_abstract_unchecked_narrow (be_interface *node,
<< "0," << be_nl
<< "obj->_servant ()" << be_uidt_nl
<< ")," << be_uidt_nl
- << bt->nested_type_name (this->ctx_->scope ())
+ << bt->local_name ()
<< "::_nil ()" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_uidt_nl;
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp
index 871d440b138..6aaff92c268 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_is.cpp
@@ -84,15 +84,37 @@ be_visitor_interface_is::visit_interface (be_interface *node)
<< be_global->impl_class_prefix () << node->flat_name ()
<< be_global->impl_class_suffix () << " (const "
<< be_global->impl_class_prefix () << node->flat_name ()
- << be_global->impl_class_suffix () << "& t)"<< be_idt_nl;
+ << be_global->impl_class_suffix () << "& rhs)" << be_idt_nl
+ << ": TAO_Abstract_ServantBase (rhs)," << be_nl
+ << " TAO_ServantBase (rhs)";
- if (node->n_inherits () > 0)
+ if (node->traverse_inheritance_graph (be_interface::copy_ctor_helper,
+ os)
+ == -1)
{
- node->gen_copy_ctors (os);
- *os << ", TAO_ServantBase (t)" << be_nl;
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "be_visitor_interface_is::visit_interface - "
+ " copy ctor generation failed\n"),
+ -1);
+ }
+
+ *os << "," << be_nl;
+
+ if (node->is_nested ())
+ {
+ be_decl *scope;
+ scope = be_scope::narrow_from_scope (node->defined_in ())->decl ();
+
+ *os << " ACE_NESTED_CLASS (POA_" << scope->name () << ", "
+ << node->local_name () << ") (rhs)";
+ }
+ else
+ {
+ *os << " " << node->full_skel_name () << " (rhs)";
}
- *os << "{" << be_nl
+ *os << be_uidt_nl
+ << "{" << be_nl
<< "}" << be_nl << be_uidt_nl;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp
index 6e71a9aa4b6..210e73aa7dd 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp
@@ -39,223 +39,226 @@ int
be_visitor_interface_sh::visit_interface (be_interface *node)
{
if (node->srv_hdr_gen ()
- || node->imported ()
- || node->is_abstract ())
+ || node->imported ())
{
return 0;
}
- // If this node is a AMH-RH node, then generate code for it
- if (node->is_local ())
+ // For abstract interfaces, we just generated the collocation stuff
+ // (see below).
+ if (! node->is_abstract ())
{
- if (this->is_amh_rh_node (node))
- {
- // Create amh_rh_visitors.
- be_visitor_amh_rh_interface_sh amh_rh_intf (this->ctx_);
- amh_rh_intf.visit_interface (node);
- }
-
- return 0;
- }
-
- if (this->generate_amh_classes (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_sh::"
- "visit_interface - "
- "codegen for AMH classes failed\n"),
- -1);
- }
-
- TAO_OutStream *os = this->ctx_->stream ();
- ACE_CString class_name;
-
- // We shall have a POA_ prefix only if we are at the topmost level.
- if (!node->is_nested ())
- {
- // We are outermost.
- class_name += "POA_";
- class_name += node->local_name ();
- }
- else
- {
- class_name += node->local_name ();
- }
-
- *os << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- // Generate the skeleton class name.
- *os << "class " << class_name.c_str () << ";" << be_nl;
-
- // Generate the _ptr declaration.
- *os << "typedef " << class_name.c_str () << " *" << class_name.c_str ()
- << "_ptr;" << be_nl << be_nl;
-
- // Forward class declarations.
- if (be_global->gen_thru_poa_collocation ())
- {
- *os << "class " << node->thru_poa_proxy_impl_name () << ";" << be_nl;
- }
-
- if (be_global->gen_direct_collocation ())
- {
- *os << "class " << node->direct_proxy_impl_name () << ";" << be_nl;
- }
-
- if (be_global->gen_thru_poa_collocation ()
- || be_global->gen_direct_collocation ())
- {
- *os << "class " << node->strategized_proxy_broker_name ()
- << ";" << be_nl;
- }
-
- *os << be_nl;
-
- // Now generate the class definition.
- *os << "class " << be_global->skel_export_macro ()
- << " " << class_name.c_str () << be_idt_nl << ": " << be_idt;
-
- long n_parents = node->n_inherits ();
- AST_Interface *parent = 0;
- int has_concrete_parent = 0;
-
- for (int i = 0; i < n_parents; ++i)
- {
- parent = node->inherits ()[i];
+ // If this node is a AMH-RH node, then generate code for it
+ if (node->is_local ())
+ {
+ if (this->is_amh_rh_node (node))
+ {
+ // Create amh_rh_visitors.
+ be_visitor_amh_rh_interface_sh amh_rh_intf (this->ctx_);
+ amh_rh_intf.visit_interface (node);
+ }
+
+ return 0;
+ }
+
+ if (this->generate_amh_classes (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "be_visitor_interface_sh::"
+ "visit_interface - "
+ "codegen for AMH classes failed\n"),
+ -1);
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+ ACE_CString class_name;
+
+ // We shall have a POA_ prefix only if we are at the topmost level.
+ if (!node->is_nested ())
+ {
+ // We are outermost.
+ class_name += "POA_";
+ class_name += node->local_name ();
+ }
+ else
+ {
+ class_name += node->local_name ();
+ }
+
+ *os << be_nl << be_nl
+ << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+
+ // Generate the skeleton class name.
+ *os << "class " << class_name.c_str () << ";" << be_nl;
+
+ // Generate the _ptr declaration.
+ *os << "typedef " << class_name.c_str () << " *" << class_name.c_str ()
+ << "_ptr;" << be_nl << be_nl;
+
+ // Forward class declarations.
+ if (be_global->gen_thru_poa_collocation ())
+ {
+ *os << "class " << node->thru_poa_proxy_impl_name () << ";" << be_nl;
+ }
+
+ if (be_global->gen_direct_collocation ())
+ {
+ *os << "class " << node->direct_proxy_impl_name () << ";" << be_nl;
+ }
+
+ if (be_global->gen_thru_poa_collocation ()
+ || be_global->gen_direct_collocation ())
+ {
+ *os << "class " << node->strategized_proxy_broker_name ()
+ << ";" << be_nl;
+ }
+
+ *os << be_nl;
+
+ // Now generate the class definition.
+ *os << "class " << be_global->skel_export_macro ()
+ << " " << class_name.c_str () << be_idt_nl << ": " << be_idt;
+
+ long n_parents = node->n_inherits ();
+ AST_Interface *parent = 0;
+ int has_concrete_parent = 0;
+
+ for (int i = 0; i < n_parents; ++i)
+ {
+ parent = node->inherits ()[i];
- if (parent->is_abstract ())
- {
- continue;
- }
-
- if (has_concrete_parent == 1)
- {
- *os << "," << be_nl;
- }
-
- *os << "public virtual " << "POA_"
- << parent->name ();
-
- has_concrete_parent = 1;
- }
-
- if (has_concrete_parent == 0)
- {
- // We don't inherit from another user defined object, hence our
- // base class is the ServantBase class.
- *os << "public virtual PortableServer::ServantBase";
- }
-
- *os << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "protected:" << be_idt_nl;
-
- // Default constructor.
- *os << class_name.c_str () << " (void);" << be_uidt_nl << be_nl
- << "public:" << be_idt_nl;
-
- // Some useful typedefs.
- *os << "// Useful for template programming." << be_nl
- << "typedef ::" << node->name () << " _stub_type;" << be_nl
- << "typedef ::" << node->name () << "_ptr _stub_ptr_type;" << be_nl
- << "typedef ::" << node->name () << "_var _stub_var_type;"
- << be_nl << be_nl;
-
- // Copy constructor and destructor.
- *os << class_name.c_str () << " (const "
- << class_name.c_str () << "& rhs);" << be_nl
- << "virtual ~" << class_name.c_str () << " (void);" << be_nl << be_nl;
-
- // _is_a
- *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl
- << "const char* logical_type_id" << be_nl
- << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
- // _downcast
- *os << "virtual void* _downcast (" << be_idt << be_idt_nl
- << "const char* logical_type_id" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
- // Add a skeleton for our _is_a method.
- *os << "static void _is_a_skel (" << be_idt << be_idt_nl
- << "TAO_ServerRequest &req," << be_nl
- << "void *servant," << be_nl
- << "void *servant_upcall" << be_nl
- << "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
- // Add a skeleton for our _non_existent method.
- *os << "static void _non_existent_skel (" << be_idt << be_idt_nl
- << "TAO_ServerRequest &req," << be_nl
- << "void *servant," << be_nl
- << "void *servant_upcall" << be_nl
- << "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
- // Add a skeleton for our _interface method.
- *os << "static void _interface_skel (" << be_idt << be_idt_nl
- << "TAO_ServerRequest &req," << be_nl
- << "void *servant," << be_nl
- << "void *servant_upcall" << be_nl
- << "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
- // Add a skeleton for our _component method.
- *os << "static void _component_skel (" << be_idt << be_idt_nl
- << "TAO_ServerRequest &req," << be_nl
- << "void *obj," << be_nl
- << "void *servant_upcall" << be_nl
- << "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
- // Add the dispatch method.
- *os << "virtual void _dispatch (" << be_idt << be_idt_nl
- << "TAO_ServerRequest &req," << be_nl
- << "void *_servant_upcall" << be_nl
- << "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
- this->this_method (node);
-
- // The _interface_repository_id method.
- *os << be_nl
- << "virtual const char* _interface_repository_id "
- << "(void) const;";
-
- // Generate code for elements in the scope (e.g., operations).
- if (this->visit_scope (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_sh::"
- "visit_interface - "
- "codegen for scope failed\n"),
- -1);
- }
-
- // Generate skeletons for operations of our base classes. These
- // skeletons just cast the pointer to the appropriate type
- // before invoking the call.
- int status =
- node->traverse_inheritance_graph (
- be_interface::gen_skel_helper,
- os
- );
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_sh::"
- "visit_interface - "
- "inheritance graph traversal failed\n"),
- -1);
- }
-
- *os << be_uidt_nl << "};";
+ if (parent->is_abstract ())
+ {
+ continue;
+ }
+
+ if (has_concrete_parent == 1)
+ {
+ *os << "," << be_nl;
+ }
+
+ *os << "public virtual " << "POA_"
+ << parent->name ();
+
+ has_concrete_parent = 1;
+ }
+
+ if (has_concrete_parent == 0)
+ {
+ // We don't inherit from another user defined object, hence our
+ // base class is the ServantBase class.
+ *os << "public virtual PortableServer::ServantBase";
+ }
+
+ *os << be_uidt << be_uidt_nl
+ << "{" << be_nl
+ << "protected:" << be_idt_nl;
+
+ // Default constructor.
+ *os << class_name.c_str () << " (void);" << be_uidt_nl << be_nl
+ << "public:" << be_idt_nl;
+
+ // Some useful typedefs.
+ *os << "// Useful for template programming." << be_nl
+ << "typedef ::" << node->name () << " _stub_type;" << be_nl
+ << "typedef ::" << node->name () << "_ptr _stub_ptr_type;" << be_nl
+ << "typedef ::" << node->name () << "_var _stub_var_type;"
+ << be_nl << be_nl;
+
+ // Copy constructor and destructor.
+ *os << class_name.c_str () << " (const "
+ << class_name.c_str () << "& rhs);" << be_nl
+ << "virtual ~" << class_name.c_str () << " (void);" << be_nl << be_nl;
+
+ // _is_a
+ *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl
+ << "const char* logical_type_id" << be_nl
+ << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+
+ // _downcast
+ *os << "virtual void* _downcast (" << be_idt << be_idt_nl
+ << "const char* logical_type_id" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+
+ // Add a skeleton for our _is_a method.
+ *os << "static void _is_a_skel (" << be_idt << be_idt_nl
+ << "TAO_ServerRequest &req," << be_nl
+ << "void *servant," << be_nl
+ << "void *servant_upcall" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+
+ // Add a skeleton for our _non_existent method.
+ *os << "static void _non_existent_skel (" << be_idt << be_idt_nl
+ << "TAO_ServerRequest &req," << be_nl
+ << "void *servant," << be_nl
+ << "void *servant_upcall" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+
+ // Add a skeleton for our _interface method.
+ *os << "static void _interface_skel (" << be_idt << be_idt_nl
+ << "TAO_ServerRequest &req," << be_nl
+ << "void *servant," << be_nl
+ << "void *servant_upcall" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+
+ // Add a skeleton for our _component method.
+ *os << "static void _component_skel (" << be_idt << be_idt_nl
+ << "TAO_ServerRequest &req," << be_nl
+ << "void *obj," << be_nl
+ << "void *servant_upcall" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+
+ // Add the dispatch method.
+ *os << "virtual void _dispatch (" << be_idt << be_idt_nl
+ << "TAO_ServerRequest &req," << be_nl
+ << "void *_servant_upcall" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+
+ this->this_method (node);
+
+ // The _interface_repository_id method.
+ *os << be_nl
+ << "virtual const char* _interface_repository_id "
+ << "(void) const;";
+
+ // Generate code for elements in the scope (e.g., operations).
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "be_visitor_interface_sh::"
+ "visit_interface - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ // Generate skeletons for operations of our base classes. These
+ // skeletons just cast the pointer to the appropriate type
+ // before invoking the call.
+ int status =
+ node->traverse_inheritance_graph (
+ be_interface::gen_skel_helper,
+ os
+ );
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "be_visitor_interface_sh::"
+ "visit_interface - "
+ "inheritance graph traversal failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl << "};";
+ } // if ! node->is_abstract ()
- // Generate the embedded RequestInfo classes per operation.
- // This is to be used by interceptors.
be_visitor_context ctx (*this->ctx_);
if (be_global->gen_thru_poa_collocation ()
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp
index 92fca27179a..ef49e152e3f 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp
@@ -76,6 +76,26 @@ be_visitor_interface_si::visit_interface (be_interface *node)
-1);
}
+ if (be_global->gen_thru_poa_collocation ()
+ || be_global->gen_direct_collocation ())
+ {
+ status =
+ node->traverse_inheritance_graph (
+ be_interface::gen_colloc_op_defn_helper,
+ os
+ );
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_interface_si::"
+ "visit_interface - "
+ "codegen for collocated base class "
+ "skeletons failed\n"),
+ -1);
+ }
+ }
+
if (be_global->gen_tie_classes ())
{
// Generate the TIE class.
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
index 19c0747a6db..071c54d5b13 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
@@ -18,8 +18,8 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_interface,
- interface_ss,
+ACE_RCSID (be_visitor_interface,
+ interface_ss,
"$Id$")
// ************************************************************
@@ -60,12 +60,6 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
return -1;
}
- // Generate the normal skeleton as usual.
-
- TAO_OutStream *os = this->ctx_->stream ();
-
- os->indent ();
-
ACE_CString full_skel_name_holder =
this->generate_full_skel_name (node);
@@ -76,7 +70,10 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
const char *flat_name = flat_name_holder.c_str ();
- if (node->gen_operation_table (flat_name, full_skel_name) == -1)
+ int status = node->gen_operation_table (flat_name,
+ full_skel_name);
+
+ if (status == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"be_visitor_interface_ss::"
@@ -94,6 +91,8 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
-1);
}
+ TAO_OutStream *os = this->ctx_->stream ();
+
*os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
@@ -139,9 +138,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
-1);
}
-
-
- *os << be_uidt_nl
+ *os << be_uidt_nl
<< "{" << be_nl
<< "}" << be_nl << be_nl;
@@ -173,41 +170,53 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
- *os << "TAO_InputCDR &_tao_in = _tao_server_request.incoming ();" << be_nl;
- *os << full_skel_name << " *_tao_impl = ("
- << full_skel_name << " *) _tao_servant;" << be_nl;
+ *os << "TAO_InputCDR &_tao_in = _tao_server_request.incoming ();"
+ << be_nl << be_nl;
+
+ *os << full_skel_name << " *_tao_impl =" << be_idt_nl
+ << "(" << full_skel_name << " *) _tao_servant;" << be_uidt_nl << be_nl;
+
*os << "CORBA::Boolean _tao_retval = 0;" << be_nl;
*os << "CORBA::String_var value;" << be_nl << be_nl;
- *os << "if (!(_tao_in >> value.out ()))" << be_idt_nl;
+
+ *os << "if (!(_tao_in >> value.out ()))" << be_idt_nl
+ << "{" << be_idt_nl;
if (be_global->use_raw_throw ())
{
- *os << "throw CORBA::MARSHAL ();" << be_uidt_nl << be_nl;
+ *os << "throw CORBA::MARSHAL ();" ;
}
else
{
- *os << "ACE_THROW (CORBA::MARSHAL ());" << be_uidt_nl << be_nl;
+ *os << "ACE_THROW (CORBA::MARSHAL ());";
}
+ *os << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl;
+
*os << "_tao_retval = _tao_impl->_is_a (value.in () ACE_ENV_ARG_PARAMETER);"
<< be_nl;
*os << "ACE_CHECK;" << be_nl << be_nl;
*os << "_tao_server_request.init_reply ();" << be_nl;
*os << "TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();"
<< be_nl << be_nl;
+
*os << "if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))"
- << be_idt_nl;
+ << be_idt_nl
+ << "{" << be_idt_nl;
if (be_global->use_raw_throw ())
{
- *os << "throw CORBA::MARSHAL ();" << be_uidt << be_uidt_nl;
+ *os << "throw CORBA::MARSHAL ();";
}
else
{
- *os << "ACE_THROW (CORBA::MARSHAL ());" << be_uidt << be_uidt_nl;
+ *os << "ACE_THROW (CORBA::MARSHAL ());";
}
- *os << "}" << be_nl << be_nl;
+ *os << be_uidt_nl
+ << "}" << be_uidt << be_uidt_nl
+ << "}" << be_nl << be_nl;
// Generate code for the _non_existent skeleton.
@@ -219,28 +228,34 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
- *os << full_skel_name << " *_tao_impl = ("
- << full_skel_name << " *) _tao_servant;" << be_nl;
+ *os << full_skel_name << " *_tao_impl =" << be_idt_nl
+ << "(" << full_skel_name << " *) _tao_servant;" << be_uidt_nl << be_nl;
+
*os << "CORBA::Boolean _tao_retval =" << be_idt_nl
<< "_tao_impl->_non_existent (ACE_ENV_SINGLE_ARG_PARAMETER);"
<< be_uidt_nl;
*os << "ACE_CHECK;" << be_nl << be_nl;
+
*os << "_tao_server_request.init_reply ();" << be_nl;
*os << "TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();"
<< be_nl << be_nl;
+
*os << "if (!(_tao_out << CORBA::Any::from_boolean (_tao_retval)))"
- << be_idt_nl;
+ << be_idt_nl
+ << "{" << be_idt_nl;
if (be_global->use_raw_throw ())
{
- *os << "throw CORBA::MARSHAL ();" << be_uidt << be_uidt_nl;
+ *os << "throw CORBA::MARSHAL ();";
}
else
{
- *os << "ACE_THROW (CORBA::MARSHAL ());" << be_uidt << be_uidt_nl;
+ *os << "ACE_THROW (CORBA::MARSHAL ());";
}
- *os << "}" << be_nl << be_nl;
+ *os << be_uidt_nl
+ << "}" << be_uidt << be_uidt_nl
+ << "}" << be_nl << be_nl;
// Generate code for the _interface skeleton.
*os << "void " << full_skel_name
@@ -251,10 +266,6 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
- *os << full_skel_name << " *_tao_impl = ("
- << full_skel_name << " *) _tao_servant;" << be_nl
- << "CORBA::InterfaceDef_ptr _tao_retval = 0;" << be_nl
- << "CORBA::Boolean _tao_result = 0;" << be_nl << be_nl;
*os << "TAO_IFR_Client_Adapter *_tao_adapter =" << be_idt_nl
<< "ACE_Dynamic_Service<TAO_IFR_Client_Adapter>::instance ("
<< be_idt << be_idt_nl
@@ -264,26 +275,23 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "{" << be_idt_nl
<< "ACE_THROW (CORBA::INTF_REPOS ());" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
- *os << "ACE_TRY" << be_idt_nl
- << "{" << be_idt_nl
- << "_tao_retval = " << be_idt_nl
+ *os << full_skel_name << " *_tao_impl =" << be_idt_nl
+ << "(" << full_skel_name << " *) _tao_servant;" << be_uidt_nl << be_nl;
+
+ *os << "CORBA::InterfaceDef_ptr _tao_retval = " << be_idt_nl
<< "_tao_impl->_get_interface (ACE_ENV_SINGLE_ARG_PARAMETER);"
<< be_uidt_nl
- << "ACE_TRY_CHECK;" << be_nl << be_nl
- << "_tao_server_request.init_reply ();" << be_nl << be_nl
+ << "ACE_CHECK;" << be_nl << be_nl
+ << "_tao_server_request.init_reply ();" << be_nl
<< "TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();"
<< be_nl << be_nl
- << "_tao_result =" << be_idt_nl
+ << "CORBA::Boolean _tao_result =" << be_idt_nl
<< "_tao_adapter->interfacedef_cdr_insert (" << be_idt << be_idt_nl
<< "_tao_out," << be_nl
<< "_tao_retval" << be_uidt_nl
- << ");" << be_uidt << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "ACE_CATCHALL" << be_idt_nl
- << "{" << be_idt_nl
- << "_tao_adapter->dispose (_tao_retval);" << be_uidt_nl
- << "}" << be_uidt_nl
- << "ACE_ENDTRY;" << be_nl << be_nl;
+ << ");" << be_uidt << be_uidt_nl << be_nl
+ << "_tao_adapter->dispose (_tao_retval);" << be_nl << be_nl;
+
*os << "if (_tao_result == 0)" << be_idt_nl
<< "{" << be_idt_nl
<< "ACE_THROW (CORBA::MARSHAL ());" << be_uidt_nl
@@ -299,28 +307,34 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
<< ")" << be_uidt_nl;
*os << "{" << be_idt_nl;
- *os << full_skel_name << " *_tao_impl = ("
- << full_skel_name << " *) _tao_object_reference;" << be_nl;
+ *os << full_skel_name << " *_tao_impl =" << be_idt_nl
+ << "(" << full_skel_name << " *) _tao_object_reference;"
+ << be_uidt_nl << be_nl;
+
*os << "CORBA::Object_var _tao_retval =" << be_idt_nl
<< "_tao_impl->_get_component (ACE_ENV_SINGLE_ARG_PARAMETER);"
<< be_uidt_nl;
*os << "ACE_CHECK;" << be_nl << be_nl;
+
*os << "_tao_server_request.init_reply ();" << be_nl;
*os << "TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();"
<< be_nl << be_nl;
- *os << "if (!(_tao_out << _tao_retval._retn ()))"
- << be_idt_nl;
+
+ *os << "if (!(_tao_out << _tao_retval.in ()))" << be_idt_nl
+ << "{" << be_idt_nl;
if (be_global->use_raw_throw ())
{
- *os << "throw CORBA::MARSHAL ();" << be_uidt << be_uidt_nl;
+ *os << "throw CORBA::MARSHAL ();";
}
else
{
- *os << "ACE_THROW (CORBA::MARSHAL ());" << be_uidt << be_uidt_nl;
+ *os << "ACE_THROW (CORBA::MARSHAL ());";
}
- *os << "}" << be_nl << be_nl;
+ *os << be_uidt_nl
+ << "}" << be_uidt << be_uidt_nl
+ << "}" << be_nl << be_nl;
// Generate code for the _is_a override.
@@ -354,7 +368,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
<< "\"IDL:org.omg/CORBA/AbstractBase:1.0\"" << be_uidt_nl
<< ")";
}
-
+
*os << be_uidt << be_uidt_nl
<< " )" << be_nl
<< "{" << be_idt_nl
@@ -383,10 +397,10 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
}
*os << "if (ACE_OS::strcmp (logical_type_id," << be_nl
- << " \"IDL:omg.org/CORBA/Object:1.0\") == 0)"
+ << " \"IDL:omg.org/CORBA/Object:1.0\") == 0)"
<< be_idt_nl
<< "{" << be_idt_nl
- << "return ACE_static_cast(PortableServer::Servant, this);"
+ << "return ACE_static_cast (PortableServer::Servant, this);"
<< be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
@@ -408,7 +422,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
return 0;
}
-int
+int
be_visitor_interface_ss::gen_abstract_ops_helper (be_interface *node,
be_interface *base,
TAO_OutStream *os)
@@ -495,11 +509,7 @@ be_visitor_interface_ss::this_method (be_interface *node)
<< "{" << be_idt_nl
<< "ACE_NEW_RETURN (" << be_idt << be_idt_nl
<< "tmp," << be_nl
- << "CORBA::Object (" << be_idt << be_idt_nl
- << "stub," << be_nl
- << "1," << be_nl
- << "this" << be_uidt_nl
- << ")," << be_uidt_nl
+ << "CORBA::Object (stub, 1, this)," << be_nl
<< "0" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_uidt_nl
@@ -507,20 +517,22 @@ be_visitor_interface_ss::this_method (be_interface *node)
<< "{" << be_idt_nl
<< "ACE_NEW_RETURN (" << be_idt << be_idt_nl
<< "tmp," << be_nl
- << "CORBA::Object (" << be_idt << be_idt_nl
- << "stub," << be_nl
- << "0," << be_nl
- << "this" << be_uidt_nl
- << ")," << be_uidt_nl
+ << "CORBA::Object (stub, 0, this)," << be_nl
<< "0" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_uidt_nl << be_nl;
*os << "CORBA::Object_var obj = tmp;" << be_nl
- << "(void) safe_stub.release ();" << be_nl
- << "return " << "::" << node->full_name ()
- << "::_unchecked_narrow (obj.in ());"
- << be_uidt_nl
+ << "(void) safe_stub.release ();" << be_nl << be_nl
+ << "typedef ::" << node->name () << " STUB_SCOPED_NAME;" << be_nl
+ << "return" << be_idt_nl
+ << "TAO::Narrow_Utils<STUB_SCOPED_NAME>::unchecked_narrow ("
+ << be_idt << be_idt_nl
+ << "obj.in ()," << be_nl
+ << node->flat_client_enclosing_scope ()
+ << node->base_proxy_broker_name ()
+ << "_Factory_function_pointer" << be_uidt_nl
+ << ");" << be_uidt << be_uidt << be_uidt_nl
<< "}";
}
@@ -563,8 +575,6 @@ int
be_visitor_interface_ss::generate_proxy_classes (be_interface *node)
{
TAO_OutStream *os = this->ctx_->stream ();
-
- // Strategized Proxy Broker Implementation.
be_visitor_context ctx = *this->ctx_;
ctx.state (TAO_CodeGen::TAO_INTERFACE_INTERCEPTORS_SS);
@@ -579,37 +589,38 @@ be_visitor_interface_ss::generate_proxy_classes (be_interface *node)
-1);
}
+ // Strategized Proxy Broker Implementation.
if (be_global->gen_thru_poa_collocation ()
|| be_global->gen_direct_collocation ())
{
- ctx = (*this->ctx_);
+ ctx = *this->ctx_;
be_visitor_interface_strategized_proxy_broker_ss ispb_visitor (&ctx);
if (node->accept (&ispb_visitor) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_interface_cs::"
+ "be_visitor_interface_ss::"
"generate_proxy_classes - "
"codegen for Base Proxy Broker class failed\n"),
-1);
}
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl;
+ << "// " << __FILE__ << ":" << __LINE__;
- // Proxy Broker Factory Function.
- *os << be_nl
- << node->full_base_proxy_broker_name () << " *" << be_nl
+ // Proxy Broker Factory Function.
+ *os << be_nl << be_nl
+ << "TAO::Collocation_Proxy_Broker *" << be_nl
<< node->flat_client_enclosing_scope ()
<< node->base_proxy_broker_name ()
- << "_Factory_function (CORBA::Object_ptr obj)" << be_nl
+ << "_Factory_function (CORBA::Object_ptr)" << be_nl
<< "{" << be_idt_nl
- << "ACE_UNUSED_ARG (obj);" << be_nl
- << "return ::"
+ << "return" << be_idt_nl
+ << "::"
<< node->full_strategized_proxy_broker_name ()
<< "::" <<"the"
<< node->strategized_proxy_broker_name ()
- << "();" << be_uidt_nl
+ << " ();" << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
// Proxy Broker Function Pointer Initializer.
@@ -625,22 +636,25 @@ be_visitor_interface_ss::generate_proxy_classes (be_interface *node)
<< node->flat_client_enclosing_scope ()
<< node->base_proxy_broker_name ()
<< "_Factory_function;"
- << be_uidt_nl
+ << be_uidt_nl
<< be_nl
<< "return 0;" << be_uidt_nl
<< "}" << be_nl << be_nl;
-
- *os << "static int " << node->flat_client_enclosing_scope ()
+ *os << "static int" << be_nl
+ << node->flat_client_enclosing_scope ()
<< node->base_proxy_broker_name ()
- << "_Stub_Factory_Initializer_Scarecrow = " << be_idt_nl
+ << "_Stub_Factory_Initializer_Scarecrow =" << be_idt_nl
<< node->flat_client_enclosing_scope ()
<< node->base_proxy_broker_name ()
- << "_Factory_Initializer (ACE_reinterpret_cast (size_t, "
+ << "_Factory_Initializer (" << be_idt << be_idt_nl
+ << "ACE_reinterpret_cast (" << be_idt << be_idt_nl
+ << "size_t," << be_nl
<< node->flat_client_enclosing_scope ()
<< node->base_proxy_broker_name ()
- << "_Factory_Initializer));"
- << be_uidt_nl << be_nl;
+ << "_Factory_Initializer" << be_uidt_nl
+ << ")" << be_uidt << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl << be_nl;
}
@@ -709,7 +723,7 @@ be_visitor_interface_ss::generate_local_name (be_interface *node)
}
ACE_CString
-be_visitor_interface_ss::generate_full_skel_name (be_interface *node)
+be_visitor_interface_ss::generate_full_skel_name (be_interface *node)
{
return ACE_CString (node->full_skel_name ());
}
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp
index 2349632edd5..8d4031086ae 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_ch.cpp
@@ -40,169 +40,162 @@ be_visitor_interface_smart_proxy_ch::~be_visitor_interface_smart_proxy_ch (void)
int be_visitor_interface_smart_proxy_ch::visit_interface (be_interface *node)
{
- if (be_global->gen_smart_proxies ())
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_type *bt;
+
+ if (this->ctx_->alias ())
{
- TAO_OutStream *os = this->ctx_->stream ();
- be_type *bt;
+ bt = this->ctx_->alias ();
+ }
+ else
+ {
+ bt = node;
+ }
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
- else
- {
- bt = node;
- }
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+
+ *os << "class " << be_global->stub_export_macro ()<< " "
+ << "TAO_" << node->flat_name ()
+ << "_Default_Proxy_Factory" << be_nl
+ << "{" << be_nl
+ << "public:" << be_idt_nl << be_nl
+ << "TAO_" << node->flat_name ()
+ << "_Default_Proxy_Factory (int permanent = 1);"
+ << be_nl
+ <<"// <permanent> signifies that the proxy factory will remain" <<be_nl
+ <<"// registered with the Proxy Factory Adapter until the program"<<be_nl
+ <<"// terminates. That is, it will be a one-shot factory for the "<<be_nl
+ <<"// interface. If this value is set to 0, then the factory will"<<be_nl
+ <<"// be unregistered after the first invocation providing the "<<be_nl
+ << "// flexibility of having a different smart proxy per object "<<be_nl
+ <<"// instead of per interface."<<be_nl<< be_nl
+ << "virtual ~TAO_" << node->flat_name ()
+ << "_Default_Proxy_Factory (void);" << be_nl << be_nl
+ << "virtual "<< node->local_name ()
+ << "_ptr create_proxy (" << be_idt << be_idt_nl
+ << node->local_name ()
+ << "_ptr proxy" << be_nl
+ << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "};\n\n";
+
+ *os << "class " << be_global->stub_export_macro ()<< " "
+ << "TAO_" << node->flat_name ()
+ << "_Proxy_Factory_Adapter" << be_nl
+ << "{" << be_nl
+ << "public:" << be_idt_nl << be_nl
+ << "friend class TAO_Singleton<TAO_" << node->flat_name ()
+ << "_Proxy_Factory_Adapter, TAO_SYNCH_RECURSIVE_MUTEX>;" << be_nl << be_nl
+ << "void register_proxy_factory (" << be_idt << be_idt_nl
+ << "TAO_" << node->flat_name () << "_Default_Proxy_Factory *df,"<< be_nl
+ << "int one_shot_factory = 1" << be_nl
+ << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl
+ << "void unregister_proxy_factory (" << be_idt << be_idt_nl
+ << "ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl
+ << node->local_name ()
+ << "_ptr create_proxy (" << be_idt << be_idt_nl
+ << node->local_name () << "_ptr proxy" << be_nl
+ << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl << be_nl
+ << "protected:" << be_idt_nl
+ << "TAO_" << node->flat_name ()
+ << "_Proxy_Factory_Adapter (void);" << be_nl
+ << "~TAO_" << node->flat_name ()
+ << "_Proxy_Factory_Adapter (void);" << be_nl
+ << "TAO_" << node->flat_name ()
+ << "_Proxy_Factory_Adapter &operator= (" << be_idt << be_idt_nl
+ << "const TAO_" << node->flat_name ()
+ << "_Proxy_Factory_Adapter &" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "TAO_" << node->flat_name ()
+ << "_Default_Proxy_Factory *proxy_factory_;" << be_nl
+ << "int one_shot_factory_;" << be_nl
+ << "int disable_factory_;"<<be_nl
+ << "TAO_SYNCH_RECURSIVE_MUTEX lock_;" << be_uidt_nl
+ << "};";
+
+ *os << be_nl << be_nl
+ << "typedef TAO_Singleton<TAO_"<<node->flat_name ()
+ << "_Proxy_Factory_Adapter, TAO_SYNCH_RECURSIVE_MUTEX> TAO_"
+ << node->flat_name ()<< "_PROXY_FACTORY_ADAPTER;"<<be_nl << be_nl;
+
+ *os << "class " << be_global->stub_export_macro ()<< " "
+ << "TAO_"<< node->flat_name ()
+ << "_Smart_Proxy_Base" << be_idt_nl
+ << ": public virtual "
+ << bt->nested_type_name (this->ctx_->scope ());
+
+
+ if (node->n_inherits () > 0)
+ {
+ long i;
- *os << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- *os << "class " << be_global->stub_export_macro ()<< " "
- << "TAO_" << node->flat_name ()
- << "_Default_Proxy_Factory" << be_nl
- << "{" << be_nl
- << "public:" << be_idt_nl << be_nl
- << "TAO_" << node->flat_name ()
- << "_Default_Proxy_Factory (int permanent = 1);"
- << be_nl
- <<"// <permanent> signifies that the proxy factory will remain" <<be_nl
- <<"// registered with the Proxy Factory Adapter until the program"<<be_nl
- <<"// terminates. That is, it will be a one-shot factory for the "<<be_nl
- <<"// interface. If this value is set to 0, then the factory will"<<be_nl
- <<"// be unregistered after the first invocation providing the "<<be_nl
- << "// flexibility of having a different smart proxy per object "<<be_nl
- <<"// instead of per interface."<<be_nl<< be_nl
- << "virtual ~TAO_" << node->flat_name ()
- << "_Default_Proxy_Factory (void);" << be_nl << be_nl
- << "virtual "<< node->local_name ()
- << "_ptr create_proxy (" << be_idt << be_idt_nl
- << node->local_name ()
- << "_ptr proxy" << be_nl
- << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl
- << "};\n\n";
-
- *os << "class " << be_global->stub_export_macro ()<< " "
- << "TAO_" << node->flat_name ()
- << "_Proxy_Factory_Adapter" << be_nl
- << "{" << be_nl
- << "public:" << be_idt_nl << be_nl
- << "friend class TAO_Singleton<TAO_" << node->flat_name ()
- << "_Proxy_Factory_Adapter, TAO_SYNCH_RECURSIVE_MUTEX>;" << be_nl << be_nl
- << "void register_proxy_factory (" << be_idt << be_idt_nl
- << "TAO_" << node->flat_name () << "_Default_Proxy_Factory *df,"<< be_nl
- << "int one_shot_factory = 1" << be_nl
- << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl
- << "void unregister_proxy_factory (" << be_idt << be_idt_nl
- << "ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl
- << node->local_name ()
- << "_ptr create_proxy (" << be_idt << be_idt_nl
- << node->local_name () << "_ptr proxy" << be_nl
- << "ACE_ENV_ARG_DECL_WITH_DEFAULTS" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl << be_nl
- << "protected:" << be_idt_nl
- << "TAO_" << node->flat_name ()
- << "_Proxy_Factory_Adapter (void);" << be_nl
- << "~TAO_" << node->flat_name ()
- << "_Proxy_Factory_Adapter (void);" << be_nl
- << "TAO_" << node->flat_name ()
- << "_Proxy_Factory_Adapter &operator= (" << be_idt << be_idt_nl
- << "const TAO_" << node->flat_name ()
- << "_Proxy_Factory_Adapter &" << be_uidt_nl
- << ");" << be_uidt_nl
- << "TAO_" << node->flat_name ()
- << "_Default_Proxy_Factory *proxy_factory_;" << be_nl
- << "int one_shot_factory_;" << be_nl
- << "int disable_factory_;"<<be_nl
- << "TAO_SYNCH_RECURSIVE_MUTEX lock_;" << be_uidt_nl
- << "};";
-
- *os << be_nl << be_nl
- << "typedef TAO_Singleton<TAO_"<<node->flat_name ()
- << "_Proxy_Factory_Adapter, TAO_SYNCH_RECURSIVE_MUTEX> TAO_"
- << node->flat_name ()<< "_PROXY_FACTORY_ADAPTER;"<<be_nl << be_nl;
-
- *os << "class " << be_global->stub_export_macro ()<< " "
- << "TAO_"<< node->flat_name ()
- << "_Smart_Proxy_Base" << be_idt_nl
- << ": public virtual "
- << bt->nested_type_name (this->ctx_->scope ());
-
-
- if (node->n_inherits () > 0)
+ for (i = 0; i < node->n_inherits (); i++)
{
- long i;
+ be_interface *inherited =
+ be_interface::narrow_from_decl (node->inherits ()[i]);
+ be_decl *scope = 0;
- for (i = 0; i < node->n_inherits (); i++)
+ if (inherited->is_nested ())
{
- be_interface *inherited =
- be_interface::narrow_from_decl (node->inherits ()[i]);
- be_decl *scope = 0;
-
- if (inherited->is_nested ())
- {
- // Inherited node is used in the scope of "node" node.
- scope =
- be_scope::narrow_from_scope (node->defined_in ())->decl ();
- }
-
- *os << "," << be_nl << " public virtual ";
- *os << inherited->nested_sp_type_name (scope,
- "_Smart_Proxy_Base");
+ // Inherited node is used in the scope of "node" node.
+ scope =
+ be_scope::narrow_from_scope (node->defined_in ())->decl ();
}
- }
- else
- {
- *os << "," << be_nl << " public virtual TAO_Smart_Proxy_Base";
- }
- *os << be_uidt_nl;
-
- *os << "{" << be_nl
- << "public:" << be_idt_nl
- << "TAO_"<< node->flat_name () << "_Smart_Proxy_Base (void);"
- << be_nl
- // Just to keep Old g++ complier (version: 2.7.2.3) happy it's
- // necesssary to declare and define the destructor explicitly.
- << "~TAO_"<< node->flat_name () << "_Smart_Proxy_Base (void);"
- << be_nl
- // This method will delegate this method to the <base_proxy_>
- // member of the smart proxy and so the smart proxy's (nil)
- // stubobj will not be returned.
- << "virtual TAO_Stub *_stubobj (void) const;"
- << be_nl
- // Another version of the above method..
- << "virtual TAO_Stub *_stubobj (void);"
- << be_uidt_nl;
-
- // Generate code for the interface definition by traversing thru the
- // elements of its scope. We depend on the front-end to have made sure
- // that only legal syntactic elements appear in our scope.
- os->indent ();
-
- if (this->visit_scope (node) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_interface_ch::"
- "visit_interface - "
- "codegen for scope failed\n"),
- -1);
+ *os << "," << be_nl << " public virtual ";
+ *os << inherited->nested_sp_type_name (scope,
+ "_Smart_Proxy_Base");
}
-
- *os << "protected:" << be_idt_nl
- << "::" << node->full_name ()
- << "_ptr get_proxy (void);" << be_nl
- << "::" << node->full_name () << "_var proxy_;"
- << be_uidt_nl
- << "};\n\n";
}
else
{
- ACE_UNUSED_ARG (node);
+ *os << "," << be_nl << " public virtual TAO_Smart_Proxy_Base";
}
+ *os << be_uidt_nl;
+
+ *os << "{" << be_nl
+ << "public:" << be_idt_nl
+ << "TAO_"<< node->flat_name () << "_Smart_Proxy_Base (void);"
+ << be_nl
+ // Just to keep Old g++ complier (version: 2.7.2.3) happy it's
+ // necesssary to declare and define the destructor explicitly.
+ << "~TAO_"<< node->flat_name () << "_Smart_Proxy_Base (void);"
+ << be_nl
+ // This method will delegate this method to the <base_proxy_>
+ // member of the smart proxy and so the smart proxy's (nil)
+ // stubobj will not be returned.
+ << "virtual TAO_Stub *_stubobj (void) const;"
+<< be_nl
+// Another version of the above method..
+<< "virtual TAO_Stub *_stubobj (void);"
+ << be_uidt_nl;
+
+ // Generate code for the interface definition by traversing thru the
+ // elements of its scope. We depend on the front-end to have made sure
+ // that only legal syntactic elements appear in our scope.
+ os->indent ();
+
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_interface_ch::"
+ "visit_interface - "
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ *os << "protected:" << be_idt_nl
+ << "::" << node->full_name ()
+ << "_ptr get_proxy (void);" << be_nl
+ << "::" << node->full_name () << "_var proxy_;"
+ << be_uidt_nl
+ << "};\n\n";
+
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp
index 23eea45140f..f2b65b7f3d3 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/smart_proxy_cs.cpp
@@ -17,8 +17,8 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_interface,
- smart_proxy_cs,
+ACE_RCSID (be_visitor_interface,
+ smart_proxy_cs,
"$Id$")
// ************************************************************
@@ -43,9 +43,7 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node)
if (be_global->gen_smart_proxies ())
{
-
TAO_OutStream *os = this->ctx_->stream ();
-
this->ctx_->node (node);
os->indent ();
@@ -88,7 +86,7 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node)
<< "{" << be_nl
<< "}";
- *os << be_nl << be_nl
+ *os << be_nl << be_nl
<< node->full_name () << "_ptr" << be_nl << be_uidt << be_uidt;
*os << scope->full_name ();
@@ -106,7 +104,7 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node)
<< "return proxy;" << be_uidt_nl
<< "}";
- *os << be_nl << be_nl
+ *os << be_nl << be_nl
<< scope->full_name ();
// Only if there exists any nesting "::" is needed!
@@ -138,7 +136,7 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node)
<< node->flat_name () << "_Proxy_Factory_Adapter (void)" << be_nl
<< "{" << be_idt_nl
<< "// Making sure the factory which the adapter"
- << " has is destroyed with it."
+ << " has is destroyed with it."
<< be_nl
<< "if (this->proxy_factory_ != 0)" << be_idt_nl
<< "{" << be_idt_nl
@@ -187,7 +185,7 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node)
*os << "::";
*os << "TAO_"<< node->flat_name ()
- << "_Proxy_Factory_Adapter::unregister_proxy_factory ("
+ << "_Proxy_Factory_Adapter::unregister_proxy_factory ("
<< be_idt << be_idt_nl
<< "ACE_ENV_SINGLE_ARG_DECL_NOT_USED" << be_uidt_nl
<< ")" << be_uidt_nl
@@ -201,10 +199,10 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node)
<< ");" <<be_uidt_nl << be_nl
<< "if (this->one_shot_factory_ == 1)" << be_idt_nl
<< "{" << be_idt_nl
- << "this->disable_factory_ = 1;" << be_uidt_nl
+ << "this->disable_factory_ = 1;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl
<< "if ("
- << "this->one_shot_factory_ == 0 && this->proxy_factory_ != 0)"
+ << "this->one_shot_factory_ == 0 && this->proxy_factory_ != 0)"
<< be_idt_nl
<< "{" << be_idt_nl
<< "delete "
@@ -338,34 +336,11 @@ int be_visitor_interface_smart_proxy_cs::visit_interface (be_interface *node)
<< "TAO_"<< node->flat_name ()
<<"_PROXY_FACTORY_ADAPTER::instance ()->unregister_proxy_factory ();"
<< be_nl << "this->proxy_ = " << "::" << node->full_name ()
- << "::_unchecked_narrow (this->base_proxy_.in ());"
+ << "::_narrow (this->base_proxy_.in ());"
<< be_uidt_nl
<< "}" << be_uidt_nl
<< "return this->proxy_.in ();" << be_uidt_nl
<< "}" << be_nl << be_nl;
-
- os->indent ();
- *os << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl<<"defined (ACE_HAS_GNU_REPO)"<<be_uidt_nl
- << "template class TAO_Singleton<";
- *os << scope->full_name ();
-
- // Only if there exists any nesting "::" is needed!
- if (node->is_nested ())
- *os << "::";
- *os <<"TAO_" <<node->flat_name ()
- << "_Proxy_Factory_Adapter, TAO_SYNCH_RECURSIVE_MUTEX >;"<<be_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)"
- << be_nl
- << "#pragma instantiate TAO_Singleton<";
- *os << scope->full_name ();
-
- // Only if there exists any nesting "::" is needed!
- if (node->is_nested ())
- *os << "::";
- *os << "TAO_"<<node->flat_name ()
- << "_Proxy_Factory_Adapter, TAO_SYNCH_RECURSIVE_MUTEX>"<<be_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */"<<be_nl<<be_nl;
}
else
{
@@ -381,4 +356,3 @@ int be_visitor_interface_smart_proxy_cs::visit_component (
{
return this->visit_interface (node);
}
-
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp
index d172186b094..eecac020fa6 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_sh.cpp
@@ -2,8 +2,8 @@
// $Id$
//
-ACE_RCSID (be_visitor_interface,
- base_proxy_broker_sh,
+ACE_RCSID (be_visitor_interface,
+ base_proxy_broker_sh,
"$Id$")
be_visitor_interface_strategized_proxy_broker_sh::
@@ -24,13 +24,10 @@ be_visitor_interface_strategized_proxy_broker_sh::visit_interface (
be_interface *node
)
{
-
TAO_OutStream *os = this->ctx_->stream ();
- // Generate the class declaration.
- os->indent ();
*os << be_nl << be_nl
- << "///////////////////////////////////////////////////////////////////////"
+ << "///////////////////////////////////////////////////////////////////////"
<< be_nl
<< "// Strategized Proxy Broker Declaration " << be_nl
<< "//" << be_nl << be_nl;
@@ -39,55 +36,46 @@ be_visitor_interface_strategized_proxy_broker_sh::visit_interface (
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
*os << "class " << be_global->skel_export_macro () << " "
- << node->strategized_proxy_broker_name () << " : public virtual "
- << "::" << node->full_base_proxy_broker_name () << be_nl << "{"
+ << node->strategized_proxy_broker_name () << be_idt_nl
+ << ": public virtual "
+ << "TAO::Collocation_Proxy_Broker" << be_uidt_nl << "{"
<< be_nl
- << "public: " << be_idt_nl;
+ << "public: " << be_idt;
// Constructor
- *os << node->strategized_proxy_broker_name () << " (void);" << be_nl << be_nl;
+ *os << be_nl
+ << node->strategized_proxy_broker_name () << " (void);";
// Destructor
- *os << "virtual ~" << node->strategized_proxy_broker_name () << " (void);"
- << be_nl << be_nl;
-
- // Accessor Method
- *os << "virtual " << "::" << node->full_base_proxy_impl_name () << " &"
- << "select_proxy (" << be_idt_nl;
+ *os << be_nl << be_nl
+ << "virtual ~" << node->strategized_proxy_broker_name () << " (void);";
- *os << "::" << node->full_name () << " *object" << be_nl
+ *os << be_nl << be_nl
+ << "TAO::Collocation_Strategy" << be_nl
+ << "get_strategy (" << be_idt << be_idt_nl
+ << "CORBA::Object_ptr obj" << be_nl
<< "ACE_ENV_ARG_DECL" << be_uidt_nl
- << ");" << be_uidt_nl << be_nl;
-
+ << ")" << be_nl
+ << "ACE_THROW_SPEC ((CORBA::SystemException));" << be_uidt;
- *os << "private:" << be_idt_nl
- << "// Helper methods that takes care to create the proxy" << be_nl
- << "// as soon as their use is necessary." << be_nl
- << "void create_proxy (" << be_idt_nl << "int collocation_strategy"
- << be_nl << "ACE_ENV_ARG_DECL"
- << be_uidt_nl << ");"
- << be_nl << be_nl
- << "// Caches the proxy implementations. The proxy implementation"
- << be_nl
- << "// are totally stateless, and those can be shared by all the"
- << be_nl
- << "// instances of a given IDL interface type." << be_nl
- << "::" << node->full_base_proxy_impl_name () << be_nl
- << "*proxy_cache_[TAO_Collocation_Strategies::CS_LAST];"
- << be_nl << be_nl
- << "TAO_SYNCH_MUTEX mutex_;" << be_nl;
-
- // Factory Function declaration.
- *os << "// This funxtion is used to get an handle to the unique instance"
- << be_nl
- << "// of the Strategized Proxy Broker that is available for a given"
- << be_nl
- << "// interface."
- << be_uidt_nl << be_nl;
+ *os << be_nl << be_nl
+ << "void" << be_nl
+ << "dispatch (" << be_idt << be_idt_nl
+ << "CORBA::Object_ptr obj," << be_nl
+ << "CORBA::Object_out forward_obj," << be_nl
+ << "TAO::Argument ** args," << be_nl
+ << "int num_args," << be_nl
+ << "const char * op," << be_nl
+ << "size_t op_len," << be_nl
+ << "TAO::Collocation_Strategy strategy" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ")" << be_nl
+ << "ACE_THROW_SPEC ((CORBA::Exception));";
- *os << "public:" << be_idt_nl
- << "static " << node->strategized_proxy_broker_name ()
- << " *the" << node->strategized_proxy_broker_name ()
+ *os << be_uidt_nl << be_nl
+ << "static " << node->strategized_proxy_broker_name ()
+ << " *" << be_nl
+ << "the" << node->strategized_proxy_broker_name ()
<< " (void);" << be_uidt_nl;
*os << "};";
@@ -107,4 +95,3 @@ int be_visitor_interface_strategized_proxy_broker_sh::visit_component (
{
return this->visit_interface (node);
}
-
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp
index 2d553173a64..ee5be9b7dfe 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp
@@ -2,8 +2,8 @@
// $Id$
//
-ACE_RCSID (be_visitor_interface,
- strategized_proxy_broker_ss,
+ACE_RCSID (be_visitor_interface,
+ strategized_proxy_broker_ss,
"$Id$")
be_visitor_interface_strategized_proxy_broker_ss::
@@ -31,7 +31,7 @@ be_visitor_interface_strategized_proxy_broker_ss::visit_interface (
os->indent ();
*os << be_nl
- << "///////////////////////////////////////////////////////////////////////"
+ << "///////////////////////////////////////////////////////////////////////"
<< be_nl
<< "// Strategized Proxy Broker Implementation" << be_nl
<< "//" << be_nl << be_nl;
@@ -41,153 +41,124 @@ be_visitor_interface_strategized_proxy_broker_ss::visit_interface (
*os << "// Factory function Implementation." << be_nl
<< node->full_strategized_proxy_broker_name ()
- << " *" << node->full_strategized_proxy_broker_name () << "::the"
+ << " *" << be_nl
+ << node->full_strategized_proxy_broker_name () << "::the"
<< node->strategized_proxy_broker_name ()
<< " (void)" << be_nl
<< "{" << be_idt_nl
- << "static " << node->full_strategized_proxy_broker_name ()
- << " strategized_proxy_broker;" << be_nl
+ << "static " << node->full_strategized_proxy_broker_name () << be_nl
+ << "strategized_proxy_broker;" << be_nl << be_nl
<< "return &strategized_proxy_broker;" << be_uidt_nl
<< "}" << be_nl << be_nl;
// Constructor Implementation.
*os << node->full_strategized_proxy_broker_name () << "::"
<< node->strategized_proxy_broker_name () << " (void)" << be_nl
- << "{" << be_idt_nl
- << "for (int i = 0; i < TAO_Collocation_Strategies::CS_LAST; ++i)"
- << be_idt_nl
- << "{" << be_idt_nl
- << "this->proxy_cache_[i] = 0;" << be_uidt_nl
- << "}"
- << be_uidt << be_uidt_nl
+ << "{" << be_nl
<< "}" << be_nl << be_nl;
// Destructor Implementation.
*os << node->full_strategized_proxy_broker_name () << "::~"
<< node->strategized_proxy_broker_name () << " (void)" << be_nl
- << "{" << be_idt_nl
- << "for (int i = 0; i < TAO_Collocation_Strategies::CS_LAST; ++i)"
- << be_idt_nl
- << "{" << be_idt_nl
- << "delete this->proxy_cache_[i];"
- << be_nl << be_nl
- << "// Hack to prevent bug mentioned in 1204. Refer to 1204"
- << be_nl
- << "// for details.."
- << be_nl
- << "this->proxy_cache_[i] = 0;"
- << be_uidt_nl
- << "}"
- << be_uidt << be_uidt_nl
+ << "{" << be_nl
<< "}" << be_nl << be_nl;
- // select_proxy impementation
- *os << node->full_base_proxy_impl_name () << "&" << be_nl
+ // get_strategy() impementation.
+ *os << "TAO::Collocation_Strategy" << be_nl
<<node->full_strategized_proxy_broker_name () << "::"
- << "select_proxy ("
- << be_idt << be_idt_nl
- << "::" << node->full_name () << " *object" << be_nl
- << "ACE_ENV_ARG_DECL"
- << be_uidt_nl
- << ")"
- << be_uidt_nl
- << "{"
- << be_idt_nl
- << "int strategy ="
- << be_idt_nl
- << "TAO_ORB_Core::collocation_strategy (object ACE_ENV_ARG_PARAMETER);"
- << be_uidt_nl
- << "ACE_CHECK_RETURN (*this->proxy_cache_[strategy]);"
- << be_nl << be_nl
- << "if (this->proxy_cache_[strategy] != 0)"
- << be_idt_nl
+ << "get_strategy (" << be_idt << be_idt_nl
+ << "CORBA::Object_ptr obj" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ")" << be_nl
+ << "ACE_THROW_SPEC ((CORBA::SystemException))" << be_uidt_nl
<< "{" << be_idt_nl
- << "return *this->proxy_cache_[strategy];" << be_uidt_nl
- << "}"
- << be_uidt_nl << be_nl
- << "this->create_proxy (strategy ACE_ENV_ARG_PARAMETER);"
- << be_nl
- << "ACE_CHECK_RETURN (*this->proxy_cache_[strategy]);"
- << be_nl << be_nl
- << "return *this->proxy_cache_[strategy];"
+ << "TAO::Collocation_Strategy strategy =" << be_idt_nl
+ << "TAO_ORB_Core::collocation_strategy (obj ACE_ENV_ARG_PARAMETER);"
<< be_uidt_nl
+ << "ACE_CHECK_RETURN (TAO::TAO_CS_REMOTE_STRATEGY);" << be_nl << be_nl
+ << "return strategy;" << be_uidt_nl
<< "}" << be_nl << be_nl;
// create_proxy implementation
- *os << "void " << be_nl
- <<node->full_strategized_proxy_broker_name () << "::"
- << "create_proxy ("
+ *os << "void" << be_nl
+ << node->full_strategized_proxy_broker_name () << "::"
+ << "dispatch (" << be_idt << be_idt_nl
+ << "CORBA::Object_ptr obj," << be_nl
+ << "CORBA::Object_out forward_obj," << be_nl
+ << "TAO::Argument ** args," << be_nl
+ << "int num_args," << be_nl
+ << "const char * op," << be_nl
+ << "size_t op_len," << be_nl
+ << "TAO::Collocation_Strategy strategy" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ")" << be_nl
+ << "ACE_THROW_SPEC ((CORBA::Exception))" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "TAO_Object_Adapter::Servant_Upcall servant_upcall ("
<< be_idt << be_idt_nl
- << "int strategy"
- << be_nl
- << "ACE_ENV_ARG_DECL"
- << be_uidt_nl
- << ")"
+ << "obj->_stubobj ()"
+ << "->servant_orb_var ()->orb_core ()"
<< be_uidt_nl
- << "{"
- << be_idt_nl
- << "ACE_GUARD (TAO_SYNCH_MUTEX, guard, this->mutex_);"
- << be_nl << be_nl
- << "if (this->proxy_cache_[strategy] == 0)"
- << be_idt_nl
- << "{"
- << be_idt_nl
- << "switch (strategy)"
- << be_idt_nl
- << "{" << be_nl;
-
- if (be_global->gen_thru_poa_collocation ())
- {
- *os << "case TAO_Collocation_Strategies::CS_THRU_POA_STRATEGY:"
- << be_idt_nl
- << "ACE_NEW_THROW_EX ("
- << be_idt << be_idt_nl
- << "this->proxy_cache_[strategy]," << be_nl
- << node->full_thru_poa_proxy_impl_name () << "," << be_nl
- << "CORBA::NO_MEMORY ()"
- << be_uidt << be_uidt_nl
- << ");" << be_nl
- << "ACE_CHECK;" << be_nl
- << "break;"
- << be_nl << be_uidt_nl;
- }
-
- if (be_global->gen_direct_collocation ())
- {
- *os << "case TAO_Collocation_Strategies::CS_DIRECT_STRATEGY:"
- << be_idt_nl
- << "ACE_NEW_THROW_EX ("
- << be_idt << be_idt_nl
- << "this->proxy_cache_[strategy]," << be_nl
- << node->full_direct_proxy_impl_name () << "," << be_nl
- << "CORBA::NO_MEMORY ()"
- << be_uidt << be_uidt_nl
- << ");" << be_nl
- << "ACE_CHECK;" << be_nl
- << "break;"
- << be_nl << be_uidt_nl;
- }
-
- *os << "case TAO_Collocation_Strategies::CS_REMOTE_STRATEGY:" << be_nl
- << "default:"
- << be_idt_nl
- << "ACE_NEW_THROW_EX ("
+ << ");" << be_uidt_nl << be_nl
+ << "TAO_Collocated_Skeleton collocated_skel;" << be_nl
+ << "TAO_Abstract_ServantBase *servant = 0;" << be_nl << be_nl
+ << "if (strategy == TAO::TAO_CS_THRU_POA_STRATEGY)" << be_idt_nl
+ << "{" << be_idt_nl
+ << "servant_upcall.prepare_for_upcall (" << be_idt << be_idt_nl
+ << "obj->_stubobj ()->object_key ()," << be_nl
+ << "op," << be_nl
+ << "forward_obj" << be_nl
+ << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "ACE_CHECK;" << be_nl << be_nl
+ << "servant_upcall.pre_invoke_collocated_request ("
<< be_idt << be_idt_nl
- << "this->proxy_cache_[strategy]," << be_nl
- << "::" << node->full_remote_proxy_impl_name () << "," << be_nl
- << "CORBA::NO_MEMORY ()"
- << be_uidt << be_uidt_nl
- << ");" << be_nl
- << "ACE_CHECK;" << be_nl
- << "break;"
+ << "ACE_ENV_SINGLE_ARG_PARAMETER" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "ACE_CHECK;" << be_nl << be_nl
+ << "servant = servant_upcall.servant ();" << be_uidt_nl
+ << "}" << be_uidt_nl
+ << "else" << be_idt_nl
+ << "{" << be_idt_nl
+ << "servant = obj->_servant ();" << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
+ << "int status = servant->_find (op," << be_nl
+ << " collocated_skel," << be_nl
+ << " strategy," << be_nl
+ << " op_len);" << be_nl << be_nl
+ << "if (status == -1)" << be_idt_nl
+ << "{" << be_idt_nl
+ << "ACE_THROW (CORBA::BAD_OPERATION ());" << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
+ << "ACE_TRY" << be_idt_nl
+ << "{" << be_idt_nl
+ << "collocated_skel (servant," << be_nl
+ << " args," << be_nl
+ << " num_args" << be_nl
+ << " ACE_ENV_ARG_PARAMETER);" << be_nl
+ << "ACE_TRY_CHECK;" << be_uidt_nl
+ << "}" << be_uidt
+ << "\n#if (TAO_HAS_MINIMUM_CORBA == 0)" << be_nl
+ << "ACE_CATCH (PortableServer::ForwardRequest, forward_request)"
+ << be_idt_nl
+ << "{" << be_idt_nl
+ << "forward_obj =" << be_idt_nl
+ << "CORBA::Object::_duplicate (forward_request.forward_reference.in ());"
<< be_uidt_nl
- << "}"
- << be_uidt << be_uidt_nl
- << "}"
- << be_uidt << be_uidt_nl
- << "}" << be_nl;
-
- *os << be_nl
+ << "return;" << be_uidt_nl
+ << "}" << be_uidt
+ << "\n#else" << be_nl
+ << "ACE_CATCHANY" << be_idt_nl
+ << "{" << be_idt_nl
+ << "ACE_UNUSED_ARG (forward_obj);" << be_nl
+ << "ACE_RE_THROW;" << be_uidt_nl
+ << "}" << be_uidt
+ << "\n#endif /* TAO_HAS_MINIMUM_CORBA */" << be_nl
+ << "ACE_ENDTRY;" << be_nl
+ << "ACE_CHECK;" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
<< "//" << be_nl
<< "// End Strategized Proxy Broker Implementation" << be_nl
<< "///////////////////////////////////////////////////////////////////////";
@@ -195,10 +166,67 @@ be_visitor_interface_strategized_proxy_broker_ss::visit_interface (
return 0;
}
-int be_visitor_interface_strategized_proxy_broker_ss::visit_component (
+int
+be_visitor_interface_strategized_proxy_broker_ss::visit_component (
be_component *node
)
{
return this->visit_interface (node);
}
+/**
+ *
+ * The generated code from the following method should be
+ * removed. This is not used at all.
+ *
+ */
+void
+be_visitor_interface_strategized_proxy_broker_ss::gen_thru_poa_operations (
+ be_interface *node,
+ TAO_OutStream *os
+ )
+{
+ int index = 0;
+ AST_Decl *d = 0;
+
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ d = si.item ();
+
+ if (d->node_type () != AST_Decl::NT_op)
+ {
+ continue;
+ }
+
+ if (index != 0)
+ {
+ *os << "else ";
+ }
+
+ ++index;
+
+ *os << "if (ACE_OS::strcmp (op, \"" << d->local_name () << "\") == 0)"
+ << be_idt_nl
+ << "{" << be_idt_nl
+ << node->full_thru_poa_proxy_impl_name () << "::"
+ << d->local_name () << " (" << be_idt << be_idt_nl
+ << "obj," << be_nl
+ << "forward_obj," << be_nl
+ << "args," << be_nl
+ << "num_args" << be_nl
+ << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "ACE_TRY_CHECK;" << be_uidt_nl
+ << "}" << be_uidt_nl;
+ }
+}
+
+void
+be_visitor_interface_strategized_proxy_broker_ss::gen_direct_operations (
+ be_interface *,
+ TAO_OutStream *
+ )
+{
+}
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp
index 3e3441b252c..c83fc7cd61f 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_sh.cpp
@@ -2,8 +2,8 @@
// $Id$
//
-ACE_RCSID (be_visitor_interface,
- thru_poa_proxy_impl_sh,
+ACE_RCSID (be_visitor_interface,
+ thru_poa_proxy_impl_sh,
"$Id$")
be_visitor_interface_thru_poa_proxy_impl_sh::
@@ -28,9 +28,9 @@ be_visitor_interface_thru_poa_proxy_impl_sh::visit_interface (
TAO_OutStream *os = this->ctx_->stream ();
*os << be_nl
- << "///////////////////////////////////////////////////////////////////////"
+ << "///////////////////////////////////////////////////////////////////////"
<< be_nl
- << "// ThruPOA Impl. Declaration" << be_nl
+ << "// ThruPOA Proxy Impl. Declaration" << be_nl
<< "//" << be_nl << be_nl;
*os << "// TAO_IDL - Generated from" << be_nl
@@ -39,15 +39,14 @@ be_visitor_interface_thru_poa_proxy_impl_sh::visit_interface (
// Generate Class Declaration.
*os << "class " << be_global->skel_export_macro ()
<< " " << node->thru_poa_proxy_impl_name ();
- *os << " : " << be_idt_nl << "public virtual "
- << "::" << node->full_base_proxy_impl_name ()
- << "," << be_nl << "public virtual " << "TAO_ThruPOA_Object_Proxy_Impl";
+
+ idl_bool first_concrete = I_TRUE;
if (node->n_inherits () > 0)
{
AST_Interface *parent = 0;
- for (int i = 0; i < node->n_inherits (); i++)
+ for (int i = 0; i < node->n_inherits (); ++i)
{
parent = node->inherits ()[i];
@@ -56,34 +55,29 @@ be_visitor_interface_thru_poa_proxy_impl_sh::visit_interface (
continue;
}
- *os << "," << be_nl;
-
be_interface *inherited =
be_interface::narrow_from_decl (parent);
- *os << "public virtual ";
- *os << "::" << inherited->full_thru_poa_proxy_impl_name ();
- }
- }
-
- if (node->node_type () == AST_Decl::NT_component)
- {
- AST_Component *base =
- AST_Component::narrow_from_decl (node)->base_component ();
+ if (first_concrete)
+ {
+ *os << be_nl << " : " << be_idt << be_idt;
+ }
+ else
+ {
+ *os << "," << be_nl;
+ }
- if (base != 0)
- {
- be_interface *inherited =
- be_interface::narrow_from_decl (base);
+ first_concrete = I_FALSE;
- *os << "," << be_nl
- << "public virtual "
- << "::" << inherited->full_thru_poa_proxy_impl_name ();
+ *os << "public virtual ::"
+ << inherited->full_thru_poa_proxy_impl_name ();
}
}
- *os << be_uidt_nl;
- *os << "{" << be_nl << "public:" << be_idt_nl;
+ *os << be_uidt << be_uidt_nl;
+
+ *os << "{" << be_nl
+ << "public:" << be_idt_nl;
// Ctor
*os << node->thru_poa_proxy_impl_name () << " (void);" << be_nl << be_nl;
@@ -97,11 +91,30 @@ be_visitor_interface_thru_poa_proxy_impl_sh::visit_interface (
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) thru_poa_proxy_impl_sh::"
"visit_interface - "
- "codegen for scope failed\n"),
+ "codegen for scope failed\n"),
+ -1);
+ }
+
+ // Generate static collocated operations for operations of our base
+ // classes.
+ int status =
+ node->traverse_inheritance_graph (
+ be_interface::gen_colloc_op_decl_helper,
+ os
+ );
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "be_visitor_interface_thru_poa_proxy_impl_sh::"
+ "visit_interface - "
+ "inheritance graph traversal failed\n"),
-1);
}
- *os << be_uidt_nl << "};" << be_nl;
+ *os << be_uidt_nl
+ << "};" << be_nl;
+
*os << be_nl
<< "//" << be_nl
<< "// ThruPOA Proxy Impl. Declaration" << be_nl
@@ -111,7 +124,7 @@ be_visitor_interface_thru_poa_proxy_impl_sh::visit_interface (
}
-int
+int
be_visitor_interface_thru_poa_proxy_impl_sh::gen_abstract_ops_helper (
be_interface *node,
be_interface *base,
@@ -170,5 +183,3 @@ int be_visitor_interface_thru_poa_proxy_impl_sh::visit_component (
{
return this->visit_interface (node);
}
-
-
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp
index a9ab00f56be..baf41b38392 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/thru_poa_proxy_impl_ss.cpp
@@ -50,11 +50,12 @@ be_visitor_interface_thru_poa_proxy_impl_ss::visit_interface (
ACE_ERROR_RETURN ((LM_ERROR,
"be_visitor_interface_ss::"
"visit_interface - "
- "codegen for Base Proxy Broker class failed\n"),
+ "codegen for ThruPOA Proxy Impl failed\n"),
-1);
}
- *os << "//\n"
+ *os << be_nl << be_nl
+ << "//\n"
<< "// End ThruPOA Proxy Implementation\n"
<< "///////////////////////////////////////////////////////////////////////";
diff --git a/TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp b/TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp
index 63e3a5fee87..a830c622330 100644
--- a/TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp
@@ -47,8 +47,7 @@ be_visitor_module_ch::visit_module (be_module *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- *os << "TAO_NAMESPACE "
- << " " << node->local_name () << be_nl
+ *os << "namespace " << node->local_name () << be_nl
<< "{" << be_idt;
// Generate code for the module definition by traversing thru the
@@ -67,7 +66,7 @@ be_visitor_module_ch::visit_module (be_module *node)
<< "// " << __FILE__ << ":" << __LINE__ << be_nl;
*os << be_nl
- << "}\nTAO_NAMESPACE_CLOSE // module " << node->name ();
+ << "} // module " << node->name ();
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp b/TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp
index fc5e6743c73..7466b7aa0f6 100644
--- a/TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp
@@ -52,17 +52,17 @@ be_visitor_module_sh::visit_module (be_module *node)
// Now generate the class definition. The prefix POA_ is prepended to our
// name only if we are the outermost module.
- *os << "TAO_NAMESPACE ";
+ *os << "namespace ";
if (!node->is_nested ())
{
// We are outermost module.
- *os << " POA_" << node->local_name () << be_nl;
+ *os << "POA_" << node->local_name () << be_nl;
}
else
{
// We are inside another module.
- *os << " " << node->local_name () << be_nl;
+ *os << node->local_name () << be_nl;
}
*os << "{" << be_idt_nl;
@@ -79,7 +79,7 @@ be_visitor_module_sh::visit_module (be_module *node)
*os << be_uidt_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- *os << "}" << be_nl << "TAO_NAMESPACE_CLOSE // module "
+ *os << "} // module "
<< node->name ();
return 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_operation.cpp b/TAO/TAO_IDL/be/be_visitor_operation.cpp
index 550ce4341cb..07e7ef11fd9 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation.cpp
@@ -68,14 +68,11 @@
#include "be_visitor_operation/rettype_is.cpp"
#include "be_visitor_operation/rettype_assign_ss.cpp"
#include "be_visitor_operation/rettype_marshal_ss.cpp"
-#include "be_visitor_operation/rettype_post_invoke_cs.cpp"
#include "be_visitor_operation/rettype_post_upcall_ss.cpp"
#include "be_visitor_operation/rettype_return_cs.cpp"
-#include "be_visitor_operation/rettype_vardecl_cs.cpp"
#include "be_visitor_operation/rettype_vardecl_ss.cpp"
#include "be_visitor_operation/tie_sh.cpp"
#include "be_visitor_operation/tie_si.cpp"
-#include "be_visitor_operation/rettype_pre_invoke_cs.cpp"
// AMI
#include "be_visitor_operation/ami_ch.cpp"
@@ -89,8 +86,6 @@
#include "be_visitor_operation/smart_proxy_cs.cpp"
// Interceptors
-#include "be_visitor_operation/interceptors_ch.cpp"
-#include "be_visitor_operation/interceptors_cs.cpp"
#include "be_visitor_operation/interceptors_arglist.cpp"
#include "be_visitor_operation/interceptors_sh.cpp"
#include "be_visitor_operation/interceptors_ss.cpp"
@@ -99,9 +94,7 @@
#include "be_visitor_operation/interceptors_result.cpp"
// Collocation
-#include "be_visitor_operation/base_proxy_impl_ch.cpp"
#include "be_visitor_operation/proxy_impl_xh.cpp"
-#include "be_visitor_operation/remote_proxy_impl_cs.cpp"
#include "be_visitor_operation/thru_poa_proxy_impl_ss.cpp"
#include "be_visitor_operation/direct_proxy_impl_ss.cpp"
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp
index 2158f9fc565..d49e70e859f 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/amh_rh_ss.cpp
@@ -219,7 +219,8 @@ be_visitor_amh_rh_operation_ss::marshal_params (be_operation *node)
-1);
}
- *os << be_uidt_nl << "))" << be_nl;
+ *os << be_uidt_nl << "))" << be_nl
+ << "{" << be_idt_nl;
// If marshaling fails, raise exception.
if (this->gen_raise_exception (0,
@@ -231,7 +232,8 @@ be_visitor_amh_rh_operation_ss::marshal_params (be_operation *node)
-1);
}
- *os << be_uidt_nl;
+ *os << be_uidt_nl
+ << "}" << be_uidt_nl;
}
return 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp
index 1078d5da757..ece5d802667 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/ami_cs.cpp
@@ -1,6 +1,5 @@
//
// $Id$
-//
// ============================================================================
//
@@ -71,6 +70,18 @@ be_visitor_operation_ami_cs::visit_operation (be_operation *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
+ // Retrieve the operation return type.
+ be_type *bt = be_type::narrow_from_decl (node->return_type ());
+
+ if (!bt)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_operation_ami_cs::"
+ "visit_operation - "
+ "Bad return type\n"),
+ -1);
+ }
+
// Generate the return type mapping. Return type is simply void.
*os << be_nl << be_nl
<< "void" << be_nl;
@@ -131,13 +142,10 @@ be_visitor_operation_ami_cs::visit_operation (be_operation *node)
if (be_global->exception_support ())
{
- *os << be_nl
+ *os << be_nl
<< "ACE_DECLARE_NEW_CORBA_ENV;";
}
- be_type *bt =
- be_type::narrow_from_decl (node->arguments ()->return_type ());
-
// Generate any pre stub info if and only if none of our parameters is of the
// native type.
if (!node->has_native ())
@@ -159,7 +167,10 @@ be_visitor_operation_ami_cs::visit_operation (be_operation *node)
if (node->has_native ()) // native exists => no stub
{
- int status = this->gen_raise_exception (bt,
+ be_predefined_type bpt (AST_PredefinedType::PT_void,
+ 0);
+
+ int status = this->gen_raise_exception (&bpt,
"CORBA::MARSHAL",
"");
@@ -174,45 +185,122 @@ be_visitor_operation_ami_cs::visit_operation (be_operation *node)
}
else
{
- // Generate code that retrieves the underlying stub object and then
- // invokes do_static_call on it.
- *os << be_nl
- << "TAO_Stub *istub = this->_stubobj ();" << be_nl << be_nl
- << "if (istub == 0)" << be_idt_nl
- << "{" << be_idt_nl;
+ *os << "if (!this->is_evaluated ())" << be_idt_nl
+ << "{" << be_idt_nl
+ << "ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this);"
+ << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl;
- // If the stub object was bad, then we raise a system exception.
- if (this->gen_raise_exception (bt, "CORBA::INV_OBJREF",
- "") == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_ami_cs::"
- "visit_operation - "
- "codegen for checking exception failed\n"),
- -1);
+ *os << "if (this->the_TAO_" << parent->local_name ()
+ << "_Proxy_Broker_ == 0)" << be_idt_nl
+ << "{" << be_idt_nl
+ << parent->flat_name () << "_setup_collocation ("
+ << be_idt << be_idt_nl
+ << "this->ACE_NESTED_CLASS (CORBA, Object)::_is_collocated ()"
+ << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "}" << be_uidt;
+ }
- }
+ const char *lname = node->local_name ()->get_string ();
+ long opname_len = ACE_OS::strlen (lname);
+ ACE_CString opname;
+ int nargs = node->argument_count ();
- *os << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
+ *os << be_nl<< be_nl
+ << "TAO::Arg_Traits<";
+
+ this->gen_arg_template_param_name (bt,
+ os);
- // Generate the code for marshaling in the parameters and transmitting
- // them.
- if (this->gen_marshal_and_invoke (node, bt) == -1)
+ *os << ">::ret_val _tao_retval;";
+
+ // Check if we are an attribute node in disguise.
+ if (this->ctx_->attribute ())
+ {
+ // Declare return type helper class.
+
+ // If we are a attribute node, add the length of the operation
+ // name.
+ opname_len += 5;
+
+ // Count the return value.
+ // Now check if we are a "get" or "set" operation.
+ if (node->nmembers () == 1)
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_ami_cs::"
- "visit_operation - "
- "codegen for marshal and invoke failed\n"),
- -1);
+ opname = "_set_";
+ }
+ else
+ {
+ opname = "_get_";
+ }
+ }
+
+ opname += lname;
+ // Declare the argument helper classes.
+ this->gen_stub_body_arglist (node, os, I_TRUE);
+
+ *os << be_nl << be_nl
+ << "TAO::Argument *_tao_signature [] =" << be_idt_nl
+ << "{" << be_idt_nl
+ << "&_tao_retval";
+
+ AST_Argument *arg = 0;
+
+ for (UTL_ScopeActiveIterator arg_list_iter (node, UTL_Scope::IK_decls);
+ ! arg_list_iter.is_done ();
+ arg_list_iter.next ())
+ {
+ arg = AST_Argument::narrow_from_decl (arg_list_iter.item ());
+
+ if (arg->direction () == AST_Argument::dir_OUT)
+ {
+ nargs--;
+ continue;
}
+ *os << "," << be_nl
+ << "&_tao_" << arg->local_name ();
+ }
+
+ *os << be_uidt_nl
+ << "};" << be_uidt;
+
+ be_interface *intf = be_interface::narrow_from_decl (parent);
+
+ *os << be_nl << be_nl
+ << "TAO::Asynch_Invocation_Adapter _tao_call (" << be_idt << be_idt_nl
+ << "this," << be_nl
+ << "_tao_signature," << be_nl
+ << nargs + 1 << "," << be_nl
+ << "\"" << opname.fast_rep () << "\"," << be_nl
+ << opname_len << "," << be_nl
+ << "this->the" << intf->base_proxy_broker_name () << "_"
+ << be_uidt_nl
+ << ");" << be_uidt;
+
+ *os << be_nl << be_nl
+ << "_tao_call.invoke (" << be_idt << be_idt_nl
+ << "ami_handler," << be_nl
+ << "&";
+
+ if (parent->is_nested ())
+ {
+ be_decl *gparent =
+ be_scope::narrow_from_scope (parent->defined_in ())->decl ();
+
+ *os << gparent->name () << "::";
+ }
- // No return values.
- *os << be_nl << "return;";
- } // end of if (!native)
+ *os << "AMI_" << parent->local_name () << "Handler::"
+ << opname.fast_rep () + (this->ctx_->attribute () != 0)
+ << "_reply_stub" << be_nl
+ << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "ACE_CHECK;";
- *os << be_uidt_nl << "}";
+ *os << be_uidt_nl
+ << "}";
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp
index daba6c407e4..2f8525957e1 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp
@@ -18,8 +18,8 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_operation,
- ami_exception_holder_operation_cs,
+ACE_RCSID (be_visitor_operation,
+ ami_exception_holder_operation_cs,
"$Id$")
// ************************************************************
@@ -69,7 +69,7 @@ be_visitor_operation_ami_exception_holder_operation_cs::visit_operation (
*os << "void " << be_nl;
// Get the scope name.
- be_decl *parent =
+ be_decl *parent =
be_scope::narrow_from_scope (node->defined_in ())->decl ();
if (parent == 0)
@@ -85,7 +85,7 @@ be_visitor_operation_ami_exception_holder_operation_cs::visit_operation (
}
be_interface *parent_interface = be_interface::narrow_from_decl (parent);
- AST_Decl::NodeType nt =
+ AST_Decl::NodeType nt =
parent_interface->defined_in ()->scope_node_type ();
if (parent_interface->is_nested () && nt == AST_Decl::NT_module)
@@ -145,12 +145,12 @@ be_visitor_operation_ami_exception_holder_operation_cs::visit_operation (
// Don't do anything if the exception list is empty.
if (node->exceptions ())
{
- *os << "static TAO_Exception_Data " << "exceptions_data [] = " << be_nl;
+ *os << "static TAO::Exception_Data " << "exceptions_data [] = " << be_nl;
*os << "{" << be_idt_nl;
int excep_count = 0;
- AST_Decl *d = 0;
+ be_exception *ex = 0;
// Initialize an iterator to iterate thru the exception list.
// Continue until each element is visited.
@@ -158,12 +158,13 @@ be_visitor_operation_ami_exception_holder_operation_cs::visit_operation (
for (UTL_ExceptlistActiveIterator ei (node->exceptions ());
!ei.is_done ();)
{
- d = ei.item ();
+ ex = be_exception::narrow_from_decl (ei.item ());
*os << "{" << be_idt_nl
- << "\"" << d->repoID () << "\"," << be_nl;
+ << "\"" << ex->repoID () << "\"," << be_nl;
// Allocator method.
- *os << d->name () << "::_alloc" << be_uidt_nl
+ *os << ex->name () << "::_alloc," << be_nl
+ << ex->tc_name () << be_uidt_nl
<< "}";
++excep_count;
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp
index b9644f1b5f1..09e8092875e 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp
@@ -51,7 +51,6 @@ be_visitor_operation_arglist::visit_operation (be_operation *node)
switch (this->ctx_->state ())
{
case TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XH:
- case TAO_CodeGen::TAO_OPERATION_ARGLIST_BASE_PROXY_IMPL_CH:
case TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XS:
*os << "CORBA::Object *_collocated_tao_target_";
@@ -116,7 +115,6 @@ be_visitor_operation_arglist::visit_operation (be_operation *node)
case TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XH:
*os << ";";
break;
- case TAO_CodeGen::TAO_OPERATION_ARGLIST_BASE_PROXY_IMPL_CH:
case TAO_CodeGen::TAO_OPERATION_ARGLIST_SH:
// Each method is pure virtual in the server header.
*os << " = 0;";
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp b/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp
index bf614658014..527d3d27916 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp
@@ -160,24 +160,12 @@ be_visitor_operation_argument::visit_argument (be_argument *node)
switch (this->ctx_->state ())
{
- case TAO_CodeGen::TAO_OPERATION_ARG_PRE_INVOKE_CS:
- {
- be_visitor_args_pre_invoke_cs visitor (&ctx);
- status = node->accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_OPERATION_ARG_INVOKE_CS:
{
be_visitor_args_invoke_cs visitor (&ctx);
status = node->accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_OPERATION_ARG_POST_INVOKE_CS:
- {
- be_visitor_args_post_invoke_cs visitor (&ctx);
- status = node->accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_OPERATION_ARG_DECL_SS:
{
be_visitor_args_vardecl_ss visitor (&ctx);
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp
index 62ba04ab3ec..576364a450c 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/direct_proxy_impl_ss.cpp
@@ -1,7 +1,7 @@
// $Id$
-ACE_RCSID (be_visitor_operation,
- direct_proxy_impl_ss,
+ACE_RCSID (be_visitor_operation,
+ direct_proxy_impl_ss,
"$Id$")
be_visitor_operation_direct_proxy_impl_ss::
@@ -38,74 +38,94 @@ be_visitor_operation_direct_proxy_impl_ss::visit_operation (
-1);
}
- be_type *bt = be_type::narrow_from_decl (node->return_type ());
+ *os << "// TAO_IDL - Generated from " << be_nl
+ << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- if (!bt)
+ *os << "void" << be_nl
+ << intf->full_direct_proxy_impl_name () << "::";
+
+ // Check if we are an attribute node in disguise.
+ if (this->ctx_->attribute ())
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_direct_collocated_ss::"
- "visit_operation - "
- "Bad return type\n"),
- -1);
+ // Now check if we are a "get" or "set" operation.
+ if (node->nmembers () == 1)
+ {
+ *os << "_set_";
+ }
+ else
+ {
+ *os << "_get_";
+ }
}
- os->indent ();
- // STEP 2: generate the return type mapping (same as in the header file)
- be_visitor_context ctx (*this->ctx_);
- be_visitor_operation_rettype oro_visitor (&ctx);
+ *os << node->local_name () << " (" << be_idt << be_idt_nl
+ << "TAO_Abstract_ServantBase *servant," << be_nl
+ << "TAO::Argument **";
- if (bt->accept (&oro_visitor) == -1)
+ if (!node->void_return_type () || node->nmembers () > 0)
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_direct_collocated_ss::"
- "visit_operation - "
- "codegen for return type failed\n"),
- -1);
+ *os << " args";
}
- *os << " " << intf->full_direct_proxy_impl_name () << "::"
- << node->local_name () << " ";
-
- // STEP 4: generate the argument list with the appropriate mapping (same as
- // in the header file)
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XS);
- be_visitor_operation_arglist oapi_visitor (&ctx);
+ *os << "," << be_nl
+ << "int " << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ")";
- if (node->accept (&oapi_visitor) == -1)
+ if (this->gen_throw_spec (node) != 0)
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "visit_operation - "
- "codegen for argument list failed\n"),
- -1);
+ return -1;
}
- *os << "{" << be_idt << "\n";
+ *os << be_uidt_nl
+ << "{" << be_idt_nl;
+
+#if 0
+ << "TAO_Object_Adapter::Servant_Upcall servant_upcall ("
+ << be_idt << be_idt_nl
+ << "obj->_stubobj ()"
+ << "->servant_orb_var ()->orb_core ()"
+ << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl;
+#endif /*if 0*/
+
+ if (!node->void_return_type ())
+ {
+ *os << "((TAO::Arg_Traits<";
- os->indent ();
+ this->gen_arg_template_param_name (node->return_type (),
+ os);
- if (!this->void_return_type (bt))
- {
- *os << "return ";
+ *os << ">::ret_val *) args[0])->arg () =" << be_idt_nl;
}
- *os << "ACE_reinterpret_cast ("
- << be_idt << be_idt_nl //idt = 3
- << intf->full_skel_name () << "_ptr,"
- << be_nl
- <<"_collocated_tao_target_->_servant ()->_downcast ("
- << "\"" << intf->repoID () << "\"" << ")"
- << be_uidt_nl // idt = 2
- << ")";
+ *os << "ACE_reinterpret_cast (" << be_idt << be_idt_nl
+ << intf->full_skel_name () << "_ptr," << be_nl
+ << "servant->_downcast (" << be_idt << be_idt_nl
+ << "\"" << intf->repoID () << "\"" << be_uidt_nl
+ << ")" << be_uidt << be_uidt_nl
+ << ")" << be_uidt;
+
+ be_visitor_context ctx;
if (this->gen_invoke (ctx, node) == -1)
{
return -1;
}
+ if (!node->void_return_type ())
+ {
+ *os << be_uidt;
+ }
+
+ *os << be_uidt << be_uidt_nl;
+
+ if (!be_global->exception_support ())
+ {
+ *os << "ACE_CHECK;";
+ }
*os << be_uidt_nl
- << "}" << be_nl << be_nl;
+ << "}";
return 0;
}
@@ -114,31 +134,63 @@ be_visitor_operation_direct_proxy_impl_ss::visit_operation (
int
be_visitor_operation_direct_proxy_impl_ss::gen_invoke (
- be_visitor_context &ctx,
+ be_visitor_context & /*ctx*/,
be_operation *node
)
{
TAO_OutStream *os = this->ctx_->stream ();
*os << "->" << node->local_name () << " ("
- << be_idt << be_idt << be_idt_nl ;
+ << be_idt << be_idt << be_idt;
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_ARG_UPCALL_SS);
- be_visitor_operation_argument visitor (&ctx);
+ UTL_ScopeActiveIterator si (node,
+ UTL_Scope::IK_decls);
- if (node->accept (&visitor) == -1)
+ if (si.is_done ())
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_direct_collocated_ss::"
- "gen_invoke - "
- "codegen for making upcall failed\n"),
- -1);
+ *os << be_nl
+ << "ACE_ENV_SINGLE_ARG_PARAMETER" << be_uidt_nl
+ << ");";
+
+ return 0;
}
- *os << be_uidt_nl
- << ");" << be_uidt << be_uidt << be_uidt_nl;
+ AST_Argument *arg = 0;
+ int index = 1;
+
+ for (; !si.is_done (); si.next (), ++index)
+ {
+ arg = AST_Argument::narrow_from_decl (si.item ());
+
+ *os << (index == 1 ? "" : ",") << be_nl
+ << "((TAO::Arg_Traits<";
+
+ this->gen_arg_template_param_name (arg->field_type (),
+ os);
+
+ *os << ">::";
+
+ switch (arg->direction ())
+ {
+ case AST_Argument::dir_IN:
+ *os << "in";
+ break;
+ case AST_Argument::dir_INOUT:
+ *os << "inout";
+ break;
+ case AST_Argument::dir_OUT:
+ *os << "out";
+ default:
+ break;
+ }
+
+ *os << "_arg_val *) args[" << index << "])->arg ()";
+ }
+
+ // End the upcall
+ *os << be_nl
+ << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
+ << ");";
return 0;
}
-
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp
index 0a8a34ad455..44049b7f684 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp
@@ -19,8 +19,8 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_operation,
- exceptlist_cs,
+ACE_RCSID (be_visitor_operation,
+ exceptlist_cs,
"$Id$")
// ****************************************************************************
@@ -46,13 +46,13 @@ be_visitor_operation_exceptlist_cs::visit_operation (be_operation *node)
// Don't do anything if the exception list is empty.
if (node->exceptions ())
{
- os->indent ();
-
- *os << "static TAO_Exception_Data " << "_tao_" << node->flat_name ()
- << "_exceptiondata [] = " << be_nl;
+ *os << be_nl << be_nl
+ << "static TAO::Exception_Data" << be_nl
+ << "_tao_" << node->flat_name ()
+ << "_exceptiondata [] = " << be_idt_nl;
*os << "{" << be_idt_nl;
- AST_Decl *d = 0;
+ be_exception *ex = 0;
// Initialize an iterator to iterate thru the exception list.
// Continue until each element is visited.
@@ -60,23 +60,23 @@ be_visitor_operation_exceptlist_cs::visit_operation (be_operation *node)
for (UTL_ExceptlistActiveIterator ei (node->exceptions ());
!ei.is_done ();)
{
- d = ei.item ();
+ ex = be_exception::narrow_from_decl (ei.item ());
*os << "{" << be_idt_nl
- << "\"" << d->repoID () << "\"," << be_nl;
- // Allocator method.
- *os << d->name () << "::_alloc" << be_uidt_nl
+ << "\"" << ex->repoID () << "\"," << be_nl
+ << ex->name () << "::_alloc," << be_nl
+ << ex->tc_name () << be_uidt_nl
<< "}";
ei.next ();
if (!ei.is_done ())
{
- *os << "," << be_nl;
+ *os << "," << be_nl << be_nl;
}
}
- *os << be_uidt_nl << "};\n\n";
+ *os << be_uidt_nl << "};" << be_uidt;
}
return 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp
index 2af9183d4b0..b68edb7616c 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_arglist.cpp
@@ -59,26 +59,21 @@ be_visitor_operation_interceptors_arglist::visit_operation (
{
switch (this->ctx_->state ())
{
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CH:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_SH:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARG_INFO_CS:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_PARAMLIST:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARG_INFO_SS:
break;
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CS:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_SS:
{
*os << be_nl << "ACE_ENV_ARG_PARAMETER";
break;
}
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_CS:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SS:
{
// Last argument - is always CORBA::Environment.
*os << be_nl << "ACE_ENV_ARG_DECL_NOT_USED";
break;
}
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_CH:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SH:
{
// @@ Do it for all cases i.e arg count > = 0
@@ -124,10 +119,6 @@ be_visitor_operation_interceptors_arglist::pre_process (be_decl *bd)
switch (this->ctx_->state ())
{
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_CH:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_CS:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARG_INFO_CS:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CS:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SH:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SS:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARG_INFO_SS:
@@ -139,7 +130,6 @@ be_visitor_operation_interceptors_arglist::pre_process (be_decl *bd)
*os << ",";
break;
}
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CH:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_PARAMLIST:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_SH:
break;
@@ -210,8 +200,6 @@ be_visitor_operation_interceptors_arglist::visit_argument (be_argument *node)
switch (this->ctx_->state ())
{
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_CH:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_CS:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SH:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SS:
{
@@ -219,26 +207,6 @@ be_visitor_operation_interceptors_arglist::visit_argument (be_argument *node)
status = node->accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CH:
- {
- be_visitor_args_request_info_ch visitor (&ctx);
- status = node->accept (&visitor);
- break;
- }
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARG_INFO_CS:
- {
- ctx.state (TAO_CodeGen::TAO_ARGUMENT_INTERCEPTORS_ARGLIST_CS);
- be_visitor_args_request_info_cs visitor (&ctx);
- status = node->accept (&visitor);
- break;
- }
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CS:
- {
- ctx.state (TAO_CodeGen::TAO_ARGUMENT_INTERCEPTORS_INFO_ARGLIST_CS);
- be_visitor_args_request_info_cs visitor (&ctx);
- status = node->accept (&visitor);
- break;
- }
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_PARAMLIST:
{
be_visitor_args_paramlist visitor (&ctx);
@@ -309,13 +277,8 @@ be_visitor_operation_interceptors_arglist::post_process (be_decl *bd)
switch (this->ctx_->state ())
{
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CH:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_SH:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_PARAMLIST:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_CH:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARG_INFO_CS:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_CS:
- case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CS:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SH:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARG_INFO_SS:
case TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_ARGLIST_SS:
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_exceptlist.cpp b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_exceptlist.cpp
index 47364de4493..591da0bf7dd 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_exceptlist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_exceptlist.cpp
@@ -114,8 +114,8 @@ be_visitor_operation_interceptors_exceptlist::gen_exceptlist (
<< "{" << be_idt_nl
<< "CORBA::TypeCode_ptr tcp = _tao_" << node->flat_name ()
<< "_exceptiondata[i];" << be_nl
- << "TAO_Pseudo_Object_Manager<CORBA::TypeCode, "
- << "CORBA::TypeCode_var> tcp_object (&tcp, 1);" << be_nl
+ << "TAO_Pseudo_Object_Manager<CORBA::TypeCode> tcp_object (&tcp, 1);"
+ << be_nl
<< "(*exception_list)[i] = tcp_object;" << be_uidt_nl
<< "}\n" << be_uidt;
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp
index 995840b607f..d8ee84959d2 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp
@@ -27,14 +27,12 @@ ACE_RCSID (be_visitor_operation,
// ************************************************************
be_visitor_operation::be_visitor_operation (be_visitor_context *ctx)
- : be_visitor_scope (ctx),
- operation_name_ (0)
+ : be_visitor_scope (ctx)
{
}
be_visitor_operation::~be_visitor_operation (void)
{
- delete [] operation_name_;
}
// Is the operation return type void?
@@ -220,7 +218,6 @@ be_visitor_operation::gen_environment_decl (int argument_emitted,
TAO_CodeGen::CG_STATE cgs = this->ctx_->state ();
if (node->argument_count () > 0
- || cgs == TAO_CodeGen::TAO_OPERATION_ARGLIST_BASE_PROXY_IMPL_CH
|| cgs == TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XH
|| cgs == TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XS)
{
@@ -381,64 +378,23 @@ be_visitor_operation::gen_stub_operation_body (
be_type *return_type
)
{
- TAO_OutStream *os = this->ctx_->stream ();
- be_visitor_context ctx;
- const char *target = "_collocated_tao_target_";
+ be_interface *intf = this->ctx_->attribute ()
+ ? be_interface::narrow_from_scope (this->ctx_->attribute ()->defined_in ())
+ : be_interface::narrow_from_scope (node->defined_in ());
- if (node->defined_in ()->is_abstract ())
- {
- target = "this";
- }
-
- *os << be_nl << "{" << be_idt_nl;
-
- const char *env = this->gen_environment_var ();
-
- if (ACE_OS::strcmp ("", env) != 0)
- {
- *os << env << be_nl;
- }
-
- // Generate the actual code for the stub. However, if any of the argument
- // types is "native", we flag a MARSHAL exception.
- // last argument - is always ACE_ENV_ARG_PARAMETER
- if (!node->has_native ())
- {
- // native type does not exist.
-
- // Generate any "pre" stub information such as tables or declarations
- // This is a template method and the actual work will be done by the
- // derived class
- if (this->gen_pre_stub_info (node) == -1)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "visit_operation - "
- "gen_pre_stub_info failed\n"
- ),
- -1
- );
- }
- }
-
- // Declare return type.
- ctx = *this->ctx_;
- be_visitor_operation_rettype_vardecl_cs rd_visitor (&ctx);
-
- if (return_type->accept (&rd_visitor) == -1)
+ if (!intf)
{
ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
+ "(%N:%l) be_visitor_operation_thru_poa_collocated_ss::"
"visit_operation - "
- "codegen for return var decl failed\n"),
+ "bad interface scope\n"),
-1);
}
- if (node->void_return_type () == 0)
- {
- *os << be_nl;
- }
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_visitor_context ctx;
+
+ *os << be_nl << "{" << be_idt_nl;
if (node->has_native ()) // native exists => no stub
{
@@ -448,838 +404,188 @@ be_visitor_operation::gen_stub_operation_body (
{
ACE_ERROR_RETURN ((
LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "visit_operation - "
- "codegen for return var failed\n"
- ),
- -1
- );
- }
- }
- else
- {
- // Generate code that retrieves the underlying stub object and then
- // invokes do_static_call on it.
- *os << "TAO_Stub *istub = " << target << "->_stubobj ();"
- << be_nl << be_nl
- << "if (istub == 0)" << be_idt_nl
- << "{" << be_idt_nl;
-
- // If the stub object was bad, then we raise a system exception.
- if (this->gen_raise_exception (return_type, "CORBA::INTERNAL", "") == -1)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
+ "(%N:%l) be_visitor_operation_cs::"
"visit_operation - "
- "codegen for checking exception failed\n"
+ "codegen for native exception failed\n"
),
-1
);
}
- *os << be_uidt_nl << "}" << be_uidt_nl;
-
- // Do any pre marshal and invoke processing with return type. This
- // includes allocating memory, initialization.
- ctx = *this->ctx_;
- be_visitor_operation_rettype_pre_invoke_cs rpi_visitor (&ctx);
-
- if (return_type->accept (&rpi_visitor) == -1)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "visit_operation - "
- "codegen for retval pre invoke failed\n"
- ),
- -1
- );
- }
-
- // Do any pre marshal and invoke stuff with arguments.
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_PRE_INVOKE_CS);
- be_visitor_operation_argument api_visitor (&ctx);
-
- if (node->accept (&api_visitor) == -1)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "visit_operation - "
- "codegen for argument pre invoke failed\n"
- ),
- -1
- );
- }
-
- // Generate the code for marshaling in the parameters and transmitting
- // them.
- if (this->gen_marshal_and_invoke (node, return_type) == -1)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "visit_operation - "
- "codegen for marshal and invoke failed\n"
- ),
- -1
- );
-
- }
-
- if (!this->void_return_type (return_type))
- {
- AST_Decl::NodeType nt = return_type->node_type ();
-
- if (nt == AST_Decl::NT_typedef)
- {
- AST_Typedef *td = AST_Typedef::narrow_from_decl (return_type);
- AST_Type *t = td->primitive_base_type ();
- nt = t->node_type ();
- }
-
- *os << be_nl << be_nl;
-
- // Now generate the normal successful return statement.
- if (return_type->size_type () == AST_Type::VARIABLE
- || nt == AST_Decl::NT_array)
- {
- *os << "return _tao_retval._retn ();";
- }
- else
- {
- *os << "return _tao_retval;";
- }
- }
- } // end of if (!native)
-
- *os << be_uidt_nl << "}";
+ *os << be_uidt_nl << "}";
- return 0;
-}
-
-int
-be_visitor_operation::gen_pre_stub_info (
- be_operation *node
- )
-{
- be_visitor_context ctx = *this->ctx_;
- be_visitor_operation_exceptlist_cs visitor (&ctx);
-
- if (node->accept (&visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) "
- "be_visitor_operation_cs::"
- "gen_pre_stub_info - "
- "Exceptionlist generation error\n"),
- -1);
- }
-
- return 0;
-}
-
-int
-be_visitor_operation::gen_marshal_and_invoke (
- be_operation *node,
- be_type *bt
- )
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_visitor_context ctx;
- const char *target = "_collocated_tao_target_";
-
- if (node->defined_in ()->is_abstract ())
- {
- target = "this";
+ return 0;
}
-
- os->indent ();
-
- *os << be_nl;
-
- // Create the GIOP_Invocation and grab the outgoing CDR stream.
- switch (node->flags ())
+ if (!node->is_abstract ())
{
- case AST_Operation::OP_oneway:
- *os << "TAO_GIOP_Oneway_Invocation _tao_call ";
- break;
- default:
- *os << "TAO_GIOP_Twoway_Invocation _tao_call ";
+ // If the object is lazily evaluated the proxy brker might well
+ // be null. Initialize it now.
+ *os << "if (!this->is_evaluated ())" << be_idt_nl
+ << "{" << be_idt_nl
+ << "ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this);"
+ << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
+ << "if (this->the" << intf->base_proxy_broker_name () << "_ == 0)"
+ << be_idt_nl
+ << "{" << be_idt_nl
+ << intf->flat_name () << "_setup_collocation ("
+ << be_idt << be_idt_nl
+ << "this->ACE_NESTED_CLASS (CORBA, Object)::_is_collocated ()"
+ << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl;
}
- // Do we have "_set_" or "_get_" prepended?
- size_t ext = this->ctx_->attribute () ? 5 : 0;
-
- // Do we have any arguments in the operation that needs marshalling
- int flag =
- node->count_arguments_with_direction (AST_Argument::dir_IN
- | AST_Argument::dir_INOUT);
-
- *os << "(" << be_idt << be_idt_nl
- << "istub," << be_nl
- << this->compute_operation_name (node)
- << "," << be_nl
- << ACE_OS::strlen (node->original_local_name ()->get_string ()) + ext
- << "," << be_nl
- << flag
- << "," <<be_nl
- << "istub->orb_core ()" << be_uidt_nl
- << ");" << be_uidt_nl;
-
- *os << be_nl
- << "int _invoke_status;" << be_nl;
-
- // Generate code to obtain the client request interceptors from the
- // ORB.
- *os << "\n#if (TAO_HAS_INTERCEPTORS == 1)" << be_nl;
- *os << "TAO_ClientRequestInterceptor_Adapter _tao_vfr ("
- << be_idt << be_idt_nl
- << "istub->orb_core ()->client_request_interceptors ()," << be_nl
- << "&_tao_call," << be_nl
- << "_invoke_status"
- << be_uidt_nl
- << ");" << be_uidt_nl;
-
- *os << "\n#endif /* TAO_HAS_INTERCEPTORS */" << be_nl;
-
- // The connection retry loop.
- *os << be_nl
- << "for (;;)" << be_idt_nl
- << "{" << be_idt_nl
- << "_invoke_status = TAO_INVOKE_EXCEPTION;" << be_nl;
-
-
- *os << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl;
-
- *os << "TAO_ClientRequestInfo_" << node->flat_name ();
+ const char *env = this->gen_environment_var ();
- // We need the interface node in which this operation was defined. However,
- // if this operation node was an attribute node in disguise, we get this
- // information from the context and add a "_get"/"_set" to the flat
- // name to get around the problem of overloaded methods which are
- // generated for attributes.
- if (this->ctx_->attribute ())
+ if (ACE_OS::strcmp ("", env) != 0)
{
- bt = be_type::narrow_from_decl (node->return_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_interceptors_ch::"
- "visit_operation - "
- "Bad return type\n"),
- -1);
- }
-
- // Grab the right visitor to generate the return type if its not
- // void it means it is not the accessor.
- if (!this->void_return_type (bt))
- {
- *os << "_get";
- }
- else
- {
- *os << "_set";
- }
+ *os << env << be_nl;
}
- *os << " _tao_ri (" << be_idt << be_idt_nl
- << "&_tao_call," << be_nl
- << target;
+ // Declare return type helper class.
- // Generate the formal argument fields which are passed
- // to the RequestInfo object.
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CS);
- be_visitor_operation_interceptors_arglist iia_visitor (&ctx);
+ *os << "TAO::Arg_Traits<";
- if (node->accept (&iia_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "visit_operation - "
- "codegen for arglist failed\n"),
- -1);
- }
+ this->gen_arg_template_param_name (return_type,
+ os);
- *os << be_uidt_nl << ");" << be_uidt_nl;
+ *os << ">::ret_val _tao_retval;";
- if (this->gen_check_exception (bt) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "gen_marshal_and_invoke - "
- "codegen for checking exception failed\n"),
- -1);
- }
+ // Declare the argument helper classes.
+ this->gen_stub_body_arglist (node, os);
- *os << "\n#endif /* TAO_HAS_INTERCEPTORS */" << be_nl;
+ *os << be_nl << be_nl
+ << "TAO::Argument *_tao_signature [] =" << be_idt_nl
+ << "{" << be_idt_nl
+ << "&_tao_retval";
- // Prepare the request header.
- *os << be_nl << "CORBA::Short _tao_response_flag = ";
+ AST_Argument *arg = 0;
- switch (node->flags ())
+ for (UTL_ScopeActiveIterator arg_list_iter (node, UTL_Scope::IK_decls);
+ ! arg_list_iter.is_done ();
+ arg_list_iter.next ())
{
- case AST_Operation::OP_oneway:
- *os << "_tao_call.sync_scope ();" << be_nl
- << "TAO_INTERCEPTOR (_tao_ri.response_expected (0));" << be_nl;
- break;
- default:
- *os << "TAO_TWOWAY_RESPONSE_FLAG;" << be_nl
- << "TAO_INTERCEPTOR (_tao_ri.response_expected (1));" << be_nl;
- }
+ arg = AST_Argument::narrow_from_decl (arg_list_iter.item ());
- *os << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl;
-
- *os << be_nl << "ACE_TRY" << be_idt_nl
- << "{" << be_idt_nl;
-
- // Invoke send_request() interception point.
- // This is done before the Invocation::start() call so that a
- // connection can be avoided if send_request() throws an exception,
- // i.e. this is an optimization.
- *os << "_tao_vfr.send_request (" << be_idt << be_idt_nl
- << "&_tao_ri" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt_nl
- << "ACE_TRY_CHECK;" << be_nl;
-
- // _invoke_status is potentially set (via a reference) in
- // TAO_ClientRequestInterceptor_Adapter::send_request() so check its
- // value. If a location forward or transport retry occured, then we
- // need to restart the loop so that the ClientRequestInfo object is
- // setup for the re-issued request.
- //
- // Note that since we're invoking the send_request() interception
- // point before the Invocation::start() call, i.e. before a
- // connection is ever made, we're actually able to forward requests
- // for oneways via the PortableInterceptor::ForwardRequest exception
- // too!
- *os << be_nl
- << "if (_invoke_status == TAO_INVOKE_RESTART)" << be_idt_nl
- << "{" << be_idt_nl
- << "_tao_call.restart_flag (1);" << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt_nl;
-
- *os << "\n#endif /* TAO_HAS_INTERCEPTORS */" << be_nl;
-
-
- *os << be_nl
- << "_tao_call.start (ACE_ENV_SINGLE_ARG_PARAMETER);" << be_nl;
-
- // Check if there is an exception.
- if (this->gen_check_interceptor_exception (bt) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "gen_marshal_and_invoke - "
- "codegen for checking exception failed\n"),
- -1);
+ *os << "," << be_nl
+ << "&_tao_" << arg->local_name ();
}
- *os << be_nl
- << "_tao_call.prepare_header (" << be_idt << be_idt_nl
- << "ACE_static_cast (CORBA::Octet, _tao_response_flag)" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt_nl;
+ *os << be_uidt_nl
+ << "};" << be_uidt;
- // Check if there is an exception.
- if (this->gen_check_interceptor_exception (bt) == -1)
+ if (this->gen_pre_stub_info (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "gen_marshal_and_invoke - "
- "codegen for checking exception failed\n"),
+ "(%N:%l) be_visitor_operation_cs::"
+ "visit_operation - "
+ "codegen for exceptiondata failed\n"),
-1);
}
- // Now make sure that we have some in and inout parameters. Otherwise, there
- // is nothing to be marshaled in.
- if (this->has_param_type (node, AST_Argument::dir_IN) ||
- this->has_param_type (node, AST_Argument::dir_INOUT))
- {
- *os << be_nl
- << "TAO_OutputCDR &_tao_out = _tao_call.out_stream ();"
- << be_nl << be_nl
- << "if (!(" << be_idt << be_idt_nl;
-
- // Marshal each in and inout argument.
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_INVOKE_CS);
- ctx.sub_state (TAO_CodeGen::TAO_CDR_OUTPUT);
- be_visitor_operation_argument_invoke oai_visitor (&ctx);
- if (node->accept (&oai_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for return var in "
- "do_static_call failed\n"),
- -1);
- }
+ long tmp_len =
+ ACE_OS::strlen (node->local_name ()->get_string ());
- *os << be_nl
- << "))" << be_uidt_nl
- << "{" << be_idt_nl;
-
- // If marshaling fails, raise exception (codesetting has various minors)
- *os << "TAO_OutputCDR::throw_stub_exception (errno "
- << "ACE_ENV_ARG_PARAMETER); "
- << be_nl;
-
- if (this->gen_check_interceptor_exception (bt) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for checking exception failed\n"),
- -1);
- }
+ *os << be_nl << be_nl
+ << "TAO::" << (node->is_abstract () ? "AbstractBase_" : "" )
+ << "Invocation_Adapter _tao_call (" << be_idt << be_idt_nl
+ << "this," << be_nl
+ << "_tao_signature," << be_nl
+ << node->argument_count () + 1 << "," << be_nl
+ << "\"";
- *os << be_uidt_nl;
- *os << "}" << be_uidt_nl << be_nl;
- }
- else
+ // Check if we are an attribute node in disguise.
+ if (this->ctx_->attribute ())
{
- *os << be_nl << be_nl;
- }
-
- *os << "_invoke_status =" << be_idt_nl;
+ // If we are a attribute node, add th elength of the operation
+ // name.
+ tmp_len += 5;
- if (node->flags () == AST_Operation::OP_oneway)
- {
- // Oneway operation.
- *os << "_tao_call.invoke (ACE_ENV_SINGLE_ARG_PARAMETER);";
- }
- else
- {
- if (node->exceptions ())
+ // Now check if we are a "get" or "set" operation.
+ if (node->nmembers () == 1)
{
- *os << "_tao_call.invoke (_tao_" << node->flat_name ()
- << "_exceptiondata, "
- << node->exceptions ()->length ()
- << " ACE_ENV_ARG_PARAMETER);";
+ *os << "_set_";
}
else
{
- *os << "_tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER);";
+ *os << "_get_";
}
}
- *os << be_uidt_nl;
+ *os << node->local_name () << "\"," << be_nl
+ << tmp_len << "," << be_nl
+ << "this->the" << intf->base_proxy_broker_name () << "_";
- // Check if there is an exception.
- if (this->gen_check_interceptor_exception (bt) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for checking exception failed\n"),
- -1);
- }
-
- *os << be_nl
- << "if (_invoke_status == TAO_INVOKE_EXCEPTION)" << be_idt_nl
- << "{" << be_idt_nl;
-
- // Unlisted user exception received by client.
- int status = this->gen_raise_interceptor_exception (
- bt,
- "CORBA::UNKNOWN",
- "CORBA::OMGVMCID | 1, CORBA::COMPLETED_YES"
- );
-
- if (status == -1)
+ if (node->flags () == AST_Operation::OP_oneway)
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and invoke - "
- "codegen for return var failed\n"),
- -1);
+ *os << "," << be_nl
+ << "TAO::TAO_ONEWAY_INVOCATION";
}
- *os << be_uidt_nl << "}" << be_uidt_nl;
-
- // Note that we no longer turn this code generation off if it's a
- // one way operation since the sync scope policy may actually allow
- // things such as LOCATION_FORWARD replies to be propagated back to
- // the client (e.g. SYNC_WITH_TARGET).
-
- *os << "else if (_invoke_status == TAO_INVOKE_RESTART)" << be_idt_nl
- << "{" << be_idt_nl
- << "_tao_call.restart_flag (1);" << be_nl
- << "TAO_INTERCEPTOR (" << be_idt << be_idt_nl
- << "_tao_ri.reply_status (_invoke_status);" << be_nl
- << "_tao_vfr.receive_other (" << be_idt << be_idt_nl
- << "&_tao_ri" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt_nl
- << "ACE_TRY_CHECK;" << be_uidt_nl
- << ")" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl
- << "else" << be_idt_nl
- << "{" << be_idt;
-
- // If we reach here, we are ready to proceed.
- // the code below this is for twoway operations only.
-
- if (!this->void_return_type (bt)
- || this->has_param_type (node, AST_Argument::dir_INOUT)
- || this->has_param_type (node, AST_Argument::dir_OUT))
-
- {
- // Do any post_invoke stuff that might be necessary.
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_POST_INVOKE_CS);
- ctx.sub_state (TAO_CodeGen::TAO_CDR_INPUT);
- be_visitor_operation_argument oapi_visitor (&ctx);
-
- if (node->accept (&oapi_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for args in post do_static_call\n"),
- -1);
- }
-
- // Generate any temporary variables to demarshal the arguments.
- be_visitor_args_decl vis1 (&ctx);
-
- if (node->accept (&vis1) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_pre_stub_info - "
- "codegen for pre args failed\n"),
- -1);
- }
-
- if (!this->void_return_type (bt))
- {
- // Generate any temporary variables to demarshal the return value.
- be_visitor_operation_rettype_post_invoke_cs vis2 (&ctx);
-
- if (bt->accept (&vis2) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_pre_stub_info - "
- "codegen rettype [post invoke] failed\n"),
- -1);
- }
- }
-
- // Check if there was a user exception, else demarshal the
- // return val (if any) and parameters (if any) that came with
- // the response message.
- *os << be_nl << be_nl
- << "TAO_InputCDR &_tao_in = _tao_call.inp_stream ();"
- << 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))
- {
- // Demarshal the return value.
- ctx = *this->ctx_;
- ctx.sub_state (TAO_CodeGen::TAO_CDR_INPUT);
- be_visitor_operation_rettype_marshal_ss ori_visitor (&ctx);
-
- if (node->accept (&ori_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for return var failed\n"),
- -1);
- }
- }
-
- if (this->has_param_type (node, AST_Argument::dir_INOUT)
- || this->has_param_type (node, AST_Argument::dir_OUT))
- {
- if (!this->void_return_type (bt))
- {
- *os << " &&" << be_nl;
- }
-
- // Demarshal each out and inout argument.
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_INVOKE_CS);
- ctx.sub_state (TAO_CodeGen::TAO_CDR_INPUT);
- be_visitor_operation_argument_invoke oai_visitor (&ctx);
-
- if (node->accept (&oai_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for return var failed\n"),
- -1);
- }
- }
-
- *os << be_nl
- << "))" << be_uidt_nl
- << "{" << be_idt_nl;
-
- // If marshaling fails, raise exception (codesetting has various minors)
- *os << "TAO_InputCDR::throw_stub_exception (errno "
- << "ACE_ENV_ARG_PARAMETER); "
- << be_nl;
- if (this->gen_check_interceptor_exception (bt) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for checking exception failed\n"),
- -1);
- }
-
- *os << be_nl;
-
- if (status == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and invoke - "
- "codegen for return var failed\n"),
- -1);
- }
-
- *os << be_uidt_nl << "}" << be_uidt_nl;
- }
-
- *os << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl;
-
- // Populate the ClientRequestInfo object with result, if any, of the
- // invocation.
- if (!this->void_return_type (bt))
- {
- // Here's what we are going to do to have a uniform way of getting the
- // return value updated for the Request Info:
- // declare a operation_retval type object and assign the
- // _tao_retval._retn () to it.
- // We pass this to the result updation method (note: it hasnt
- // got destroyed)
- // We then put it back into the original _tao_retval
- // object.
- // And finally the _retn () is returned from the operation w.o
- // causing any problems.
-
- // Generate the return type mapping (same as in the header file)
- ctx = *this->ctx_;
- be_visitor_operation_rettype oro_visitor (&ctx);
-
- if (bt->accept (&oro_visitor) == -1)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_remote_proxy_impl_cs::"
- "visit_operation - "
- "codegen for return type failed\n"
- ),
- -1
- );
- }
+ *os << be_uidt_nl
+ << ");" << be_uidt;
- if (bt->size_type () == AST_Type::VARIABLE
- || bt->node_type () == AST_Decl::NT_array)
- {
- *os << " _tao_retval_info =" << be_idt_nl
- << "_tao_retval._retn ();" << be_uidt_nl
- << "_tao_ri.result (_tao_retval_info);" << be_nl
- << "_tao_retval = _tao_retval_info;" << be_nl;
- }
- else
- {
- *os << " _tao_retval_info =" << be_idt_nl
- << "_tao_retval;" << be_uidt_nl
- << "_tao_ri.result (_tao_retval_info);" << be_nl;
- }
- }
+ *os << be_nl << be_nl;
- // Oneway operations don't have receive_reply() interception since
- // once the request goes over the wire, its the end of the story!
- // However, we still need to call an ending interception point
- // (receive_other()) to satisfy the General Flow Rules.
- if (node->flags () != AST_Operation::OP_oneway)
+ // Since oneways cannot raise user exceptions, we have that
+ // case covered as well.
+ if (node->exceptions ())
{
- // If we get this far (in the generated code) then we
- // successfully completed the request, i.e. no connection retry
- // will occur, nor will a LOCATION_FORWARD.
- // Invoke receive_reply() interception point.
- *os << be_nl
- << "_tao_ri.reply_status (_invoke_status);" << be_nl
- << "_tao_vfr.receive_reply (" << be_idt << be_idt_nl
- << "&_tao_ri" << be_nl
+ *os << "_tao_call.invoke (" << be_idt << be_idt_nl
+ << "_tao_" << node->flat_name ()
+ << "_exceptiondata," << be_nl
+ << node->exceptions ()->length () << be_nl
<< "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt_nl;
+ << ");" << be_uidt;
}
- else if (node->flags () == AST_Operation::OP_oneway)
+ else
{
- // Invoke receive_other() interception point.
- *os << be_nl
- << "_tao_ri.reply_status (_invoke_status);" << be_nl
- << "_tao_vfr.receive_other (" << be_idt_nl
- << "&_tao_ri" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_nl;
+ *os << "_tao_call.invoke (0, 0 ACE_ENV_ARG_PARAMETER);";
}
- *os << "ACE_TRY_CHECK;"
- << be_uidt_nl;
-
- *os << "\n#endif /* TAO_HAS_INTERCEPTORS */" << be_nl;
-
- *os << "}" << be_uidt << be_uidt_nl; // End inner "else" block.
-
- // Note that we do NOT catch the PortableInterceptor::ForwardRequest
- // exception here. It is caught in the
- // TAO_ClientRequestInterceptor_Adapter class. This is necessary to
- // prevent applications from being able to throw the exception in an
- // effort to get an easy (but illegal) way to forward a request.
-
- *os << "\n#if TAO_HAS_INTERCEPTORS == 1" << be_nl
- << "}" << be_uidt << be_uidt_nl // End outer "else" block.
- << "}" << be_uidt_nl
- << "ACE_CATCHANY" << be_idt_nl
- << "{" << be_idt_nl;
-
- // Update the exception field of the ClientRequestInfo.
- *os << "_tao_ri.exception (&ACE_ANY_EXCEPTION);"<< be_nl;
-
- *os << "_tao_vfr.receive_exception (" << be_idt << be_idt_nl
- << "&_tao_ri" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt_nl
- << "ACE_TRY_CHECK;" << be_nl;
-
- // The receive_exception() interception point may have thrown a
- // PortableInterceptor::ForwardRequest exception. In that event,
- // the connection retry loop must be restarted so do not rethrow the
- // caught exception.
- *os << be_nl
- << "const PortableInterceptor::ReplyStatus _tao_status =" << be_idt_nl
- << "_tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);" << be_uidt_nl
- << "ACE_TRY_CHECK;" << be_nl;
-
- *os << be_nl
- << "if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION" << be_nl
- << " || _tao_status == PortableInterceptor::USER_EXCEPTION)"
- << be_idt_nl
- << "{" << be_idt_nl;
+ *os << be_nl;
- if (be_global->use_raw_throw ())
+ if (this->void_return_type (return_type))
{
- *os << "throw;";
+ *os << "ACE_CHECK;";
}
else
{
- *os << "ACE_RE_THROW;";
+ *os << "ACE_CHECK_RETURN (_tao_retval.excp ());";
}
- *os << be_uidt_nl
- << "}" << be_uidt << be_uidt_nl;
-
- *os << "}" << be_uidt_nl;
-
- // Convert non-CORBA C++ exceptions to CORBA::UNKNOWN.
- *os << "\n# if defined (ACE_HAS_EXCEPTIONS) \\\n"
- << " && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS)" << be_nl
- << "ACE_CATCHALL" << be_idt_nl
- << "{" << be_idt_nl
- << "CORBA::UNKNOWN ex;" << be_nl
- << be_nl
- << "_tao_ri.exception (&ex);"<< be_nl
- << "_tao_vfr.receive_exception (" << be_idt << be_idt_nl
- << "&_tao_ri" << be_nl
- << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
- << ");" << be_uidt_nl
- << "ACE_TRY_CHECK;" << be_nl;
-
- // The receive_exception() interception point may have thrown a
- // PortableInterceptor::ForwardRequest exception. In that event,
- // the connection retry loop must be restarted so do not throw the
- // CORBA::UNKNOWN exception to convert the unhandled C++ exception.
- *os << be_nl
- << "const PortableInterceptor::ReplyStatus _tao_status =" << be_idt_nl
- << "_tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);" << be_uidt_nl
- << "ACE_TRY_CHECK;" << be_nl;
-
- *os << be_nl
- << "if (_tao_status == PortableInterceptor::SYSTEM_EXCEPTION)"
- << be_idt_nl;
-
- if (be_global->use_raw_throw ())
+ if (!this->void_return_type (return_type))
{
- *os << "throw ";
- }
- else
- {
- *os << "ACE_TRY_THROW ";
+ *os << be_nl << be_nl
+ << "return _tao_retval.retn ();";
}
- *os << "(ex);" << be_uidt << be_uidt_nl
- << "}" << be_uidt
- << "\n# endif /* ACE_HAS_EXCEPTIONS"
- << " && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */" << be_nl << be_nl;
+ *os << be_uidt_nl << "}";
- *os << "ACE_ENDTRY;" << be_nl;
+ return 0;
+}
- if (this->gen_check_exception (bt) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for checking exception failed\n"),
- -1);
- }
+int
+be_visitor_operation::gen_pre_stub_info (
+ be_operation *node
+ )
+{
+ be_visitor_context ctx = *this->ctx_;
+ be_visitor_operation_exceptlist_cs visitor (&ctx);
- // The receive_exception() or receive_other() interception point may
- // have thrown a PortableInterceptor::ForwardRequest exception. In
- // that event, the connection retry loop must be restarted. Note
- // that the _invoke_status variable is not set by the interceptor
- // support code, so we must explicitly check the status in the
- // ClientRequestInfo object.
- *os << be_nl
- << "const PortableInterceptor::ReplyStatus _tao_status =" << be_idt_nl
- << "_tao_ri.reply_status (ACE_ENV_SINGLE_ARG_PARAMETER);" << be_uidt_nl;
-
- if (this->gen_check_exception (bt) == -1)
+ if (node->accept (&visitor) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_cs::"
- "gen_marshal_and_invoke - "
- "codegen for checking exception failed\n"),
+ "(%N:%l) "
+ "be_visitor_operation_cs::"
+ "gen_pre_stub_info - "
+ "Exceptionlist generation error\n"),
-1);
}
- *os << be_nl
- << "if (_tao_status != PortableInterceptor::LOCATION_FORWARD" << be_nl
- << " && _tao_status != PortableInterceptor::TRANSPORT_RETRY)"
- << be_idt_nl;
- // Continue to below break statement."
- *os << "\n#endif /* TAO_HAS_INTERCEPTORS */" << be_nl;
-
- *os << be_nl
- << "if (_invoke_status != TAO_INVOKE_RESTART)" << be_idt_nl
- << "break;" << be_uidt << be_uidt << be_uidt_nl
- << "}" << be_uidt << be_uidt;
-
return 0;
}
@@ -1333,47 +639,96 @@ be_visitor_operation::gen_raise_interceptor_exception (
return 0;
}
-const char*
-be_visitor_operation::compute_operation_name (
- be_operation *node
- )
+void
+be_visitor_operation::gen_stub_body_arglist (be_operation *node,
+ TAO_OutStream *os,
+ idl_bool ami)
{
- if (this->operation_name_ == 0)
+ AST_Argument *arg = 0;
+
+ for (UTL_ScopeActiveIterator arg_decl_iter (node, UTL_Scope::IK_decls);
+ ! arg_decl_iter.is_done ();
+ arg_decl_iter.next ())
{
- // Length for two double quotes and the null termination char.
- size_t len = 3;
+ arg = AST_Argument::narrow_from_decl (arg_decl_iter.item ());
- if (this->ctx_->attribute ())
+ if (ami && arg->direction () == AST_Argument::dir_OUT)
{
- // "Added length for "_set_" or "_get_".
- len += 5;
+ continue;
}
- len += ACE_OS::strlen (node->original_local_name ()->get_string ());
+ *os << be_nl
+ << "TAO::Arg_Traits<";
- ACE_NEW_RETURN (this->operation_name_,
- char [len],
- 0);
+ this->gen_arg_template_param_name (arg->field_type (),
+ os);
- ACE_OS::strcpy (this->operation_name_, "\"");
+ *os << ">::";
- if (this->ctx_->attribute ())
+ switch (arg->direction ())
{
- // Now check if we are a "get" or "set" operation.
- if (node->nmembers () == 1)
- {
- ACE_OS::strcat (this->operation_name_, "_set_");
- }
- else
- {
- ACE_OS::strcat (this->operation_name_, "_get_");
- }
+ case AST_Argument::dir_IN:
+ *os << "in";
+ break;
+ case AST_Argument::dir_INOUT:
+ *os << "inout";
+ break;
+ case AST_Argument::dir_OUT:
+ *os << "out";
+ default:
+ break;
+ }
+
+ *os << "_arg_val _tao_" << arg->local_name () << " ("
+ << arg->local_name () << ");";
+ }
+}
+
+void
+be_visitor_operation::gen_arg_template_param_name (AST_Type *bt,
+ TAO_OutStream *os)
+{
+ AST_Decl::NodeType nt = bt->node_type ();
+
+ // If we're here, we must have a bounded string, if unbounded, it
+ // would be a predefined type.
+ if (nt == AST_Decl::NT_string)
+ {
+ AST_String *s = AST_String::narrow_from_decl (bt);
+ unsigned long bound = s->max_size ()->ev ()->u.ulval;
+ AST_Typedef *alias = this->ctx_->alias ();
+
+ if (bound > 0)
+ {
+ *os << "TAO::" << alias->local_name () << "_" << bound;
+ return;
}
+ }
+
+ // For the four predefined types below, we use the helper struct
+ // type, in order to disambiguate the template parameter.
+ if (nt == AST_Decl::NT_pre_defined)
+ {
+ AST_PredefinedType *pdt = AST_PredefinedType::narrow_from_decl (bt);
- ACE_OS::strcat (this->operation_name_,
- node->original_local_name ()->get_string ());
- ACE_OS::strcat (this->operation_name_, "\"");
+ switch (pdt->pt ())
+ {
+ case AST_PredefinedType::PT_boolean:
+ *os << "ACE_InputCDR::to_boolean";
+ return;
+ case AST_PredefinedType::PT_octet:
+ *os << "ACE_InputCDR::to_octet";
+ return;
+ case AST_PredefinedType::PT_char:
+ *os << "ACE_InputCDR::to_char";
+ return;
+ case AST_PredefinedType::PT_wchar:
+ *os << "ACE_InputCDR::to_wchar";
+ return;
+ default:
+ break;
+ }
}
- return this->operation_name_;
+ *os << bt->name ();
}
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp
index 9b080c5c111..f9304464aef 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp
@@ -28,13 +28,11 @@ ACE_RCSID (be_visitor_operation,
be_visitor_operation_cs::be_visitor_operation_cs (be_visitor_context *ctx)
: be_visitor_operation (ctx)
-// operation_name_ (0)
{
}
be_visitor_operation_cs::~be_visitor_operation_cs (void)
{
-// delete[] operation_name_;
}
// Processing to be done after every element in the scope is processed.
@@ -62,7 +60,7 @@ be_visitor_operation_cs::visit_operation (be_operation *node)
if (!intf)
{
ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_thru_poa_collocated_ss::"
+ "(%N:%l) be_visitor_operation_cs::"
"visit_operation - "
"bad interface scope\n"),
-1);
@@ -121,157 +119,8 @@ be_visitor_operation_cs::visit_operation (be_operation *node)
-1);
}
- *os << be_nl;
-
- // @@@ (JP) No collocation for abstract interface operations yet. We
- // are generating the code as if there were no proxies, and using
- // the (concrete interface's) stub info that we got over the wire.
- if (intf->is_abstract ())
- {
- return this->gen_stub_operation_body (node,
- bt);
- }
- else
- {
- *os << "{" << be_idt_nl;
- *os << this->gen_environment_var ();
-
- if (be_global->exception_support ())
- {
- *os << be_nl << be_nl;
- }
-
- // For what follows, the return type node nust be unaliased.
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- be_typedef *btd = be_typedef::narrow_from_decl (bt);
- bt = btd->primitive_base_type ();
- }
-
- AST_Decl::NodeType bnt = bt->base_node_type ();
- be_predefined_type *bpt = 0;
- AST_PredefinedType::PredefinedType pdt = AST_PredefinedType::PT_void;
-
- if (bnt == AST_Decl::NT_pre_defined)
- {
- bpt = be_predefined_type::narrow_from_decl (bt);
- pdt = bpt->pt ();
-
- if (pdt == AST_PredefinedType::PT_longlong)
- {
- *os << "CORBA::LongLong _tao_check_retval = "
- << "ACE_CDR_LONGLONG_INITIALIZER;" << be_nl << be_nl;
- }
- else if (pdt == AST_PredefinedType::PT_longdouble)
- {
- *os << "CORBA::LongDouble _tao_check_retval = "
- << "ACE_CDR_LONG_DOUBLE_INITIALIZER;" << be_nl << be_nl;
- }
- }
-
- // If the object is lazily evaluated the proxy brker might well
- // be null. Initialize it now
- *os << "if (!this->is_evaluated ())" << be_idt_nl
- << "{" << be_idt_nl
- << "ACE_NESTED_CLASS (CORBA, Object)::tao_object_initialize (this);" << be_uidt_nl << be_nl
- << "}" << be_uidt_nl
- << "if (this->the" << intf->base_proxy_broker_name () << "_ == 0)"<< be_idt_nl
- << "{" << be_idt_nl
- << intf->flat_name () << "_setup_collocation (" << be_idt << be_idt_nl
- << "this->ACE_NESTED_CLASS (CORBA, Object)::_is_collocated ()"
- << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl
- << "}" << be_uidt_nl << be_nl;
-
- // Generate code that retrieves the proper proxy implementation
- // using the proxy broker available, and perform the call
- // using the proxy implementation provided by the broker.
-
- *os << intf->base_proxy_impl_name () << " &proxy = " << be_idt_nl
- << "this->the" << intf->base_proxy_broker_name ()
- << "_->select_proxy (this ACE_ENV_ARG_PARAMETER);" << be_uidt_nl;
-
- if (!this->void_return_type (bt))
- {
- *os << "ACE_CHECK_RETURN (";
-
- if (bnt == AST_Decl::NT_enum)
- {
- // The enum is a unique type, so we must cast.
- *os << "(" << bt->name () << ")0);";
- }
- else if (bnt == AST_Decl::NT_struct || bnt == AST_Decl::NT_union)
- {
- if (bt->size_type () == AST_Type::FIXED)
- {
- // For a fixed size struct or union the return value
- // is not a pointer, so we call the default constructor
- // and return the result.
- *os << bt->name () << " ());";
- }
- else
- {
- *os << "0);";
- }
- }
- else if (bnt == AST_Decl::NT_pre_defined)
- {
- if (pdt == AST_PredefinedType::PT_longlong
- || pdt == AST_PredefinedType::PT_longdouble)
- {
- *os << "_tao_check_retval);" << be_nl
- << "ACE_UNUSED_ARG (_tao_check_retval);";
- }
- else
- {
- *os << "0);";
- }
- }
- else
- {
- *os << "0);";
- }
-
- *os << be_nl << be_nl
- << "return ";
- }
- else
- {
- *os << "ACE_CHECK;" << be_nl << be_nl;
- }
-
- *os << "proxy." << node->local_name ()
- << " (" << be_idt << be_idt_nl << "this";
-
- for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
- !si.is_done ();
- si.next ())
- {
- AST_Decl *d = si.item ();
-
- if (d == 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_scope::visit_scope - "
- "bad node in this scope\n"),
- -1);
- }
-
- be_decl *decl = be_decl::narrow_from_decl (d);
-
- *os << "," << be_nl
- << decl->local_name ();
- }
-
- if (!be_global->exception_support ())
- {
- *os << be_nl << "ACE_ENV_ARG_PARAMETER";
- }
-
- *os << be_uidt_nl << ");" << be_uidt << be_uidt_nl << "}";
- }
-
- return 0;
+ return this->gen_stub_operation_body (node,
+ bt);
}
int
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 a03d77e4b03..80c95f31c63 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp
@@ -27,14 +27,12 @@ ACE_RCSID (be_visitor_operation,
// ************************************************************
be_visitor_operation_ss::be_visitor_operation_ss (be_visitor_context *ctx)
- : be_visitor_operation (ctx),
- operation_name_ (0)
+ : be_visitor_operation (ctx)
{
}
be_visitor_operation_ss::~be_visitor_operation_ss (void)
{
- delete [] this->operation_name_;
}
// Processing to be done after every element in the scope is processed.
@@ -126,7 +124,7 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
// Generate the actual code for the skeleton. However, if any of the
// argument types is "native", we do not generate any skeleton
// last argument - is always CORBA::Environment.
- *os << "{\n" << be_idt;
+ *os << "{" << be_idt_nl;
// Generate all the tables and other pre-skel info.
if (this->gen_pre_skel_info (node) == -1)
@@ -138,8 +136,6 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
-1);
}
- os->indent ();
-
// Get the right object implementation.
*os << intf->full_skel_name () << " *_tao_impl =" << be_idt_nl
<< "ACE_static_cast (" << be_idt << be_idt_nl
@@ -198,13 +194,15 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
}
// Fish out the interceptors.
- *os << "\n\n#if (TAO_HAS_INTERCEPTORS == 1)" << be_nl;
+ *os << be_nl
+ << "\n#if (TAO_HAS_INTERCEPTORS == 1)" << be_nl;
// Cast the Servant_Upcall pointer.
*os << "TAO_Object_Adapter::Servant_Upcall *_tao_upcall =" << be_idt_nl
- << "ACE_static_cast (TAO_Object_Adapter::Servant_Upcall *, "
- << "_tao_servant_upcall);"
- << be_uidt_nl << be_nl;
+ << "ACE_static_cast (" << be_idt << be_idt_nl
+ << "TAO_Object_Adapter::Servant_Upcall *," << be_nl
+ << "_tao_servant_upcall" << be_uidt_nl
+ << ");" << be_uidt_nl << be_uidt_nl;
*os << "TAO_ServerRequestInterceptor_Adapter _tao_vfr ("
<< be_idt << be_idt_nl
@@ -290,7 +288,7 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
// ServerRequestInterceptor::receive_request().
*os << be_nl
<< "if (!_tao_vfr.location_forwarded ())" << be_idt_nl
- << "{" << be_idt_nl;
+ << "{" << be_idt;
*os << "\n#endif /* TAO_HAS_INTERCEPTORS */\n";
@@ -308,8 +306,9 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
}
// Make the upcall.
- *os << be_nl
- << "_tao_impl->" << node->local_name () << " (" << be_idt << be_idt_nl;
+ *os << be_idt_nl
+ << "_tao_impl->" << node->local_name () << " (" << be_idt << be_idt;
+
ctx = *this->ctx_;
ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_UPCALL_SS);
be_visitor_operation_argument oau_visitor (&ctx);
@@ -324,7 +323,8 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
}
// End the upcall.
- *os << be_uidt_nl << ");" << be_uidt_nl;
+ *os << be_uidt_nl << ");"
+ << be_uidt << be_uidt_nl;
if (!be_global->exception_support ())
{
@@ -336,16 +336,16 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
if (!bt)
{
- ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_interceptors_ch::"
- "visit_operation - "
- "Bad return type\n"),
- -1);
+ "visit_operation - "
+ "Bad return type\n"),
+ -1);
}
// Invoke the send_reply() or send_other() interception point, and
// check for exception.
- *os << "\n\n#if (TAO_HAS_INTERCEPTORS == 1)" << be_nl;
+ *os << "\n#if (TAO_HAS_INTERCEPTORS == 1)";
// Close scope for "if (!_tao_vfr.location_forwarded ()"
*os << be_uidt_nl
@@ -450,7 +450,7 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
// Convert non-CORBA C++ exceptions to CORBA::UNKNOWN.
*os << "\n# if defined (ACE_HAS_EXCEPTIONS) \\\n"
- << " && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS)" << be_nl
+ << " && defined (ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS)" << be_nl
<< "ACE_CATCHALL" << be_idt_nl
<< "{" << be_idt_nl
<< "CORBA::UNKNOWN ex;" << be_nl
@@ -487,11 +487,11 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
*os << "(ex);" << be_uidt << be_uidt_nl
<< "}" << be_uidt
<< "\n# endif /* ACE_HAS_EXCEPTIONS"
- << " && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */" << be_nl << be_nl;
+ << " && ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS */" << be_nl;
*os << "ACE_ENDTRY;" << be_nl;
- *os << "ACE_CHECK;\n"
- << "#endif /* TAO_HAS_INTERCEPTORS */" << be_nl << be_nl;
+ *os << "ACE_CHECK;"
+ << "\n#endif /* TAO_HAS_INTERCEPTORS */" << be_nl << be_nl;
// Check if we are oneway in which case, we are done.
if (node->flags () == AST_Operation::OP_oneway)
@@ -515,7 +515,8 @@ be_visitor_operation_ss::visit_operation (be_operation *node)
-1);
}
- *os << be_nl << be_nl << "// In case _tao_servant_upcall is not used in this function"
+ *os << be_nl << be_nl
+ << "// In case _tao_servant_upcall is not used in this function"
<< be_nl
<< "ACE_UNUSED_ARG (_tao_servant_upcall);" << be_uidt_nl
<< "}";;
@@ -609,15 +610,15 @@ be_visitor_operation_ss::gen_demarshal_params (be_operation *node,
-1);
}
- *os << be_nl << "))" << be_nl;
+ *os << be_nl << "))" << be_uidt_nl;
// 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
+ *os << "{" << be_idt_nl
+ << "TAO_InputCDR::throw_skel_exception "
+ << "(errno ACE_ENV_ARG_PARAMETER);"
+ << be_nl
<< "ACE_CHECK;" << be_uidt_nl
- << "}" << be_nl;
-
- *os << be_uidt << be_uidt;
+ << "}" << be_uidt;
};
return 0;
@@ -680,6 +681,7 @@ be_visitor_operation_ss::gen_marshal_params (be_operation *node,
*os << be_nl << be_nl
<< "TAO_OutputCDR &_tao_out = _tao_server_request.outgoing ();"
<< be_nl << be_nl;
+
*os << "if (!(" << be_idt << be_idt;
if (!this->void_return_type (bt))
@@ -725,55 +727,15 @@ be_visitor_operation_ss::gen_marshal_params (be_operation *node,
}
}
- *os << be_nl << "))" << be_nl;
+ *os << be_nl << "))" << be_uidt_nl;
// If marshaling fails, raise exception (codesetting has minor codes)
- *os << "{" << be_idt_nl << be_nl
- << "TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER);" << be_nl
+ *os << "{" << be_idt_nl
+ << "TAO_OutputCDR::throw_skel_exception (errno ACE_ENV_ARG_PARAMETER);"
+ << be_nl
<< "ACE_CHECK;" << be_uidt_nl
- << "}" << be_nl;
-
- *os << be_uidt << be_uidt;
+ << "}" << be_uidt;
return 0;
}
-const char *
-be_visitor_operation_ss::compute_operation_name (be_operation *node)
-{
- if (this->operation_name_ == 0)
- {
- size_t len = 3; // The null termination char.
-
- if (this->ctx_->attribute ())
- {
- len += 5; // "Added length for "_set_" or "_get_".
- }
-
- len += ACE_OS::strlen (node->local_name ()->get_string ());
-
- ACE_NEW_RETURN (this->operation_name_,
- char [len],
- 0);
-
- ACE_OS::strcpy (this->operation_name_, "\"");
-
- if (this->ctx_->attribute ())
- {
- if (node->nmembers () == 1)
- {
- ACE_OS::strcat (this->operation_name_, "_set_");
- }
- else
- {
- ACE_OS::strcat (this->operation_name_, "_get_");
- }
- }
-
- ACE_OS::strcat (this->operation_name_,
- node->local_name ()->get_string ());
- ACE_OS::strcat (this->operation_name_, "\"");
- }
-
- return this->operation_name_;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp
index eeaf83dfeb1..7287ac5668d 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/proxy_impl_xh.cpp
@@ -1,13 +1,13 @@
// $Id$
-ACE_RCSID (be_visitor_operation,
- proxy_impl_xh,
+ACE_RCSID (be_visitor_operation,
+ proxy_impl_xh,
"$Id$")
be_visitor_operation_proxy_impl_xh::be_visitor_operation_proxy_impl_xh (
be_visitor_context *ctx
)
- : be_visitor_scope (ctx)
+ : be_visitor_operation (ctx)
{
}
@@ -23,49 +23,42 @@ int be_visitor_operation_proxy_impl_xh::visit_operation (be_operation *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- *os << "virtual ";
+ *os << "static void" << be_nl;
- // STEP I: generate the return type.
- be_type *bt = be_type::narrow_from_decl (node->return_type ());
-
- if (!bt)
+ // Check if we are an attribute node in disguise.
+ if (this->ctx_->attribute ())
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_sh::"
- "visit_operation - "
- "Bad return type\n"),
- -1);
+ // Now check if we are a "get" or "set" operation.
+ if (node->nmembers () == 1)
+ {
+ *os << "_set_";
+ }
+ else
+ {
+ *os << "_get_";
+ }
}
- be_visitor_context ctx (*this->ctx_);
- be_visitor_operation_rettype oro_visitor (&ctx);
+ *os << node->local_name () << " (" << be_idt << be_idt_nl
+ << "TAO_Abstract_ServantBase *servant," << be_nl
+ << "TAO::Argument ** args," << be_nl
+ << "int num_args" << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ")";
- if (bt->accept (&oro_visitor) == -1)
+ if (this->gen_throw_spec (node) != 0)
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_sh::"
- "visit_operation - "
- "codegen for return type failed\n"),
- -1);
+ ACE_ERROR_RETURN ((
+ LM_ERROR,
+ "(%N:%l) be_visitor_operation_proxy_impl_xh::"
+ "visit_operation - "
+ "throw spec generation failed\n"
+ ),
+ -1
+ );
}
- // STEP 2: generate the operation name
- *os << " " << node->local_name ();
-
- // STEP 3: generate the argument list with the appropriate mapping. For these
- // we grab a visitor that generates the parameter listing
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XH);
- be_visitor_operation_arglist oapi_visitor (&ctx);
-
- if (node->accept (&oapi_visitor) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_sh::"
- "visit_operation - "
- "codegen for argument list failed\n"),
- -1);
- }
+ *os << ";";
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp
index 8b30a1ce8c8..2f3f0060503 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/thru_poa_proxy_impl_ss.cpp
@@ -48,94 +48,57 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation (
);
}
- // retrieve the operation return type
- be_type *bt = be_type::narrow_from_decl (node->return_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_thru_poa_collocated_ss::"
- "visit_operation - "
- "Bad return type\n"
- ),
- -1
- );
- }
-
*os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- // STEP 2: generate the return type mapping (same as in the header file)
- be_visitor_context ctx (*this->ctx_);
- be_visitor_operation_rettype oro_visitor (&ctx);
+ *os << "void" << be_nl
+ << intf->full_thru_poa_proxy_impl_name () << "::";
- if (bt->accept (&oro_visitor) == -1)
+ // Check if we are an attribute node in disguise.
+ if (this->ctx_->attribute ())
{
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_thru_poa_collocated_ss::"
- "visit_operation - "
- "codegen for return type failed\n"
- ),
- -1
- );
+ // Now check if we are a "get" or "set" operation.
+ if (node->nmembers () == 1)
+ {
+ *os << "_set_";
+ }
+ else
+ {
+ *os << "_get_";
+ }
}
- *os << " " << intf->full_thru_poa_proxy_impl_name () << "::";
- *os << node->local_name ();
+ *os << node->local_name () << " (" << be_idt << be_idt_nl
+ << "TAO_Abstract_ServantBase *servant," << be_nl
+ << "TAO::Argument **";
- // STEP 4: generate the argument list with the appropriate mapping (same as
- // in the header file)
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_PROXY_IMPL_XS);
- be_visitor_operation_arglist oapi_visitor (&ctx);
-
- if (node->accept (&oapi_visitor) == -1)
+ if (!node->void_return_type () || node->nmembers () > 0)
{
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_ss::"
- "visit_operation - "
- "codegen for argument list failed\n"),
- -1);
+ *os << " args";
}
- *os << be_nl << "{" << be_idt << be_nl;
+ *os << "," << be_nl
+ << "int " << be_nl
+ << "ACE_ENV_ARG_DECL" << be_uidt_nl
+ << ")";
- if (!be_global->exception_support ())
+ if (this->gen_throw_spec (node) != 0)
{
- // Declare a return type
- ctx = *this->ctx_;
- be_visitor_operation_rettype_vardecl_ss ord_visitor (&ctx);
-
- if (bt->accept (&ord_visitor) == -1)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_thru_poa_collocated_ss::"
- "visit_operation - "
- "codegen for return var decl failed\n"
- ),
- -1
- );
- }
-
- if (!this->void_return_type (bt))
- {
- *os << be_nl << "ACE_UNUSED_ARG (_tao_retval);";
- }
+ return -1;
}
- *os << be_nl
+ *os << be_uidt_nl
+ << "{" << be_idt_nl;
+
+#if 0
<< "TAO_Object_Adapter::Servant_Upcall servant_upcall ("
<< be_idt << be_idt_nl
- << "_collocated_tao_target_->_stubobj ()"
+ << "obj->_stubobj ()"
<< "->servant_orb_var ()->orb_core ()"
<< be_uidt_nl
- << ");" << be_uidt_nl
- << "CORBA::Object_var forward_to;" << be_nl
+ << ");" << be_uidt_nl << be_nl
<< "servant_upcall.prepare_for_upcall (" << be_idt << be_idt_nl
- << "_collocated_tao_target_->_stubobj ()->object_key ()," << be_nl
+ << "obj->_stubobj ()->object_key ()," << be_nl
<< "\"";
// Check if we are an attribute node in disguise.
@@ -153,7 +116,7 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation (
}
*os << node->original_local_name () << "\"," << be_nl
- << "forward_to.out ()";
+ << "forward";
if (!be_global->exception_support ())
{
@@ -169,20 +132,10 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation (
// Check if there is an exception.
if (!be_global->exception_support ())
{
- if (this->gen_check_exception (bt) == -1)
- {
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_thru_poa_collocated_ss::"
- "visit_operation - "
- "codegen for checking exception failed\n"
- ),
- -1
- );
- }
+ *os << "ACE_CHECK;";
}
- *os << be_nl
+ *os << be_nl << be_nl
<< "servant_upcall.pre_invoke_collocated_request (";
if (!be_global->exception_support ())
@@ -196,40 +149,46 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation (
*os << ");" << be_nl;
}
- // check if there is an exception
+ // Check if there is an exception.
if (!be_global->exception_support ())
{
- if (this->gen_check_exception (bt) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_thru_"
- " poa_collocated_ss::"
- "visit_operation - "
- "codegen for checking exception failed\n"),
- -1);
- }
+ *os << "ACE_CHECK;";
}
- *os << be_nl;
+#endif /*if 0*/
- if (!this->void_return_type (bt))
+ if (!node->void_return_type ())
{
- *os << "return ";
+ *os << "((TAO::Arg_Traits<";
+
+ this->gen_arg_template_param_name (node->return_type (),
+ os);
+
+ *os << ">::ret_val *) args[0])->arg () =" << be_idt_nl;
}
*os << "ACE_reinterpret_cast (" << be_idt << be_idt_nl
<< intf->full_skel_name () << "_ptr," << be_nl
- << "servant_upcall.servant ()->_downcast (" << be_idt << be_idt_nl
+ << "servant->_downcast (" << be_idt << be_idt_nl
<< "\"" << intf->repoID () << "\"" << be_uidt_nl
<< ")" << be_uidt << be_uidt_nl
<< ")" << be_uidt;
+ be_visitor_context ctx;
+
if (this->gen_invoke (ctx, node) == -1)
{
return -1;
}
- *os << "}";
+ if (!node->void_return_type ())
+ {
+ *os << be_uidt;
+ }
+
+ *os << be_uidt << be_uidt_nl
+ << "ACE_CHECK;" << be_uidt_nl
+ << "}";
return 0;
}
@@ -237,36 +196,63 @@ be_visitor_operation_thru_poa_proxy_impl_ss::visit_operation (
int
be_visitor_operation_thru_poa_proxy_impl_ss::gen_invoke (
- be_visitor_context &ctx,
+ be_visitor_context &,
be_operation *node
)
{
TAO_OutStream *os = this->ctx_->stream ();
*os << "->" << node->local_name () << " ("
- << be_idt << be_idt << be_idt_nl;
+ << be_idt << be_idt << be_idt;
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_ARG_UPCALL_SS);
- be_visitor_operation_argument visitor (&ctx);
+ UTL_ScopeActiveIterator si (node,
+ UTL_Scope::IK_decls);
- if (node->accept (&visitor) == -1)
+ if (si.is_done ())
{
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "(%N:%l) be_visitor_operation_thru_poa_collocated_ss::"
- "gen_invoke - "
- "codegen for making upcall failed\n"
- ),
- -1
- );
+ *os << be_nl
+ << "ACE_ENV_SINGLE_ARG_PARAMETER" << be_uidt_nl
+ << ");";
+
+ return 0;
+ }
+
+ AST_Argument *arg = 0;
+ int index = 1;
+
+ for (; !si.is_done (); si.next (), ++index)
+ {
+ arg = AST_Argument::narrow_from_decl (si.item ());
+
+ *os << (index == 1 ? "" : ",") << be_nl
+ << "((TAO::Arg_Traits<";
+
+ this->gen_arg_template_param_name (arg->field_type (),
+ os);
+
+ *os << ">::";
+
+ switch (arg->direction ())
+ {
+ case AST_Argument::dir_IN:
+ *os << "in";
+ break;
+ case AST_Argument::dir_INOUT:
+ *os << "inout";
+ break;
+ case AST_Argument::dir_OUT:
+ *os << "out";
+ default:
+ break;
+ }
+
+ *os << "_arg_val *) args[" << index << "])->arg ()";
}
// End the upcall
- *os << be_uidt_nl
+ *os << be_nl
+ << "ACE_ENV_ARG_PARAMETER" << be_uidt_nl
<< ");";
- *os << be_uidt << be_uidt << be_uidt_nl;
-
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_root.cpp b/TAO/TAO_IDL/be/be_visitor_root.cpp
index aed1dba18d4..567c4a4ee42 100644
--- a/TAO/TAO_IDL/be/be_visitor_root.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root.cpp
@@ -57,6 +57,9 @@
#include "be_visitor_component.h"
#include "be_visitor_component_fwd.h"
#include "be_visitor_home.h"
+#include "be_visitor_traits.h"
+#include "be_visitor_arg_traits.h"
+#include "be_visitor_tmplinst.h"
#include "be_visitor_context.h"
#include "be_visitor_root/root.cpp"
@@ -72,6 +75,6 @@
#include "be_visitor_root/any_op.cpp"
#include "be_visitor_root/cdr_op.cpp"
-ACE_RCSID (be,
- be_visitor_root,
+ACE_RCSID (be,
+ be_visitor_root,
"$Id$")
diff --git a/TAO/TAO_IDL/be/be_visitor_root/root.cpp b/TAO/TAO_IDL/be/be_visitor_root/root.cpp
index e4edbad1c37..c8e1b8014d8 100644
--- a/TAO/TAO_IDL/be/be_visitor_root/root.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root/root.cpp
@@ -13,7 +13,6 @@
// Aniruddha Gokhale
//
// ============================================================================
-
ACE_RCSID (be_visitor_root,
root,
"$Id$")
@@ -47,6 +46,51 @@ int be_visitor_root::visit_root (be_root *node)
-1);
}
+ int status = 0;
+ be_visitor_context ctx = *this->ctx_;
+
+ switch (this->ctx_->state ())
+ {
+ case TAO_CodeGen::TAO_ROOT_CS:
+ {
+ be_visitor_arg_traits arg_visitor ("", &ctx);
+ status = node->accept (&arg_visitor);
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "failed to generate stub arg traits\n"),
+ -1);
+ }
+ }
+
+ break;
+ case TAO_CodeGen::TAO_ROOT_SS:
+ {
+ if (be_global->gen_thru_poa_collocation ()
+ || be_global->gen_direct_collocation ())
+ {
+ be_visitor_arg_traits arg_visitor ("", &ctx);
+ status = node->accept (&arg_visitor);
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "failed to generate stub arg traits\n"),
+ -1);
+ }
+ }
+ }
+
+ break;
+ default:
+ break;
+ }
+
if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -82,7 +126,7 @@ int be_visitor_root::visit_root (be_root *node)
*os << be_nl << be_nl
<< "extern " << be_global->stub_export_macro () << be_nl
- << i->full_base_proxy_broker_name () << " *" << be_nl
+ << "TAO::Collocation_Proxy_Broker *" << be_nl
<< "(*" << i->flat_client_enclosing_scope ()
<< i->base_proxy_broker_name ()
<< "_Factory_function_pointer) ("
@@ -138,7 +182,7 @@ int be_visitor_root::visit_root (be_root *node)
<< be_nl
<< "// interfaces that inherit from both CORBA::Object" << be_nl
<< "// and CORBA::AbstractBase." << be_nl << be_nl
- << "TAO_NAMESPACE CORBA" << be_nl
+ << "namespace CORBA" << be_nl
<< "{" << be_idt;
}
@@ -156,18 +200,15 @@ int be_visitor_root::visit_root (be_root *node)
if (size > 0)
{
*os << be_uidt_nl
- << "}" << be_nl
- << "TAO_NAMESPACE_CLOSE";
+ << "}";
}
}
- be_visitor_context ctx (*this->ctx_);
-
// Make one more pass over the entire tree and generate the OBV_ namespaces
// and OBV_ classes.
idl_bool obv = 1;
- int status = 0;
+ status = 0;
switch (this->ctx_->state ())
{
@@ -201,6 +242,31 @@ int be_visitor_root::visit_root (be_root *node)
}
}
+ status = 0;
+ ctx = *this->ctx_;
+
+ switch (this->ctx_->state ())
+ {
+ case TAO_CodeGen::TAO_ROOT_CH:
+ {
+ be_visitor_traits visitor (&ctx);
+ status = node->accept (&visitor);
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "failed to generate traits\n"),
+ -1);
+ }
+ }
+
+ break;
+ default:
+ break;
+ }
+
// The next thing we need to do is make one more pass thru the entire tree
// and generate code for all the <<= and >>= operators for all the
// user-defined types.
@@ -210,73 +276,46 @@ int be_visitor_root::visit_root (be_root *node)
switch (this->ctx_->state ())
{
- case TAO_CodeGen::TAO_ROOT_CH:
- {
- ctx.state (TAO_CodeGen::TAO_ROOT_ANY_OP_CH);
-
- if (be_global->any_support ())
- {
- be_visitor_root_any_op visitor (&ctx);
- status = node->accept (&visitor);
- }
-
- break;
- }
- case TAO_CodeGen::TAO_ROOT_CS:
- {
- ctx.state (TAO_CodeGen::TAO_ROOT_ANY_OP_CS);
+ case TAO_CodeGen::TAO_ROOT_CH:
+ {
+ ctx.state (TAO_CodeGen::TAO_ROOT_ANY_OP_CH);
- if (be_global->any_support ())
- {
- be_visitor_root_any_op visitor (&ctx);
- status = node->accept (&visitor);
- }
+ if (be_global->any_support ())
+ {
+ be_visitor_root_any_op visitor (&ctx);
+ status = node->accept (&visitor);
+ }
- break;
- }
- case TAO_CodeGen::TAO_ROOT_IH:
- (void) tao_cg->end_implementation_header (
- be_global->be_get_implementation_hdr_fname (0)
- );
- break;
- case TAO_CodeGen::TAO_ROOT_SH:
- (void) tao_cg->end_server_header ();
- return 0;
- case TAO_CodeGen::TAO_ROOT_CI:
- case TAO_CodeGen::TAO_ROOT_IS:
- break;
- case TAO_CodeGen::TAO_ROOT_SI:
- if (be_global->gen_tie_classes ())
- {
- (void) tao_cg->end_server_template_inline ();
+ break;
}
+ case TAO_CodeGen::TAO_ROOT_CS:
+ {
+ ctx.state (TAO_CodeGen::TAO_ROOT_ANY_OP_CS);
- *os << "\n\n";
+ if (be_global->any_support ())
+ {
+ be_visitor_root_any_op visitor (&ctx);
+ status = node->accept (&visitor);
+ }
- return 0;
- case TAO_CodeGen::TAO_ROOT_SS:
- if (be_global->gen_tie_classes ())
- {
- (void) tao_cg->end_server_template_skeletons ();
+ break;
}
-
- (void) tao_cg->end_server_skeletons ();
- return 0;
- case TAO_CodeGen::TAO_ROOT_TIE_SH:
- if (be_global->gen_tie_classes ())
+ case TAO_CodeGen::TAO_ROOT_IH:
+ case TAO_CodeGen::TAO_ROOT_SH:
+ case TAO_CodeGen::TAO_ROOT_CI:
+ case TAO_CodeGen::TAO_ROOT_IS:
+ case TAO_CodeGen::TAO_ROOT_SI:
+ case TAO_CodeGen::TAO_ROOT_SS:
+ case TAO_CodeGen::TAO_ROOT_TIE_SH:
+ break;
+ default:
{
- (void) tao_cg->end_server_template_header ();
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_constant - "
+ "Bad context state\n"),
+ -1);
}
-
- return 0;
- default:
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_root::"
- "visit_constant - "
- "Bad context state\n"),
- -1);
- }
}
if (status == -1)
@@ -289,7 +328,7 @@ int be_visitor_root::visit_root (be_root *node)
}
- // Make one more pass over the entire tree and generate the CDR operators.
+ // Make another pass over the entire tree and generate the CDR operators.
ctx = *this->ctx_;
status = 0;
@@ -318,15 +357,16 @@ int be_visitor_root::visit_root (be_root *node)
}
case TAO_CodeGen::TAO_ROOT_SH:
case TAO_CodeGen::TAO_ROOT_IH:
+ case TAO_CodeGen::TAO_ROOT_SI:
case TAO_CodeGen::TAO_ROOT_SS:
case TAO_CodeGen::TAO_ROOT_IS:
case TAO_CodeGen::TAO_ROOT_TIE_SH:
- return 0; // nothing to be done
+ break; // nothing to be done
default:
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_root::"
- "visit_constant - "
+ "visit_root - "
"Bad context state\n"),
-1);
}
@@ -341,6 +381,19 @@ int be_visitor_root::visit_root (be_root *node)
-1);
}
+ if (be_global->gen_tmplinst ())
+ {
+ if (this->gen_explicit_tmplinst (node, os) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "explicit template instantiation "
+ "generation failed\n"),
+ -1);
+ }
+ }
+
// Generate any final code such as #endifs and/or EOF newlines.
switch (this->ctx_->state ())
{
@@ -351,6 +404,38 @@ int be_visitor_root::visit_root (be_root *node)
case TAO_CodeGen::TAO_ROOT_CS:
*os << "\n\n";
break;
+ case TAO_CodeGen::TAO_ROOT_SH:
+ (void) tao_cg->end_server_header ();
+ break;
+ case TAO_CodeGen::TAO_ROOT_IS:
+ break;
+ case TAO_CodeGen::TAO_ROOT_IH:
+ (void) tao_cg->end_implementation_header (
+ be_global->be_get_implementation_hdr_fname (0)
+ );
+ break;
+ case TAO_CodeGen::TAO_ROOT_SI:
+ if (be_global->gen_tie_classes ())
+ {
+ (void) tao_cg->end_server_template_inline ();
+ }
+
+ break;
+ case TAO_CodeGen::TAO_ROOT_SS:
+ if (be_global->gen_tie_classes ())
+ {
+ (void) tao_cg->end_server_template_skeletons ();
+ }
+
+ (void) tao_cg->end_server_skeletons ();
+ break;
+ case TAO_CodeGen::TAO_ROOT_TIE_SH:
+ if (be_global->gen_tie_classes ())
+ {
+ (void) tao_cg->end_server_template_header ();
+ }
+
+ break;
default:
break;
}
@@ -1602,3 +1687,92 @@ be_visitor_root::visit_typedef (be_typedef *node)
return 0;
}
+
+int
+be_visitor_root::gen_explicit_tmplinst (be_root *node,
+ TAO_OutStream *os)
+{
+ if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_CS)
+ {
+ // Make two more passes over the AST to generate the explicit
+ // template instantiations, one for 'template class ...' and
+ // one for '#pragma instantiate ...' for the client side.
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ os->gen_ifdef_AHETI ();
+
+ be_visitor_tmplinst_cs visitor (this->ctx_);
+
+ if (node->accept (&visitor) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "stub explicit template instantiation failed\n"),
+ -1);
+ }
+
+ os->gen_elif_AHETI ();
+
+ visitor.switch_mode ();
+
+ if (node->accept (&visitor) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "stub explicit template instantiation failed\n"),
+ -1);
+ }
+
+ os->gen_endif_AHETI ();
+ }
+ else if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_SS)
+ {
+ // Make two more passes over the AST to generate the explicit
+ // template instantiations, one for 'template class ...' and
+ // one for '#pragma instantiate ...' for the client side.
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__
+ << be_nl << be_nl;
+
+ *os << "#if 0 " << be_nl
+ << "/* Useful at a later date." << be_nl
+ << "At present will be commented out */" << be_nl;
+
+ os->gen_ifdef_AHETI ();
+
+ be_visitor_tmplinst_ss visitor (this->ctx_);
+
+ if (node->accept (&visitor) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "skel explicit template instantiation failed\n"),
+ -1);
+ }
+
+ os->gen_elif_AHETI ();
+
+ visitor.switch_mode ();
+
+ if (node->accept (&visitor) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "skel explicit template instantiation failed\n"),
+ -1);
+ }
+
+ os->gen_endif_AHETI ();
+
+ *os << be_nl << "#endif /*if 0*/ " << be_nl;
+ }
+
+ return 0;
+}
diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp
index ff7dba28e3a..9ed3a36428a 100644
--- a/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp
@@ -51,5 +51,25 @@ be_visitor_root_ch::init (void)
// Initialize the stream.
this->ctx_->stream (tao_cg->client_header ());
+ // If this IDL file contains an interface declaration, generated a
+ // forward declaration of the proxy broker for a possible collocated call.
+ if (ACE_BIT_ENABLED (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.interface_seen_))
+ {
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl
+ << "// TAO_IDL - Generated from " << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ *os << be_nl << be_nl
+ << "namespace TAO" << be_nl
+ << "{" << be_idt_nl
+ << "class Collocation_Proxy_Broker;" << be_nl << be_nl
+ << "template<typename T> class Narrow_Utils;" << be_nl
+ << "template<typename T> class AbstractBase_Narrow_Utils;" << be_uidt_nl
+ << "}";
+ }
+
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp
index adeb9b52f39..161541c8f94 100644
--- a/TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root/root_sth.cpp
@@ -124,17 +124,17 @@ be_visitor_root_sth::visit_module (be_module *node)
// Now generate the class definition. The prefix POA_ is prepended to our
// name only if we are the outermost module.
- *os << "TAO_NAMESPACE ";
+ *os << "namespace ";
if (node->is_nested ())
{
// We are inside another module.
- *os << " " << node->local_name () << be_nl;
+ *os << node->local_name () << be_nl;
}
else
{
// We are outermost module.
- *os << " POA_" << node->local_name () << be_nl;
+ *os << "POA_" << node->local_name () << be_nl;
}
*os << "{" << be_idt;
@@ -148,8 +148,7 @@ be_visitor_root_sth::visit_module (be_module *node)
-1);
}
- *os << be_uidt_nl << "}" << be_nl << "TAO_NAMESPACE_CLOSE // module "
- << node->name ();
+ *os << be_uidt_nl << "} // module " << node->name ();
if (!node->is_nested ())
{
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
index b0058fd2bdb..31c4a659290 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp
@@ -53,6 +53,33 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node)
<< "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ // Since we don't generate CDR stream operators for types that
+ // explicitly contain a local interface (at some level), we
+ // must override these Any template class methods to avoid
+ // calling the non-existent operators. The zero return value
+ // will eventually cause CORBA::MARSHAL to be raised if this
+ // type is inserted into an Any and then marshaled.
+ if (node->is_local ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::marshal_value (TAO_OutputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::demarshal_value (TAO_InputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+ }
+
// Copying insertion.
*os << "// Copying insertion." << be_nl
<< "void operator<<= (" << be_idt << be_idt_nl
@@ -115,17 +142,6 @@ be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node)
<< ");" << be_uidt << be_uidt << be_uidt_nl
<< "}";
- *os << be_nl << be_nl
- << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl
- << "template class TAO::Any_Dual_Impl_T<" << node->name () << ">;"
- << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate TAO::Any_Dual_Impl_T<" << node->name ()
- << ">" << be_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
node->cli_stub_any_op_gen (1);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
index 5befc431aba..83ae801ea37 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
@@ -89,16 +89,6 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node)
"gen_anonymous_base_type failed\n"),
-1);
}
-/*
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_sequence_cdr_op_cs::"
- "visit_sequence - "
- "Base type codegen failed\n"),
- -1);
- }
-*/
}
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
@@ -847,15 +837,10 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
}
else
{
- AST_Decl *parent = ScopeAsDecl (bt->defined_in ());
-
- if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
- {
- *os << parent->name () << "::";
- }
-
- *os << "tao_" << bt->local_name () << "_life::tao_marshal ("
- << "_tao_sequence[i].in (), strm);" << be_uidt;
+ *os << "TAO::Objref_Traits<" << bt->name () << ">::tao_marshal ("
+ << be_idt << be_idt_nl
+ << "_tao_sequence[i].in (), strm" << be_uidt_nl
+ << ");" << be_uidt << be_uidt;
}
break;
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp
index 6ef79bbb44e..96d43e3d0e6 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp
@@ -84,36 +84,47 @@ be_visitor_sequence_elemtype::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ *os << "TAO_Pseudo_Object_Manager<";
+
+ if (this->ctx_->state () == TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH)
+ {
+ *os << bt->nested_type_name (this->ctx_->scope ()) << ">";
+ }
+ else
+ {
+ *os << bt->name () << ">";
+ }
+
+ break;
case AST_PredefinedType::PT_object:
- {
- int is_pseudo_object =
- ACE_OS::strcmp (node->local_name ()->get_string (),
- "Object") != 0;
-
- if (is_pseudo_object)
- {
- *os << "TAO_Pseudo_Object_Manager<";
- }
- else if (node->is_abstract ())
- {
- *os << "TAO_Abstract_Manager<";
- }
- else
- {
- *os << "TAO_Object_Manager<";
- }
-
- if (this->ctx_->state () == TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH)
- {
- *os << bt->nested_type_name (this->ctx_->scope ()) << ",";
- *os << bt->nested_type_name (this->ctx_->scope (), "_var") << ">";
- }
- else
- {
- *os << bt->name () << ","
- << bt->name () <<"_var>";
- }
- }
+ *os << "TAO_Object_Manager<";
+
+ if (this->ctx_->state () == TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH)
+ {
+ *os << bt->nested_type_name (this->ctx_->scope ()) << ",";
+ *os << bt->nested_type_name (this->ctx_->scope (), "_var") << ">";
+ }
+ else
+ {
+ *os << bt->name () << ","
+ << bt->name () <<"_var>";
+ }
+
+ break;
+ case AST_PredefinedType::PT_value:
+ *os << "TAO_Value_Manager<";
+
+ if (this->ctx_->state () == TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH)
+ {
+ *os << bt->nested_type_name (this->ctx_->scope ()) << ",";
+ *os << bt->nested_type_name (this->ctx_->scope (), "_var") << ">";
+ }
+ else
+ {
+ *os << bt->name () << ","
+ << bt->name () <<"_var>";
+ }
+
break;
default:
if (this->ctx_->state () == TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH)
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
index 7ccf69c22ed..50e9080288c 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
@@ -71,6 +71,7 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
-1);
}
+ bt->seen_in_sequence (I_TRUE);
AST_Decl::NodeType nt = bt->node_type ();
// If our base type is an anonymouse sequence, we must create a name
@@ -118,7 +119,7 @@ int be_visitor_sequence_ch::visit_sequence (be_sequence *node)
<< node->local_name () << be_idt_nl
<< ": public" << be_idt << be_idt_nl;
- if (node->gen_base_class_name (os, this->ctx_->scope ()) == -1)
+ if (node->gen_base_class_name (os, "", this->ctx_->scope ()) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_sequence_ch::"
@@ -248,9 +249,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "," << be_nl
<< "TAO_Object_Manager<" << be_idt << be_idt_nl
<< elem->nested_type_name (scope) << "," << be_nl;
- *os << elem->nested_type_name (scope, "_var") << "," << be_nl
- << elem->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
+ *os << elem->nested_type_name (scope, "_var") << be_uidt_nl << ">"
+ << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_var;" << be_uidt;
@@ -261,35 +261,8 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "_var," << be_nl
<< "TAO_Object_Manager<" << be_idt << be_idt_nl
<< elem->nested_type_name (scope) << "," << be_nl;
- *os << elem->nested_type_name (scope, "_var") << "," << be_nl
- << elem->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">" << be_uidt_nl
- << node->local_name () << "_out;" << be_uidt;
-
- break;
- case be_sequence::MNG_ABSTRACT:
- *os << "typedef" << be_idt_nl
- << "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
- << node->local_name () << "," << be_nl
- << "TAO_Abstract_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl;
- *os << elem->nested_type_name (scope, "_var") << "," << be_nl
- << elem->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">" << be_uidt_nl
- << node->local_name () << "_var;" << be_uidt;
-
- *os << be_nl << be_nl
- << "typedef" << be_idt_nl
- << "TAO_MngSeq_Out_T<" << be_idt << be_idt_nl
- << node->local_name () << "," << be_nl
- << node->local_name () << "_var," << be_nl
- << "TAO_Abstract_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl;
- *os << elem->nested_type_name (scope, "_var") << "," << be_nl
- << elem->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
+ *os << elem->nested_type_name (scope, "_var") << be_uidt_nl << ">"
+ << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_out;" << be_uidt;
@@ -299,8 +272,7 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
<< node->local_name () << "," << be_nl
<< "TAO_Pseudo_Object_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl;
- *os << elem->nested_type_name (scope, "_var") << be_uidt_nl
+ << elem->nested_type_name (scope) << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_var;" << be_uidt;
@@ -311,8 +283,7 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "," << be_nl
<< node->local_name () << "_var," << be_nl
<< "TAO_Pseudo_Object_Manager<" << be_idt << be_idt_nl
- << elem->nested_type_name (scope) << "," << be_nl;
- *os << elem->nested_type_name (scope, "_var") << be_uidt_nl
+ << elem->nested_type_name (scope) << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_out;" << be_uidt;
@@ -324,8 +295,7 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "," << be_nl
<< "TAO_Valuetype_Manager<" << be_idt << be_idt_nl
<< elem->nested_type_name (scope) << "," << be_nl;
- *os << elem->nested_type_name (scope, "_var") << "," << be_nl
- << elem->fwd_helper_name () << "_life" << be_uidt_nl
+ *os << elem->nested_type_name (scope, "_var") << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_var;" << be_uidt;
@@ -337,8 +307,7 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "_var," << be_nl
<< "TAO_Valuetype_Manager<" << be_idt << be_idt_nl
<< elem->nested_type_name (scope) << "," << be_nl;
- *os << elem->nested_type_name (scope, "_var") << "," << be_nl
- << elem->fwd_helper_name () << "_life" << be_uidt_nl
+ *os << elem->nested_type_name (scope, "_var") << be_uidt_nl
<< ">" << be_uidt << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_out;" << be_uidt;
@@ -398,11 +367,6 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "," << be_nl
<< elem->nested_type_name (scope);
- /*if (nt == AST_Decl::NT_array)
- {
- *os << "_slice *";
- }*/
-
*os << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_var;" << be_uidt;
@@ -414,11 +378,6 @@ be_visitor_sequence_ch::gen_varout_typedefs (be_sequence *node,
<< node->local_name () << "_var," << be_nl
<< elem->nested_type_name (scope);
- /*if (nt == AST_Decl::NT_array)
- {
- *os << "_slice *";
- }*/
-
*os << be_uidt_nl
<< ">" << be_uidt_nl
<< node->local_name () << "_out;" << be_uidt;
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
index 6ff757078b2..644fabe8b3a 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp
@@ -37,19 +37,12 @@ be_visitor_sequence_cs::~be_visitor_sequence_cs (void)
int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
{
- be_type *bt = be_type::narrow_from_decl (node->base_type ());
-
- if (node->imported ())
- {
- bt->seen_in_sequence (I_TRUE);
- return 0;
- }
-
- if (node->cli_stub_gen ())
+ if (node->imported () || node->cli_stub_gen ())
{
return 0;
}
+ be_type *bt = be_type::narrow_from_decl (node->base_type ());
AST_Decl::NodeType nt = bt->node_type ();
// If our base type is an anonymous sequence, generate code for it here.
@@ -89,7 +82,7 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
<< ": " << be_idt;
// Pass it to the base constructor.
- if (node->gen_base_class_name (os, idl_global->root ()) == -1)
+ if (node->gen_base_class_name (os, "", idl_global->root ()) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_sequence_cs::"
@@ -135,7 +128,7 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
<< " : " << be_idt << be_idt;
// Pass it to the base constructor.
- if (node->gen_base_class_name (os, idl_global->root ()) == -1)
+ if (node->gen_base_class_name (os, "", idl_global->root ()) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_sequence_cs::"
@@ -164,7 +157,7 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
<< " : " << be_idt << be_idt;
// Pass it to the base constructor.
- if (node->gen_base_class_name (os, idl_global->root ()) == -1)
+ if (node->gen_base_class_name (os, "", idl_global->root ()) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_sequence_cs::"
@@ -191,671 +184,15 @@ int be_visitor_sequence_cs::visit_sequence (be_sequence *node)
<< "void * _tao_void_pointer" << be_uidt_nl
<< ")" << be_uidt_nl
<< "{" << be_idt_nl
- << node->local_name () << " * tmp =" << be_idt_nl
- << "ACE_static_cast (" << be_idt << be_idt_nl
- << node->local_name () << " *," << be_nl
- << "_tao_void_pointer" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl
- << "delete tmp;" << be_uidt_nl
+ << node->local_name () << " * _tao_tmp_pointer =" << be_idt_nl
+ << "ACE_static_cast (" << node->local_name ()
+ << " *, _tao_void_pointer);" << be_uidt_nl
+ << "delete _tao_tmp_pointer;" << be_uidt_nl
<< "}";
}
- if (!bt->seen_in_sequence ())
- {
- // This is a no-op unless our element is a managed type.
- this->gen_managed_type_tmplinst (node, bt);
- }
-
- if (this->ctx_->tdef () != 0)
- {
- this->gen_varout_tmplinst (node,
- bt);
-
- if (nt == AST_Decl::NT_typedef)
- {
- be_typedef *td = be_typedef::narrow_from_decl (bt);
- nt = td->base_node_type ();
- }
- }
-
- // basic IDL types are in TAO. Sequences of (w)strings in TAO are
- // specializations and so are not template classes.
- if ((nt != AST_Decl::NT_pre_defined
- && nt != AST_Decl::NT_string
- && nt != AST_Decl::NT_wstring)
- || ! node->unbounded ())
- {
- if (this->gen_base_class_tmplinst (node) == -1)
- {
- return -1;
- }
- }
-
os->gen_endif ();
- bt->seen_in_sequence (I_TRUE);
node->cli_stub_gen (I_TRUE);
return 0;
}
-
-void
-be_visitor_sequence_cs::gen_managed_type_tmplinst (be_sequence *node,
- be_type *bt)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- switch (node->managed_type ())
- {
- case be_sequence::MNG_OBJREF:
- os->gen_ifdef_AHETI ();
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Object_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- os->gen_elif_AHETI ();
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Object_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- os->gen_endif_AHETI ();
-
- break;
- case be_sequence::MNG_ABSTRACT:
- os->gen_ifdef_AHETI ();
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Abstract_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- os->gen_elif_AHETI ();
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Abstract_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- os->gen_endif_AHETI ();
-
- break;
- case be_sequence::MNG_VALUE:
- os->gen_ifdef_AHETI ();
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Valuetype_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- os->gen_elif_AHETI ();
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Valuetype_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- os->gen_endif_AHETI ();
-
- break;
- case be_sequence::MNG_PSEUDO:
- os->gen_ifdef_AHETI ();
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Pseudo_Object_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- os->gen_elif_AHETI ();
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Pseudo_Object_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- os->gen_endif_AHETI ();
-
- break;
- default:
- // String and Wstring managed types are not template classes.
- break;
- }
-}
-
-int
-be_visitor_sequence_cs::gen_varout_tmplinst (be_sequence *node,
- be_type *bt)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- os->gen_ifdef_AHETI ();
-
- /// @@NOTE: This method contains too much of duplicated code. Needs
- /// to be refactored. -- Bala
- switch (node->managed_type ())
- {
- case be_sequence::MNG_OBJREF:
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << "TAO_Object_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- // @@NOTE: Too much of code repetition. Aint there a way to
- // refactor these things?
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Seq_Var_Base_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << "TAO_Object_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->name () << "_var," << be_nl
- << "TAO_Object_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_ABSTRACT:
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << "TAO_Abstract_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- // @@Please see note above
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Seq_Var_Base_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << "TAO_Abstract_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->name () << "_var," << be_nl
- << "TAO_Abstract_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_PSEUDO:
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << "TAO_Pseudo_Object_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Seq_Var_Base_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << "TAO_Pseudo_Object_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->name () << "_var," << be_nl
- << "TAO_Pseudo_Object_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_VALUE:
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << "TAO_Valuetype_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- //@@Please see note above..
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Seq_Var_Base_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << "TAO_Valuetype_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->name () << "_var," << be_nl
- << "TAO_Valuetype_Manager<" << be_idt << be_idt_nl
- << bt->name () << "," << be_nl
- << bt->name () << "_var," << be_nl
- << bt->fwd_helper_name () << "_life" << be_uidt_nl
- << ">" << be_uidt << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_STRING:
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- <<"TAO_SeqElem_String_Manager" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Seq_Var_Base_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- <<"TAO_SeqElem_String_Manager" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->name () << "_var," << be_nl
- << "TAO_SeqElem_String_Manager" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_WSTRING:
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Var_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- <<"TAO_SeqElem_WString_Manager" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Seq_Var_Base_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- <<"TAO_SeqElem_WString_Manager" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_MngSeq_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->name () << "_var," << be_nl
- << "TAO_SeqElem_WString_Manager" << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- break;
- default: // not a managed type
- {
- AST_Type::SIZE_TYPE st = bt->size_type ();
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << (st == AST_Type::FIXED ? "TAO_FixedSeq_Var_T<"
- : "TAO_VarSeq_Var_T<")
- << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << bt->name () << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- // @@ Please see not above..
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Seq_Var_Base_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << bt->name () << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "template class" << be_idt_nl
- << "TAO_Seq_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->name () << "_var," << be_nl
- << bt->name () << be_uidt_nl
- << ">;" << be_uidt << be_uidt;
- }
-
- break;
- }
-
- os->gen_elif_AHETI ();
-
- switch (node->managed_type ())
- {
- case be_sequence::MNG_OBJREF:
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_MngSeq_Var_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << "TAO_Object_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Seq_Var_Base_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << "TAO_Object_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_MngSeq_Out_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << node->name () << "_var, \\" << be_nl
- << "TAO_Object_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_ABSTRACT:
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Var_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << "TAO_Abstract_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_Seq_Var_Base_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << "TAO_Abstract_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Out_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << node->name () << "_var, \\" << be_nl
- << "TAO_Abstract_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_PSEUDO:
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Var_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << "TAO_Pseudo_Object_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_Seq_Var_Base_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << "TAO_Pseudo_Object_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Out_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << node->name () << "_var, \\" << be_nl
- << "TAO_Pseudo_Object_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_VALUE:
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Var_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << "TAO_Valuetype_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_Seq_Var_Base_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << "TAO_Valuetype_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Out_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << node->name () << "_var, \\" << be_nl
- << "TAO_Valuetype_Manager< \\" << be_idt << be_idt_nl
- << bt->name () << ", \\" << be_nl
- << bt->name () << "_var, \\" << be_nl
- << bt->fwd_helper_name () << "_life \\" << be_uidt_nl
- << "> \\" << be_uidt << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_STRING:
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Var_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- <<"TAO_SeqElem_String_Manager \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_Seq_Var_Base_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- <<"TAO_SeqElem_String_Manager \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Out_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << node->name () << "_var, \\" << be_nl
- << "TAO_SeqElem_String_Manager \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- break;
- case be_sequence::MNG_WSTRING:
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Var_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- <<"TAO_SeqElem_WString_Manager \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_Seq_Var_Base_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- <<"TAO_SeqElem_WString_Manager \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_MngSeq_Out_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << node->name () << "_var, \\" << be_nl
- << "TAO_SeqElem_WString_Manager \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- break;
- default: // not a managed type
- {
- AST_Type::SIZE_TYPE st = bt->size_type ();
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << (st == AST_Type::FIXED ? "TAO_FixedSeq_Var_T< \\"
- : "TAO_VarSeq_Var_T< \\")
- << be_idt << be_idt_nl
- << node->local_name () << ", \\" << be_nl
- << bt->name () << " \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_Seq_Var_Base_T< \\" << be_idt << be_idt_nl
- << node->local_name () << ", \\" << be_nl
- << bt->name () << " \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
-
- *os << be_nl << be_nl
- << "# pragma instantiate \\" << be_idt_nl
- << "TAO_Seq_Out_T< \\" << be_idt << be_idt_nl
- << node->local_name () << ", \\" << be_nl
- << node->local_name () << "_var, \\" << be_nl
- << bt->name () << " \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt;
- }
-
- break;
- }
-
- os->gen_endif_AHETI ();
-
- return 0;
-}
-
-int
-be_visitor_sequence_cs::gen_base_class_tmplinst (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- os->gen_ifdef_macro (node->instance_name ());
- os->gen_ifdef_AHETI ();
-
- *os << be_nl << be_nl
- <<"template class ";
-
- // Pass it to the base constructor.
- if (node->gen_base_class_name (os, idl_global->root ()) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "codegen for base sequence class failed\n"),
- -1);
- }
-
- *os << ";" << be_uidt;
-
- os->gen_elif_AHETI ();
-
- *os << be_nl << be_nl
- << "#pragma instantiate ";
-
- // Pass it to the base constructor.
- if (node->gen_base_class_name (os, idl_global->root ()) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_sequence_cs::"
- "visit_sequence - "
- "codegen for base sequence class failed\n"),
- -1);
- }
-
- *os << be_uidt;
-
- os->gen_endif_AHETI ();
- os->gen_endif ();
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp
index cda0b48bcfc..c7aa3f2a52b 100644
--- a/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp
@@ -53,6 +53,33 @@ be_visitor_structure_any_op_cs::visit_structure (be_structure *node)
<< "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ // Since we don't generate CDR stream operators for types that
+ // explicitly contain a local interface (at some level), we
+ // must override these Any template class methods to avoid
+ // calling the non-existent operators. The zero return value
+ // will eventually cause CORBA::MARSHAL to be raised if this
+ // type is inserted into an Any and then marshaled.
+ if (node->is_local ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::marshal_value (TAO_OutputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::demarshal_value (TAO_InputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+ }
+
// Copying insertion.
*os << "// Copying insertion." << be_nl
<< "void operator<<= (" << be_idt << be_idt_nl
@@ -115,17 +142,6 @@ be_visitor_structure_any_op_cs::visit_structure (be_structure *node)
<< ");" << be_uidt << be_uidt << be_uidt_nl
<< "}";
- *os << be_nl << be_nl
- << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl
- << "template class TAO::Any_Dual_Impl_T<" << node->name () << ">;"
- << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate TAO::Any_Dual_Impl_T<" << node->name ()
- << ">" << be_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
// all we have to do is to visit the scope and generate code
if (this->visit_scope (node) == -1)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp b/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp
index 7db67b176ef..af935770aa2 100644
--- a/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp
@@ -18,8 +18,8 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_structure,
- structure_cs,
+ACE_RCSID (be_visitor_structure,
+ structure_cs,
"$Id$")
// ***************************************************************************
@@ -35,7 +35,7 @@ be_visitor_structure_cs::~be_visitor_structure_cs (void)
{
}
-int
+int
be_visitor_structure_cs::visit_structure (be_structure *node)
{
if (node->cli_stub_gen () || node->imported ())
@@ -54,7 +54,7 @@ be_visitor_structure_cs::visit_structure (be_structure *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_structure_cs::"
"visit_structure - "
- "TypeCode definition failed\n"),
+ "TypeCode definition failed\n"),
-1);
}
}
@@ -67,13 +67,16 @@ be_visitor_structure_cs::visit_structure (be_structure *node)
if (be_global->any_support ())
{
- *os << "void "
+ *os << "void " << be_nl
<< node->name ()
- << "::_tao_any_destructor (void *_tao_void_pointer)" << be_nl
+ << "::_tao_any_destructor (" << be_idt << be_idt_nl
+ << "void *_tao_void_pointer" << be_uidt_nl
+ << ")" << be_uidt_nl
<< "{" << be_idt_nl
- << node->local_name () << " *tmp = ACE_static_cast ("
- << node->local_name () << "*, _tao_void_pointer);" << be_nl
- << "delete tmp;" << be_uidt_nl
+ << node->local_name () << " *_tao_tmp_pointer =" << be_idt_nl
+ << "ACE_static_cast (" << node->local_name ()
+ << " *, _tao_void_pointer);" << be_uidt_nl
+ << "delete _tao_tmp_pointer;" << be_uidt_nl
<< "}";
}
@@ -84,14 +87,10 @@ be_visitor_structure_cs::visit_structure (be_structure *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_structure_cs::"
"visit_structure - "
- "codegen for scope failed\n"),
+ "codegen for scope failed\n"),
-1);
}
- // Generate the conditional explicit template instantiations for our
- // _var and/or _out clases.
- node->gen_common_tmplinst (os);
-
node->cli_stub_gen (I_TRUE);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_tmplinst.cpp b/TAO/TAO_IDL/be/be_visitor_tmplinst.cpp
new file mode 100644
index 00000000000..ffbfe1c6d23
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_visitor_tmplinst.cpp
@@ -0,0 +1,60 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_visitor_tmplinst.cpp
+//
+// = DESCRIPTION
+// Visitors for generation of explicit template instantiations.
+//
+// = AUTHOR
+// Jeff Parsons
+//
+// ============================================================================
+
+#include "be_root.h"
+#include "be_module.h"
+#include "be_interface.h"
+#include "be_valuetype.h"
+#include "be_array.h"
+#include "be_attribute.h"
+#include "be_enum.h"
+#include "be_exception.h"
+#include "be_sequence.h"
+#include "be_string.h"
+#include "be_structure.h"
+#include "be_union.h"
+#include "be_operation.h"
+#include "be_argument.h"
+#include "be_interface_fwd.h"
+#include "be_valuetype_fwd.h"
+#include "be_eventtype.h"
+#include "be_eventtype_fwd.h"
+#include "be_structure_fwd.h"
+#include "be_field.h"
+#include "be_union_fwd.h"
+#include "be_union_branch.h"
+#include "be_typedef.h"
+#include "be_helper.h"
+#include "be_extern.h"
+#include "utl_identifier.h"
+#include "global_extern.h"
+
+#include "be_visitor_tmplinst.h"
+#include "be_visitor_context.h"
+
+#include "be_visitor_tmplinst/tmplinst.cpp"
+#include "be_visitor_tmplinst/arg_tmplinst.cpp"
+#include "be_visitor_tmplinst/tmplinst_cs.cpp"
+#include "be_visitor_tmplinst/tmplinst_ss.cpp"
+
+ACE_RCSID (be,
+ be_visitor_tmplinst,
+ "$Id$")
+
diff --git a/TAO/TAO_IDL/be/be_visitor_tmplinst/arg_tmplinst.cpp b/TAO/TAO_IDL/be/be_visitor_tmplinst/arg_tmplinst.cpp
new file mode 100644
index 00000000000..8bcf206fed7
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_visitor_tmplinst/arg_tmplinst.cpp
@@ -0,0 +1,722 @@
+//=============================================================================
+/**
+* @file arg_tmplinst.cpp
+*
+* $Id$
+*
+* This visitor generates explicit template instantiations, guarded so they
+* are seen only by compilers whose platforms require explicit template
+* instantiation, for the individual argument template helper classes.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+
+be_visitor_arg_tmplinst::be_visitor_arg_tmplinst (
+ be_visitor_context *ctx,
+ be_visitor_tmplinst_cs::Mode mode,
+ char * prefix,
+ char * suffix,
+ char * linebreak,
+ const char * S
+ )
+ : be_visitor_decl (ctx),
+ mode_ (mode),
+ prefix_ (prefix),
+ suffix_ (suffix),
+ linebreak_ (linebreak),
+ S_ (S)
+{
+}
+
+be_visitor_arg_tmplinst::~be_visitor_arg_tmplinst (void)
+{
+}
+
+int
+be_visitor_arg_tmplinst::visit_interface (be_interface *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::";
+
+ this->gen_direction (os);
+
+ *os << "_Object_" << this->S_ << "Argument_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "_ptr";
+
+ switch (this->dir_)
+ {
+ case _tao_INOUT:
+ *os << "," << this->linebreak_ << be_nl
+ << "TAO::Objref_Traits<" << node->name () << ">";
+ break;
+
+ case _tao_OUT:
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_out";
+ break;
+ case _tao_RET:
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_var";
+ break;
+ default:
+ break;
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_interface_fwd (be_interface_fwd *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ be_interface *fd =
+ be_interface::narrow_from_decl (node->full_definition ());
+
+ if (this->visit_interface (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_interface_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_valuetype (be_valuetype *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::";
+
+ this->gen_direction (os);
+
+ *os << "_Object_" << this->S_ << "Argument_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << " *";
+
+ switch (this->dir_)
+ {
+ case _tao_OUT:
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_out";
+ break;
+ case _tao_RET:
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_var";
+ break;
+ default:
+ break;
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_valuetype_fwd (be_valuetype_fwd *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ be_valuetype *fd =
+ be_valuetype::narrow_from_decl (node->full_definition ());
+
+ if (this->visit_valuetype (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_valuetype_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_eventtype (be_eventtype *node)
+{
+ return this->visit_valuetype (node);
+}
+
+int
+be_visitor_arg_tmplinst::visit_eventtype_fwd (be_eventtype_fwd *node)
+{
+ return this->visit_valuetype_fwd (node);
+}
+
+int
+be_visitor_arg_tmplinst::visit_sequence (be_sequence *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_typedef *alias = this->ctx_->alias ();
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::";
+
+ this->gen_direction (os);
+
+ *os << "_Var_Size_" << this->S_ << "Argument_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << alias->name ();
+
+ switch (this->dir_)
+ {
+ case _tao_OUT:
+ *os << "," << this->linebreak_ << be_nl
+ << alias->name () << "_out";
+ break;
+ case _tao_RET:
+ *os << "," << this->linebreak_ << be_nl
+ << alias->name () << "_var";
+ break;
+ default:
+ break;
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_string (be_string *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ unsigned long bound = node->max_size ()->ev ()->u.ulval;
+ be_typedef *alias = this->ctx_->alias ();
+
+ // Unbounded (w)string args are handled as a predefined type.
+ // Bounded (w)strings must come in as a typedef - they can't
+ // be used directly as arguments or return types.
+ if (bound == 0 || alias == 0)
+ {
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+ }
+
+ idl_bool wide = (node->width () != 1);
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::";
+
+ this->gen_direction (os);
+
+ *os << "_BD_String_" << this->S_ << "Argument_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << "CORBA::" << (wide ? "W" : "") << "Char";
+
+ switch (this->dir_)
+ {
+ case _tao_OUT:
+ *os << "," << this->linebreak_ << be_nl
+ << "CORBA::" << (wide ? "W" : "") << "String_out";
+ break;
+ case _tao_RET:
+ *os << "," << this->linebreak_ << be_nl
+ << "CORBA::" << (wide ? "W" : "") << "String_var";
+ break;
+ default:
+ break;
+ }
+
+ *os << "," << this->linebreak_ << be_nl
+ << "ACE_InputCDR::to_" << (wide ? "w" : "") << "string,"
+ << this->linebreak_ << be_nl
+ << "ACE_OutputCDR::from_" << (wide ? "w" : "") << "string,"
+ << this->linebreak_ << be_nl
+ << bound << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_array (be_array *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+ idl_bool fixed = (node->size_type () == AST_Type::FIXED);
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::";
+
+ this->gen_direction (os);
+
+ *os << "_" << (fixed ? "Fixed" : "Var") << "_Array_"
+ << this->S_ << "Argument_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl;
+
+ switch (this->dir_)
+ {
+ case _tao_IN:
+ case _tao_INOUT:
+ *os << node->name () << "_slice," << this->linebreak_ << be_nl;
+ break;
+ case _tao_OUT:
+ *os << node->name () << "_slice," << this->linebreak_ << be_nl;
+ if (!fixed)
+ {
+ *os << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out," << this->linebreak_ << be_nl;
+ }
+ break;
+ case _tao_RET:
+ *os << node->name () << "_slice," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl;
+ break;
+ default:
+ break;
+ }
+
+ *os << node->name () << "_forany" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt
+ << be_uidt << be_uidt;
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_enum (be_enum *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::";
+
+ this->gen_direction (os);
+
+ *os << "_Basic_" << this->S_ << "Argument_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_structure (be_structure *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+ idl_bool fixed = (node->size_type () == AST_Type::FIXED);
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::";
+
+ this->gen_direction (os);
+
+ *os << "_" << (fixed ? "Fixed" : "Var") << "_Size_"
+ << this->S_ << "Argument_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name ();
+
+ if (!fixed)
+ {
+ switch (this->dir_)
+ {
+ case _tao_OUT:
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_out";
+ break;
+ case _tao_RET:
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_var";
+ break;
+ default:
+ break;
+ }
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_structure_fwd (be_structure_fwd *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ be_structure *fd = be_structure::narrow_from_decl (node->full_definition ());
+
+ if (this->visit_structure (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_structure_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_field (be_field *node)
+{
+ be_type *bt = be_type::narrow_from_decl (node->field_type ());
+
+ if (!bt)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_field - "
+ "Bad field type\n"),
+ -1);
+ }
+
+ if (bt->accept (this) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_field - "
+ "codegen for field type failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_union (be_union *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+ idl_bool fixed = (node->size_type () == AST_Type::FIXED);
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::";
+
+ this->gen_direction (os);
+
+ *os << "_" << (fixed ? "Fixed" : "Var") << "_Size_"
+ << this->S_ << "Argument_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name ();
+
+ if (!fixed)
+ {
+ switch (this->dir_)
+ {
+ case _tao_OUT:
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_out";
+ break;
+ case _tao_RET:
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_var";
+ break;
+ default:
+ break;
+ }
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_union_fwd (be_union_fwd *node)
+{
+ if (this->this_mode_and_dir_generated (node))
+ {
+ return 0;
+ }
+
+ be_union *fd = be_union::narrow_from_decl (node->full_definition ());
+
+ if (this->visit_union (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_union_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->this_mode_and_dir_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_union_branch (be_union_branch *node)
+{
+ be_type *bt = be_type::narrow_from_decl (node->field_type ());
+
+ if (!bt)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_union_branch - "
+ "Bad union_branch type\n"),
+ -1);
+ }
+
+ if (bt->accept (this) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_union_branch - "
+ "codegen for union_branch type failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+be_visitor_arg_tmplinst::visit_typedef (be_typedef *node)
+{
+ this->ctx_->alias (node);
+
+ // Make a decision based on the primitive base type.
+ be_type *bt = node->primitive_base_type ();
+
+ if (!bt || (bt->accept (this) == -1))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_arg_tmplinst::"
+ "visit_typedef - "
+ "Bad primitive type\n"),
+ -1);
+ }
+
+ this->ctx_->alias (0);
+ return 0;
+}
+
+void
+be_visitor_arg_tmplinst::direction (void)
+{
+ this->dir_ = _tao_RET;
+}
+
+void
+be_visitor_arg_tmplinst::direction (AST_Argument::Direction dir)
+{
+ switch (dir)
+ {
+ case AST_Argument::dir_IN:
+ this->dir_ = _tao_IN;
+ break;
+ case AST_Argument::dir_INOUT:
+ this->dir_ = _tao_INOUT;
+ break;
+ case AST_Argument::dir_OUT:
+ this->dir_ = _tao_OUT;
+ break;
+ default:
+ break;
+ }
+}
+
+idl_bool
+be_visitor_arg_tmplinst::this_mode_and_dir_generated (be_decl *node) const
+{
+ idl_bool cli = (ACE_OS::strlen (this->S_) == 0);
+
+ switch (this->mode_)
+ {
+ case be_visitor_tmplinst_cs::TMPL_CLASS:
+ switch (this->dir_)
+ {
+ case _tao_IN:
+ return (cli ? node->cli_inarg_tmpl_class_gen ()
+ : node->srv_inarg_tmpl_class_gen ());
+ case _tao_INOUT:
+ return (cli ? node->cli_inoutarg_tmpl_class_gen ()
+ : node->srv_inoutarg_tmpl_class_gen ());
+ case _tao_OUT:
+ return (cli ? node->cli_outarg_tmpl_class_gen ()
+ : node->srv_outarg_tmpl_class_gen ());
+ case _tao_RET:
+ return (cli ? node->cli_retarg_tmpl_class_gen ()
+ : node->srv_retarg_tmpl_class_gen ());
+ default:
+ return I_FALSE;
+ }
+ case be_visitor_tmplinst_cs::PRAGMA_INST:
+ switch (this->dir_)
+ {
+ case _tao_IN:
+ return (cli ? node->cli_inarg_pragma_inst_gen ()
+ : node->srv_inarg_pragma_inst_gen ());
+ case _tao_INOUT:
+ return (cli ? node->cli_inoutarg_pragma_inst_gen ()
+ : node->srv_inoutarg_pragma_inst_gen ());
+ case _tao_OUT:
+ return (cli ? node->cli_outarg_pragma_inst_gen ()
+ : node->srv_outarg_pragma_inst_gen ());
+ case _tao_RET:
+ return (cli ? node->cli_retarg_pragma_inst_gen ()
+ : node->srv_retarg_pragma_inst_gen ());
+ default:
+ return I_FALSE;
+ }
+ default:
+ return I_FALSE;
+ }
+}
+
+void
+be_visitor_arg_tmplinst::this_mode_and_dir_generated (be_decl *node,
+ idl_bool val)
+{
+ idl_bool cli = (ACE_OS::strlen (this->S_) == 0);
+
+ switch (this->mode_)
+ {
+ case be_visitor_tmplinst_cs::TMPL_CLASS:
+ switch (this->dir_)
+ {
+ case _tao_IN:
+ cli ? node->cli_inarg_tmpl_class_gen (val)
+ : node->srv_inarg_tmpl_class_gen (val);
+ break;
+ case _tao_INOUT:
+ cli ? node->cli_inoutarg_tmpl_class_gen (val)
+ : node->srv_inoutarg_tmpl_class_gen (val);
+ break;
+ case _tao_OUT:
+ cli ? node->cli_outarg_tmpl_class_gen (val)
+ : node->srv_outarg_tmpl_class_gen (val);
+ break;
+ case _tao_RET:
+ cli ? node->cli_retarg_tmpl_class_gen (val)
+ : node->srv_retarg_tmpl_class_gen (val);
+ break;
+ default:
+ break;
+ }
+ break;
+ case be_visitor_tmplinst_cs::PRAGMA_INST:
+ switch (this->dir_)
+ {
+ case _tao_IN:
+ cli ? node->cli_inarg_pragma_inst_gen (val)
+ : node->srv_inarg_pragma_inst_gen (val);
+ break;
+ case _tao_INOUT:
+ cli ? node->cli_inoutarg_pragma_inst_gen (val)
+ : node->srv_inoutarg_pragma_inst_gen (val);
+ break;
+ case _tao_OUT:
+ cli ? node->cli_outarg_pragma_inst_gen (val)
+ : node->srv_outarg_pragma_inst_gen (val);
+ break;
+ case _tao_RET:
+ cli ? node->cli_retarg_pragma_inst_gen (val)
+ : node->srv_retarg_pragma_inst_gen (val);
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void
+be_visitor_arg_tmplinst::gen_direction (TAO_OutStream *os)
+{
+ switch (this->dir_)
+ {
+ case _tao_IN:
+ *os << "In";
+ break;
+ case _tao_INOUT:
+ *os << "Inout";
+ break;
+ case _tao_OUT:
+ *os << "Out";
+ break;
+ case _tao_RET:
+ *os << "Ret";
+ break;
+ default:
+ break;
+ }
+}
diff --git a/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst.cpp b/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst.cpp
new file mode 100644
index 00000000000..9e46eca7bf7
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst.cpp
@@ -0,0 +1,262 @@
+//=============================================================================
+/**
+* @file tmplinst.cpp
+*
+* $Id$
+*
+* Base class for the concrete visitors that generate explicit template
+* instantiations for the stub side and skeleton side.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+
+be_visitor_tmplinst::be_visitor_tmplinst (be_visitor_context *ctx)
+ : be_visitor_scope (ctx),
+ mode_ (TMPL_CLASS),
+ prefix_ (ACE::strnew (" template class")),
+ suffix_ (ACE::strnew (";")),
+ linebreak_ (ACE::strnew (""))
+{
+}
+
+be_visitor_tmplinst::~be_visitor_tmplinst (void)
+{
+ delete [] this->prefix_;
+ this->prefix_ = 0;
+ delete [] this->suffix_;
+ this->suffix_ = 0;
+ delete [] this->linebreak_;
+ this->linebreak_ = 0;
+}
+
+int
+be_visitor_tmplinst::visit_root (be_root *node)
+{
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_root - visit scope failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+be_visitor_tmplinst::visit_module (be_module *node)
+{
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_module - visit scope failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+be_visitor_tmplinst::visit_interface_fwd (be_interface_fwd *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ be_interface *fd =
+ be_interface::narrow_from_decl (node->full_definition ());
+
+ // The logic in visit_interface() should handle what gets generated
+ // and what doesn't.
+ if (this->visit_interface (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_interface_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst::visit_valuetype_fwd (be_valuetype_fwd *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ be_valuetype *fd =
+ be_valuetype::narrow_from_decl (node->full_definition ());
+
+ // The logic in visit_valuetype() should handle what gets generated
+ // and what doesn't.
+ int status = this->visit_valuetype (fd);
+
+ if (status != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_valuetype_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst::visit_eventtype (be_eventtype *node)
+{
+ return this->visit_valuetype (node);
+}
+
+int
+be_visitor_tmplinst::visit_eventtype_fwd (be_eventtype_fwd *node)
+{
+ return this->visit_valuetype_fwd (node);
+}
+
+int
+be_visitor_tmplinst::visit_structure_fwd (be_structure_fwd *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ be_structure *fd = be_structure::narrow_from_decl (node->full_definition ());
+
+ if (this->visit_structure (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_structure_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst::visit_field (be_field *node)
+{
+ be_type *bt = be_type::narrow_from_decl (node->field_type ());
+
+ if (!bt)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_field - "
+ "Bad field type\n"),
+ -1);
+ }
+
+ // Valuetypes may not be *declared* in a field, so this will
+ // get handled elsewhere, and will also avoid nested valuetype
+ // recursion. So we set the field node as processed (the
+ // field *type* may not have been reached yet) and return.
+ if (bt->base_node_type () == AST_Decl::NT_valuetype)
+ {
+ return 0;
+ }
+
+ if (bt->accept (this) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_field - "
+ "codegen for field type failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+be_visitor_tmplinst::visit_union_fwd (be_union_fwd *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ be_union *fd = be_union::narrow_from_decl (node->full_definition ());
+
+ if (this->visit_union (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_union_fwd - code generation failed\n"),
+ -1);
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst::visit_union_branch (be_union_branch *node)
+{
+ be_type *bt = be_type::narrow_from_decl (node->field_type ());
+
+ if (!bt)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_union_branch - "
+ "Bad union_branch type\n"),
+ -1);
+ }
+
+ if (bt->accept (this) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_union_branch - "
+ "codegen for union_branch type failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+be_visitor_tmplinst::visit_typedef (be_typedef *node)
+{
+ this->ctx_->alias (node);
+
+ // Make a decision based on the primitive base type.
+ be_type *bt = node->primitive_base_type ();
+
+ if (!bt || (bt->accept (this) == -1))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst::"
+ "visit_typedef - "
+ "Bad primitive type\n"),
+ -1);
+ }
+
+ this->ctx_->alias (0);
+ return 0;
+}
+
+void
+be_visitor_tmplinst::switch_mode (void)
+{
+ this->mode_ = PRAGMA_INST;
+ delete [] this->prefix_;
+ this->prefix_ = ACE::strnew ("# pragma instantiate");
+ delete [] this->suffix_;
+ this->suffix_ = ACE::strnew ("");
+ delete [] this->linebreak_;
+ this->linebreak_ = ACE::strnew (" \\");
+}
+
diff --git a/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst_cs.cpp b/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst_cs.cpp
new file mode 100644
index 00000000000..78bd127bab0
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst_cs.cpp
@@ -0,0 +1,1215 @@
+//=============================================================================
+/**
+* @file be_visitor_tmplinst_cs.cpp
+*
+* $Id$
+*
+* This visitor generates explicit template instantiations, guarded so they
+* are seen only by compilers whose platforms require explicit template
+* instantiation.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+
+be_visitor_tmplinst_cs::be_visitor_tmplinst_cs (be_visitor_context *ctx)
+ : be_visitor_tmplinst (ctx)
+{
+}
+
+be_visitor_tmplinst_cs::~be_visitor_tmplinst_cs (void)
+{
+}
+
+int
+be_visitor_tmplinst_cs::visit_interface (be_interface *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes. This must come before
+ // the check for an imported or undefined node because such a node
+ // could still be used in an operation and thus cause the use of
+ // an arg helper template class.
+ if (node->seen_in_operation ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Arg_Traits<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Object_Arg_Traits_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "_ptr," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out," << this->linebreak_ << be_nl
+ << "TAO::Objref_Traits<" << node->name ()
+ << ">" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ // If one of these is true we can skip the rest.
+ if (node->imported () || !node->is_defined ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ // Interfaces can contain declarations of structs, unions, sequences
+ // or arrays.
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "visit_interface - visit scope failed\n"),
+ -1);
+ }
+
+ // For the traits template class.
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Objref_Traits<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ // For the _var and _out typedefs.
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Objref_Var_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt_nl << be_uidt_nl
+ << this->prefix_<< this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Objref_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ // Called by _narrow() for non-local interfaces.
+ if (!node->is_local ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl;
+
+ if (!node->is_abstract ())
+ {
+ *os << "TAO::Narrow_Utils<" << this->linebreak_
+ << be_idt << be_idt_nl;
+ }
+ else
+ {
+ *os << "TAO::AbstractBase_Narrow_Utils<" << this->linebreak_
+ << be_idt << be_idt_nl;
+ }
+
+ *os << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ if (be_global->gen_smart_proxies ())
+ {
+ // Its necessary to take care of the nested case.
+ // The smart proxy classes are in the same scope as the proxy.
+ be_decl* scope =
+ be_scope::narrow_from_scope (node->defined_in ())->decl ();
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Singleton<" << this->linebreak_ << be_idt << be_idt_nl
+ << scope->full_name ();
+
+ // Only if there exists any nesting "::" is needed!
+ if (node->is_nested ())
+ {
+ *os << "::";
+ }
+
+ *os <<"TAO_" << node->flat_name ()
+ << "_Proxy_Factory_Adapter," << this->linebreak_ << be_nl
+ << "TAO_SYNCH_RECURSIVE_MUTEX" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ // For Any impl template class.
+ if (be_global->any_support ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Any_Impl_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_valuetype (be_valuetype *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes.
+ if (node->seen_in_operation ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << " TAO::Arg_Traits<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Object_Arg_Traits_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << " *," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out," << this->linebreak_ << be_nl
+ << "TAO::Objref_Traits<" << node->name () << "> "
+ << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ if (node->imported () || !node->is_defined ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "visit_valuetype - visit scope failed\n"),
+ -1);
+ }
+
+ // For _var and _out template classes.
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Value_Traits<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Value_Var_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_nl
+ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt_nl << be_uidt_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Value_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_nl
+ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ // For Any impl template class.
+ if (be_global->any_support ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Any_Impl_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_operation (be_operation *node)
+{
+ if (this->this_mode_generated (node)
+ || node->imported ()
+ || node->is_local ())
+ {
+ return 0;
+ }
+
+ const char * S = "";
+
+ be_visitor_arg_tmplinst visitor (this->ctx_,
+ this->mode_,
+ this->prefix_,
+ this->suffix_,
+ this->linebreak_,
+ S);
+ be_type *bt = be_type::narrow_from_decl (node->return_type ());
+ visitor.direction ();
+
+ if (bt->accept (&visitor) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "visit_operation - "
+ "codegen for return type failed\n"),
+ -1);
+ }
+
+ be_argument *arg = 0;
+
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ arg = be_argument::narrow_from_decl (si.item ());
+ visitor.direction (arg->direction ());
+ bt = be_type::narrow_from_decl (arg->field_type ());
+
+ if (bt->accept (&visitor) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "visit_operation - "
+ "codegen for argument failed\n"),
+ -1);
+ }
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_sequence (be_sequence *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_typedef *alias = this->ctx_->alias ();
+
+ // For arg/return type helper template classes.
+ // If the node is anonymous, it can't have been seen in an operation,
+ // so no check is necessary for alias == 0.
+ if (node->seen_in_operation ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::Arg_Traits<" << alias->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Var_Size_Arg_Traits_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << alias->name () << "," << this->linebreak_ << be_nl
+ << alias->name () << "_var," << this->linebreak_ << be_nl
+ << alias->name () << "_out" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ if (node->imported ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ // For _var and _out template classes.
+
+ be_type *bt = be_type::narrow_from_decl (node->base_type ());
+ AST_Decl::NodeType nt = bt->node_type ();
+
+ if (!bt->seq_elem_tmplinst ())
+ {
+ // This is a no-op unless our element is a managed type.
+ this->gen_managed_type_tmplinst (node, bt);
+ bt->seq_elem_tmplinst (I_TRUE);
+ }
+
+ if (this->ctx_->alias () != 0)
+ {
+ this->gen_varout_tmplinst (node,
+ bt);
+
+ if (nt == AST_Decl::NT_typedef)
+ {
+ be_typedef *td = be_typedef::narrow_from_decl (bt);
+ nt = td->base_node_type ();
+ }
+ }
+
+ // basic IDL types are in TAO. Sequences of (w)strings in TAO are
+ // specializations and so are not template classes.
+ if ((nt != AST_Decl::NT_pre_defined
+ && nt != AST_Decl::NT_string
+ && nt != AST_Decl::NT_wstring)
+ || ! node->unbounded ())
+ {
+ if (this->gen_base_class_tmplinst (node) == -1)
+ {
+ return -1;
+ }
+ }
+
+ // For Any impl template class.
+ if (be_global->any_support ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Any_Dual_Impl_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_string (be_string *node)
+{
+ if (this->this_mode_generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ unsigned long bound = node->max_size ()->ev ()->u.ulval;
+ be_typedef *alias = this->ctx_->alias ();
+
+ // Unbounded (w)string args are handled as a predefined type.
+ // Bounded (w)strings must come in as a typedef - they can't
+ // be used directly as arguments or return types.
+ if (bound == 0 || alias == 0)
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ // For arg/return type helper template classes.
+
+ idl_bool wide = (node->width () != 1);
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::Arg_Traits<TAO::" << alias->local_name ()
+ << "_" << bound << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::BD_" << (wide ? "W" : "")
+ << "String_Arg_Traits<" << bound << ">" << this->suffix_;
+
+ os->gen_endif ();
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_array (be_array *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes.
+ if (node->seen_in_operation ())
+ {
+ idl_bool variable = (node->size_type () == AST_Type::VARIABLE);
+
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits_tmplinst");
+
+ *os << be_nl << be_nl << this->prefix_ << " TAO::Arg_Traits<"
+ << node->name () << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::" << (variable ? "Var" : "Fixed") << "_Array_Arg_Traits_T<"
+ << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_slice," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl;
+
+ if (variable)
+ {
+ *os << node->name () << "_out," << this->linebreak_ << be_nl;
+ }
+
+ *os << node->name () << "_forany" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ if (node->imported ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ // To hold the full name, whether anonymous or not.
+ char fname [NAMEBUFSIZE];
+ ACE_OS::memset (fname,
+ '\0',
+ NAMEBUFSIZE);
+
+ if (this->ctx_->alias ())
+ {
+ // Typedefed node.
+ ACE_OS::sprintf (fname, "%s",
+ node->full_name ());
+ }
+ else
+ {
+ // For anonymous arrays ...
+ // we have to generate a name for us that has an underscope prepended to
+ // our local name. This needs to be inserted after the parents's name.
+ if (node->is_nested ())
+ {
+ be_decl *parent =
+ be_scope::narrow_from_scope (node->defined_in ())->decl ();
+ ACE_OS::sprintf (fname,
+ "%s::_%s",
+ parent->full_name (),
+ node->local_name ()->get_string ());
+ }
+ else
+ {
+ ACE_OS::sprintf (fname,
+ "_%s",
+ node->full_name ());
+ }
+ }
+
+ // For array traits template class.
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Array_Traits<" << this->linebreak_ << be_idt << be_idt_nl
+ << fname << "," << this->linebreak_ << be_nl
+ << fname << "_slice" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ // For _var, _out and _forany template classes.
+
+ idl_bool fixed = (node->size_type () == AST_Type::FIXED);
+
+ if (this->ctx_->alias () != 0)
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_" << (fixed ? "Fixed" : "Var") << "Array_Var_T<"
+ << this->linebreak_ << be_idt << be_idt_nl
+ << fname << "," << this->linebreak_ << be_nl
+ << fname << "_slice" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Array_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << fname << "," << this->linebreak_ << be_nl
+ << fname << "_var," << this->linebreak_ << be_nl
+ << fname << "_slice" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Array_Var_Base_T<" << this->linebreak_ << be_idt
+ << be_idt_nl
+ << fname << "," << this->linebreak_ << be_nl
+ << fname << "_slice" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Array_Forany_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << fname << "," << this->linebreak_ << be_nl
+ << fname << "_slice" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ // For Any impl template class.
+ if (be_global->any_support ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Any_Array_Impl_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << fname << "_slice," << this->linebreak_ << be_nl
+ << fname << "_forany" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_attribute (be_attribute *node)
+{
+ if (this->this_mode_generated (node)
+ || node->imported ()
+ || node->is_local ())
+ {
+ return 0;
+ }
+
+ const char * S = "";
+
+ be_visitor_arg_tmplinst visitor (this->ctx_,
+ this->mode_,
+ this->prefix_,
+ this->suffix_,
+ this->linebreak_,
+ S);
+ be_type *bt = be_type::narrow_from_decl (node->field_type ());
+ visitor.direction ();
+
+ if (bt->accept (&visitor) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "visit_attribute - "
+ "codegen for return type failed\n"),
+ -1);
+ }
+
+ if (!node->readonly ())
+ {
+ visitor.direction (AST_Argument::dir_IN);
+
+ if (bt->accept (&visitor) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "visit_attribute - "
+ "codegen for IN parameter failed\n"),
+ -1);
+ }
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_enum (be_enum *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes.
+
+ if (node->seen_in_operation ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::Arg_Traits<" << node->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::Basic_Arg_Traits_T<" << node->name ()
+ << ">" << this->suffix_;
+
+ os->gen_endif ();
+ }
+
+ if (node->imported ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ if (be_global->any_support ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Any_Basic_Impl_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_exception (be_exception *node)
+{
+ if (this->this_mode_generated (node) || node->imported ())
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ if (be_global->any_support ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Any_Dual_Impl_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_structure (be_structure *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes.
+ if (node->seen_in_operation ())
+ {
+ idl_bool variable = (node->size_type () == AST_Type::VARIABLE);
+
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::Arg_Traits<" << node->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::" << (variable ? "Var" : "Fixed") << "_Size_Arg_Traits_T<"
+ << this->linebreak_ << be_idt << be_idt_nl
+ << node->name ();
+
+ if (variable)
+ {
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out";
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "visit_structure - visit scope failed\n"),
+ -1);
+ }
+
+ if (node->imported ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ // For _var and/or _out tmp]ate clases.
+ this->gen_common_tmplinst (node, os);
+
+ if (be_global->any_support ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Any_Dual_Impl_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::visit_union (be_union *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ if (node->seen_in_operation ())
+ {
+ idl_bool variable = (node->size_type () == AST_Type::VARIABLE);
+
+ os->gen_ifdef_macro (node->flat_name (), "arg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::Arg_Traits<" << node->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::" << (variable ? "Var" : "Fixed") << "_Size_Arg_Traits_T<"
+ << this->linebreak_ << be_idt << be_idt_nl
+ << node->name ();
+
+ if (variable)
+ {
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out";
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "visit_structure - visit scope failed\n"),
+ -1);
+ }
+
+ if (node->imported ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ // For _var and/or _out tmp]ate clases.
+ this->gen_common_tmplinst (node, os);
+
+ if (be_global->any_support ())
+ {
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Any_Dual_Impl_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+idl_bool
+be_visitor_tmplinst_cs::this_mode_generated (be_decl *node) const
+{
+ switch (this->mode_)
+ {
+ case TMPL_CLASS:
+ return node->cli_tmpl_class_gen ();
+ case PRAGMA_INST:
+ return node->cli_pragma_inst_gen ();
+ default:
+ return I_FALSE;
+ }
+}
+
+void
+be_visitor_tmplinst_cs::this_mode_generated (be_decl *node,
+ idl_bool val)
+{
+ switch (this->mode_)
+ {
+ case TMPL_CLASS:
+ node->cli_tmpl_class_gen (val);
+ break;
+ case PRAGMA_INST:
+ node->cli_pragma_inst_gen (val);
+ break;
+ default:
+ break;
+ }
+}
+
+void
+be_visitor_tmplinst_cs::gen_managed_type_tmplinst (be_sequence *node,
+ be_type *bt)
+{
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ switch (node->managed_type ())
+ {
+ case be_sequence::MNG_OBJREF:
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Object_Manager<" << this->linebreak_ << be_idt << be_idt_nl
+ << bt->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << "_var" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ break;
+ case be_sequence::MNG_VALUE:
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Valuetype_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << "_var" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ break;
+ case be_sequence::MNG_PSEUDO:
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Pseudo_Object_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ break;
+ default:
+ // String and Wstring managed types are not template classes.
+ break;
+ }
+}
+
+int
+be_visitor_tmplinst_cs::gen_varout_tmplinst (be_sequence *node,
+ be_type *bt)
+{
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ switch (node->managed_type ())
+ {
+ case be_sequence::MNG_OBJREF:
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Var_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << "TAO_Object_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << "_var" << this->linebreak_
+ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Seq_Var_Base_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << "TAO_Object_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << "_var" << this->linebreak_ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << "TAO_Object_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << "_var" << this->linebreak_ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ break;
+ case be_sequence::MNG_PSEUDO:
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Var_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << "TAO_Pseudo_Object_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Seq_Var_Base_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << "TAO_Pseudo_Object_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << "TAO_Pseudo_Object_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ break;
+ case be_sequence::MNG_VALUE:
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Var_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << "TAO_Valuetype_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << "_var" << this->linebreak_ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Seq_Var_Base_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << "TAO_Valuetype_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << "_var" << this->linebreak_ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << "TAO_Valuetype_Manager<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << bt->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << "_var" << this->linebreak_ << be_uidt_nl
+ << ">" << this->linebreak_ << be_uidt << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ break;
+ case be_sequence::MNG_STRING:
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Var_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ <<"TAO_SeqElem_String_Manager" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Seq_Var_Base_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ <<"TAO_SeqElem_String_Manager" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ <<"TAO_SeqElem_String_Manager" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ break;
+ case be_sequence::MNG_WSTRING:
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Var_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ <<"TAO_SeqElem_WString_Manager" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Seq_Var_Base_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ <<"TAO_SeqElem_WString_Manager" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_MngSeq_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ <<"TAO_SeqElem_WString_Manager" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ break;
+ default: // not a managed type
+ {
+ AST_Type::SIZE_TYPE st = bt->size_type ();
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << (st == AST_Type::FIXED ? "TAO_FixedSeq_Var_T<"
+ : "TAO_VarSeq_Var_T<")
+ << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Seq_Var_Base_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << bt->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Seq_Out_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << bt->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_
+ << be_uidt << be_uidt << be_uidt;
+ }
+
+ break;
+ }
+
+ return 0;
+}
+
+int
+be_visitor_tmplinst_cs::gen_base_class_tmplinst (be_sequence *node)
+{
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // A generated sequence is a unique class type for each IDL typedef,
+ // but the base template class may not be. So, when generating the
+ // explicit template instantiation of the base class, we use the
+ // unaliased element type and the bound (if any) in the #ifdef guard to
+ // prevent duplicates.
+
+ be_type *bt = be_type::narrow_from_decl (node->base_type ());
+ AST_Decl::NodeType nt = bt->node_type ();
+
+ if (nt == AST_Decl::NT_typedef)
+ {
+ be_typedef *td = be_typedef::narrow_from_decl (bt);
+ bt = td->primitive_base_type ();
+ }
+
+ static char ifdef_suffix [NAMEBUFSIZE];
+
+ ACE_OS::memset (ifdef_suffix,
+ '\0',
+ NAMEBUFSIZE);
+
+ if (node->unbounded ())
+ {
+ ACE_OS::sprintf (ifdef_suffix,
+ "%s",
+ "explicit");
+ }
+ else
+ {
+ ACE_OS::sprintf (ifdef_suffix,
+ "%d_%s",
+ node->max_size ()->ev ()->u.ulval,
+ "explicit");
+ }
+
+ os->gen_ifdef_macro (bt->flat_name (), ifdef_suffix);
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl;
+
+ int status = node->gen_base_class_name (os,
+ this->linebreak_,
+ idl_global->root ());
+
+ // Pass it to the base constructor.
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_cs::"
+ "gen_base_class_tmplinst - "
+ "codegen for base sequence class failed\n"),
+ -1);
+ }
+
+ *os << this->suffix_ << be_uidt << be_uidt;
+
+ os->gen_endif ();
+
+ return 0;
+}
+
+void
+be_visitor_tmplinst_cs::gen_common_tmplinst (be_type *node,
+ TAO_OutStream *os)
+{
+ idl_bool fixed = (node->size_type () == AST_Type::FIXED);
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_" << (fixed ? "Fixed" : "Var") << "_Var_T<"
+ << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Var_Base_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ if (!fixed)
+ {
+ *os << be_nl<< be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO_Out_T<" << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_var" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+ }
+}
diff --git a/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst_ss.cpp b/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst_ss.cpp
new file mode 100644
index 00000000000..6ead20eafd3
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_visitor_tmplinst/tmplinst_ss.cpp
@@ -0,0 +1,508 @@
+//=============================================================================
+/**
+* @file be_visitor_tmplinst_ss.cpp
+*
+* $Id$
+*
+* This visitor generates explicit template instantiations, guarded so they
+* are seen only by compilers whose platforms require explicit template
+* instantiation.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+
+be_visitor_tmplinst_ss::be_visitor_tmplinst_ss (be_visitor_context *ctx)
+ : be_visitor_tmplinst (ctx)
+{
+}
+
+be_visitor_tmplinst_ss::~be_visitor_tmplinst_ss (void)
+{
+}
+
+int
+be_visitor_tmplinst_ss::visit_interface (be_interface *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes. This must come before
+ // the check for an imported or undefined node because such a node
+ // could still be used in an operation and thus cause the use of
+ // an arg helper template class.
+ if (node->seen_in_operation ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "sarg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::SArg_Traits<" << node->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Object_SArg_Traits_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << "_ptr," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out," << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ // If one of these is true we can skip the rest.
+ if (node->imported () || !node->is_defined ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_ss::"
+ "visit_interface - visit scope failed\n"),
+ -1);
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_valuetype (be_valuetype *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes.
+ if (node->seen_in_operation ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "sarg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::Arg_Traits<" << node->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Object_SArg_Traits_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << node->name () << " *," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out," << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ if (node->imported () || !node->is_defined ())
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_ss::"
+ "visit_valuetype - visit scope failed\n"),
+ -1);
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_operation (be_operation *node)
+{
+ if (this->this_mode_generated (node)
+ || node->imported ()
+ || node->is_local ())
+ {
+ return 0;
+ }
+
+ const char * S = "S";
+
+ be_visitor_arg_tmplinst visitor (this->ctx_,
+ this->mode_,
+ this->prefix_,
+ this->suffix_,
+ this->linebreak_,
+ S);
+ be_type *bt = be_type::narrow_from_decl (node->return_type ());
+ visitor.direction ();
+
+ if (bt->accept (&visitor) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_ss::"
+ "visit_operation - "
+ "codegen for return type failed\n"),
+ -1);
+ }
+
+ be_argument *arg = 0;
+
+ for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
+ !si.is_done ();
+ si.next ())
+ {
+ arg = be_argument::narrow_from_decl (si.item ());
+ visitor.direction (arg->direction ());
+ bt = be_type::narrow_from_decl (arg->field_type ());
+
+ if (bt->accept (&visitor) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_ss::"
+ "visit_operation - "
+ "codegen for argument failed\n"),
+ -1);
+ }
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_sequence (be_sequence *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_typedef *alias = this->ctx_->alias ();
+
+ // For arg/return type helper template classes.
+ // If the node is anonymous, it can't have been seen in an operation,
+ // so no check is necessary for alias == 0.
+ if (node->seen_in_operation ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "sarg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::SArg_Traits<" << alias->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::Var_Size_SArg_Traits_T<" << this->linebreak_
+ << be_idt << be_idt_nl
+ << alias->name () << "," << this->linebreak_ << be_nl
+ << alias->name () << "_var," << this->linebreak_ << be_nl
+ << alias->name () << "_out" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_string (be_string *node)
+{
+ if (this->this_mode_generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ unsigned long bound = node->max_size ()->ev ()->u.ulval;
+ be_typedef *alias = this->ctx_->alias ();
+
+ // Unbounded (w)string args are handled as a predefined type.
+ // Bounded (w)strings must come in as a typedef - they can't
+ // be used directly as arguments or return types.
+ if (bound == 0 || alias == 0)
+ {
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+ }
+
+ // For arg/return type helper template classes.
+
+ idl_bool wide = (node->width () != 1);
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ os->gen_ifdef_macro (node->flat_name (), "sarg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::SArg_Traits<TAO::" << alias->local_name ()
+ << "_" << bound << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::BD_" << (wide ? "W" : "")
+ << "String_SArg_Traits<" << bound << ">" << this->suffix_;
+
+ os->gen_endif ();
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_array (be_array *node)
+{
+ if (this->this_mode_generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes.
+ idl_bool variable = (node->size_type () == AST_Type::VARIABLE);
+
+ os->gen_ifdef_macro (node->flat_name (), "sarg_traits_tmplinst");
+
+ *os << be_nl << be_nl << this->prefix_ << " TAO::SArg_Traits<"
+ << node->name () << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::" << (variable ? "Var" : "Fixed") << "_Array_SArg_Traits_T<"
+ << this->linebreak_ << be_idt << be_idt_nl
+ << node->name () << "," << this->linebreak_ << be_nl
+ << node->name () << "_slice," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl;
+
+ if (variable)
+ {
+ *os << node->name () << "_out," << this->linebreak_ << be_nl;
+ }
+
+ *os << node->name () << "_forany" << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_attribute (be_attribute *node)
+{
+ if (this->this_mode_generated (node)
+ || node->imported ()
+ || node->is_local ())
+ {
+ return 0;
+ }
+
+ const char * S = "S";
+
+ be_visitor_arg_tmplinst visitor (this->ctx_,
+ this->mode_,
+ this->prefix_,
+ this->suffix_,
+ this->linebreak_,
+ S);
+ be_type *bt = be_type::narrow_from_decl (node->field_type ());
+ visitor.direction ();
+
+ if (bt->accept (&visitor) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_ss::"
+ "visit_attribute - "
+ "codegen for return type failed\n"),
+ -1);
+ }
+
+ if (!node->readonly ())
+ {
+ visitor.direction (AST_Argument::dir_IN);
+
+ if (bt->accept (&visitor) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_ss::"
+ "visit_attribute - "
+ "codegen for IN parameter failed\n"),
+ -1);
+ }
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_enum (be_enum *node)
+{
+ if (this->this_mode_generated (node) || !node->seen_in_operation ())
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes.
+ os->gen_ifdef_macro (node->flat_name (), "sarg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::SArg_Traits<" << node->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::Basic_SArg_Traits_T<" << node->name ()
+ << ">" << this->suffix_;
+
+ os->gen_endif ();
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_structure (be_structure *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // For arg/return type helper template classes.
+ if (node->seen_in_operation ())
+ {
+ idl_bool variable = (node->size_type () == AST_Type::VARIABLE);
+
+ os->gen_ifdef_macro (node->flat_name (), "sarg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::SArg_Traits<" << node->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::" << (variable ? "Var" : "Fixed") << "_Size_SArg_Traits_T<"
+ << this->linebreak_ << be_idt << be_idt_nl
+ << node->name ();
+
+ if (variable)
+ {
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out";
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_ss::"
+ "visit_structure - visit scope failed\n"),
+ -1);
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_tmplinst_ss::visit_union (be_union *node)
+{
+ if (this->this_mode_generated (node))
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ if (node->seen_in_operation ())
+ {
+ idl_bool variable = (node->size_type () == AST_Type::VARIABLE);
+
+ os->gen_ifdef_macro (node->flat_name (), "sarg_traits_tmplinst");
+
+ *os << be_nl << be_nl
+ << this->prefix_ << " TAO::SArg_Traits<" << node->name ()
+ << ">" << this->suffix_;
+
+ *os << be_nl << be_nl
+ << this->prefix_ << this->linebreak_ << be_idt << be_idt_nl
+ << "TAO::" << (variable ? "Var" : "Fixed") << "_Size_SArg_Traits_T<"
+ << this->linebreak_ << be_idt << be_idt_nl
+ << node->name ();
+
+ if (variable)
+ {
+ *os << "," << this->linebreak_ << be_nl
+ << node->name () << "_var," << this->linebreak_ << be_nl
+ << node->name () << "_out";
+ }
+
+ *os << this->linebreak_ << be_uidt_nl
+ << ">" << this->suffix_ << be_uidt << be_uidt << be_uidt;
+
+ os->gen_endif ();
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_tmplinst_ss::"
+ "visit_structure - visit scope failed\n"),
+ -1);
+ }
+
+ this->this_mode_generated (node, I_TRUE);
+ return 0;
+}
+
+idl_bool
+be_visitor_tmplinst_ss::this_mode_generated (be_decl *node) const
+{
+ switch (this->mode_)
+ {
+ case TMPL_CLASS:
+ return node->srv_tmpl_class_gen ();
+ case PRAGMA_INST:
+ return node->srv_pragma_inst_gen ();
+ default:
+ return I_FALSE;
+ }
+}
+
+void
+be_visitor_tmplinst_ss::this_mode_generated (be_decl *node,
+ idl_bool val)
+{
+ switch (this->mode_)
+ {
+ case TMPL_CLASS:
+ node->srv_tmpl_class_gen (val);
+ break;
+ case PRAGMA_INST:
+ node->srv_pragma_inst_gen (val);
+ break;
+ default:
+ break;
+ }
+}
+
diff --git a/TAO/TAO_IDL/be/be_visitor_traits.cpp b/TAO/TAO_IDL/be/be_visitor_traits.cpp
new file mode 100644
index 00000000000..c019c8468fc
--- /dev/null
+++ b/TAO/TAO_IDL/be/be_visitor_traits.cpp
@@ -0,0 +1,264 @@
+//=============================================================================
+/**
+* @file be_visitor_traits.cpp
+*
+* $Id$
+*
+* This visitor generates template specializations for traits of various
+* kinds for IDL declarations. These specialized template classes are then
+* used in other template classes in the ORB.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+
+#include "be_visitor_traits.h"
+#include "be_visitor_context.h"
+#include "be_root.h"
+#include "be_module.h"
+#include "be_interface.h"
+#include "be_valuetype.h"
+#include "be_interface_fwd.h"
+#include "be_valuetype_fwd.h"
+#include "be_eventtype.h"
+#include "be_eventtype_fwd.h"
+#include "be_typedef.h"
+#include "be_helper.h"
+#include "be_extern.h"
+
+ACE_RCSID (be,
+ be_visitor_traits,
+ "$Id$")
+
+be_visitor_traits::be_visitor_traits (be_visitor_context *ctx)
+ : be_visitor_scope (ctx)
+{
+}
+
+be_visitor_traits::~be_visitor_traits (void)
+{
+}
+
+int
+be_visitor_traits::visit_root (be_root *node)
+{
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
+ << "// " << __FILE__ << ":" << __LINE__;
+
+ *os << be_nl << be_nl
+ << "// Traits specializations." << be_nl
+ << "namespace TAO" << be_nl
+ << "{" << be_idt;
+
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_traits::"
+ "visit_root - visit scope failed\n"),
+ -1);
+ }
+
+ *os << be_uidt_nl
+ << "};";
+
+ return 0;
+}
+
+int
+be_visitor_traits::visit_module (be_module *node)
+{
+ if (this->visit_scope (node) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_traits::"
+ "visit_module - visit scope failed\n"),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+be_visitor_traits::visit_interface (be_interface *node)
+{
+ if (node->cli_traits_gen ())
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // Since the three blocks below generate specialized (i.e., non-template)
+ // classes, we don't want to generate them unless it's necessary - thus
+ // the logic surrounding each one.
+
+ // I think we need to generate this only for non-defined forward
+ // declarations.
+ if (!node->imported ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "struct " << be_global->stub_export_macro () << " Objref_Traits<"
+ << node->name () << ">" << be_nl
+ << "{" << be_idt_nl
+ << "static " << node->name () << "_ptr tao_duplicate ("
+ << be_idt << be_idt_nl
+ << node->name () << "_ptr" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "static void tao_release (" << be_idt << be_idt_nl
+ << node->name () << "_ptr" << be_uidt_nl
+ << ");" << be_uidt_nl
+ << "static " << node->name () << "_ptr tao_nil (void);" << be_nl
+ << "static CORBA::Boolean tao_marshal (" << be_idt << be_idt_nl
+ << node->name () << "_ptr p," << be_nl
+ << "TAO_OutputCDR & cdr" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl
+ << "};";
+
+ os->gen_endif ();
+ }
+
+ if (this->visit_scope (node) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_traits::"
+ "visit_interface - visit scope failed\n"),
+ -1);
+ }
+
+ node->cli_traits_gen (I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_traits::visit_interface_fwd (be_interface_fwd *node)
+{
+ if (node->cli_traits_gen ())
+ {
+ return 0;
+ }
+
+ be_interface *fd =
+ be_interface::narrow_from_decl (node->full_definition ());
+
+ // The logic in visit_interface() should handle what gets generated
+ // and what doesn't.
+ if (this->visit_interface (fd) != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_traits::"
+ "visit_interface_fwd - code generation failed\n"),
+ -1);
+ }
+
+ node->cli_traits_gen (I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_traits::visit_valuetype (be_valuetype *node)
+{
+ if (node->cli_traits_gen ())
+ {
+ return 0;
+ }
+
+ TAO_OutStream *os = this->ctx_->stream ();
+
+ // I think we need to generate this only for non-defined forward
+ // declarations.
+ if (!node->imported ())
+ {
+ os->gen_ifdef_macro (node->flat_name (), "traits");
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "struct " << be_global->stub_export_macro () << " Value_Traits<"
+ << node->name () << ">" << be_nl
+ << "{" << be_idt_nl
+ << "static void tao_add_ref (" << node->name () << " *);" << be_nl
+ << "static void tao_remove_ref (" << node->name () << " *);"
+ << be_uidt_nl
+ << "};";
+
+ os->gen_endif ();
+ }
+
+ int status = this->visit_scope (node);
+
+ if (status != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_traits::"
+ "visit_valuetype - visit scope failed\n"),
+ -1);
+ }
+
+ node->cli_traits_gen (I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_traits::visit_valuetype_fwd (be_valuetype_fwd *node)
+{
+ if (node->cli_traits_gen ())
+ {
+ return 0;
+ }
+
+ be_valuetype *fd =
+ be_valuetype::narrow_from_decl (node->full_definition ());
+
+ // The logic in visit_valuetype() should handle what gets generated
+ // and what doesn't.
+ int status = this->visit_valuetype (fd);
+
+ if (status != 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_traits::"
+ "visit_valuetype_fwd - code generation failed\n"),
+ -1);
+ }
+
+ node->cli_traits_gen (I_TRUE);
+ return 0;
+}
+
+int
+be_visitor_traits::visit_eventtype (be_eventtype *node)
+{
+ return this->visit_valuetype (node);
+}
+
+int
+be_visitor_traits::visit_eventtype_fwd (be_eventtype_fwd *node)
+{
+ return this->visit_valuetype_fwd (node);
+}
+
+int
+be_visitor_traits::visit_typedef (be_typedef *node)
+{
+ this->ctx_->alias (node);
+
+ // Make a decision based on the primitive base type.
+ be_type *bt = node->primitive_base_type ();
+
+ if (!bt || (bt->accept (this) == -1))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_traits::"
+ "visit_typedef - "
+ "Bad primitive type\n"),
+ -1);
+ }
+
+ this->ctx_->alias (0);
+ node->cli_traits_gen (I_TRUE);
+ return 0;
+}
diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
index f864066f8d1..d0e5367afe5 100644
--- a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
@@ -230,8 +230,8 @@ be_visitor_typecode_defn::gen_nested_namespace_begin (be_module *node)
if (ACE_OS::strcmp (item_name, "") != 0)
{
// Leave the outermost root scope.
- *os << "TAO_NAMESPACE_BEGIN (" << item_name
- << ")" << be_nl;
+ *os << "namespace " << item_name << be_nl
+ << "{" << be_idt_nl;
}
}
@@ -250,7 +250,7 @@ be_visitor_typecode_defn::gen_nested_namespace_end (be_module *node)
if (ACE_OS::strcmp (i.item ()->get_string (), "") != 0)
{
// Leave the outermost root scope.
- *os << be_nl << "TAO_NAMESPACE_END";
+ *os << be_nl << "}";
}
}
@@ -383,7 +383,6 @@ be_visitor_typecode_defn::visit_type (be_type *node)
if (node->is_nested () &&
node->defined_in ()->scope_node_type () == AST_Decl::NT_module)
{
- *os << "TAO_NAMESPACE_TYPE (CORBA::TypeCode_ptr)" << be_nl;
be_module *module = be_module::narrow_from_scope (node->defined_in ());
if (!module || (this->gen_nested_namespace_begin (module) == -1))
@@ -394,20 +393,12 @@ be_visitor_typecode_defn::visit_type (be_type *node)
-1);
}
- *os << "TAO_NAMESPACE_DEFINE (" << be_idt << be_idt_nl
- << "::CORBA::TypeCode_ptr," << be_nl
- << "_tc_";
-
- // Local name generation.
- *os << node->local_name ();
-
- *os << "," << be_nl
- << "&_tc_TAO_tc_";
-
- // Flat name generation.
- *os << node->flat_name ();
-
- *os << be_uidt_nl << ")" << be_uidt;
+ *os << "::CORBA::TypeCode_ptr _tc_"
+ << node->local_name ()
+ << " =" << be_idt_nl
+ << "&_tc_TAO_tc_"
+ << node->flat_name () << ";"
+ << be_uidt << be_uidt;
if (this->gen_nested_namespace_end (module) == -1)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_typedef.cpp b/TAO/TAO_IDL/be/be_visitor_typedef.cpp
index 403b073a29d..1a047d9202b 100644
--- a/TAO/TAO_IDL/be/be_visitor_typedef.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typedef.cpp
@@ -21,6 +21,7 @@
#include "be_array.h"
#include "be_enum.h"
#include "be_interface.h"
+#include "be_interface_fwd.h"
#include "be_predefined_type.h"
#include "be_sequence.h"
#include "be_string.h"
diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
index 16d6537daaa..636e564a4ed 100644
--- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
@@ -194,15 +194,13 @@ be_visitor_typedef_ch::visit_array (be_array *node)
<< " " << tdef->nested_type_name (scope) << ";" << be_nl;
*os << "typedef " << bt->nested_type_name (scope, "_slice")
<< " " << tdef->nested_type_name (scope, "_slice") << ";" << be_nl;
- // Typedef the _var, _out, _forany, and _life types.
+ // Typedef the _var, _out, and _forany types.
*os << "typedef " << bt->nested_type_name (scope, "_var")
<< " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl;
*os << "typedef " << bt->nested_type_name (scope, "_out")
<< " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl;
*os << "typedef " << bt->nested_type_name (scope, "_forany")
<< " " << tdef->nested_type_name (scope, "_forany") << ";" << be_nl;
- *os << "typedef " << bt->fwd_helper_name () << "_life tao_"
- << tdef->local_name () << "_life;" << be_nl;
// The _alloc, _dup, copy, and free methods
@@ -310,14 +308,15 @@ be_visitor_typedef_ch::visit_interface (be_interface *node)
*os << "typedef " << bt->nested_type_name (scope, "_out")
<< " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl;
- // typedef the _life
- *os << "typedef " << bt->fwd_helper_name () << "_life tao_"
- << tdef->local_name () << "_life;" << be_nl;
-
- // typedef the _cast
- *os << "typedef " << bt->fwd_helper_name () << "_cast tao_"
- << tdef->local_name () << "_cast;";
+ return 0;
+}
+int
+be_visitor_typedef_ch::visit_interface_fwd (be_interface_fwd *node)
+{
+// be_interface *fd =
+// be_interface::narrow_from_decl (node->full_definition ());
+// return this->visit_interface (fd);
return 0;
}
@@ -573,10 +572,6 @@ be_visitor_typedef_ch::visit_valuetype (be_valuetype *node)
*os << "typedef " << bt->nested_type_name (scope, "_out")
<< " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl;
- // typedef the _life
- *os << "typedef " << bt->fwd_helper_name () << "_life tao_"
- << tdef->local_name () << "_life;";
-
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp
index 5014fab7cbe..4ae187a128f 100644
--- a/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp
@@ -53,6 +53,33 @@ be_visitor_union_any_op_cs::visit_union (be_union *node)
<< "// TAO_IDL - Generated from " << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ // Since we don't generate CDR stream operators for types that
+ // explicitly contain a local interface (at some level), we
+ // must override these Any template class methods to avoid
+ // calling the non-existent operators. The zero return value
+ // will eventually cause CORBA::MARSHAL to be raised if this
+ // type is inserted into an Any and then marshaled.
+ if (node->is_local ())
+ {
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::marshal_value (TAO_OutputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+
+ *os << be_nl << be_nl
+ << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Dual_Impl_T<" << node->name ()
+ << ">::demarshal_value (TAO_InputCDR &)" << be_nl
+ << "{" << be_idt_nl
+ << "return 0;" << be_uidt_nl
+ << "}";
+ }
+
// Copying insertion.
*os << "// Copying insertion." << be_nl
<< "void operator<<= (" << be_idt << be_idt_nl
@@ -115,17 +142,6 @@ be_visitor_union_any_op_cs::visit_union (be_union *node)
<< ");" << be_uidt << be_uidt << be_uidt_nl
<< "}";
- *os << be_nl << be_nl
- << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl
- << "template class TAO::Any_Dual_Impl_T<" << node->name () << ">;"
- << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate TAO::Any_Dual_Impl_T<" << node->name ()
- << ">" << be_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
// All we have to do is to visit the scope and generate code.
if (this->visit_scope (node) == -1)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp
index f94ef1b6e32..7806bf335df 100644
--- a/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp
@@ -18,8 +18,8 @@
//
// ============================================================================
-ACE_RCSID (be_visitor_union,
- union_cs,
+ACE_RCSID (be_visitor_union,
+ union_cs,
"$Id$")
// ******************************************************
@@ -67,7 +67,7 @@ int be_visitor_union_cs::visit_union (be_union *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_cs::"
"visit union - "
- "codegen for discrminant failed\n"),
+ "codegen for discrminant failed\n"),
-1);
}
@@ -80,7 +80,7 @@ int be_visitor_union_cs::visit_union (be_union *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_cs"
"visit_union - "
- "codegen for scope failed\n"),
+ "codegen for scope failed\n"),
-1);
}
@@ -105,7 +105,7 @@ int be_visitor_union_cs::visit_union (be_union *node)
UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls);
be_union_branch *ub = 0;
- // In case we have some bogus enum values from an enum declared
+ // In case we have some bogus enum values from an enum declared
// in our scope.
while (ub == 0)
{
@@ -150,7 +150,7 @@ int be_visitor_union_cs::visit_union (be_union *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_cs"
"visit_union - "
- "codegen for copy ctor failed\n"),
+ "codegen for copy ctor failed\n"),
-1);
}
@@ -182,10 +182,11 @@ int be_visitor_union_cs::visit_union (be_union *node)
<< node->name ()
<< "::_tao_any_destructor (void *_tao_void_pointer)" << be_nl
<< "{" << be_idt_nl
- << node->local_name () << " *tmp = ACE_static_cast ("
- << node->local_name () << "*, _tao_void_pointer);" << be_nl
+ << node->local_name () << " *tmp =" << be_idt_nl
+ << "ACE_static_cast ("
+ << node->local_name () << " *, _tao_void_pointer);" << be_uidt_nl
<< "delete tmp;" << be_uidt_nl
- << "}\n" << be_nl;
+ << "}" << be_nl << be_nl;
}
this->ctx_->state (TAO_CodeGen::TAO_UNION_PUBLIC_ASSIGN_CS);
@@ -215,7 +216,7 @@ int be_visitor_union_cs::visit_union (be_union *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_cs"
"visit_union - "
- "codegen for assign op failed\n"),
+ "codegen for assign op failed\n"),
-1);
}
@@ -254,7 +255,7 @@ int be_visitor_union_cs::visit_union (be_union *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_cs"
"visit_union - "
- "codegen for reset failed\n"),
+ "codegen for reset failed\n"),
-1);
}
@@ -287,15 +288,11 @@ int be_visitor_union_cs::visit_union (be_union *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_cs::"
"visit_union - "
- "TypeCode definition failed\n"),
+ "TypeCode definition failed\n"),
-1);
}
}
- // Generate conditional explicit template instantiations for our
- // _var and/or _out classes.
- node->gen_common_tmplinst (os);
-
node->cli_stub_gen (I_TRUE);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
index bdf756c7cea..13a2b2c65a7 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
@@ -312,16 +312,8 @@ be_visitor_union_branch_cdr_op_ci::visit_interface (be_interface *node)
}
else
{
- *os << "result =" << be_idt_nl;
-
- AST_Decl *parent = ScopeAsDecl (node->defined_in ());
-
- if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
- {
- *os << parent->name () << "::";
- }
-
- *os << "tao_" << node->local_name () << "_life::tao_marshal ("
+ *os << "result =" << be_idt_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao_marshal ("
<< be_idt << be_idt_nl
<< "_tao_union." << f->local_name () << " ()," << be_nl
<< "strm" << be_uidt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
index 393b6ed2a01..82dd6eaeeb7 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
@@ -259,16 +259,8 @@ be_visitor_union_branch_public_assign_cs::visit_interface (be_interface *node)
}
else
{
- *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
-
- AST_Decl *parent = ScopeAsDecl (node->defined_in ());
-
- if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
- {
- *os << parent->name () << "::";
- }
-
- *os << "tao_" << node->local_name () << "_life::tao";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao";
}
*os << "_duplicate (" << be_idt << be_idt_nl
@@ -289,16 +281,8 @@ be_visitor_union_branch_public_assign_cs::visit_interface (be_interface *node)
}
else
{
- *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
-
- AST_Decl *parent = ScopeAsDecl (node->defined_in ());
-
- if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
- {
- *os << parent->name () << "::";
- }
-
- *os << "tao_" << node->local_name () << "_life::tao";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao";
}
*os << "_duplicate (" << be_idt << be_idt_nl
@@ -372,16 +356,8 @@ be_visitor_union_branch_public_assign_cs::visit_interface_fwd (
}
else
{
- *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
-
- AST_Decl *parent = ScopeAsDecl (node->defined_in ());
-
- if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
- {
- *os << parent->name () << "::";
- }
-
- *os << "tao_" << node->local_name () << "_life::tao";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao";
}
*os << "_duplicate (" << be_idt << be_idt_nl
@@ -402,16 +378,8 @@ be_visitor_union_branch_public_assign_cs::visit_interface_fwd (
}
else
{
- *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
-
- AST_Decl *parent = ScopeAsDecl (node->defined_in ());
-
- if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
- {
- *os << parent->name () << "::";
- }
-
- *os << "tao_" << node->local_name () << "_life::tao";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao";
}
*os << "_duplicate (" << be_idt << be_idt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
index 29b429ec979..65275984200 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
@@ -367,16 +367,8 @@ be_visitor_union_branch_public_ci::visit_interface (be_interface *node)
}
else
{
- *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
-
- AST_Decl *parent = ScopeAsDecl (node->defined_in ());
-
- if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
- {
- *os << parent->name () << "::";
- }
-
- *os << "tao_" << node->local_name () << "_life::tao";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao";
}
*os << "_duplicate (val)" << be_uidt_nl << ")" << be_uidt << be_uidt_nl
@@ -472,16 +464,8 @@ be_visitor_union_branch_public_ci::visit_interface_fwd (be_interface_fwd *node)
}
else
{
- *os << "OBJECT_FIELD (" << be_idt << be_idt_nl;
-
- AST_Decl *parent = ScopeAsDecl (node->defined_in ());
-
- if (parent != 0 && parent->node_type () != AST_Decl::NT_root)
- {
- *os << parent->name () << "::";
- }
-
- *os << "tao_" << node->local_name () << "_life::tao";
+ *os << "OBJECT_FIELD (" << be_idt << be_idt_nl
+ << "TAO::Objref_Traits<" << node->name () << ">::tao";
}
*os << "_duplicate (val)" << be_uidt_nl << ")" << be_uidt << be_uidt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp
index 82e0aa4be8b..cac9f2c4219 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/any_op_cs.cpp
@@ -56,6 +56,22 @@ be_visitor_valuetype_any_op_cs::visit_valuetype (be_valuetype *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
+ // All template specializations must be generated before the instantiations
+ // in the operators.
+ *os << be_nl << be_nl
+ << "template<>" << be_nl
+ << "ACE_INLINE" << be_nl
+ << "CORBA::Boolean" << be_nl
+ << "TAO::Any_Impl_T<" << node->name () << ">::to_value ("
+ << be_idt << be_idt_nl
+ << "CORBA::ValueBase *&_tao_elem" << be_uidt_nl
+ << ") const" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "CORBA::add_ref (this->value_);" << be_nl
+ << "_tao_elem = this->value_;" << be_nl
+ << "return 1;" << be_uidt_nl
+ << "}";
+
*os << "// Copying insertion." << be_nl
<< "void" << be_nl
<< "operator<<= (" << be_idt << be_idt_nl
@@ -99,16 +115,6 @@ be_visitor_valuetype_any_op_cs::visit_valuetype (be_valuetype *node)
<< ");" << be_uidt << be_uidt << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << "#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) || \\"
- << be_idt_nl
- << " defined (ACE_HAS_GNU_REPO)" << be_nl
- << "template class TAO::Any_Impl_T<" << node->full_name ()
- << ">;" << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate TAO::Any_Impl_T<" << node->full_name ()
- << ">" << be_uidt_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
-
node->cli_stub_any_op_gen (1);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp
index 9531eee4eff..8348ddda450 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp
@@ -41,36 +41,27 @@ be_visitor_obv_operation_arglist::~be_visitor_obv_operation_arglist (void)
{
}
-int
+idl_bool
be_visitor_obv_operation_arglist::is_amh_exception_holder (be_operation *node)
{
UTL_Scope *scope = node->defined_in ();
be_interface *iface = be_interface::narrow_from_scope (scope);
- int is_an_amh_exception_holder = 0;
-
if (iface != 0)
{
- const char *amh_underbar = "AMH_";
- const char *node_name = iface->local_name ();
-
- if( amh_underbar[0] == node_name[0] &&
- amh_underbar[1] == node_name[1] &&
- amh_underbar[2] == node_name[2] &&
- amh_underbar[3] == node_name[3]
- ) // node name starts with "AMH_"
+ if (ACE_OS_String::strncmp (iface->local_name (), "AMH_", 4) == 0)
{
const char *last_E = ACE_OS::strrchr (iface->full_name (), 'E');
if (last_E != 0
&& ACE_OS::strcmp (last_E, "ExceptionHolder") == 0)
{
- is_an_amh_exception_holder = 1;
+ return I_TRUE;
}
}
}
- return is_an_amh_exception_holder;
+ return I_FALSE;
}
int
@@ -113,7 +104,7 @@ be_visitor_obv_operation_arglist::visit_operation (be_operation *node)
// Use ACE_ENV_SINGLE_ARG_DECL or ACE_ENV_ARG_DECL depending on
// whether the operation node has parameters.
- if (node->argument_count() == 0)
+ if (node->argument_count () == 0)
{
*os << " ACE_ENV_SINGLE_ARG_DECL";
}
@@ -128,27 +119,17 @@ be_visitor_obv_operation_arglist::visit_operation (be_operation *node)
switch (this->ctx_->state ())
{
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_CH:
- case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_OBV_CH:
- case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IMPL_CH:
- // Last argument - is always ACE_ENV_ARG_DECL.
- *os << "_WITH_DEFAULTS" << be_uidt_nl;
- break;
- case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IMPL_CS:
// Last argument - is always ACE_ENV_ARG_DECL.
- *os << be_uidt_nl;
+ *os << "_WITH_DEFAULTS";
break;
default:
- *os << be_uidt_nl;
break;
}
}
}
- else
- {
- *os << be_uidt_nl;
- }
- *os << ")";
+ *os << be_uidt_nl
+ << ")";
be_visitor_context ctx = *this->ctx_;
be_visitor_operation operation_visitor (&ctx);
@@ -177,11 +158,6 @@ be_visitor_obv_operation_arglist::visit_operation (be_operation *node)
break;
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IH:
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IS:
- break;
- case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IMPL_CH:
- *os << ";";
- break;
- case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IMPL_CS:
default:
break;
}
@@ -251,7 +227,6 @@ be_visitor_obv_operation_arglist::visit_argument (be_argument *node)
status = bt->accept (&visitor);
break;
}
- case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_OTHERS:
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_SH:
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IH:
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IS:
@@ -291,7 +266,6 @@ be_visitor_obv_operation_arglist::post_process (be_decl *bd)
switch (this->ctx_->state ())
{
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_CH:
- case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_OTHERS:
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_SH:
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IH:
case TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_IS:
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp
index 9b44cb603f9..87571fa8cba 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/obv_module.cpp
@@ -54,17 +54,17 @@ be_visitor_obv_module::visit_module (be_module *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
- *os << "TAO_NAMESPACE ";
+ *os << "namespace ";
if (!node->is_nested ())
{
// We are outermost module, so prepend.
- *os << " OBV_" << node->local_name () << be_nl;
+ *os << "OBV_" << node->local_name () << be_nl;
}
else
{
// We are inside another module.
- *os << " " << node->local_name () << be_nl;
+ *os << node->local_name () << be_nl;
}
*os << "{" << be_idt;
@@ -81,10 +81,7 @@ be_visitor_obv_module::visit_module (be_module *node)
if (this->ctx_->state () == TAO_CodeGen::TAO_MODULE_OBV_CH)
{
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- *os << be_uidt_nl << be_nl << "}TAO_NAMESPACE_CLOSE";
+ *os << be_uidt_nl << "}";
}
}
@@ -204,8 +201,6 @@ be_visitor_obv_module::visit_eventtype (be_eventtype *node)
break;
case TAO_CodeGen::TAO_MODULE_OBV_CI:
{
- // This context state is not involved in any strategies.
-// ctx.state (TAO_CodeGen::TAO_EVENTTYPE_OBV_CI);
be_visitor_eventtype_obv_ci visitor (&ctx);
status = node->accept (&visitor);
break;
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp
index 857102b3ec2..31bc0162f9a 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype.cpp
@@ -923,247 +923,14 @@ be_visitor_valuetype::gen_init_impl (be_valuetype *node)
return 0;
}
-be_visitor_valuetype::FactoryStyle
-be_visitor_valuetype::determine_factory_style (be_valuetype* node)
-{
- FactoryStyle factory_style = FS_UNKNOWN;
-
- if (node == 0)
- {
- return factory_style;
- }
-
- if (node->is_abstract ())
- {
- return FS_NO_FACTORY;
- }
-
- // Check whether we have at least one operation or not.
- idl_bool have_operation = be_visitor_valuetype::have_operation (node);
-
-
- idl_bool have_factory = 0;
-
- // Try only our own scope.
- if (node->nmembers () > 0)
- {
- // Initialize an iterator to iterate thru our scope
- // Continue until each element is visited.
- for (UTL_ScopeActiveIterator si (node,
- UTL_Scope::IK_decls);
- !si.is_done ();
- si.next())
- {
- AST_Decl *d = si.item ();
-
- if (!d)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_valuetype_init::"
- "determine_factory_style"
- "bad node in this scope\n"),
- factory_style);
-
- }
-
- AST_Decl::NodeType node_type = d->node_type();
-
- if (node_type == AST_Decl::NT_factory)
- {
- have_factory = 1;
- break;
- }
-
- } // end of for loop
- } // end of if
-
- if (!have_operation && !have_factory)
- {
- factory_style = FS_CONCRETE_FACTORY;
- }
- else if (have_operation && !have_factory)
- {
- factory_style = FS_NO_FACTORY;
- }
- else
- {
- factory_style = FS_ABSTRACT_FACTORY;
- }
-
- return factory_style;
-}
-
-idl_bool
-be_visitor_valuetype::have_operation (be_valuetype* node)
-{
- // Check whatever scope we get for operations/attributes.
-
- if (node == 0)
- {
- return 0;
- }
-
- idl_bool have_operation = 0;
-
- // Operations are either operations or attributes of:
- // -its own
- // -derived (abstract VT | VT | abstract iface | iface)
- //
-
- // First try our own scope.
- if (node->nmembers () > 0)
- {
- // Initialize an iterator to iterate thru our scope
- // Continue until each element is checked.
- for (UTL_ScopeActiveIterator si (node,
- UTL_Scope::IK_decls);
- !si.is_done ();
- si.next())
- {
- AST_Decl *d = si.item ();
-
- if (!d)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_valuetype_init::"
- "has_operation"
- "bad node in this scope\n"),
- 0);
-
- }
-
- AST_Decl::NodeType node_type = d->node_type();
-
- if (node_type == AST_Decl::NT_op)
- {
- have_operation = 1;
- continue;
- }
-
- if (node_type == AST_Decl::NT_attr)
- {
- have_operation = 1;
- continue;
- }
-
- if (node_type == AST_Decl::NT_factory)
- {
- continue;
- }
-
- if (node_type == AST_Decl::NT_field)
- {
- continue;
- }
-
- } // end of for loop
- } // end of if
-
- // Now traverse inheritance tree.
- long i; // loop index
- long n_inherits = node->n_inherits ();
- AST_Interface **inherits = node->inherits ();
-
- for (i = 0; i < n_inherits; ++i)
- {
- be_valuetype *vt = be_valuetype::narrow_from_decl (inherits[i]);
-
- if (vt != 0)
- {
- have_operation = have_operation ||
- be_visitor_valuetype::have_operation (vt);
-
- if (have_operation)
- {
- break;
- }
- }
- }
-
- // Check for operations on supported interfaces
- AST_Interface * supported = node->supports_concrete ();
- if (supported != 0)
- {
- be_interface *intf = be_interface::narrow_from_decl (supported);
- if (intf != 0)
- have_operation = have_operation || be_visitor_valuetype::have_supported_op (intf);
- }
-
- return have_operation;
-}
-
-idl_bool
-be_visitor_valuetype::have_supported_op (be_interface * node)
-{
-
- idl_bool have_supported_op = 0;
-
- if (node->nmembers () > 0)
-
- // Initialize an iterator for supported interface elements
- for (UTL_ScopeActiveIterator si (node, UTL_Scope::IK_decls); !si.is_done (); si.next())
- {
- AST_Decl *d = si.item ();
-
- if (!d)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_valuetype_init::"
- "has_operation"
- "bad node in this scope\n"),
- 0);
-
- }
-
- AST_Decl::NodeType node_type = d->node_type();
-
- // Check the type of each element in the supported interface
- if (node_type == AST_Decl::NT_op)
- {
- have_supported_op = 1;
- continue;
- }
- if (node_type == AST_Decl::NT_attr)
- {
- have_supported_op = 1;
- continue;
- }
- if (have_supported_op)
- {
- break;
- }
- } // end for loop
-
- // Now traverse inheritance tree.
- long i; // loop index
- long n_inherits = node->n_inherits ();
- AST_Interface **inherits = node->inherits ();
- for (i = 0; i < n_inherits; ++i)
- {
- be_interface * intf = be_interface::narrow_from_decl (inherits[i]);
-
- if (intf != 0)
- {
- have_supported_op = have_supported_op ||
- be_visitor_valuetype::have_supported_op (intf);
-
- if (have_supported_op)
- {
- break;
- }
- }
- }
-
- return have_supported_op;
-}
-
idl_bool
be_visitor_valuetype::obv_need_ref_counter (be_valuetype* node)
{
// VT needs RefCounter if it has concrete factory or supports an
// abstract interface and none of its base VT has ref_counter
- if (be_visitor_valuetype::determine_factory_style (node) != FS_CONCRETE_FACTORY && !node->supports_abstract ())
+ if (node->determine_factory_style () != be_valuetype::FS_CONCRETE_FACTORY
+ && !node->supports_abstract ())
{
return 0;
}
@@ -1171,7 +938,8 @@ be_visitor_valuetype::obv_need_ref_counter (be_valuetype* node)
// Now go thru our base VTs and see if one has already.
for (int i = 0; i < node->n_inherits (); ++i)
{
- be_valuetype *vt = be_valuetype::narrow_from_decl (node->inherits ()[i]);
+ be_valuetype *vt =
+ be_valuetype::narrow_from_decl (node->inherits ()[i]);
if (vt != 0)
{
@@ -1195,7 +963,7 @@ be_visitor_valuetype::obv_have_ref_counter (be_valuetype* node)
return 0;
}
- if (be_visitor_valuetype::determine_factory_style (node) == FS_CONCRETE_FACTORY)
+ if (node->determine_factory_style () == be_valuetype::FS_CONCRETE_FACTORY)
{
return 1;
}
@@ -1216,3 +984,21 @@ be_visitor_valuetype::obv_have_ref_counter (be_valuetype* node)
return 0;
}
+
+idl_bool
+be_visitor_valuetype::is_amh_exception_holder (be_valuetype *node)
+{
+ if (ACE_OS_String::strncmp (node->local_name (), "AMH_", 4) == 0)
+ {
+ const char *last_E =
+ ACE_OS_String::strrchr (node->full_name (), 'E');
+
+ if (last_E != 0
+ && ACE_OS_String::strcmp (last_E, "ExceptionHolder") == 0)
+ {
+ return I_TRUE;
+ }
+ }
+
+ return I_FALSE;
+}
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp
index 1bcc95f8d3b..e8dd8d322eb 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp
@@ -126,28 +126,8 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
************************************************************************/
/****************************************************************/
- // 1) Find out if the ValueType is an AMH_*ExceptionHolder, the
- // conditions are:
- // a) The local_name starts with AMH_
- // b) The local_name ends with ExceptionHolder
- int is_an_amh_exception_holder = 0;
- const char *amh_underbar = "AMH_";
- const char *node_name = node->local_name ();
-
- if( amh_underbar[0] == node_name[0] &&
- amh_underbar[1] == node_name[1] &&
- amh_underbar[2] == node_name[2] &&
- amh_underbar[3] == node_name[3]
- ) // node name starts with "AMH_"
- {
- const char *last_E = ACE_OS::strrchr (node->full_name (), 'E');
-
- if (last_E != 0
- && ACE_OS::strcmp (last_E, "ExceptionHolder") == 0)
- {
- is_an_amh_exception_holder = 1;
- }
- }
+ // 1) Find out if the ValueType is an AMH_*ExceptionHolder
+ idl_bool is_an_amh_exception_holder = this->is_amh_exception_holder (node);
if (is_an_amh_exception_holder)
{
@@ -205,35 +185,30 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
*os << be_uidt << be_uidt_nl
<< "{" << be_nl
<< "public:" << be_idt_nl
- << "typedef " << node->local_name () << "_var _var_type;" << be_nl;
+ << "typedef " << node->local_name () << "_var _var_type;"
+ << be_nl << be_nl;
- /***********************************************************************/
- // 2.2, 2.3
if (is_an_amh_exception_holder)
{
- // Generate the constructor
- *os << node->local_name () << " (CORBA::Exception *ex)" << be_nl
- << "{ this->exception = ex; }" << be_nl << be_nl;
- // and the destructor
- *os << "virtual ~" << node->local_name () << " (void);"
+ // Generate the constructor and destructor.
+ *os << node->local_name () << " (CORBA::Exception *ex)" << be_idt_nl
+ << ": exception (ex)" << be_uidt_nl
+ << "{}" << be_nl << be_nl
+ << "virtual ~" << node->local_name () << " (void);"
<< be_nl << be_nl;
}
- /***********************************************************************/
- // Generate the static _downcast operation.
- // (see OMG 20.17.{4,5}).
*os << "static " << node->local_name () << "* "
- << "_downcast (CORBA::ValueBase* );" << be_nl
- << "// The address of static _downcast is implicit used as type id\n"
+ << "_downcast (CORBA::ValueBase *);" << be_nl
<< be_nl
<< "// (TAO extensions or internals)" << be_nl
<< "static CORBA::Boolean _tao_unmarshal (" << be_idt << be_idt_nl
<< "TAO_InputCDR &," << be_nl
<< node->local_name () << " *&" << be_uidt_nl
- << ");" << be_uidt_nl
+ << ");" << be_uidt_nl << be_nl
<< "virtual const char* "
<< "_tao_obv_repository_id (void) const;"
- << be_nl
+ << be_nl << be_nl
<< "static const char* "
<< "_tao_obv_static_repository_id (void);" << be_nl << be_nl;
@@ -287,7 +262,7 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
// instantiate us.
*os << be_uidt_nl << be_nl << "protected:" << be_idt_nl
<< node->local_name ()
- << " (void);" << be_nl;
+ << " (void);" << be_nl << be_nl;
if (!is_an_amh_exception_holder)
{
@@ -295,13 +270,6 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
<< be_nl << be_nl;
}
- // TAO internals.
- *os << "virtual void *_tao_obv_narrow (ptrdiff_t);"
- << "\n#if defined (_MSC_VER)" << be_nl
- << "virtual void *" << node->flat_name ()
- << "_tao_obv_narrow (ptrdiff_t);"
- << "\n#endif /* _MSC_VER */" << be_nl;
-
// Support for marshalling.
if (!node->is_abstract () && !is_an_amh_exception_holder)
{
@@ -313,11 +281,10 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
if (is_an_amh_exception_holder)
{
- *os << "// *** Terrible Hack ? ***" << be_nl;
*os << "virtual CORBA::Boolean "
- << "_tao_marshal_v (TAO_OutputCDR &) { return 1; }" << be_nl;
+ << "_tao_marshal_v (TAO_OutputCDR &) {return 1;}" << be_nl;
*os << "virtual CORBA::Boolean "
- << "_tao_unmarshal_v (TAO_InputCDR &) { return 1; }" << be_nl;
+ << "_tao_unmarshal_v (TAO_InputCDR &) {return 1;}" << be_nl;
}
@@ -335,7 +302,8 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
// 2.4
if (is_an_amh_exception_holder)
{
- *os << "CORBA::Exception *exception;"
+ *os << be_nl
+ << "CORBA::Exception *exception;"
<< be_nl;
}
/*********************************************************/
@@ -359,29 +327,32 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
if (!node->is_abstract ())
{
*os << be_uidt_nl << "protected:" << be_idt_nl;
- /*********************************************************/
- // 2.5
+
if (is_an_amh_exception_holder)
{
- *os << "virtual CORBA::Boolean _tao_marshal__"
- << node->flat_name () << " (TAO_OutputCDR &) {return 1;}"
- << be_nl;
- *os << "virtual CORBA::Boolean _tao_unmarshal__"
- << node->flat_name () << " (TAO_InputCDR &) {return 1;}";
+ *os << "virtual CORBA::Boolean" << be_nl
+ << "_tao_marshal__" << node->flat_name ()
+ << " (TAO_OutputCDR &) {return 1;}"
+ << be_nl << be_nl;
+ *os << "virtual CORBA::Boolean" << be_nl
+ << "_tao_unmarshal__" << node->flat_name ()
+ << " (TAO_InputCDR &) {return 1;}";
}
- /*********************************************************/
else
{
- *os << "virtual CORBA::Boolean _tao_marshal__"
- << node->flat_name () << " (TAO_OutputCDR &) = 0;"
- << be_nl;
- *os << "virtual CORBA::Boolean _tao_unmarshal__"
- << node->flat_name () << " (TAO_InputCDR &) = 0;";
+ *os << "virtual CORBA::Boolean" << be_nl
+ << "_tao_marshal__" << node->flat_name ()
+ << " (TAO_OutputCDR &) = 0;"
+ << be_nl << be_nl;
+ *os << "virtual CORBA::Boolean" << be_nl
+ << "_tao_unmarshal__" << node->flat_name ()
+ << " (TAO_InputCDR &) = 0;";
}
}
}
- *os << be_uidt_nl << "};";
+ *os << be_uidt_nl
+ << "};";
os->gen_endif ();
@@ -432,7 +403,6 @@ be_visitor_valuetype_ch::visit_operation (be_operation *node)
// Every operation is declared public and virtual in the client code.
*os << be_uidt_nl << "public:" << be_idt_nl << "virtual ";
- // STEP I: Generate the return type.
be_type *bt = be_type::narrow_from_decl (node->return_type ());
if (!bt)
@@ -444,7 +414,6 @@ be_visitor_valuetype_ch::visit_operation (be_operation *node)
-1);
}
- // Grab the right visitor to generate the return type.
be_visitor_context ctx (*this->ctx_);
be_visitor_operation_rettype or_visitor (&ctx);
@@ -457,11 +426,8 @@ be_visitor_valuetype_ch::visit_operation (be_operation *node)
-1);
}
- // STEP 2: Generate the operation name.
*os << " " << node->local_name ();
- // STEP 3: Generate the argument list with the appropriate mapping. For these
- // we grab a visitor that generates the parameter listing.
ctx = *this->ctx_;
ctx.state (TAO_CodeGen::TAO_OBV_OPERATION_ARGLIST_CH);
be_visitor_obv_operation_arglist ooa_visitor (&ctx);
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp
index 49ec442c334..3b86f08e4b1 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ci.cpp
@@ -96,23 +96,6 @@ be_visitor_valuetype_ci::visit_valuetype (be_valuetype *node)
<< "return \"" << node->repoID () << "\";" << be_uidt_nl
<< "}";
- if (be_global->any_support ())
- {
- *os << be_nl << be_nl
- << "template<>" << be_nl
- << "ACE_INLINE" << be_nl
- << "CORBA::Boolean" << be_nl
- << "TAO::Any_Impl_T<" << node->name () << ">::to_value ("
- << be_idt << be_idt_nl
- << "CORBA::ValueBase *&_tao_elem" << be_uidt_nl
- << ") const" << be_uidt_nl
- << "{" << be_idt_nl
- << "CORBA::add_ref (this->value_);" << be_nl
- << "_tao_elem = this->value_;" << be_nl
- << "return 1;" << be_uidt_nl
- << "}";
- }
-
if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp
index b4559d66fcb..e6cc0c561e9 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_cs.cpp
@@ -37,34 +37,6 @@ be_visitor_valuetype_cs::~be_visitor_valuetype_cs (void)
}
int
-be_visitor_valuetype_cs::is_amh_exception_holder (be_valuetype *node)
-{
- // 1) Find out if the ValueType is an AMH_*ExceptionHolder, the
- // conditions are:
- // a) The local_name starts with AMH_
- // b) The local_name ends with ExceptionHolder
- int is_an_amh_exception_holder = 0;
- const char *amh_underbar = "AMH_";
- const char *node_name = node->local_name ();
-
- if( amh_underbar[0] == node_name[0] &&
- amh_underbar[1] == node_name[1] &&
- amh_underbar[2] == node_name[2] &&
- amh_underbar[3] == node_name[3]
- ) // node name starts with "AMH_"
- {
- const char *last_E = ACE_OS::strrchr (node->full_name (), 'E');
-
- if (last_E != 0
- && ACE_OS::strcmp (last_E, "ExceptionHolder") == 0)
- {
- is_an_amh_exception_holder = 1;
- }
- }
- return is_an_amh_exception_holder;
-}
-
-int
be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node)
{
if (node->cli_stub_gen () || node->imported ())
@@ -91,60 +63,30 @@ be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node)
TAO_OutStream *os = this->ctx_->stream ();
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
-
- const char *fhname = node->fwd_helper_name ();
+ << "// " << __FILE__ << ":" << __LINE__;
- if (ACE_OS::strcmp (fhname, "") == 0)
+ if (node->is_defined ())
{
- node->gen_fwd_helper_name ();
- fhname = node->fwd_helper_name ();
- }
-
- // Helper functions to allow non-defined forward declared valuetypes
- // access to some methods in the full definition.
- *os << "void" << be_nl
- << fhname << "_life::tao_add_ref ("
- << be_idt << be_idt_nl
- << node->full_name () << " * p" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "CORBA::add_ref (p);" << be_uidt_nl
- << "}" << be_nl << be_nl;
-
- *os << "void" << be_nl
- << fhname << "_life::tao_remove_ref ("
- << be_idt << be_idt_nl
- << node->full_name () << " * p" << be_uidt_nl
- << ")" << be_uidt_nl
- << "{" << be_idt_nl
- << "CORBA::remove_ref (p);" << be_uidt_nl
- << "}";
+ *os << be_nl << be_nl
+ << "void" << be_nl
+ << "TAO::Value_Traits<" << node->name () << ">::tao_add_ref ("
+ << be_idt << be_idt_nl
+ << node->name () << " * p" << be_uidt_nl
+ << ")" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "CORBA::add_ref (p);" << be_uidt_nl
+ << "}";
- *os << be_nl
- << "\n#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)" << be_idt_nl
- << "template class" << be_idt_nl
- << "TAO_Value_Var_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << fhname << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt_nl
- << "template class" << be_idt_nl
- << "TAO_Value_Out_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << fhname << "_life" << be_uidt_nl
- << ">;" << be_uidt << be_uidt << be_uidt_nl
- << "#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)" << be_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Value_Var_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << fhname << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt_nl
- << "# pragma instantiate \\" << be_idt << be_idt_nl
- << "TAO_Value_Out_T< \\" << be_idt << be_idt_nl
- << node->name () << ", \\" << be_nl
- << fhname << "_life \\" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt_nl
- << "#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */";
+ *os << be_nl << be_nl
+ << "void" << be_nl
+ << "TAO::Value_Traits<" << node->name () << ">::tao_remove_ref ("
+ << be_idt << be_idt_nl
+ << node->name () << " * p" << be_uidt_nl
+ << ")" << be_uidt_nl
+ << "{" << be_idt_nl
+ << "CORBA::remove_ref (p);" << be_uidt_nl
+ << "}";
+ }
// The _downcast method // %! use ACE_xxx_cast here ?
*os << be_nl << be_nl
@@ -155,8 +97,7 @@ be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node)
<< "{" << be_idt_nl
<< "return 0;" << be_uidt_nl
<< "}" << be_uidt_nl << be_nl
- << "return (" << node->local_name () << " *) "
- << "v->_tao_obv_narrow ((ptrdiff_t) &_downcast);" << be_uidt_nl
+ << "return dynamic_cast<" << node->name () << " *> (v);" << be_uidt_nl
<< "}" << be_nl << be_nl;
// The _tao_obv_repository_id method
@@ -164,108 +105,28 @@ be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node)
<< node->name () << "::_tao_obv_repository_id (void) const" << be_nl
<< "{" << be_idt_nl
<< "return this->_tao_obv_static_repository_id ();" << be_uidt_nl
- << "}" << be_nl;
-
- // The _tao_obv_narrow method
-
- *os << be_nl
- << "void *" << be_nl
- << "#if defined (_MSC_VER)" << be_nl
- << node->name () << "::" << node->flat_name ()
- << "_tao_obv_narrow (ptrdiff_t type_id)" << be_nl
- << "#else" << be_nl
- << node->name () << "::"
- << "_tao_obv_narrow (ptrdiff_t type_id)" << be_nl
- << "#endif /* _MSC_VER */" << be_nl
- << "{" << be_idt_nl
- << "if (type_id == (ptrdiff_t) &_downcast)" << be_idt_nl
- << "{" << be_idt_nl
- << "return this;" << be_uidt_nl
- << "}" << be_uidt_nl << be_nl
- << "void *rval = 0;" << be_nl;
-
- // Find the possible base classes.
-
- int n_inherits_downcastable = 0;
- AST_Interface *inherited = 0;
-
- for (int i = 0; i < node->n_inherits (); ++i)
- {
- inherited = node->inherits ()[i];
-
- ++n_inherits_downcastable;
-
- *os << be_nl
- << "if (rval == 0)" << be_idt_nl
- << "{"
- << "\n#if defined (_MSC_VER)" << be_idt_nl
- << "rval = this->" << inherited->flat_name ()
- << "_tao_obv_narrow (type_id);"
- << "\n#else" << be_nl
- << "rval = this->" << inherited->name () << "::"
- << "_tao_obv_narrow (type_id);"
- << "\n#endif /* _MSC_VER */" << be_uidt_nl
- << "}" << be_uidt_nl;
- }
-
- if (node->supports_abstract ())
- {
- long size = node->n_supports ();
- AST_Interface *supported = 0;
-
- for (long i = 0; i < size; ++i)
- {
- supported = node->supports ()[i];
-
- if (supported->is_abstract ())
- {
- *os << be_nl
- << "if (rval == 0)" << be_idt_nl
- << "{"
- << "\n#if defined (_MSC_VER)" << be_idt_nl
- << "rval = this->"
- << supported->flat_name ()
- << "_tao_obv_narrow (type_id);"
- << "\n#else" << be_nl
- << "rval = this->" << supported->name ()
- << "::_tao_obv_narrow (type_id);"
- << "\n#endif /* _MSC_VER */" << be_uidt_nl
- << "}" << be_uidt_nl;
- }
- }
- }
-
- *os << be_nl << "return rval;" << be_uidt_nl
<< "}" << be_nl << be_nl;
- *os << "#if defined (_MSC_VER)" << be_nl
-
- << "void *" << be_nl << node->name ()
- << "::_tao_obv_narrow (ptrdiff_t type_id)" << be_nl
- << "{" << be_idt_nl
- << "return this->" << node->flat_name ()
- << "_tao_obv_narrow (type_id);" << be_uidt_nl
- << "}" << be_nl
- << "#endif /* _MSC_VER */" << be_uidt_nl << be_nl;
-
if (be_global->any_support ())
{
*os << "void" << be_nl
<< node->name ()
<< "::_tao_any_destructor (void *_tao_void_pointer)" << be_nl
<< "{" << be_idt_nl
- << node->local_name () << " *tmp =" << be_idt_nl
+ << node->local_name () << " *_tao_tmp_pointer =" << be_idt_nl
<< "ACE_static_cast (" << be_idt << be_idt_nl
<< node->local_name () << " *," << be_nl
<< "_tao_void_pointer" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl
- << "CORBA::remove_ref (tmp);" << be_uidt_nl
+ << "CORBA::remove_ref (_tao_tmp_pointer);" << be_uidt_nl
<< "}" << be_nl << be_nl;
}
+ idl_bool is_an_amh_exception_holder =
+ this->is_amh_exception_holder (node);
// Nothing to marshal if abstract valuetype.
- if (!node->is_abstract () && !is_amh_exception_holder (node))
+ if (!node->is_abstract () && !is_an_amh_exception_holder)
{
// The virtual _tao_marshal_v method.
*os << "CORBA::Boolean " << node->name ()
@@ -290,7 +151,7 @@ be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node)
<< " (strm);" << be_uidt_nl;
}
- *os << "}\n" << be_nl;
+ *os << "}" << be_nl << be_nl;
// The virtual _tao_unmarshal_v method.
*os << "CORBA::Boolean " << node->name ()
@@ -315,7 +176,7 @@ be_visitor_valuetype_cs::visit_valuetype (be_valuetype *node)
<< " (strm);" << be_uidt_nl;
}
- *os << "}\n" << be_nl;
+ *os << "}" << be_nl << be_nl;
}
// The static T::_tao_unmarshal method
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp
index 944b0f3a16b..c86695a7a1b 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp
@@ -54,9 +54,10 @@ be_visitor_valuetype_init_ch::visit_valuetype (be_valuetype *node)
// (3) There is at least one operation and at least one initializer.
// In this case we need to generate abstract factory class.
- FactoryStyle factory_style = determine_factory_style (node);
+ be_valuetype::FactoryStyle factory_style =
+ node->determine_factory_style ();
- if (factory_style == FS_NO_FACTORY)
+ if (factory_style == be_valuetype::FS_NO_FACTORY)
{
// Nothing to do.
return 0;
@@ -79,7 +80,7 @@ be_visitor_valuetype_init_ch::visit_valuetype (be_valuetype *node)
os << "{" << be_nl
<< "public:" << be_idt_nl;
- if (factory_style == FS_CONCRETE_FACTORY)
+ if (factory_style == be_valuetype::FS_CONCRETE_FACTORY)
{
// Public constructor.
os << node->local_name () << "_init (void);" << be_nl;
@@ -99,7 +100,7 @@ be_visitor_valuetype_init_ch::visit_valuetype (be_valuetype *node)
<< "static " << node->local_name () << "_init* "
<< "_downcast (CORBA::ValueFactoryBase *);";
- if (factory_style == FS_CONCRETE_FACTORY)
+ if (factory_style == be_valuetype::FS_CONCRETE_FACTORY)
{
//@@ Boris: create_for_unmarshal is still public...
// generate create_for_unmarshal
@@ -123,7 +124,7 @@ be_visitor_valuetype_init_ch::visit_valuetype (be_valuetype *node)
<< "public:" << be_idt_nl;
os << "virtual const char* tao_repository_id (void);";
- if (factory_style == FS_ABSTRACT_FACTORY)
+ if (factory_style == be_valuetype::FS_ABSTRACT_FACTORY)
{
// Protected constructor.
os << be_uidt_nl << be_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp
index 121cf919a8b..8b81ec57925 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_cs.cpp
@@ -54,9 +54,10 @@ be_visitor_valuetype_init_cs::visit_valuetype (be_valuetype *node)
// (3) There is at least one operation and at least one initializer.
// In this case we need to generate abstract factory class.
- FactoryStyle factory_style = determine_factory_style (node);
+ be_valuetype::FactoryStyle factory_style =
+ node->determine_factory_style ();
- if (factory_style == FS_NO_FACTORY)
+ if (factory_style == be_valuetype::FS_NO_FACTORY)
{
return 0;
}
@@ -102,7 +103,7 @@ be_visitor_valuetype_init_cs::visit_valuetype (be_valuetype *node)
<< be_uidt_nl << "}";
- if (factory_style == FS_CONCRETE_FACTORY)
+ if (factory_style == be_valuetype::FS_CONCRETE_FACTORY)
{
// generate create_for_unmarshal()
*os << be_nl << be_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp
index b25c1f50b52..0d5d5836734 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp
@@ -147,10 +147,11 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
this->begin_public ();
// Default constructor and destructor are public if OBV class is concrete
- if (!be_visitor_valuetype::have_operation (node))
+ if (!node->have_operation ())
{
*os << be_nl;
+
if (! node->is_nested ())
{
*os << "OBV_";
@@ -190,7 +191,7 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
*os << "virtual void _remove_ref (void);";
}
- if (be_visitor_valuetype::have_operation (node))
+ if (node->have_operation ())
{
// Default constructor and destructor are protected if OBV class is abstract
*os << be_nl << be_uidt_nl << "protected:" << be_idt;
@@ -217,15 +218,21 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
if (!node->opt_accessor ())
{
*os << be_nl << be_uidt_nl << "protected:" << be_idt_nl;
- *os << "virtual CORBA::Boolean _tao_marshal__"
- << node->flat_name () << " (TAO_OutputCDR &);" << be_nl;
- *os << "virtual CORBA::Boolean _tao_unmarshal__"
- << node->flat_name () << " (TAO_InputCDR &);" << be_nl;
+
+ *os << "virtual CORBA::Boolean" << be_nl
+ << "_tao_marshal__" << node->flat_name ()
+ << " (TAO_OutputCDR &);" << be_nl << be_nl;
+
+ *os << "virtual CORBA::Boolean" << be_nl
+ << "_tao_unmarshal__" << node->flat_name ()
+ << " (TAO_InputCDR &);" << be_nl << be_nl;
+
*os << "CORBA::Boolean "
<< "_tao_marshal_state (TAO_OutputCDR &);" << be_nl
<< "CORBA::Boolean "
<< "_tao_unmarshal_state (TAO_InputCDR &);"
<< be_uidt_nl << be_nl;
+
*os << "private:" << be_idt;
this->gen_pd (node);
diff --git a/TAO/TAO_IDL/be_include/be_codegen.h b/TAO/TAO_IDL/be_include/be_codegen.h
index cd8abfe2831..9d05e3576b7 100644
--- a/TAO/TAO_IDL/be_include/be_codegen.h
+++ b/TAO/TAO_IDL/be_include/be_codegen.h
@@ -56,8 +56,6 @@ public:
// Emitting code for arguments of an operation. No distinction between
// headers, inlines, stubs.
- TAO_ARGUMENT_INTERCEPTORS_ARGLIST_CS, // ... client source
- TAO_ARGUMENT_INTERCEPTORS_INFO_ARGLIST_CS, // ... client source
TAO_ARGUMENT_INTERCEPTORS_ARGLIST_SS, // ... server source
TAO_ARGUMENT_INTERCEPTORS_INFO_ARGLIST_SS, // ... server source
TAO_ARGUMENT_COLLOCATED_UPCALL_SS, // passing argument
@@ -74,14 +72,9 @@ public:
TAO_INTERFACE_CH,
TAO_INTERFACE_SMART_PROXY_CH,
TAO_INTERFACE_SMART_PROXY_CS,
- TAO_INTERFACE_INTERCEPTORS_CH,
- TAO_INTERFACE_INTERCEPTORS_CS,
TAO_INTERFACE_INTERCEPTORS_SH,
TAO_INTERFACE_INTERCEPTORS_SS,
- TAO_INTERFACE_BASE_PROXY_IMPL_CH,
- TAO_INTERFACE_REMOTE_PROXY_IMPL_CH,
- TAO_INTERFACE_REMOTE_PROXY_IMPL_CS,
TAO_INTERFACE_THRU_POA_PROXY_IMPL_SH,
TAO_INTERFACE_THRU_POA_PROXY_IMPL_SS,
TAO_INTERFACE_DIRECT_PROXY_IMPL_SH,
@@ -111,10 +104,6 @@ public:
TAO_OPERATION_ARGLIST_CH, // parameter list in op signature
TAO_OPERATION_ARGLIST_SH, // ... for server header
- TAO_OPERATION_INTERCEPTORS_ARGLIST_CH, // private member list list for request info
- TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CH, // private member list list for request info
- TAO_OPERATION_INTERCEPTORS_INFO_ARGLIST_CS, // arglist for request info obj instantiation
- TAO_OPERATION_INTERCEPTORS_ARGLIST_CS, // private member list list for request info // ... for client source
TAO_OPERATION_INTERCEPTORS_PARAMLIST, // create the paramlist on demand
TAO_OPERATION_INTERCEPTORS_EXCEPTLIST, // create the exceptionlist on demand
TAO_OPERATION_INTERCEPTORS_ARGLIST_SH, // private member list list for request info
@@ -126,17 +115,13 @@ public:
// in client/server header
TAO_OPERATION_ARGLIST_PROXY_IMPL_XS,
- TAO_OPERATION_ARGLIST_BASE_PROXY_IMPL_CH,
TAO_OPERATION_ARGLIST_IH, // ... for implementation header
TAO_OPERATION_ARGLIST_IS, // ... for implementation header
TAO_OPERATION_ARGLIST_COLLOCATED_SH, // ... for collocated server
- // before sending over the wire
- TAO_OPERATION_ARG_PRE_INVOKE_CS, // preprocessing of arguments
// variable to do_static_call
TAO_OPERATION_ARG_INVOKE_CS, // passing argument variable to do_static_call
// after do_static_call
- TAO_OPERATION_ARG_POST_INVOKE_CS, // processing of arg after do_static_call
TAO_OPERATION_ARG_DECL_SS, // argument decl in skeleton
TAO_OPERATION_ARG_DEMARSHAL_SS, // and argument variables to the
TAO_OPERATION_ARG_MARSHAL_SS,
@@ -144,19 +129,14 @@ public:
TAO_OPERATION_ARG_UPCALL_SS, // variables to upcall
TAO_OPERATION_COLLOCATED_ARG_UPCALL_SS, // variables to upcall for
// collocated op
- TAO_OPERATION_INTERCEPTORS_ARG_INFO_CS, // Interceptor args
TAO_OPERATION_INTERCEPTORS_ARG_INFO_SS, // Interceptor args
TAO_OBV_OPERATION_ARGLIST_CH, // parameter list in obv op signature
TAO_OBV_OPERATION_ARGLIST_CS, // used only for AMH exceptions
// ... for client header
- TAO_OBV_OPERATION_ARGLIST_OBV_CH, // ... for OBV_ class
TAO_OBV_OPERATION_ARGLIST_SH, // ... for server header
TAO_OBV_OPERATION_ARGLIST_IH, // ... for implementation header
TAO_OBV_OPERATION_ARGLIST_IS, // ... for implementation header
- TAO_OBV_OPERATION_ARGLIST_OTHERS, // ... for all other cases
- TAO_OBV_OPERATION_ARGLIST_IMPL_CH, // for implementations, e.g. exception holders
- TAO_OBV_OPERATION_ARGLIST_IMPL_CS, // for implementations, e.g. exception holders
// AMI next generation states
TAO_AMI_INTERFACE_CH,
@@ -400,6 +380,18 @@ private:
void gen_standard_include (TAO_OutStream *stream,
const char *included_file);
+ // Utility methods for generating ORB file includes.
+ void gen_stub_hdr_includes (void);
+ void gen_stub_src_includes (void);
+ void gen_skel_src_includes (void);
+ void gen_seq_file_includes (void);
+ void gen_any_file_includes (void);
+ void gen_var_file_includes (void);
+ void gen_arg_file_includes (TAO_OutStream *stream);
+ void gen_cond_file_include (ACE_UINT64 mask,
+ const char *filepath,
+ TAO_OutStream *stream);
+
private:
TAO_OutStream *client_header_;
// Client header stream.
diff --git a/TAO/TAO_IDL/be_include/be_decl.h b/TAO/TAO_IDL/be_include/be_decl.h
index 217226d0147..14ff73abc96 100644
--- a/TAO/TAO_IDL/be_include/be_decl.h
+++ b/TAO/TAO_IDL/be_include/be_decl.h
@@ -26,6 +26,7 @@
class be_scope;
class be_visitor;
+class be_type;
class be_decl : public virtual AST_Decl
{
@@ -86,6 +87,31 @@ public:
idl_bool cli_inline_cdr_op_gen (void);
idl_bool cli_inline_cdr_decl_gen (void);
+ idl_bool cli_traits_gen (void);
+ idl_bool cli_arg_traits_gen (void);
+ idl_bool srv_arg_traits_gen (void);
+ idl_bool srv_sarg_traits_gen (void);
+ idl_bool cli_tmpl_class_gen (void);
+ idl_bool cli_pragma_inst_gen (void);
+ idl_bool cli_inarg_tmpl_class_gen (void);
+ idl_bool cli_inarg_pragma_inst_gen (void);
+ idl_bool cli_inoutarg_tmpl_class_gen (void);
+ idl_bool cli_inoutarg_pragma_inst_gen (void);
+ idl_bool cli_outarg_tmpl_class_gen (void);
+ idl_bool cli_outarg_pragma_inst_gen (void);
+ idl_bool cli_retarg_tmpl_class_gen (void);
+ idl_bool cli_retarg_pragma_inst_gen (void);
+ idl_bool srv_tmpl_class_gen (void);
+ idl_bool srv_pragma_inst_gen (void);
+ idl_bool srv_inarg_tmpl_class_gen (void);
+ idl_bool srv_inarg_pragma_inst_gen (void);
+ idl_bool srv_inoutarg_tmpl_class_gen (void);
+ idl_bool srv_inoutarg_pragma_inst_gen (void);
+ idl_bool srv_outarg_tmpl_class_gen (void);
+ idl_bool srv_outarg_pragma_inst_gen (void);
+ idl_bool srv_retarg_tmpl_class_gen (void);
+ idl_bool srv_retarg_pragma_inst_gen (void);
+
// Set the flag indicating that code generation is done.
void cli_hdr_gen (idl_bool);
void cli_stub_gen (idl_bool);
@@ -102,10 +128,39 @@ public:
void cli_inline_cdr_op_gen (idl_bool);
void cli_inline_cdr_decl_gen (idl_bool);
+ void cli_traits_gen (idl_bool);
+ void cli_arg_traits_gen (idl_bool);
+ void srv_arg_traits_gen (idl_bool);
+ void srv_sarg_traits_gen (idl_bool);
+ void cli_tmpl_class_gen (idl_bool);
+ void cli_pragma_inst_gen (idl_bool);
+ void cli_inarg_tmpl_class_gen (idl_bool);
+ void cli_inarg_pragma_inst_gen (idl_bool);
+ void cli_inoutarg_tmpl_class_gen (idl_bool);
+ void cli_inoutarg_pragma_inst_gen (idl_bool);
+ void cli_outarg_tmpl_class_gen (idl_bool);
+ void cli_outarg_pragma_inst_gen (idl_bool);
+ void cli_retarg_tmpl_class_gen (idl_bool);
+ void cli_retarg_pragma_inst_gen (idl_bool);
+ void srv_tmpl_class_gen (idl_bool);
+ void srv_pragma_inst_gen (idl_bool);
+ void srv_inarg_tmpl_class_gen (idl_bool);
+ void srv_inarg_pragma_inst_gen (idl_bool);
+ void srv_inoutarg_tmpl_class_gen (idl_bool);
+ void srv_inoutarg_pragma_inst_gen (idl_bool);
+ void srv_outarg_tmpl_class_gen (idl_bool);
+ void srv_outarg_pragma_inst_gen (idl_bool);
+ void srv_retarg_tmpl_class_gen (idl_bool);
+ void srv_retarg_pragma_inst_gen (idl_bool);
+
// Narrowing
DEF_NARROW_METHODS1 (be_decl, AST_Decl);
DEF_NARROW_FROM_DECL (be_decl);
+protected:
+ // Called by be_operation (for the return type) and be_argument.
+ void set_arg_seen_bit (be_type *);
+
private:
// Variables that indicate if the code generation for that node is already
// been done. This way we avoid regenerating same code.
@@ -124,6 +179,31 @@ private:
idl_bool cli_inline_cdr_op_gen_;
idl_bool cli_inline_cdr_decl_gen_;
+ idl_bool cli_traits_gen_;
+ idl_bool cli_arg_traits_gen_;
+ idl_bool srv_arg_traits_gen_;
+ idl_bool srv_sarg_traits_gen_;
+ idl_bool cli_tmpl_class_gen_;
+ idl_bool cli_pragma_inst_gen_;
+ idl_bool cli_inarg_tmpl_class_gen_;
+ idl_bool cli_inarg_pragma_inst_gen_;
+ idl_bool cli_inoutarg_tmpl_class_gen_;
+ idl_bool cli_inoutarg_pragma_inst_gen_;
+ idl_bool cli_outarg_tmpl_class_gen_;
+ idl_bool cli_outarg_pragma_inst_gen_;
+ idl_bool cli_retarg_tmpl_class_gen_;
+ idl_bool cli_retarg_pragma_inst_gen_;
+ idl_bool srv_tmpl_class_gen_;
+ idl_bool srv_pragma_inst_gen_;
+ idl_bool srv_inarg_tmpl_class_gen_;
+ idl_bool srv_inarg_pragma_inst_gen_;
+ idl_bool srv_inoutarg_tmpl_class_gen_;
+ idl_bool srv_inoutarg_pragma_inst_gen_;
+ idl_bool srv_outarg_tmpl_class_gen_;
+ idl_bool srv_outarg_pragma_inst_gen_;
+ idl_bool srv_retarg_tmpl_class_gen_;
+ idl_bool srv_retarg_pragma_inst_gen_;
+
};
#endif // if !defined
diff --git a/TAO/TAO_IDL/be_include/be_global.h b/TAO/TAO_IDL/be_include/be_global.h
index 6401a0bdff8..24b18e004e3 100644
--- a/TAO/TAO_IDL/be_include/be_global.h
+++ b/TAO/TAO_IDL/be_include/be_global.h
@@ -368,6 +368,12 @@ public:
idl_bool gen_inline_constants (void) const;
// Return the flag.
+ void gen_tmplinst (idl_bool value);
+ // Set the flag.
+
+ idl_bool gen_tmplinst (void) const;
+ // Return the flag.
+
void lookup_strategy (LOOKUP_STRATEGY s);
// Set the lookup strategy.
@@ -513,6 +519,10 @@ private:
// Flag to indicate whether we are using an inline form of constant
// generation that pleases the C++ compiler better on some platforms.
+ idl_bool gen_tmplinst_;
+ // Flag to indicate if we are generating explicit template instantiations
+ // or not.
+
LOOKUP_STRATEGY lookup_strategy_;
// The enumerated value indicating the lookup strategy.
diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h
index a4a385f9575..4d9b98f84a0 100644
--- a/TAO/TAO_IDL/be_include/be_interface.h
+++ b/TAO/TAO_IDL/be_include/be_interface.h
@@ -32,10 +32,10 @@
class TAO_OutStream;
class TAO_IDL_Inheritance_Hierarchy_Worker;
class be_visitor;
-
-// Forward declaration of the strategy
class be_interface_strategy;
+class UTL_ExceptList;
+
class be_interface : public virtual AST_Interface,
public virtual be_scope,
public virtual be_type
@@ -84,7 +84,7 @@ public:
virtual const char *full_name (void);
// Return the stringified full name.
- const char *flat_name (void) const;
+ virtual const char *flat_name (void);
// Return the flattened full scoped name.
virtual const char *repoID (void) const;
@@ -170,9 +170,6 @@ public:
virtual void gen_def_ctors (TAO_OutStream* os);
// Call the default constructors of all the base classes.
- virtual void gen_copy_ctors (TAO_OutStream* os);
- // Call the copy constructors of all the base classes.
-
virtual void gen_stub_ctor (TAO_OutStream* os);
// Generated the global hooks used for non-defined forward
// declared interfaces, and the contructor from stub object.
@@ -259,7 +256,19 @@ public:
be_interface *,
TAO_OutStream *os);
// Helper method passed to the template method to generate code for the
- // skeletons in the inline file.
+ // skeletons in the header and inline files.
+
+ static int gen_colloc_op_decl_helper (be_interface *derived,
+ be_interface *ancestor,
+ TAO_OutStream *os);
+ // Helper method passed to the template method to generate code for the
+ // collocated functions in the header file.
+
+ static int gen_colloc_op_defn_helper (be_interface *derived,
+ be_interface *ancestor,
+ TAO_OutStream *os);
+ // Helper method passed to the template method to generate code for the
+ // collocated functions in the source file.
static int copy_ctor_helper (be_interface *,
be_interface *,
@@ -280,32 +289,30 @@ public:
// Helper method to generate a call to the default
// constructors of all the base classes.
- static int gen_copy_ctors_helper (be_interface *node,
- be_interface *base,
- TAO_OutStream *os);
-
- // Helper method to generate a call to the copy
- // constructors of all the base classes.
-
static int gen_abstract_init_helper (be_interface *node,
be_interface *base,
TAO_OutStream *os);
// Helper method to initialize the obj_ member of each generated abstract
// base class.
- int gen_operation_table (void);
- // Generate the operation table including entries for inherited interfaces.
-
int gen_operation_table (const char *flat_name,
const char *skeleton_class_name);
- // Like the previous version, but receive the class "flat name" and
- // skeleton names as arguments. Useful in the generation of closely
- // related classes, such as the AMH skeleton.
+ // Generate the operation table including entries for inherited interfaces.
- int gen_optable_entries (const char *full_skeleton_name,
+ int gen_optable_entries (be_interface *derived_interface,
+ const char *full_skeleton_name,
TAO_OutStream *os);
// generate the operation table entries.
+ static void gen_collocated_skel_body (be_interface *derived,
+ be_interface *ancestor,
+ AST_Decl *d,
+ const char *prefix,
+ idl_bool direct,
+ UTL_ExceptList *list,
+ TAO_OutStream *os);
+ // Common code called from gen_colloc_op_defn_helper().
+
void analyze_parentage (void);
// Compute whether or not we have both abstract and concrete parents,
// and make a list of the abstract parents, if any.
@@ -369,6 +376,11 @@ private:
void gen_linear_search_instance (const char *flat_name);
// Create an instance of the linear search optable.
+ static void gen_throw_spec (UTL_ExceptList *list,
+ TAO_OutStream *os);
+ // Helper for the helpers that generate collocated static
+ // base class methods.
+
protected:
int var_out_seq_decls_gen_;
// Have these been done already?
diff --git a/TAO/TAO_IDL/be_include/be_interface_fwd.h b/TAO/TAO_IDL/be_include/be_interface_fwd.h
index 34822128d63..6c2d84f7614 100644
--- a/TAO/TAO_IDL/be_include/be_interface_fwd.h
+++ b/TAO/TAO_IDL/be_include/be_interface_fwd.h
@@ -48,6 +48,12 @@ public:
virtual ~be_interface_fwd (void);
// Destructor.
+ virtual void seq_elem_tmplinst (idl_bool val);
+ virtual void seen_in_sequence (idl_bool val);
+ virtual void seen_in_operation (idl_bool val);
+ // Mutator overrides for be_type members. If we have been
+ // defined, we want the full definition to be set as well.
+
virtual void destroy (void);
// Cleanup function.
diff --git a/TAO/TAO_IDL/be_include/be_sequence.h b/TAO/TAO_IDL/be_include/be_sequence.h
index 77d73afe16b..c2efe37bb3d 100644
--- a/TAO/TAO_IDL/be_include/be_sequence.h
+++ b/TAO/TAO_IDL/be_include/be_sequence.h
@@ -49,7 +49,6 @@ public:
MNG_STRING,
MNG_WSTRING,
MNG_OBJREF,
- MNG_ABSTRACT,
MNG_VALUE,
MNG_PSEUDO
};
@@ -64,7 +63,7 @@ public:
idl_bool abstract);
// Constructor.
- virtual int create_name (be_typedef *node = 0);
+ virtual int create_name (be_typedef *node);
// Create a name for ourselves. If we are typedefed, then we get the name of
// the typedef node, else we generate a name for ourselves.
@@ -91,6 +90,7 @@ public:
// Report the instance name for instantiation.
int gen_base_class_name (TAO_OutStream *os,
+ char * linebreak,
AST_Decl *elem_scope);
// Common code for generating the name and parameters of our
// template sequence base class.
@@ -99,9 +99,8 @@ public:
void field_node (be_field *node);
// Accessors for the member.
-protected:
virtual char *gen_name (void);
- // Helper to create_name.
+ // Helper to create_name, also used by the traits visitor.
private:
const char *smart_fwd_helper_name (AST_Decl *elem_scope,
diff --git a/TAO/TAO_IDL/be_include/be_type.h b/TAO/TAO_IDL/be_include/be_type.h
index 3eb97f4bdfc..17dd1ee6984 100644
--- a/TAO/TAO_IDL/be_include/be_type.h
+++ b/TAO/TAO_IDL/be_include/be_type.h
@@ -63,11 +63,16 @@ public:
void gen_common_varout (TAO_OutStream *os);
// Generate _var and _out typedefs for structs and unions.
- void gen_common_tmplinst (TAO_OutStream *os);
- // Generate explicit template instantiations for the above.
+ idl_bool seq_elem_tmplinst (void) const;
+ virtual void seq_elem_tmplinst (idl_bool val);
+ // Accessors for the member.
idl_bool seen_in_sequence (void) const;
- void seen_in_sequence (idl_bool val);
+ virtual void seen_in_sequence (idl_bool val);
+ // Accessors for the member.
+
+ idl_bool seen_in_operation (void) const;
+ virtual void seen_in_operation (idl_bool val);
// Accessors for the member.
virtual AST_Decl::NodeType base_node_type (void) const;
@@ -99,8 +104,15 @@ protected:
idl_bool common_varout_gen_;
// Have we generated our _var and _out class typedefs yet?
+ idl_bool seq_elem_tmplinst_;
+ // Have we generated an explicit template instantiation for a sequence
+ // with this element?
+
idl_bool seen_in_sequence_;
- // Has this type been used as a sequence element?
+ // Has this declaration been used as a sequence element?
+
+ idl_bool seen_in_operation_;
+ // Has this declaration been used as a return type or parameter?
};
#endif // end of if !defined
diff --git a/TAO/TAO_IDL/be_include/be_typedef.h b/TAO/TAO_IDL/be_include/be_typedef.h
index dd9de21206e..94af3381b5f 100644
--- a/TAO/TAO_IDL/be_include/be_typedef.h
+++ b/TAO/TAO_IDL/be_include/be_typedef.h
@@ -40,6 +40,12 @@ public:
idl_bool a);
// Constructor.
+ virtual void seq_elem_tmplinst (idl_bool val);
+ virtual void seen_in_sequence (idl_bool val);
+ virtual void seen_in_operation (idl_bool val);
+ // Mutator overrides for be_type members. If we have been
+ // defined, we want the underlying type to be set as well.
+
be_type *primitive_base_type (void);
// Return the most primitive base type by traversing the chain of typedefed
// base types.
diff --git a/TAO/TAO_IDL/be_include/be_valuetype.h b/TAO/TAO_IDL/be_include/be_valuetype.h
index 3b7b7da7bc1..6168847259c 100644
--- a/TAO/TAO_IDL/be_include/be_valuetype.h
+++ b/TAO/TAO_IDL/be_include/be_valuetype.h
@@ -149,6 +149,40 @@ public:
const char *fwd_helper_name (void) const;
// Accessor to the member.
+ // There are three possible situations.
+ // (1) If there is no initializers but at least one operation.
+ // In this case we don't need to bother about factory.
+ //
+ // (2) There are no (operations or initializers) (i.e. only state
+ // members) then we need a concrete type-specific factory
+ // class whose create_for_unmarshal creates OBV_ class.
+ //
+ // (3) There is at least one operation and at least one initializer.
+ // In this case we need to generate abstract factory class.
+ //
+ // Here I reflect these situations.
+ enum FactoryStyle
+ {
+ FS_UNKNOWN,
+ FS_NO_FACTORY,
+ FS_CONCRETE_FACTORY,
+ FS_ABSTRACT_FACTORY
+ };
+
+ FactoryStyle determine_factory_style (void);
+ // Determine what kind of factory needed.
+
+ idl_bool have_operation (void);
+ // Recurse down the inheritance tree to determine
+ // if valuetype has at least one operation/attribute.
+
+ static idl_bool have_supported_op (be_interface *node);
+ // Check if VT supports an interface with at least 1 operation.
+
+ virtual idl_bool will_have_factory (void);
+ // Use the above enum and methods to determine this after the
+ // node's scope is visited but before code generation.
+
private:
char *full_obv_skel_name_;
diff --git a/TAO/TAO_IDL/be_include/be_visitor_arg_traits.h b/TAO/TAO_IDL/be_include/be_visitor_arg_traits.h
new file mode 100644
index 00000000000..6205e32b4a1
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_arg_traits.h
@@ -0,0 +1,76 @@
+//=============================================================================
+/**
+* @file be_visitor_arg_traits.h
+*
+* $Id$
+*
+* This visitor generates template specializations for argument traits classes.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+#ifndef TAO_BE_VISITOR_ARG_TRAITS_H
+#define TAO_BE_VISITOR_ARG_TRAITS_H
+
+#include "be_visitor_scope.h"
+
+/**
+ * @class be_visitor_arg_traits
+ *
+ * @brief Generates specialized template argument traits declarations.
+ */
+class be_visitor_arg_traits : public be_visitor_scope
+{
+public:
+ be_visitor_arg_traits (char *S,
+ be_visitor_context *ctx);
+
+ virtual ~be_visitor_arg_traits (void);
+
+ virtual int visit_root (be_root *node);
+
+ virtual int visit_module (be_module *node);
+
+ virtual int visit_array (be_array *node);
+
+ virtual int visit_enum (be_enum *node);
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+
+ virtual int visit_interface (be_interface *node);
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+
+ virtual int visit_valuetype (be_valuetype *node);
+
+ virtual int visit_valuetype_fwd (be_valuetype_fwd *node);
+
+ virtual int visit_eventtype (be_eventtype *node);
+
+ virtual int visit_eventtype_fwd (be_eventtype_fwd *node);
+
+ virtual int visit_sequence (be_sequence *node);
+
+ virtual int visit_string (be_string *node);
+
+ virtual int visit_structure (be_structure *node);
+
+ virtual int visit_field (be_field *node);
+
+ virtual int visit_union (be_union *node);
+
+ virtual int visit_union_branch (be_union_branch *node);
+
+ virtual int visit_typedef (be_typedef *node);
+
+private:
+ idl_bool generated (be_decl *node) const;
+ void generated (be_decl *node,
+ idl_bool val);
+
+private:
+ char *S_;
+};
+
+
+#endif // TAO_BE_VISITOR_ARG_TRAITS_H
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument.h b/TAO/TAO_IDL/be_include/be_visitor_argument.h
index e9ce10fd640..f18351d0870 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_argument.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument.h
@@ -15,7 +15,7 @@
// interpretive styled stubs and skeletons
//
// = AUTHOR
-// Aniruddha Gokhale and Carlos O' Ryan
+// Aniruddha Gokhale and Carlos O'Ryan
//
// ============================================================================
@@ -31,11 +31,7 @@
#include "be_visitor_argument/upcall_ss.h"
#include "be_visitor_argument/post_upcall_ss.h"
#include "be_visitor_argument/marshal_ss.h"
-#include "be_visitor_argument/pre_invoke_cs.h"
#include "be_visitor_argument/invoke_cs.h"
-#include "be_visitor_argument/post_invoke_cs.h"
-#include "be_visitor_argument/request_info_ch.h"
-#include "be_visitor_argument/request_info_cs.h"
#include "be_visitor_argument/paramlist.h"
#include "be_visitor_argument/request_info_sh.h"
#include "be_visitor_argument/request_info_ss.h"
diff --git a/TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h b/TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h
index 9e19def9a8e..1a6509e579b 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h
@@ -43,11 +43,6 @@ public:
virtual int visit_array (be_array *node);
// visit the array node
-
-private:
- void gen_tmplinst (be_array *node,
- char *fname);
- // Generated the explicit template instantiations.
};
#endif /* _BE_VISITOR_ARRAY_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface.h b/TAO/TAO_IDL/be_include/be_visitor_interface.h
index a5a8bc64c0d..59520abd9a1 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_interface.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_interface.h
@@ -44,22 +44,13 @@
#include "be_visitor_interface/ami_interface_ch.h"
#include "be_visitor_interface/smart_proxy_ch.h"
#include "be_visitor_interface/smart_proxy_cs.h"
-#include "be_visitor_interface/interceptors_cs.h"
#include "be_visitor_interface/interceptors_ss.h"
// Proxy Brokers
-#include "be_visitor_interface/proxy_brokers_ch.h"
-#include "be_visitor_interface/base_proxy_broker_ch.h"
-#include "be_visitor_interface/remote_proxy_broker_ch.h"
-#include "be_visitor_interface/remote_proxy_broker_cs.h"
#include "be_visitor_interface/strategized_proxy_broker_sh.h"
#include "be_visitor_interface/strategized_proxy_broker_ss.h"
// Proxy Impls
-#include "be_visitor_interface/proxy_impls_ch.h"
-#include "be_visitor_interface/base_proxy_impl_ch.h"
-#include "be_visitor_interface/remote_proxy_impl_ch.h"
-#include "be_visitor_interface/remote_proxy_impl_cs.h"
#include "be_visitor_interface/thru_poa_proxy_impl_sh.h"
#include "be_visitor_interface/thru_poa_proxy_impl_ss.h"
#include "be_visitor_interface/direct_proxy_impl_sh.h"
diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_ss.h
index a426d570d17..a4c02776fd2 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_ss.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_interface/strategized_proxy_broker_ss.h
@@ -21,7 +21,8 @@
#ifndef BE_STRATEGIZED_PROXY_BROKER_SS_H_
#define BE_STRATEGIZED_PROXY_BROKER_SS_H_
-class be_visitor_interface_strategized_proxy_broker_ss : public be_visitor_interface
+class be_visitor_interface_strategized_proxy_broker_ss
+ : public be_visitor_interface
{
// = TITLE
// Generates the implementation for the base proxy
@@ -39,6 +40,13 @@ public:
virtual int visit_component (be_component *node);
// This will just call the above method - no need to create
// another set of visitors for this stuff.
+
+private:
+ void gen_thru_poa_operations (be_interface *node,
+ TAO_OutStream *os);
+
+ void gen_direct_operations (be_interface *node,
+ TAO_OutStream *os);
};
#endif /* BE_STRATEGIZED_PROXY_BROKER_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation.h b/TAO/TAO_IDL/be_include/be_visitor_operation.h
index 1af94470e3a..afd8113fc9d 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_operation.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation.h
@@ -37,8 +37,6 @@
#include "be_visitor_operation/arglist.h"
#include "be_visitor_operation/rettype.h"
#include "be_visitor_operation/rettype_is.h"
-#include "be_visitor_operation/rettype_vardecl_cs.h"
-#include "be_visitor_operation/rettype_post_invoke_cs.h"
#include "be_visitor_operation/rettype_return_cs.h"
#include "be_visitor_operation/exceptlist_cs.h"
#include "be_visitor_operation/argument.h"
@@ -48,7 +46,6 @@
#include "be_visitor_operation/rettype_assign_ss.h"
#include "be_visitor_operation/rettype_post_upcall_ss.h"
#include "be_visitor_operation/rettype_marshal_ss.h"
-#include "be_visitor_operation/rettype_pre_invoke_cs.h"
#include "be_visitor_operation/ami_ch.h"
#include "be_visitor_operation/ami_cs.h"
#include "be_visitor_operation/ami_handler_reply_stub_operation_ch.h"
@@ -56,17 +53,13 @@
#include "be_visitor_operation/ami_exception_holder_operation_cs.h"
#include "be_visitor_operation/smart_proxy_ch.h"
#include "be_visitor_operation/smart_proxy_cs.h"
-#include "be_visitor_operation/interceptors_ch.h"
-#include "be_visitor_operation/interceptors_cs.h"
#include "be_visitor_operation/interceptors_arglist.h"
#include "be_visitor_operation/interceptors_sh.h"
#include "be_visitor_operation/interceptors_ss.h"
#include "be_visitor_operation/interceptors_exceptlist.h"
#include "be_visitor_operation/interceptors_info_rettype.h"
#include "be_visitor_operation/interceptors_result.h"
-#include "be_visitor_operation/base_proxy_impl_ch.h"
#include "be_visitor_operation/proxy_impl_xh.h"
-#include "be_visitor_operation/remote_proxy_impl_cs.h"
#include "be_visitor_operation/thru_poa_proxy_impl_ss.h"
#include "be_visitor_operation/direct_proxy_impl_ss.h"
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation.h
index 9aca9919467..3b8adc71492 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_operation/operation.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/operation.h
@@ -92,10 +92,6 @@ public:
int gen_pre_stub_info (be_operation *node);
// generate any info before the actual code for the stub is generated
- virtual int gen_marshal_and_invoke (be_operation *node,
- be_type *bt);
- // generate code that marshals the arguments and transmits them
-
virtual int gen_raise_interceptor_exception (
be_type *return_type,
const char *exception_name,
@@ -104,13 +100,13 @@ public:
// helper that generates code for raising an exception within
// interceptor's try block
- virtual const char *compute_operation_name (be_operation *node);
- // compute the operation_remote_proxy_impl name.
- // Notice that this operation_remote_proxy_impl
- // _does_ include the double quote.
+protected:
+ void gen_stub_body_arglist (be_operation *node,
+ TAO_OutStream *os,
+ idl_bool ami = I_FALSE);
-private:
- char *operation_name_;
+ void gen_arg_template_param_name (AST_Type *bt,
+ TAO_OutStream *os);
};
#endif /* _BE_VISITOR_OPERATION_OPERATION_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h
index 0dad13c8147..2ef99dc4160 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h
@@ -64,13 +64,6 @@ public:
// = helper
virtual int post_process (be_decl *);
// stuff to output after every member of the scope is handled
-
- virtual const char *compute_operation_name (be_operation *node);
- // Compute the servant operation name to invoke. Notice that
- // this method _does_ include the double-quotes.
-
-private:
- char *operation_name_;
};
#endif /* _BE_VISITOR_OPERATION_OPERATION_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/proxy_impl_xh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/proxy_impl_xh.h
index 3bd938dd891..7c2716e32c3 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_operation/proxy_impl_xh.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/proxy_impl_xh.h
@@ -20,7 +20,7 @@
#define _BE_VISITOR_OPERATION_PROXY_IMPL_XH_H_
-class be_visitor_operation_proxy_impl_xh : public be_visitor_scope
+class be_visitor_operation_proxy_impl_xh : public be_visitor_operation
{
//
// = TITLE
diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root.h b/TAO/TAO_IDL/be_include/be_visitor_root/root.h
index 1f2e14895dc..5aac7552b29 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_root/root.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_root/root.h
@@ -103,6 +103,12 @@ public:
virtual int init (void);
// will be overridden by derived classes that set the appropriate context
+
+private:
+ int gen_explicit_tmplinst (be_root *,
+ TAO_OutStream *);
+ // Generate guarded explicit template instantiations, for those platforms
+ // that require them.
};
#endif /* _BE_VISITOR_ROOT_ROOT_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h
index 88edf76b097..7bc66db48d5 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h
@@ -44,21 +44,6 @@ public:
virtual int visit_sequence (be_sequence *node);
// visit sequence node
-
- int gen_varout_tmplinst (be_sequence *node,
- be_type *bt);
- // Generate explicit template instantiations for our _var
- // and _out classes.
-
- void gen_managed_type_tmplinst (be_sequence *node,
- be_type *bt);
- // Generate explicit instantiation for our element type, if
- // it is a managed type and if Any operator generation is suppressed.
-
-private:
-
- // Generate explicit instantiation for the base class type.
- int gen_base_class_tmplinst (be_sequence *node);
};
#endif /* _BE_VISITOR_SEQUENCE_SEQUENCE_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_tmplinst.h b/TAO/TAO_IDL/be_include/be_visitor_tmplinst.h
new file mode 100644
index 00000000000..3bb34e26849
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_tmplinst.h
@@ -0,0 +1,34 @@
+/* -*- c++ -*- */
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_visitor_tmplinst.h
+//
+// = DESCRIPTION
+// Visitors that generate explicit template instantiations.
+//
+// = AUTHOR
+// Jeff Parsons
+//
+// ============================================================================
+
+#ifndef TAO_BE_VISITOR_TMPLINST_H
+#define TAO_BE_VISITOR_TMPLINST_H
+
+#include "ast_argument.h"
+#include "idl_defines.h"
+
+#include "be_visitor_scope.h"
+#include "be_visitor_tmplinst/tmplinst.h"
+#include "be_visitor_tmplinst/arg_tmplinst.h"
+#include "be_visitor_tmplinst/tmplinst_cs.h"
+#include "be_visitor_tmplinst/tmplinst_ss.h"
+
+#endif // TAO_BE_VISITOR_TMPLINST_H
diff --git a/TAO/TAO_IDL/be_include/be_visitor_tmplinst/arg_tmplinst.h b/TAO/TAO_IDL/be_include/be_visitor_tmplinst/arg_tmplinst.h
new file mode 100644
index 00000000000..c5a3d348efd
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_tmplinst/arg_tmplinst.h
@@ -0,0 +1,111 @@
+//=============================================================================
+/**
+* @file arg_tmplinst.h
+*
+* $Id$
+*arg_tmplinst
+* This visitor generates explicit template instantiations, guarded so they
+* are seen only by compilers whose platforms require explicit template
+* instantiation, for the individual argument template helper classes.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+#ifndef TAO_BE_VISITOR_TMPLINST_ARG_TMPLINST_H
+#define TAO_BE_VISITOR_TMPLINST_ARG_TMPLINST_H
+
+/**
+ * @class be_visitor_arg_tmplinst
+ *
+ * @brief Generates explicit template instantiations for arg helper classes.
+ */
+class be_visitor_arg_tmplinst : public be_visitor_decl
+{
+public:
+ be_visitor_arg_tmplinst (be_visitor_context *ctx,
+ be_visitor_tmplinst::Mode mode,
+ char * prefix,
+ char * suffix,
+ char * linebreak,
+ const char * S);
+
+ virtual ~be_visitor_arg_tmplinst (void);
+
+ virtual int visit_array (be_array *node);
+
+ virtual int visit_enum (be_enum *node);
+
+ virtual int visit_interface (be_interface *node);
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+
+ virtual int visit_valuetype (be_valuetype *node);
+
+ virtual int visit_valuetype_fwd (be_valuetype_fwd *node);
+
+ virtual int visit_eventtype (be_eventtype *node);
+
+ virtual int visit_eventtype_fwd (be_eventtype_fwd *node);
+
+ virtual int visit_sequence (be_sequence *node);
+
+ virtual int visit_string (be_string *node);
+
+ virtual int visit_structure (be_structure *node);
+
+ virtual int visit_structure_fwd (be_structure_fwd *node);
+
+ virtual int visit_field (be_field *node);
+
+ virtual int visit_union (be_union *node);
+
+ virtual int visit_union_fwd (be_union_fwd *node);
+
+ virtual int visit_union_branch (be_union_branch *node);
+
+ virtual int visit_typedef (be_typedef *node);
+
+ // Accdessors for the member.
+ void direction (void);
+ void direction (AST_Argument::Direction dir);
+
+private:
+ // Set/get the appropriate flag on the node we are traversing,
+ // to make sure we don't generate something twice.
+ idl_bool this_mode_and_dir_generated (be_decl *node) const;
+ void this_mode_and_dir_generated (be_decl *node,
+ idl_bool val);
+
+ // Generate the direction prefix to the arg class name.
+ void gen_direction (TAO_OutStream *os);
+
+private:
+ enum Direction
+ {
+ _tao_IN,
+ _tao_INOUT,
+ _tao_OUT,
+ _tao_RET
+ };
+
+ // Generating 'template class' or '#pragma instantiate'.
+ be_visitor_tmplinst::Mode mode_;
+
+ // Contains the prefix string itself.
+ char * prefix_;
+
+ // ';' or empty string
+ char * suffix_;
+
+ // backslash for '#pragma instantiate' mode, empty otherwise.
+ char * linebreak_;
+
+ // Value of the above enum we are holding.
+ Direction dir_;
+
+ // Contains 'S' to insert in skel side arg class name, or empty.
+ const char * S_;
+};
+
+
+#endif // TAO_BE_VISITOR_TMPLINST_ARG_TMPLINST_H
diff --git a/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst.h b/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst.h
new file mode 100644
index 00000000000..dfbc74a72a7
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst.h
@@ -0,0 +1,71 @@
+//=============================================================================
+/**
+* @file tmplinst.h
+*
+* $Id$
+*
+* Base class for the concrete visitors that generate explicit template
+* instantiations for the stub side and skeleton side.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+#ifndef TAO_BE_VISITOR_TMPLINST_TMPLINST_H
+#define TAO_BE_VISITOR_TMPLINST_TMPLINST_H
+
+/**
+ * @class be_visitor_tmplinst
+ *
+ * @brief Base class for stub generation and skeleton generation visitors.
+ */
+class be_visitor_tmplinst : public be_visitor_scope
+{
+public:
+ enum Mode
+ {
+ TMPL_CLASS,
+ PRAGMA_INST
+ };
+
+ be_visitor_tmplinst (be_visitor_context *ctx);
+
+ virtual ~be_visitor_tmplinst (void);
+
+ virtual int visit_root (be_root *node);
+
+ virtual int visit_module (be_module *node);
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+
+ virtual int visit_valuetype_fwd (be_valuetype_fwd *node);
+
+ virtual int visit_eventtype (be_eventtype *node);
+
+ virtual int visit_eventtype_fwd (be_eventtype_fwd *node);
+
+ virtual int visit_structure_fwd (be_structure_fwd *node);
+
+ virtual int visit_field (be_field *node);
+
+ virtual int visit_union_fwd (be_union_fwd *node);
+
+ virtual int visit_union_branch (be_union_branch *node);
+
+ virtual int visit_typedef (be_typedef *node);
+
+ void switch_mode (void);
+
+protected:
+ virtual idl_bool this_mode_generated (be_decl *node) const = 0;
+ virtual void this_mode_generated (be_decl *node,
+ idl_bool val) = 0;
+
+protected:
+ Mode mode_;
+ char * prefix_;
+ char * suffix_;
+ char * linebreak_;
+};
+
+
+#endif // TAO_BE_VISITOR_TMPLINST_TMPLINST_H
diff --git a/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_cs.h b/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_cs.h
new file mode 100644
index 00000000000..81adad03158
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_cs.h
@@ -0,0 +1,77 @@
+//=============================================================================
+/**
+* @file be_visitor_tmplinst_cs.h
+*
+* $Id$
+*
+* This visitor generates explicit template instantiations, guarded so they
+* are seen only by compilers whose platforms require explicit template
+* instantiation.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+#ifndef TAO_BE_VISITOR_TMPLINST_CS_H
+#define TAO_BE_VISITOR_TMPLINST_CS_H
+
+#include "tmplinst.h"
+
+/**
+ * @class be_visitor_tmplinst_cs
+ *
+ * @brief Generates explicit template instantiations for the stub.
+ */
+class be_visitor_tmplinst_cs : public be_visitor_tmplinst
+{
+public:
+ be_visitor_tmplinst_cs (be_visitor_context *ctx);
+
+ virtual ~be_visitor_tmplinst_cs (void);
+
+ virtual int visit_array (be_array *node);
+
+ virtual int visit_attribute (be_attribute *node);
+
+ virtual int visit_enum (be_enum *node);
+
+ virtual int visit_exception (be_exception *node);
+
+ virtual int visit_interface (be_interface *node);
+
+ virtual int visit_valuetype (be_valuetype *node);
+
+ virtual int visit_operation (be_operation *node);
+
+ virtual int visit_sequence (be_sequence *node);
+
+ virtual int visit_string (be_string *node);
+
+ virtual int visit_structure (be_structure *node);
+
+ virtual int visit_union (be_union *node);
+
+protected:
+ virtual idl_bool this_mode_generated (be_decl *node) const;
+ virtual void this_mode_generated (be_decl *node,
+ idl_bool val);
+
+ // Generate explicit template instantiations for our _var
+ // and _out classes.
+ int gen_varout_tmplinst (be_sequence *node,
+ be_type *bt);
+
+ // Generate explicit instantiation for our element type, if
+ // it is a managed type.
+ void gen_managed_type_tmplinst (be_sequence *node,
+ be_type *bt);
+
+ // Generate explicit instantiation for the base class type.
+ int gen_base_class_tmplinst (be_sequence *node);
+
+ void gen_common_tmplinst (be_type *node,
+ TAO_OutStream *os);
+ // Generate explicit template instantiations for structs and unions.
+};
+
+
+#endif // TAO_BE_VISITOR_TMPLINST_CS_H
diff --git a/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_ss.h b/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_ss.h
new file mode 100644
index 00000000000..c5e8aa00fb2
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_tmplinst/tmplinst_ss.h
@@ -0,0 +1,58 @@
+//=============================================================================
+/**
+* @file be_visitor_tmplinst_ss.h
+*
+* $Id$
+*
+* This visitor generates explicit template instantiations, guarded so they
+* are seen only by compilers whose platforms require explicit template
+* instantiation.
+*
+* @author Jeff Parsons <j.parsons@vanderbilt.edu>
+*/
+//=============================================================================
+#ifndef TAO_BE_VISITOR_TMPLINST_SS_H
+#define TAO_BE_VISITOR_TMPLINST_SS_H
+
+#include "tmplinst.h"
+
+/**
+ * @class be_visitor_tmplinst_ss
+ *
+ * @brief Generates explicit template instantiations for the skelton.
+ */
+class be_visitor_tmplinst_ss : public be_visitor_tmplinst
+{
+public:
+ be_visitor_tmplinst_ss (be_visitor_context *ctx);
+
+ virtual ~be_visitor_tmplinst_ss (void);
+
+ virtual int visit_array (be_array *node);
+
+ virtual int visit_attribute (be_attribute *node);
+
+ virtual int visit_enum (be_enum *node);
+
+ virtual int visit_interface (be_interface *node);
+
+ virtual int visit_valuetype (be_valuetype *node);
+
+ virtual int visit_operation (be_operation *node);
+
+ virtual int visit_sequence (be_sequence *node);
+
+ virtual int visit_string (be_string *node);
+
+ virtual int visit_structure (be_structure *node);
+
+ virtual int visit_union (be_union *node);
+
+protected:
+ virtual idl_bool this_mode_generated (be_decl *node) const;
+ virtual void this_mode_generated (be_decl *node,
+ idl_bool val);
+};
+
+
+#endif // TAO_BE_VISITOR_TMPLINST_SS_H
diff --git a/TAO/TAO_IDL/be_include/be_visitor_traits.h b/TAO/TAO_IDL/be_include/be_visitor_traits.h
index 201ea06dc8e..ed7890c9105 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_traits.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_traits.h
@@ -11,7 +11,6 @@
* @author Jeff Parsons <j.parsons@vanderbilt.edu>
*/
//=============================================================================
-
#ifndef TAO_BE_VISITOR_TRAITS_H
#define TAO_BE_VISITOR_TRAITS_H
@@ -33,10 +32,6 @@ public:
virtual int visit_module (be_module *node);
- virtual int visit_array (be_array *node);
-
- virtual int visit_enum (be_enum *node);
-
virtual int visit_interface (be_interface *node);
virtual int visit_interface_fwd (be_interface_fwd *node);
@@ -49,18 +44,6 @@ public:
virtual int visit_eventtype_fwd (be_eventtype_fwd *node);
- virtual int visit_sequence (be_sequence *node);
-
- virtual int visit_string (be_string *node);
-
- virtual int visit_structure (be_structure *node);
-
- virtual int visit_field (be_field *node);
-
- virtual int visit_union (be_union *node);
-
- virtual int visit_union_branch (be_union_branch *node);
-
virtual int visit_typedef (be_typedef *node);
};
diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h b/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h
index dec7844d50d..9be60bea4a8 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h
@@ -56,6 +56,9 @@ public:
virtual int visit_interface (be_interface *node);
// visit an interface;
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface;
+
virtual int visit_predefined_type (be_predefined_type *node);
// visit predefined type node
diff --git a/TAO/TAO_IDL/be_include/be_visitor_valuetype/arglist.h b/TAO/TAO_IDL/be_include/be_visitor_valuetype/arglist.h
index 2b8cf372e91..229f6a2252c 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_valuetype/arglist.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_valuetype/arglist.h
@@ -41,7 +41,7 @@ public:
~be_visitor_obv_operation_arglist (void);
// destructor
- int is_amh_exception_holder (be_operation *node);
+ idl_bool is_amh_exception_holder (be_operation *node);
// special arglist generation for amh_exceptionholders
int visit_operation (be_operation *node);
diff --git a/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype.h b/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype.h
index bbe6bf9433a..b2c404bfd1b 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype.h
@@ -102,45 +102,16 @@ public:
// generate the _init implementation
protected:
-
- // There are three possible situations.
- // (1) If there is no initializers but at least one operation.
- // In this case we don't need to bother about factory.
- //
- // (2) There are no (operations or initializers) (i.e. only state
- // members) then we need a concrete type-specific factory
- // class whose create_for_unmarshal creates OBV_ class.
- //
- // (3) There is at least one operation and at least one initializer.
- // In this case we need to generate abstract factory class.
- //
- // Here I reflect these situations.
-
- enum FactoryStyle
- {
- FS_UNKNOWN,
- FS_NO_FACTORY,
- FS_CONCRETE_FACTORY,
- FS_ABSTRACT_FACTORY
- };
-
- static FactoryStyle determine_factory_style (be_valuetype* node);
- // determine what kind of factory needed
-
- static idl_bool have_operation(be_valuetype* node);
- // recurse down the inheritance tree to determine
- // if valuetype has at least one operation/attribute.
-
- static idl_bool have_supported_op (be_interface* node);
- // check if VT supports an interface with at least 1 operation
-
- static idl_bool obv_need_ref_counter(be_valuetype* node);
+ static idl_bool obv_need_ref_counter (be_valuetype *node);
// check is VT needs a RefCounter mix-in in OBV_ class
// suppose that we are deciding for this node
- static idl_bool obv_have_ref_counter(be_valuetype* node);
+ static idl_bool obv_have_ref_counter (be_valuetype *node);
// recurse down the inheritance tree to see
// if node or one of its OBV_ base class already has RefCounter
+
+ idl_bool is_amh_exception_holder (be_valuetype *node);
+ // Predicate common to _ch and _cs visitors.
};
#endif /* _BE_VALUETYPE_VALUETYPE_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype_cs.h b/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype_cs.h
index cccb79ee115..f2378bf0e7b 100644
--- a/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype_cs.h
+++ b/TAO/TAO_IDL/be_include/be_visitor_valuetype/valuetype_cs.h
@@ -38,11 +38,6 @@ public:
~be_visitor_valuetype_cs (void);
- virtual int is_amh_exception_holder (be_valuetype *node);
- // Test if valuetype is an AMH ExceptionHolder. Special generation
- // of marshalling/unmarshalling tests if it is an AMH
- // ExceptionHolder
-
virtual int visit_valuetype (be_valuetype *node);
// Set the right context and make a visitor.l
diff --git a/TAO/TAO_IDL/driver/drv_args.cpp b/TAO/TAO_IDL/driver/drv_args.cpp
index 16bee98ce9b..1cdfbdbca14 100644
--- a/TAO/TAO_IDL/driver/drv_args.cpp
+++ b/TAO/TAO_IDL/driver/drv_args.cpp
@@ -312,8 +312,8 @@ DRV_usage (void)
));
ACE_DEBUG ((
LM_DEBUG,
- ACE_TEXT (" -Gv\t\t\tenable OBV (Valuetype) support")
- ACE_TEXT (" (disabled by default)\n")
+ ACE_TEXT (" -GT\t\t\tgenerate explicit template instantiations")
+ ACE_TEXT (" (off by default)\n")
));
ACE_DEBUG ((
LM_DEBUG,
@@ -1302,6 +1302,10 @@ DRV_parse_args (long ac, char **av)
}
}
}
+ else if (av[i][2] == 'T')
+ {
+ be_global->gen_tmplinst (I_TRUE);
+ }
else
{
ACE_ERROR ((
diff --git a/TAO/TAO_IDL/driver/drv_preproc.cpp b/TAO/TAO_IDL/driver/drv_preproc.cpp
index 5943767774b..c2d4e74ef2a 100644
--- a/TAO/TAO_IDL/driver/drv_preproc.cpp
+++ b/TAO/TAO_IDL/driver/drv_preproc.cpp
@@ -356,6 +356,7 @@ DRV_cpp_init (void)
#endif /* TAO_IDL_INCLUDE_DIR */
DRV_cpp_putarg (option);
+ idl_global->add_include_path (ACE::strnew (option + 2));
}
}
diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy
index 911837592d5..9fa582bf7c0 100644
--- a/TAO/TAO_IDL/fe/idl.yy
+++ b/TAO/TAO_IDL/fe/idl.yy
@@ -749,6 +749,17 @@ value_concrete_decl :
// '}'
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeQsSeen);
+ AST_ValueType *vt =
+ AST_ValueType::narrow_from_scope (
+ idl_global->scopes ().top_non_null ()
+ );
+
+ if (vt->will_have_factory ())
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuefactory_seen_);
+ }
+
/*
* Done with this value type - pop it off the scopes stack
*/
@@ -1195,6 +1206,21 @@ interface_forward :
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ($1,
0);
+
+ if (ACE_OS_String::strcmp ($1->get_string (),
+ "TypeCode") == 0
+ && !idl_global->in_main_file ())
+ {
+ AST_PredefinedType *pdt =
+ idl_global->gen ()->create_predefined_type (
+ AST_PredefinedType::PT_pseudo,
+ &n
+ );
+ (void) s->add_predefined_type (pdt);
+ s->add_to_scope (pdt);
+ break;
+ }
+
AST_InterfaceFwd *f = 0;
idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceForwardSeen);
diff --git a/TAO/TAO_IDL/fe/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp
index 0b8ae45ff1e..75f0fae52b1 100644
--- a/TAO/TAO_IDL/fe/y.tab.cpp
+++ b/TAO/TAO_IDL/fe/y.tab.cpp
@@ -2596,6 +2596,17 @@ tao_yyreduce:
// '}'
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeQsSeen);
+ AST_ValueType *vt =
+ AST_ValueType::narrow_from_scope (
+ idl_global->scopes ().top_non_null ()
+ );
+
+ if (vt->will_have_factory ())
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuefactory_seen_);
+ }
+
/*
* Done with this value type - pop it off the scopes stack
*/
@@ -3107,6 +3118,21 @@ tao_yyreduce:
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n (tao_yyvsp[0].idval,
0);
+
+ if (ACE_OS_String::strcmp (tao_yyvsp[0].idval->get_string (),
+ "TypeCode") == 0
+ && !idl_global->in_main_file ())
+ {
+ AST_PredefinedType *pdt =
+ idl_global->gen ()->create_predefined_type (
+ AST_PredefinedType::PT_pseudo,
+ &n
+ );
+ (void) s->add_predefined_type (pdt);
+ s->add_to_scope (pdt);
+ break;
+ }
+
AST_InterfaceFwd *f = 0;
idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceForwardSeen);
diff --git a/TAO/TAO_IDL/include/ast_decl.h b/TAO/TAO_IDL/include/ast_decl.h
index 1f77b7bb8eb..2835c8bb42a 100644
--- a/TAO/TAO_IDL/include/ast_decl.h
+++ b/TAO/TAO_IDL/include/ast_decl.h
@@ -201,7 +201,7 @@ public:
virtual const char *full_name (void);
// Return the stringified full name.
- const char *flat_name (void);
+ virtual const char *flat_name (void);
// Return the flattened full scoped name.
const char *repoID (void);
@@ -284,6 +284,9 @@ protected:
char *repoID_;
// Repository ID.
+ char *flat_name_;
+ // Flattened fully scoped name.
+
int contains_wstring_;
// If we are a scope, do we contain a wstring at some level?
@@ -344,9 +347,6 @@ private:
idl_bool typeid_set_;
// Has our repo id been set by a typeId declaration?
- char *flat_name_;
- // Flattened fully scoped name.
-
UTL_ScopedName *last_referenced_as_;
// Temporary holder of the most recent way we were reference.
// The top level component of this is added to pd_name_referenced.
diff --git a/TAO/TAO_IDL/include/ast_module.h b/TAO/TAO_IDL/include/ast_module.h
index 7293a527971..69d53f9df6e 100644
--- a/TAO/TAO_IDL/include/ast_module.h
+++ b/TAO/TAO_IDL/include/ast_module.h
@@ -108,10 +108,6 @@ public:
int be_add_interface (AST_Interface *i,
AST_Interface *ix = 0);
- // The first time 'module CORBA' is seen, add predefined types
- // TypeCode, TCKind and ValueBase to its scope.
- void add_CORBA_members (void);
-
// Add decls from previous opening of this module to the
// 'previous' set of this module, along with the argument's
// own 'previous' set.
diff --git a/TAO/TAO_IDL/include/ast_valuetype.h b/TAO/TAO_IDL/include/ast_valuetype.h
index 2b46d534488..4090d3d453d 100644
--- a/TAO/TAO_IDL/include/ast_valuetype.h
+++ b/TAO/TAO_IDL/include/ast_valuetype.h
@@ -40,6 +40,9 @@ public:
idl_bool truncatable (void) const;
idl_bool custom (void) const;
+ virtual idl_bool will_have_factory (void);
+ // Called from y.tab.cpp to set the factory decl seen bit.
+
// Cleanup function.
virtual void destroy (void);
diff --git a/TAO/TAO_IDL/include/idl_global.h b/TAO/TAO_IDL/include/idl_global.h
index ac486cab596..b0f1be376bd 100644
--- a/TAO/TAO_IDL/include/idl_global.h
+++ b/TAO/TAO_IDL/include/idl_global.h
@@ -271,9 +271,46 @@ public:
{
dsf (void);
+ ACE_UINT64 interface_seen_;
ACE_UINT64 valuetype_seen_;
ACE_UINT64 abstract_iface_seen_;
+ ACE_UINT64 local_iface_seen_;
+ ACE_UINT64 non_local_iface_seen_;
+ ACE_UINT64 fwd_iface_seen_;
+ ACE_UINT64 fwd_valuetype_seen_;
+ ACE_UINT64 basic_type_seen_;
+ ACE_UINT64 ambiguous_type_seen_;
+ ACE_UINT64 enum_seen_;
+ ACE_UINT64 string_seen_;
+ ACE_UINT64 array_seen_;
+ ACE_UINT64 aggregate_seen_;
+ ACE_UINT64 exception_seen_;
+ ACE_UINT64 operation_seen_;
+ ACE_UINT64 non_local_op_seen_;
+ ACE_UINT64 typecode_seen_;
+ ACE_UINT64 any_seen_;
+ ACE_UINT64 parametermode_seen_;
+ ACE_UINT64 base_object_seen_;
+ ACE_UINT64 valuefactory_seen_;
+
+ ACE_UINT64 seq_seen_;
ACE_UINT64 iface_seq_seen_;
+ ACE_UINT64 vt_seq_seen_;
+ ACE_UINT64 array_seq_seen_;
+ ACE_UINT64 pseudo_seq_seen_;
+ ACE_UINT64 string_seq_seen_;
+ ACE_UINT64 wstring_seq_seen_;
+ ACE_UINT64 octet_seq_seen_;
+
+ ACE_UINT64 basic_arg_seen_;
+ ACE_UINT64 bd_string_arg_seen_;
+ ACE_UINT64 fixed_array_arg_seen_;
+ ACE_UINT64 fixed_size_arg_seen_;
+ ACE_UINT64 object_arg_seen_;
+ ACE_UINT64 special_basic_arg_seen_;
+ ACE_UINT64 ub_string_arg_seen_;
+ ACE_UINT64 var_array_arg_seen_;
+ ACE_UINT64 var_size_arg_seen_;
} decls_seen_masks;
// Constructor
diff --git a/TAO/TAO_IDL/include/utl_idlist.h b/TAO/TAO_IDL/include/utl_idlist.h
index 5b82ae238c1..3c44a2b8b67 100644
--- a/TAO/TAO_IDL/include/utl_idlist.h
+++ b/TAO/TAO_IDL/include/utl_idlist.h
@@ -77,12 +77,7 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
#include "utl_list.h"
#include "ace/OS.h"
-
-// Needed to recognize ACE_OSTREAM_TYPE, and for BCB it's
-// not included in ace/OS.h, so we include it here.
-#if defined (__BORLANDC__)
-# include "ace/streams.h"
-#endif
+#include "ace/streams.h"
class Identifier;
diff --git a/TAO/TAO_IDL/include/utl_indenter.h b/TAO/TAO_IDL/include/utl_indenter.h
index 2b59f95ff1f..e43d5d65e27 100644
--- a/TAO/TAO_IDL/include/utl_indenter.h
+++ b/TAO/TAO_IDL/include/utl_indenter.h
@@ -68,12 +68,7 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
#define _UTL_INDENTER_UTL_INDENTER_HH
#include "ace/OS.h"
-
-// Needed to recognize ACE_OSTREAM_TYPE, and for BCB it's
-// not included in ace/OS.h, so we include it here.
-#if defined (__BORLANDC__)
-# include "ace/streams.h"
-#endif
+#include "ace/streams.h"
// Utility class for control of indentation level during dumping
diff --git a/TAO/TAO_IDL/include/utl_scope.h b/TAO/TAO_IDL/include/utl_scope.h
index d2eb0b1b982..94aaaa07d54 100644
--- a/TAO/TAO_IDL/include/utl_scope.h
+++ b/TAO/TAO_IDL/include/utl_scope.h
@@ -241,6 +241,8 @@ public:
// Look up one of the pseudo-object types.
AST_Decl *lookup_pseudo (Identifier *);
+ virtual AST_Decl *look_in_previous (Identifier *);
+
// How many entries are used?
unsigned long nmembers (void);
diff --git a/TAO/TAO_IDL/include/utl_strlist.h b/TAO/TAO_IDL/include/utl_strlist.h
index 75450839ad1..deb2c8cee01 100644
--- a/TAO/TAO_IDL/include/utl_strlist.h
+++ b/TAO/TAO_IDL/include/utl_strlist.h
@@ -69,12 +69,7 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
#include "utl_list.h"
#include "ace/OS.h"
-
-// Needed to recognize ACE_OSTREAM_TYPE, and for BCB it's
-// not included in ace/OS.h, so we include it here.
-#if defined (__BORLANDC__)
-# include "ace/streams.h"
-#endif
+#include "ace/streams.h"
class UTL_String;
diff --git a/TAO/TAO_IDL/util/utl_global.cpp b/TAO/TAO_IDL/util/utl_global.cpp
index b0e1204ae3d..e2f3e37668c 100644
--- a/TAO/TAO_IDL/util/utl_global.cpp
+++ b/TAO/TAO_IDL/util/utl_global.cpp
@@ -85,9 +85,46 @@ ACE_RCSID (util,
static long seen_once[INCREMENT] = {0};
IDL_GlobalData::dsf::dsf (void)
- : valuetype_seen_ (0),
+ : interface_seen_ (0),
+ valuetype_seen_ (0),
abstract_iface_seen_ (0),
- iface_seq_seen_ (0)
+ local_iface_seen_ (0),
+ non_local_iface_seen_ (0),
+ fwd_iface_seen_ (0),
+ fwd_valuetype_seen_ (0),
+ basic_type_seen_ (0),
+ ambiguous_type_seen_ (0),
+ enum_seen_ (0),
+ string_seen_ (0),
+ array_seen_ (0),
+ aggregate_seen_ (0),
+ exception_seen_ (0),
+ operation_seen_ (0),
+ non_local_op_seen_ (0),
+ typecode_seen_ (0),
+ any_seen_ (0),
+ parametermode_seen_ (0),
+ base_object_seen_ (0),
+ valuefactory_seen_ (0),
+
+ seq_seen_ (0),
+ iface_seq_seen_ (0),
+ vt_seq_seen_ (0),
+ array_seq_seen_ (0),
+ pseudo_seq_seen_ (0),
+ string_seq_seen_ (0),
+ wstring_seq_seen_ (0),
+ octet_seq_seen_ (0),
+
+ basic_arg_seen_ (0),
+ bd_string_arg_seen_ (0),
+ fixed_array_arg_seen_ (0),
+ fixed_size_arg_seen_ (0),
+ object_arg_seen_ (0),
+ special_basic_arg_seen_ (0),
+ ub_string_arg_seen_ (0),
+ var_array_arg_seen_ (0),
+ var_size_arg_seen_ (0)
{}
IDL_GlobalData::IDL_GlobalData (void)
@@ -194,9 +231,46 @@ IDL_GlobalData::IDL_GlobalData (void)
const ACE_UINT64 cursor = 1U;
- ACE_SET_BITS (this->decls_seen_masks.valuetype_seen_, cursor);
- ACE_SET_BITS (this->decls_seen_masks.abstract_iface_seen_, cursor << 1);
- ACE_SET_BITS (this->decls_seen_masks.iface_seq_seen_, cursor << 2);
+ ACE_SET_BITS (this->decls_seen_masks.interface_seen_, cursor);
+ ACE_SET_BITS (this->decls_seen_masks.valuetype_seen_, cursor << 1);
+ ACE_SET_BITS (this->decls_seen_masks.abstract_iface_seen_, cursor << 2);
+ ACE_SET_BITS (this->decls_seen_masks.local_iface_seen_, cursor << 3);
+ ACE_SET_BITS (this->decls_seen_masks.non_local_iface_seen_, cursor << 4);
+ ACE_SET_BITS (this->decls_seen_masks.fwd_iface_seen_, cursor << 5);
+ ACE_SET_BITS (this->decls_seen_masks.fwd_valuetype_seen_, cursor << 6);
+ ACE_SET_BITS (this->decls_seen_masks.basic_type_seen_, cursor << 7);
+ ACE_SET_BITS (this->decls_seen_masks.ambiguous_type_seen_, cursor << 8);
+ ACE_SET_BITS (this->decls_seen_masks.enum_seen_, cursor << 9);
+ ACE_SET_BITS (this->decls_seen_masks.string_seen_, cursor << 10);
+ ACE_SET_BITS (this->decls_seen_masks.array_seen_, cursor << 11);
+ ACE_SET_BITS (this->decls_seen_masks.aggregate_seen_, cursor << 12);
+ ACE_SET_BITS (this->decls_seen_masks.exception_seen_, cursor << 13);
+ ACE_SET_BITS (this->decls_seen_masks.operation_seen_, cursor << 14);
+ ACE_SET_BITS (this->decls_seen_masks.non_local_op_seen_, cursor << 15);
+ ACE_SET_BITS (this->decls_seen_masks.typecode_seen_, cursor << 16);
+ ACE_SET_BITS (this->decls_seen_masks.any_seen_, cursor << 17);
+ ACE_SET_BITS (this->decls_seen_masks.parametermode_seen_, cursor << 18);
+ ACE_SET_BITS (this->decls_seen_masks.base_object_seen_, cursor << 19);
+ ACE_SET_BITS (this->decls_seen_masks.valuefactory_seen_, cursor << 20);
+
+ ACE_SET_BITS (this->decls_seen_masks.seq_seen_, cursor << 21);
+ ACE_SET_BITS (this->decls_seen_masks.iface_seq_seen_, cursor << 22);
+ ACE_SET_BITS (this->decls_seen_masks.vt_seq_seen_, cursor << 23);
+ ACE_SET_BITS (this->decls_seen_masks.array_seq_seen_, cursor << 24);
+ ACE_SET_BITS (this->decls_seen_masks.pseudo_seq_seen_, cursor << 25);
+ ACE_SET_BITS (this->decls_seen_masks.string_seq_seen_, cursor << 26);
+ ACE_SET_BITS (this->decls_seen_masks.wstring_seq_seen_, cursor << 27);
+ ACE_SET_BITS (this->decls_seen_masks.octet_seq_seen_, cursor << 28);
+
+ ACE_SET_BITS (this->decls_seen_masks.basic_arg_seen_, cursor << 32);
+ ACE_SET_BITS (this->decls_seen_masks.bd_string_arg_seen_, cursor << 33);
+ ACE_SET_BITS (this->decls_seen_masks.fixed_array_arg_seen_, cursor << 34);
+ ACE_SET_BITS (this->decls_seen_masks.fixed_size_arg_seen_, cursor << 35);
+ ACE_SET_BITS (this->decls_seen_masks.object_arg_seen_, cursor << 36);
+ ACE_SET_BITS (this->decls_seen_masks.special_basic_arg_seen_, cursor << 37);
+ ACE_SET_BITS (this->decls_seen_masks.ub_string_arg_seen_, cursor << 38);
+ ACE_SET_BITS (this->decls_seen_masks.var_array_arg_seen_, cursor << 39);
+ ACE_SET_BITS (this->decls_seen_masks.var_size_arg_seen_, cursor << 40);
}
IDL_GlobalData::~IDL_GlobalData (void)
@@ -1077,7 +1151,8 @@ IDL_GlobalData::update_prefix (char *filename)
// file, so we push a blank prefix on the stack, which may
// possibly be changed later.
if (this->seen_include_file_before (filename) != 0
- || ACE_OS::strcmp (filename, main_filename) == 0)
+ || ACE_OS::strcmp (filename, main_filename) == 0
+ || ACE_OS::strcmp (filename, this->pd_filename->get_string ()) != 0)
{
char *trash = 0;
this->pragma_prefixes_.pop (trash);
diff --git a/TAO/TAO_IDL/util/utl_scope.cpp b/TAO/TAO_IDL/util/utl_scope.cpp
index 396838aaa4e..7c933b7ef01 100644
--- a/TAO/TAO_IDL/util/utl_scope.cpp
+++ b/TAO/TAO_IDL/util/utl_scope.cpp
@@ -1196,9 +1196,20 @@ UTL_Scope::lookup_pseudo (Identifier *e)
AST_Decl *d = 0;
UTL_ScopeActiveIterator *i = 0;
char *name_string = e->get_string ();
+ idl_bool tc_lookup = I_FALSE;
+ idl_bool obj_lookup = I_FALSE;
+ idl_bool vb_lookup = I_FALSE;
- if (ACE_OS::strcmp (name_string, "Object") == 0
- || ACE_OS::strcmp (name_string, "ValueBase") == 0)
+ if (ACE_OS_String::strcasecmp (name_string, "Object") == 0)
+ {
+ obj_lookup = I_TRUE;
+ }
+ else if (ACE_OS_String::strcasecmp (name_string, "ValueBase") == 0)
+ {
+ vb_lookup = I_TRUE;
+ }
+
+ if (obj_lookup || vb_lookup)
{
// Iterate over the global scope.
ACE_NEW_RETURN (i,
@@ -1207,8 +1218,8 @@ UTL_Scope::lookup_pseudo (Identifier *e)
UTL_Scope::IK_decls),
0);
}
- else if (ACE_OS::strcmp (name_string, "TypeCode") == 0
- || ACE_OS::strcmp (name_string, "TCKind") == 0)
+ else if (ACE_OS_String::strcasecmp (name_string, "TypeCode") == 0
+ || ACE_OS_String::strcasecmp (name_string, "TCKind") == 0)
{
// Occurrences of "TypeCode" or TCKind in IDL files must be
// scoped with "CORBA" so we know we'll be in the CORBA module
@@ -1218,20 +1229,63 @@ UTL_Scope::lookup_pseudo (Identifier *e)
UTL_ScopeActiveIterator (this,
UTL_Scope::IK_decls),
0);
+ tc_lookup = I_TRUE;
}
else
{
return 0;
}
- for (;!i->is_done (); i->next ())
+ AST_Decl *scope = ScopeAsDecl (this);
+ char *scope_name = scope->local_name ()->get_string ();
+
+ for (; !i->is_done (); i->next ())
{
d = i->item ();
item_name = d->local_name ();
- if (e->compare (item_name))
+ if (e->case_compare (item_name))
+ {
+ delete i;
+
+ // These have to be located here because we are just looking
+ // up a scoped name - skip for imported nodes.
+ if (idl_global->in_main_file ())
+ {
+ if (tc_lookup)
+ {
+ // Generation of #includes for Typecode.h
+ // checks this bit, so we set it for TCKind as well.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.typecode_seen_);
+ }
+ else if (obj_lookup)
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.base_object_seen_);
+ }
+ else if (vb_lookup)
+ {
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.valuetype_seen_);
+ }
+ }
+
+ return d;
+ }
+ }
+
+ if (tc_lookup)
+ {
+ d = this->look_in_previous (e);
+
+ if (d != 0)
{
+ // Generation of #includes for Typecode.h
+ // checks this bit, so we set it for TCKind as well.
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.typecode_seen_);
delete i;
return d;
}
@@ -1241,6 +1295,12 @@ UTL_Scope::lookup_pseudo (Identifier *e)
return 0;
}
+AST_Decl *
+UTL_Scope::look_in_previous (Identifier *)
+{
+ return 0;
+}
+
// Lookup the node for a primitive (built in) type.
AST_Decl *
UTL_Scope::lookup_primitive_type (AST_Expression::ExprType et)
@@ -1338,6 +1398,25 @@ UTL_Scope::lookup_primitive_type (AST_Expression::ExprType et)
if (t->pt () == pdt)
{
+ if (idl_global->in_main_file ())
+ {
+ switch (pdt)
+ {
+ case AST_PredefinedType::PT_any:
+ ACE_SET_BITS (idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.any_seen_);
+ break;
+ case AST_PredefinedType::PT_object:
+ ACE_SET_BITS (
+ idl_global->decls_seen_info_,
+ idl_global->decls_seen_masks.base_object_seen_
+ );
+ break;
+ default:
+ break;
+ }
+ }
+
return t;
}
}