diff options
Diffstat (limited to 'TAO/TAO_IDL')
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; } } |