summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ACE/ChangeLog1358
-rw-r--r--ACE/NEWS13
-rw-r--r--ACE/PROBLEM-REPORT-FORM3
-rw-r--r--ACE/THANKS8
-rw-r--r--ACE/VERSION2
-rw-r--r--ACE/ace/Asynch_Acceptor.cpp2
-rw-r--r--ACE/ace/Atomic_Op.h2
-rw-r--r--ACE/ace/Atomic_Op.inl28
-rw-r--r--ACE/ace/Atomic_Op_T.cpp2
-rw-r--r--ACE/ace/Basic_Types.h7
-rw-r--r--ACE/ace/Condition_Recursive_Thread_Mutex.cpp2
-rw-r--r--ACE/ace/Condition_Recursive_Thread_Mutex.h2
-rw-r--r--ACE/ace/Configuration.cpp20
-rw-r--r--ACE/ace/Configuration.h8
-rw-r--r--ACE/ace/Countdown_Time.cpp25
-rw-r--r--ACE/ace/Countdown_Time.h11
-rw-r--r--ACE/ace/Countdown_Time.inl20
-rw-r--r--ACE/ace/DLL_Manager.cpp2
-rw-r--r--ACE/ace/Default_Constants.h25
-rw-r--r--ACE/ace/Dev_Poll_Reactor.cpp464
-rw-r--r--ACE/ace/Dev_Poll_Reactor.h326
-rw-r--r--ACE/ace/Dev_Poll_Reactor.inl78
-rw-r--r--ACE/ace/ETCL/ETCL_Interpreter.cpp6
-rw-r--r--ACE/ace/ETCL/ETCL_l.cpp4
-rw-r--r--ACE/ace/ETCL/ETCL_l.cpp.diff114
-rw-r--r--ACE/ace/Event_Handler.cpp2
-rw-r--r--ACE/ace/Future.cpp6
-rw-r--r--ACE/ace/Guard_T.cpp2
-rw-r--r--ACE/ace/High_Res_Timer.cpp8
-rw-r--r--ACE/ace/High_Res_Timer.inl2
-rw-r--r--ACE/ace/Lib_Find.cpp8
-rw-r--r--ACE/ace/Log_Record.h2
-rw-r--r--ACE/ace/Makefile.am3
-rw-r--r--ACE/ace/Message_Queue_Vx.h2
-rw-r--r--ACE/ace/Module.h6
-rw-r--r--ACE/ace/Monitor_Admin.h8
-rw-r--r--ACE/ace/Monitor_Control/Auto_Update_Starter.h4
-rw-r--r--ACE/ace/Notification_Queue.cpp3
-rw-r--r--ACE/ace/OS_NS_Thread.cpp125
-rw-r--r--ACE/ace/OS_NS_Thread.h2
-rw-r--r--ACE/ace/OS_NS_Thread.inl57
-rw-r--r--ACE/ace/OS_NS_dirent.cpp3
-rw-r--r--ACE/ace/OS_NS_dlfcn.inl2
-rw-r--r--ACE/ace/OS_NS_errno.h2
-rw-r--r--ACE/ace/OS_NS_stdio.h21
-rw-r--r--ACE/ace/OS_NS_stdio.inl17
-rw-r--r--ACE/ace/OS_NS_stdlib.cpp12
-rw-r--r--ACE/ace/OS_NS_string.cpp2
-rw-r--r--ACE/ace/OS_NS_stropts.cpp2
-rw-r--r--ACE/ace/OS_NS_stropts.h2
-rw-r--r--ACE/ace/OS_NS_sys_mman.inl30
-rw-r--r--ACE/ace/OS_NS_sys_socket.cpp2
-rw-r--r--ACE/ace/OS_NS_sys_socket.h6
-rw-r--r--ACE/ace/OS_NS_sys_socket.inl2
-rw-r--r--ACE/ace/OS_NS_sys_utsname.cpp2
-rw-r--r--ACE/ace/OS_NS_unistd.cpp29
-rw-r--r--ACE/ace/OS_NS_unistd.inl10
-rw-r--r--ACE/ace/OS_Thread_Adapter.h1
-rw-r--r--ACE/ace/OS_main.cpp19
-rw-r--r--ACE/ace/OS_main.h5
-rw-r--r--ACE/ace/Pagefile_Memory_Pool.cpp4
-rw-r--r--ACE/ace/Pagefile_Memory_Pool.h3
-rw-r--r--ACE/ace/Process.cpp34
-rw-r--r--ACE/ace/QoS/qos.mpc2
-rw-r--r--ACE/ace/Recursive_Thread_Mutex.cpp2
-rw-r--r--ACE/ace/Registry.cpp8
-rw-r--r--ACE/ace/Registry.h5
-rw-r--r--ACE/ace/SOCK_Dgram.cpp2
-rw-r--r--ACE/ace/SOCK_Dgram_Mcast.cpp2
-rw-r--r--ACE/ace/SSL/SSL_Context.cpp4
-rw-r--r--ACE/ace/SString.cpp206
-rw-r--r--ACE/ace/SString.h208
-rw-r--r--ACE/ace/SV_Semaphore_Simple.cpp8
-rw-r--r--ACE/ace/Select_Reactor_Base.cpp9
-rw-r--r--ACE/ace/Select_Reactor_T.cpp7
-rw-r--r--ACE/ace/Service_Object.cpp6
-rw-r--r--ACE/ace/Sig_Handler.cpp3
-rw-r--r--ACE/ace/Sock_Connect.cpp42
-rw-r--r--ACE/ace/TP_Reactor.cpp4
-rw-r--r--ACE/ace/Thread_Manager.cpp4
-rw-r--r--ACE/ace/Thread_Manager.inl4
-rw-r--r--ACE/ace/Token.h4
-rw-r--r--ACE/ace/Tokenizer_T.cpp230
-rw-r--r--ACE/ace/Tokenizer_T.h241
-rw-r--r--ACE/ace/UUID.cpp310
-rw-r--r--ACE/ace/UUID.h108
-rw-r--r--ACE/ace/UUID.inl126
-rw-r--r--ACE/ace/WFMO_Reactor.cpp1
-rw-r--r--ACE/ace/ace.mpc1
-rw-r--r--ACE/ace/ace_for_tao.mpc1
-rw-r--r--ACE/ace/config-WinCE.h72
-rw-r--r--ACE/ace/config-aix-5.x.h83
-rw-r--r--ACE/ace/config-cygwin32.h18
-rw-r--r--ACE/ace/config-hpux-11.00.h1
-rw-r--r--ACE/ace/config-linux-common.h3
-rw-r--r--ACE/ace/config-vxworks6.6.h5
-rw-r--r--ACE/ace/config-win32-borland.h13
-rw-r--r--ACE/ace/config-win32-cegcc.h22
-rw-r--r--ACE/ace/config-win32-common.h4
-rw-r--r--ACE/ace/config-win32-mingw.h2
-rw-r--r--ACE/ace/config-win32-msvc-10.h7
-rw-r--r--ACE/ace/config-win32-msvc-9.h11
-rw-r--r--ACE/ace/os_include/netinet/os_in.h2
-rw-r--r--ACE/ace/os_include/os_errno.h270
-rw-r--r--ACE/ace/os_include/os_sched.h4
-rw-r--r--ACE/ace/os_include/os_unistd.h2
-rw-r--r--ACE/ace/os_include/sys/os_time.h4
-rw-r--r--ACE/apps/JAWS/server/HTTP_Handler.cpp2
-rw-r--r--ACE/apps/JAWS/server/HTTP_Handler.h2
-rw-r--r--ACE/apps/JAWS/server/HTTP_Response.cpp2
-rw-r--r--ACE/apps/JAWS/server/HTTP_Server.cpp2
-rw-r--r--ACE/apps/JAWS/server/JAWS_Concurrency.h2
-rw-r--r--ACE/apps/JAWS/server/JAWS_IO.cpp (renamed from ACE/apps/JAWS/server/IO.cpp)2
-rw-r--r--ACE/apps/JAWS/server/JAWS_IO.h (renamed from ACE/apps/JAWS/server/IO.h)2
-rw-r--r--ACE/apps/JAWS/server/Makefile.am4
-rw-r--r--ACE/apps/JAWS/server/server.mpc2
-rw-r--r--ACE/apps/JAWS2/JAWS/Concurrency.h2
-rw-r--r--ACE/apps/JAWS2/JAWS/IO_Acceptor.h2
-rw-r--r--ACE/apps/JAWS2/JAWS/IO_Handler.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/Jaws_IO.cpp (renamed from ACE/apps/JAWS2/JAWS/IO.cpp)2
-rw-r--r--ACE/apps/JAWS2/JAWS/Jaws_IO.h (renamed from ACE/apps/JAWS2/JAWS/IO.h)2
-rw-r--r--ACE/apps/JAWS2/JAWS/Makefile.am4
-rw-r--r--ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/Server.cpp2
-rw-r--r--ACE/apps/JAWS2/JAWS/jaws2.mpc2
-rw-r--r--ACE/apps/JAWS3/jaws3/Asynch_IO.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/Asynch_IO.h2
-rw-r--r--ACE/apps/JAWS3/jaws3/Asynch_IO_Helpers.h2
-rw-r--r--ACE/apps/JAWS3/jaws3/Jaws_IO.cpp (renamed from ACE/apps/JAWS3/jaws3/IO.cpp)2
-rw-r--r--ACE/apps/JAWS3/jaws3/Jaws_IO.h (renamed from ACE/apps/JAWS3/jaws3/IO.h)0
-rw-r--r--ACE/apps/JAWS3/jaws3/Makefile.am4
-rw-r--r--ACE/apps/JAWS3/jaws3/Reactive_IO.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/Reactive_IO.h2
-rw-r--r--ACE/apps/JAWS3/jaws3/Reactive_IO_Helpers.h2
-rw-r--r--ACE/apps/JAWS3/jaws3/Synch_IO.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/Synch_IO.h2
-rw-r--r--ACE/apps/JAWS3/jaws3/Templates.cpp2
-rw-r--r--ACE/apps/JAWS3/jaws3/jaws3.mpc4
-rw-r--r--ACE/apps/drwho/CM_Server.cpp2
-rw-r--r--ACE/apps/gperf/src/Key_List.cpp4
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_fl.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_gl.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_mc.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_qt.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ace_x11.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/acedefaults.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/crosscompile.mpb2
-rw-r--r--ACE/bin/MakeProjectCreator/config/ipv6.mpb6
-rw-r--r--ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt2
-rw-r--r--ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt2
-rw-r--r--ACE/bin/MakeProjectCreator/templates/gnu.mpd2
-rw-r--r--ACE/bin/PerlACE/ProcessVX.pm5
-rw-r--r--ACE/bin/PerlACE/ProcessVX_Unix.pm35
-rw-r--r--ACE/bin/PerlACE/ProcessVX_Win32.pm23
-rw-r--r--ACE/bin/PerlACE/ProcessWinCE.pm47
-rw-r--r--ACE/bin/PerlACE/ProcessWinCE_Unix.pm440
-rw-r--r--ACE/bin/PerlACE/Process_Unix.pm8
-rw-r--r--ACE/bin/PerlACE/Run_Test.pm4
-rw-r--r--ACE/bin/PerlACE/TestTarget.pm10
-rw-r--r--ACE/bin/PerlACE/TestTarget_VxWorks.pm1
-rw-r--r--ACE/bin/PerlACE/TestTarget_WinCE.pm8
-rwxr-xr-xACE/bin/diff-builds-and-group-fixed-tests-only.sh2
-rwxr-xr-xACE/bin/fuzz.pl35
-rwxr-xr-xACE/bin/make_release.py6
-rwxr-xr-xACE/bin/run_all.pl224
-rwxr-xr-xACE/bin/run_all_win32.pl180
-rw-r--r--ACE/contrib/FaCE/CE_ARGV.cpp (renamed from ACE/contrib/FaCE/CE_ARGV.CPP)3
-rw-r--r--ACE/contrib/FaCE/CE_ARGV.h (renamed from ACE/contrib/FaCE/CE_ARGV.H)7
-rw-r--r--ACE/contrib/FaCE/CE_Screen_Output.h1
-rw-r--r--ACE/contrib/FaCE/FaCE.cpp24
-rw-r--r--ACE/contrib/FaCE/FaCE.mpc2
-rw-r--r--ACE/contrib/FaCE/FaCENOACE.mpc4
-rw-r--r--ACE/contrib/FaCE/Main.cpp2
-rw-r--r--ACE/contrib/minizip/minizip.mwc3
-rw-r--r--ACE/debianbuild/patches/19-gcc43.dpatch32
-rw-r--r--ACE/docs/Download.html84
-rw-r--r--ACE/docs/ace_guidelines.vsmacrosbin72192 -> 68608 bytes
-rw-r--r--ACE/etc/index.html1
-rw-r--r--ACE/examples/APG/Active_Objects/active_objects.mpc6
-rw-r--r--ACE/examples/APG/Config/config.mpc3
-rw-r--r--ACE/examples/APG/Containers/containers.mpc3
-rw-r--r--ACE/examples/APG/Misc_IPC/misc_ipc.mpc6
-rw-r--r--ACE/examples/APG/Naming/naming.mpc15
-rw-r--r--ACE/examples/APG/Proactor/proactor.mpc3
-rw-r--r--ACE/examples/APG/Processes/processes.mpc12
-rw-r--r--ACE/examples/APG/Shared_Memory/shared_memory.mpc15
-rw-r--r--ACE/examples/APG/Streams/streams.mpc3
-rw-r--r--ACE/examples/APG/Svc_Config/svc_config.mpc9
-rw-r--r--ACE/examples/APG/ThreadPools/threadpools.mpc3
-rw-r--r--ACE/examples/APG/ThreadSafety/threadsafety.mpc6
-rw-r--r--ACE/examples/ASX/Event_Server/Event_Server/Event.mpc3
-rw-r--r--ACE/examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc3
-rw-r--r--ACE/examples/C++NPv1/C++NPv1.mpc24
-rw-r--r--ACE/examples/C++NPv2/C++NPv2.mpc16
-rw-r--r--ACE/examples/Connection/blocking/Connection_Blocking.mpc6
-rw-r--r--ACE/examples/Connection/misc/Connection_Misc.mpc3
-rw-r--r--ACE/examples/Connection/non_blocking/Connection_Non_Blocking.mpc6
-rw-r--r--ACE/examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc3
-rw-r--r--ACE/examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc3
-rw-r--r--ACE/examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc9
-rw-r--r--ACE/examples/IPC_SAP/FILE_SAP/file_sap_client.mpc3
-rw-r--r--ACE/examples/IPC_SAP/SOCK_SAP/sock_sap.mpc18
-rw-r--r--ACE/examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc18
-rw-r--r--ACE/examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc9
-rw-r--r--ACE/examples/Mem_Map/IO-tests/IO_Test.cpp50
-rw-r--r--ACE/examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc3
-rw-r--r--ACE/examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc3
-rw-r--r--ACE/examples/Misc/Misc.mpc3
-rw-r--r--ACE/examples/Naming/Naming.mpc12
-rw-r--r--ACE/examples/OS/Process/OS_Process.mpc3
-rw-r--r--ACE/examples/OS/Process/imore.cpp10
-rw-r--r--ACE/examples/OS/Process/process.cpp1
-rw-r--r--ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp2
-rw-r--r--ACE/examples/QOS/Diffserv/QOS_Diffserv.mpc3
-rw-r--r--ACE/examples/Reactor/Dgram/Reactor_Dgram.mpc3
-rw-r--r--ACE/examples/Reactor/FIFO/Reactor_FIFO.mpc6
-rw-r--r--ACE/examples/Reactor/Proactor/Proactor.mpc27
-rw-r--r--ACE/examples/Reactor/TP_Reactor/AcceptHandler.cpp14
-rw-r--r--ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp10
-rw-r--r--ACE/examples/Reactor/TP_Reactor/client.cpp12
-rwxr-xr-x[-rw-r--r--]ACE/examples/Reactor/TP_Reactor/run_test.pl0
-rw-r--r--ACE/examples/Reactor/TP_Reactor/server.cpp2
-rw-r--r--ACE/examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc9
-rw-r--r--ACE/examples/Semaphores/Semaphores.mpc6
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.mpc21
-rw-r--r--ACE/examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc6
-rw-r--r--ACE/examples/Shared_Malloc/Shared_Malloc.mpc12
-rw-r--r--ACE/examples/Shared_Memory/Shared_Memory.mpc6
-rw-r--r--ACE/examples/Synch/Synch.mpc3
-rw-r--r--ACE/examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc12
-rw-r--r--ACE/examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc6
-rw-r--r--ACE/examples/Threads/Threads.mpc12
-rw-r--r--ACE/examples/Web_Crawler/Web_Crawler.mpc3
-rw-r--r--ACE/include/makeinclude/platform_cegcc.GNU47
-rw-r--r--ACE/include/makeinclude/platform_gnuwin32_common.GNU25
-rw-r--r--ACE/include/makeinclude/platform_lynxos.GNU3
-rw-r--r--ACE/include/makeinclude/platform_sunos5_sunc++.GNU2
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.3.GNU19
-rw-r--r--ACE/include/makeinclude/platform_vxworks6.7.GNU9
-rw-r--r--ACE/include/makeinclude/rules.lib.GNU1
-rw-r--r--ACE/include/makeinclude/wrapper_macros.GNU13
-rw-r--r--ACE/m4/aio.m410
-rw-r--r--ACE/netsvcs/lib/Client_Logging_Handler.cpp2
-rw-r--r--ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp4
-rw-r--r--ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp2
-rw-r--r--ACE/rpmbuild/README8
-rw-r--r--ACE/rpmbuild/ace-tao-ciao.spec46
-rw-r--r--ACE/rpmbuild/ace-tao-config.patch11
-rw-r--r--ACE/rpmbuild/ace-tao-etc.tar.bz2bin591 -> 0 bytes
-rw-r--r--ACE/rpmbuild/ace-tao-etc.tar.gzbin2174 -> 0 bytes
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora.tar.bz2bin1985 -> 0 bytes
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosconcurrency76
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosevent76
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnaming76
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnotification76
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-costrading76
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-rtevent76
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosconcurrency.opt11
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosevent.opt11
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosnaming.opt17
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosnotification.opt11
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/tao/tao-costrading.opt11
-rw-r--r--ACE/rpmbuild/ace-tao-init-fedora/tao/tao-rtevent.opt11
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse.tar.bz2bin5282 -> 0 bytes
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency192
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent199
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming192
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification192
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading192
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent192
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency.opt23
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosevent.opt23
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnaming.opt37
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnotification.opt23
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/tao/tao-costrading.opt23
-rw-r--r--ACE/rpmbuild/ace-tao-init-suse/tao/tao-rtevent.opt24
-rw-r--r--ACE/rpmbuild/ace-tao-orbsvcs-daemon.patch421
-rw-r--r--ACE/rpmbuild/ace-tao-rpmlintrc.txt3
-rw-r--r--ACE/rpmbuild/ace-tao.txt2428
-rw-r--r--ACE/rpmbuild/logrotate.d/tao-cosconcurrency6
-rw-r--r--ACE/rpmbuild/logrotate.d/tao-cosevent6
-rw-r--r--ACE/rpmbuild/logrotate.d/tao-cosnaming6
-rw-r--r--ACE/rpmbuild/logrotate.d/tao-cosnotification6
-rw-r--r--ACE/rpmbuild/logrotate.d/tao-costrading6
-rw-r--r--ACE/rpmbuild/logrotate.d/tao-rtevent6
-rw-r--r--ACE/rpmbuild/tao/tao-cosconcurrency.conf3
-rw-r--r--ACE/rpmbuild/tao/tao-cosevent.conf3
-rw-r--r--ACE/rpmbuild/tao/tao-cosnaming.conf3
-rw-r--r--ACE/rpmbuild/tao/tao-cosnotification.conf3
-rw-r--r--ACE/rpmbuild/tao/tao-costrading.conf3
-rw-r--r--ACE/rpmbuild/tao/tao-rtevent.conf3
-rw-r--r--ACE/tests/ACE_Init_Test.cpp2
-rw-r--r--ACE/tests/Based_Pointer_Test.cpp2
-rw-r--r--ACE/tests/Bug_1890_Regression_Test.cpp8
-rw-r--r--ACE/tests/Bug_2540_Regression_Test.cpp10
-rw-r--r--ACE/tests/Bug_2740_Regression_Test.cpp364
-rw-r--r--ACE/tests/Bug_3673_Regression_Test.cpp97
-rw-r--r--ACE/tests/Config_Test.cpp2
-rw-r--r--ACE/tests/DLL_Test.cpp7
-rw-r--r--ACE/tests/Dirent_Test.cpp4
-rw-r--r--ACE/tests/INET_Addr_Test_IPV6.cpp5
-rw-r--r--ACE/tests/MT_Reactor_Timer_Test.cpp2
-rw-r--r--ACE/tests/MT_Reactor_Upcall_Test.cpp1
-rw-r--r--ACE/tests/MT_SOCK_Test.cpp2
-rw-r--r--ACE/tests/Malloc_Test.cpp2
-rw-r--r--ACE/tests/Map_Manager_Test.cpp221
-rw-r--r--ACE/tests/Mem_Map_Test.cpp16
-rw-r--r--ACE/tests/Message_Queue_Notifications_Test.cpp8
-rw-r--r--ACE/tests/Message_Queue_Test.cpp57
-rw-r--r--ACE/tests/Multicast_Test.cpp2
-rw-r--r--ACE/tests/Network_Adapters_Test.cpp20
-rw-r--r--ACE/tests/Network_Adapters_Test.h4
-rw-r--r--ACE/tests/New_Fail_Test.cpp6
-rw-r--r--ACE/tests/Priority_Task_Test.cpp2
-rw-r--r--ACE/tests/Process_Manager_Test.cpp23
-rw-r--r--ACE/tests/Reactor_Dispatch_Order_Test.cpp2
-rw-r--r--ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp7
-rw-r--r--ACE/tests/Reactor_Notify_Test.cpp2
-rw-r--r--ACE/tests/Reactor_Performance_Test.cpp2
-rw-r--r--ACE/tests/Recursive_Mutex_Test.cpp6
-rw-r--r--ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp7
-rw-r--r--ACE/tests/SOCK_Connector_Test.cpp9
-rw-r--r--ACE/tests/Signal_Test.cpp4
-rw-r--r--ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp4
-rw-r--r--ACE/tests/Thread_Pool_Reactor_Test.cpp2
-rw-r--r--ACE/tests/UUID_Test.cpp96
-rw-r--r--ACE/tests/run_test.lst12
-rw-r--r--ACE/tests/test_config.h11
-rw-r--r--ACE/tests/tests.mpc14
-rw-r--r--CIAO/CIAO-INSTALL.html38
-rw-r--r--CIAO/CIDLC/ExecImplHeaderGenerator.cpp7
-rw-r--r--CIAO/CIDLC/ExecutorMappingGenerator.cpp128
-rw-r--r--CIAO/CIDLC/ServantHeaderGenerator.cpp75
-rw-r--r--CIAO/CIDLC/ServantSourceGenerator.cpp107
-rw-r--r--CIAO/CIDLC/cidlc.cpp11
-rw-r--r--CIAO/ChangeLog410
-rw-r--r--CIAO/DAnCE/Deployment/Module_Main.h10
-rw-r--r--CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp28
-rw-r--r--CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp124
-rw-r--r--CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp42
-rw-r--r--CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp40
-rw-r--r--CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp106
-rw-r--r--CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h10
-rw-r--r--CIAO/DAnCE/Logger/Log_Macros.h2
-rw-r--r--CIAO/DAnCE/Logger/Logger_Service.cpp2
-rw-r--r--CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp8
-rw-r--r--CIAO/DAnCE/NodeApplication/Name_Utilities.cpp99
-rw-r--r--CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp737
-rw-r--r--CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp72
-rw-r--r--CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp54
-rw-r--r--CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp106
-rw-r--r--CIAO/DAnCE/NodeManager/Node_Manager_Module.h16
-rw-r--r--CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc2
-rw-r--r--CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp7
-rw-r--r--CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp176
-rw-r--r--CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h4
-rw-r--r--CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp32
-rw-r--r--CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp16
-rw-r--r--CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp38
-rw-r--r--CIAO/DAnCE/RedirectionService/RedirectionService.cpp24
-rw-r--r--CIAO/DAnCE/RepositoryManager/RMadmin.cpp2
-rw-r--r--CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp8
-rw-r--r--CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h4
-rw-r--r--CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp152
-rw-r--r--CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h12
-rw-r--r--CIAO/DAnCE/RepositoryManager/URL_Parser.cpp10
-rw-r--r--CIAO/DAnCE/RepositoryManager/URL_Parser.h2
-rw-r--r--CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp44
-rw-r--r--CIAO/DAnCE/Starter/Starter.cpp16
-rw-r--r--CIAO/DAnCE/TargetManager/CmpClient.cpp4
-rw-r--r--CIAO/DAnCE/TargetManager/DomainDataManager.cpp2
-rw-r--r--CIAO/DAnCE/TargetManager/TargetManager.mpc2
-rw-r--r--CIAO/DAnCE/TargetManager/TargetManagerExt.idl2
-rwxr-xr-x[-rw-r--r--]CIAO/DAnCE/TargetManager/descriptors/run_test_TargetManager.pl0
-rw-r--r--CIAO/MPC/config/ciao_plan_generator.mpb6
-rw-r--r--CIAO/MPC/config/ciaocidldefaults.mpb14
-rw-r--r--CIAO/MPC/config/cidlc.mpb2
-rw-r--r--CIAO/MPC/config/dance_plan_generator.mpc5
-rw-r--r--CIAO/MPC/config/dance_plan_launcher_base.mpc6
-rw-r--r--CIAO/MPC/config/xscdefaults.mpb4
-rw-r--r--CIAO/NEWS39
-rw-r--r--CIAO/PROBLEM-REPORT-FORM3
-rw-r--r--CIAO/VERSION2
-rwxr-xr-x[-rw-r--r--]CIAO/bin/PerlCIAO/generate_container.pl0
-rw-r--r--CIAO/bin/ciao_tests.lst1
-rw-r--r--CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp12
-rw-r--r--CIAO/ciao/ComponentServer/CIAO_ComponentServer.h2
-rw-r--r--CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp18
-rw-r--r--CIAO/ciao/Server_init.cpp11
-rw-r--r--CIAO/ciao/Server_init.h2
-rw-r--r--CIAO/docs/fm/CIAO.fmbin0 -> 669696 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.epsbin0 -> 23331 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.sxdbin0 -> 7110 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.epsbin0 -> 33784 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.sxdbin0 -> 7984 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.epsbin0 -> 33795 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.sxdbin0 -> 7974 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.epsbin0 -> 33545 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.sxdbin0 -> 7913 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.epsbin0 -> 33765 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.sxdbin0 -> 7996 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Administrator.epsbin0 -> 45153 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Administrator.sxdbin0 -> 7650 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Application.epsbin0 -> 43126 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Application.sxdbin0 -> 7749 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Messenger.epsbin0 -> 45003 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Messenger.sxdbin0 -> 7689 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.epsbin0 -> 45649 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.sxdbin0 -> 7734 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Receiver.epsbin0 -> 43962 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Descriptors_Receiver.sxdbin0 -> 7609 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.epsbin0 -> 24463 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.sxdbin0 -> 7347 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.epsbin0 -> 36027 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.sxdbin0 -> 7578 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.epsbin0 -> 55449 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.sxdbin0 -> 7907 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.epsbin0 -> 56760 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.sxdbin0 -> 8165 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.epsbin0 -> 48412 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.sxdbin0 -> 7983 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.epsbin0 -> 54234 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.sxdbin0 -> 8447 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.epsbin0 -> 33462 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.sxdbin0 -> 7825 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.epsbin0 -> 50590 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.sxdbin0 -> 7886 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.epsbin0 -> 229977 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.sxdbin0 -> 8041 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.epsbin0 -> 230269 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.sxdbin0 -> 7934 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.epsbin0 -> 51341 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.sxdbin0 -> 8051 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.epsbin0 -> 51917 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.sxdbin0 -> 8141 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.epsbin0 -> 37446 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.sxdbin0 -> 7495 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.epsbin0 -> 25993 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.sxdbin0 -> 7390 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_01.epsbin0 -> 23463 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_01.sxdbin0 -> 7094 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_02.epsbin0 -> 23424 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_02.sxdbin0 -> 7151 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_03.epsbin0 -> 23927 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_03.sxdbin0 -> 7146 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_04.epsbin0 -> 23427 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_04.sxdbin0 -> 7151 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_05.epsbin0 -> 23434 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_05.sxdbin0 -> 7148 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_06.epsbin0 -> 23457 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_06.sxdbin0 -> 7147 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_07.epsbin0 -> 23459 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_07.sxdbin0 -> 7146 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_08.epsbin0 -> 23127 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_08.sxdbin0 -> 7149 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_09.epsbin0 -> 23346 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_09.sxdbin0 -> 7146 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_Overview.epsbin0 -> 22216 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Roadmap_Overview.sxdbin0 -> 6811 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.epsbin0 -> 41532 bytes
-rw-r--r--CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.sxdbin0 -> 7786 bytes
-rw-r--r--CIAO/docs/fm/images/OCILOGO_bw_book.epsbin0 -> 72640 bytes
-rw-r--r--CIAO/docs/schema/Basic_Deployment_Data.xsd14
-rw-r--r--CIAO/docs/schema/cid.xsd6
-rw-r--r--CIAO/docs/schema/pcd.xsd4
-rw-r--r--CIAO/docs/schema/toplevel.xsd2
-rw-r--r--CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp2
-rw-r--r--CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp2
-rwxr-xr-x[-rw-r--r--]CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl0
-rwxr-xr-x[-rw-r--r--]CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl0
-rwxr-xr-x[-rw-r--r--]CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl0
-rw-r--r--CIAO/examples/Hello/Sender/starter.cpp9
-rw-r--r--CIAO/examples/Hello/descriptors/Aliased_Map.dat2
-rwxr-xr-x[-rw-r--r--]CIAO/examples/Hello/descriptors/run_NodeDaemons.pl0
-rwxr-xr-xCIAO/examples/Hello/descriptors/run_test_alias.pl195
-rw-r--r--CIAO/examples/Hello/descriptors_naming/deploymentplan_naming.cdp240
-rwxr-xr-x[-rw-r--r--]CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl0
-rw-r--r--CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp4
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl4
-rw-r--r--CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl1
-rw-r--r--CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc14
-rw-r--r--CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp103
-rw-r--r--CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h67
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl59
-rw-r--r--CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp64
-rw-r--r--CIAO/tests/IDL3_to_XMI/XMI.dtd (renamed from CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/XMI.dtd)23
-rw-r--r--CIAO/tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd6401
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl4
-rw-r--r--CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl19
-rw-r--r--CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd6401
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl23
-rw-r--r--CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd6401
-rwxr-xr-xCIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl4
-rw-r--r--CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl20
-rw-r--r--CIAO/tools/Config_Handlers/ADD_Handler.cpp22
-rw-r--r--CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp1971
-rw-r--r--CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp2113
-rw-r--r--CIAO/tools/Config_Handlers/CCD_Handler.cpp35
-rw-r--r--CIAO/tools/Config_Handlers/CEPE_Handler.cpp4
-rw-r--r--CIAO/tools/Config_Handlers/CPD_Handler.cpp5
-rw-r--r--CIAO/tools/Config_Handlers/CRDD_Handler.cpp2
-rw-r--r--CIAO/tools/Config_Handlers/DD_Handler.cpp34
-rw-r--r--CIAO/tools/Config_Handlers/DP_Handler.cpp27
-rw-r--r--CIAO/tools/Config_Handlers/Deployment.cpp1148
-rw-r--r--CIAO/tools/Config_Handlers/Deployment.hpp161
-rw-r--r--CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp27
-rw-r--r--CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp4
-rw-r--r--CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp2
-rw-r--r--CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp12
-rw-r--r--CIAO/tools/Config_Handlers/ERE_Handler.cpp2
-rw-r--r--CIAO/tools/Config_Handlers/ERE_Handler.h8
-rw-r--r--CIAO/tools/Config_Handlers/IDD_Handler.cpp14
-rw-r--r--CIAO/tools/Config_Handlers/IRDD_Handler.cpp2
-rw-r--r--CIAO/tools/Config_Handlers/IRDD_Handler.h2
-rw-r--r--CIAO/tools/Config_Handlers/MDD_Handler.cpp26
-rw-r--r--CIAO/tools/Config_Handlers/PCD_Handler.cpp17
-rw-r--r--CIAO/tools/Config_Handlers/PSPE_Handler.cpp2
-rw-r--r--CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp41
-rw-r--r--CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp38
-rw-r--r--CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp12
-rw-r--r--CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp12
-rw-r--r--CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp12
-rw-r--r--CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp12
-rw-r--r--CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp8
-rw-r--r--CIAO/tools/Config_Handlers/RDD_Handler.cpp2
-rw-r--r--CIAO/tools/Config_Handlers/Req_Handler.cpp2
-rw-r--r--CIAO/tools/Config_Handlers/Utils/Functors.h10
-rw-r--r--CIAO/tools/Config_Handlers/XMI.cpp132
-rw-r--r--CIAO/tools/Config_Handlers/XMI.hpp68
-rw-r--r--CIAO/tools/Config_Handlers/XMLSchema/Types.hpp5
-rw-r--r--CIAO/tools/Config_Handlers/XML_File_Intf.cpp2
-rw-r--r--CIAO/tools/Config_Handlers/XSCRT/Elements.hpp5
-rw-r--r--CIAO/tools/Config_Handlers/ccd.cpp164
-rw-r--r--CIAO/tools/Config_Handlers/ccd.hpp102
-rw-r--r--CIAO/tools/Config_Handlers/cdd.cpp381
-rw-r--r--CIAO/tools/Config_Handlers/cdd.hpp242
-rw-r--r--CIAO/tools/Config_Handlers/cdp.cpp179
-rw-r--r--CIAO/tools/Config_Handlers/cdp.hpp112
-rw-r--r--CIAO/tools/Config_Handlers/cid.cpp493
-rw-r--r--CIAO/tools/Config_Handlers/cid.hpp292
-rw-r--r--CIAO/tools/Config_Handlers/cpd.cpp111
-rw-r--r--CIAO/tools/Config_Handlers/cpd.hpp69
-rw-r--r--CIAO/tools/Config_Handlers/iad.cpp149
-rw-r--r--CIAO/tools/Config_Handlers/iad.hpp95
-rw-r--r--CIAO/tools/Config_Handlers/pcd.cpp138
-rw-r--r--CIAO/tools/Config_Handlers/pcd.hpp75
-rw-r--r--CIAO/tools/Config_Handlers/toplevel.cpp43
-rw-r--r--CIAO/tools/Config_Handlers/toplevel.hpp28
-rw-r--r--CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp977
-rw-r--r--CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h25
-rw-r--r--CIAO/tools/IDL3_to_XMI/Literals.cpp16
-rw-r--r--CIAO/tools/IDL3_to_XMI/Literals.h4
-rw-r--r--CIAO/tools/IDL3_to_XMI/be_global.cpp28
-rw-r--r--CIAO/tools/XML/XML_Schema_Resolver.cpp3
-rw-r--r--CIAO/tools/XML/XML_Schema_Resolver.h20
-rw-r--r--CIAO/tools/XML/XML_Schema_Resolver.tpp2
-rw-r--r--CIAO/tools/XML/XercesString.h4
-rw-r--r--TAO/ChangeLog2016
-rw-r--r--TAO/DevGuideExamples/AMH/AMH_Messenger_i.cpp2
-rw-r--r--TAO/DevGuideExamples/AMH/MessengerServer.cpp4
-rw-r--r--TAO/DevGuideExamples/AMH/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/AMH/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/AMH_AMI/inner_server.cpp4
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/AMH_AMI/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/BiDirectionalGIOP/callback_i.cpp2
-rw-r--r--TAO/DevGuideExamples/BiDirectionalGIOP/client.cpp6
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/BiDirectionalGIOP/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/BiDirectionalGIOP/server.cpp8
-rw-r--r--TAO/DevGuideExamples/BiDirectionalGIOP/simple_i.cpp2
-rw-r--r--TAO/DevGuideExamples/DevGuideExamples.mwc1
-rw-r--r--TAO/DevGuideExamples/GettingStarted/MessengerServer.cpp4
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/GettingStarted/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/LocalObjects/Messenger/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/LocalObjects/Messenger/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/LocalObjects/ServantLocator/MessengerServer.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/LocalObjects/ServantLocator/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/Messaging/AMIcallback/MessengerClient.cpp7
-rw-r--r--TAO/DevGuideExamples/Messaging/AMIcallback/MessengerHandler.cpp4
-rw-r--r--TAO/DevGuideExamples/Messaging/AMIcallback/MessengerServer.cpp9
-rw-r--r--TAO/DevGuideExamples/Messaging/AMIcallback/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/Messaging/AMIcallback/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/MessengerServer.cpp5
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerServer.h2
-rw-r--r--TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerShutdownTimer.cpp2
-rw-r--r--TAO/DevGuideExamples/Multithreading/GracefulShutdown/Messenger_i.cpp4
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/Multithreading/GracefulShutdown/run_test.pl2
-rw-r--r--TAO/DevGuideExamples/Multithreading/Reactive/MessengerServer.cpp4
-rw-r--r--TAO/DevGuideExamples/Multithreading/Reactive/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/Multithreading/Reactive/run_test.pl2
-rw-r--r--TAO/DevGuideExamples/Multithreading/ThreadPerConnection/MessengerServer.cpp4
-rw-r--r--TAO/DevGuideExamples/Multithreading/ThreadPerConnection/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/Multithreading/ThreadPerConnection/run_test.pl2
-rw-r--r--TAO/DevGuideExamples/Multithreading/ThreadPool/MessengerServer.cpp4
-rw-r--r--TAO/DevGuideExamples/Multithreading/ThreadPool/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/Multithreading/ThreadPool/run_test.pl2
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/Auth/ClientInterceptor.cpp4
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerClient.cpp7
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerServer.cpp10
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/Auth/Messenger_i.cpp2
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/Auth/ServerInitializer.h4
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/PortableInterceptors/Auth/run_test.pl3
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/IOR/ClientInterceptor.cpp5
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerClient.cpp7
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerServer.cpp9
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/IOR/Messenger_i.cpp10
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.cpp21
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.h27
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/IOR/ServerInterceptor.cpp23
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/PortableInterceptors/IOR/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInitializer.cpp2
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInterceptor.cpp33
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/PICurrent/MessengerServer.cpp10
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/PICurrent/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/PortableInterceptors/PICurrent/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ClientInterceptor.cpp5
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerClient.cpp7
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerServer.cpp10
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/Messenger_i.cpp7
-rw-r--r--TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ServerInterceptor.cpp20
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/run_test.pl3
-rw-r--r--TAO/DevGuideExamples/RTCORBA/MessengerServer.cpp9
-rw-r--r--TAO/DevGuideExamples/RTCORBA/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/RTCORBA/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp4
-rw-r--r--TAO/DevGuideExamples/SmartProxies/Logger_i.cpp2
-rw-r--r--TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp4
-rw-r--r--TAO/DevGuideExamples/SmartProxies/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/SmartProxies/run_test.pl0
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/ValueTypes/Bank/run_test.pl0
-rw-r--r--TAO/DevGuideExamples/ValueTypes/Bank/server.cpp6
-rw-r--r--TAO/DevGuideExamples/ValueTypes/Messenger/Message_i.cpp5
-rw-r--r--TAO/DevGuideExamples/ValueTypes/Messenger/MessengerServer.cpp6
-rw-r--r--TAO/DevGuideExamples/ValueTypes/Messenger/Messenger_i.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/DevGuideExamples/ValueTypes/Messenger/run_test.pl0
-rw-r--r--TAO/MPC/config/tao_notify_service.mpb8
-rw-r--r--TAO/MPC/config/taodefaults.mpb2
-rw-r--r--TAO/NEWS37
-rw-r--r--TAO/PROBLEM-REPORT-FORM3
-rw-r--r--TAO/TAO_IDL/ast/ast_interface.cpp3
-rw-r--r--TAO/TAO_IDL/ast/ast_sequence.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_codegen.cpp15
-rw-r--r--TAO/TAO_IDL/be/be_helper.cpp62
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp98
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component/component_ci.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_home/home_ch.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/amh_ch.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/ami_interface_ch.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_init_ch.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_obv_ch.cpp7
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/Makefile.am30
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/cc1.cpp21
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/configed.H72
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/directive.cpp2437
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/eval.cpp2464
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/expand.cpp3715
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/internal.H198
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/lib.cpp4
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/main.cpp507
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/main_libmcpp.c10
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/mbchar.cpp426
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/mcpp.mpc4
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/mcpp_lib.h21
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/mcpp_out.h17
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/noconfig.H268
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/support.cpp4172
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/system.H76
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/system.cpp6580
-rw-r--r--TAO/TAO_IDL/contrib/mcpp/testmain.c84
-rw-r--r--TAO/TAO_IDL/driver/drv_mcpp_preproc.cpp20
-rw-r--r--TAO/TAO_IDL/driver/drv_preproc.cpp37
-rw-r--r--TAO/TAO_IDL/fe/idl.yy51
-rw-r--r--TAO/TAO_IDL/fe/y.tab.cpp51
-rw-r--r--TAO/TAO_IDL/include/ast_sequence.h4
-rw-r--r--TAO/TAO_IDL/include/drv_extern.h2
-rw-r--r--TAO/TAO_IDL/tao_idl.cpp34
-rw-r--r--TAO/TAO_IDL/tao_idl.mpc2
-rw-r--r--TAO/TAO_IDL/util/utl_err.cpp2
-rw-r--r--TAO/TAO_IDL/util/utl_global.cpp6
-rw-r--r--TAO/VERSION2
-rw-r--r--TAO/bin/tao_orb_tests.lst22
-rw-r--r--TAO/bin/tao_other_tests.lst11
-rw-r--r--TAO/configure.ac1
-rw-r--r--TAO/docs/Options.html10
-rw-r--r--TAO/docs/compiler.html8
-rw-r--r--TAO/docs/rtcorba/features.html2
-rw-r--r--TAO/examples/RTCORBA/Activity/Builder.cpp16
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/OMG_Basic/EchoEventConsumerMain.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/EchoEventConsumerMain.cpp20
-rwxr-xr-xTAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/run_test.pl3
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/OMG_TypedEC/ConsumerMain.cpp10
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventConsumerMain.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventSupplierMain.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventConsumerMain.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventSupplierMain.cpp19
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventConsumerMain.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventSupplierMain.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventConsumerMain.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventSupplierMain.cpp17
-rwxr-xr-xTAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/run_test.pl2
-rw-r--r--TAO/orbsvcs/DevGuideExamples/ImplRepo/Basic/MessengerServer.cpp4
-rw-r--r--TAO/orbsvcs/DevGuideExamples/ImplRepo/IORTable/MessengerServer.cpp7
-rw-r--r--TAO/orbsvcs/DevGuideExamples/ImplRepo/MessengerServer.cpp4
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerClient.cpp11
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerServer.cpp4
-rwxr-xr-xTAO/orbsvcs/DevGuideExamples/NamingService/Messenger/run_test.pl5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerClient.cpp11
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerServer.cpp4
-rwxr-xr-xTAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/run_test.pl5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/MessengerServer.cpp4
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/README2
-rwxr-xr-xTAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/run_test.pl2
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Server/MessengerTask.cpp4
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerClient.cpp11
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerServer.cpp4
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/README6
-rwxr-xr-xTAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/run_test.pl29
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/MessengerServer.cpp10
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/README2
-rwxr-xr-xTAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/run_test.pl13
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerConsumer.cpp7
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerServer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/Messenger_i.cpp2
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerConsumer.cpp7
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerServer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerConsumer.cpp7
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerServer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/Messenger_i.cpp2
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerConsumer.cpp8
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerServer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/Messenger_i.cpp2
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerConsumer.cpp7
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerServer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/Messenger_i.cpp2
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerConsumer.cpp13
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerServer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/Messenger_i.cpp2
-rwxr-xr-xTAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/run_test.pl12
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerConsumer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerServer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerSupplier.cpp3
-rw-r--r--TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/ClientInitializer.cpp11
-rw-r--r--TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerClient.cpp11
-rw-r--r--TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerServer.cpp5
-rw-r--r--TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/README2
-rwxr-xr-x[-rw-r--r--]TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/run_test.pl3
-rw-r--r--TAO/orbsvcs/DevGuideExamples/Security/ParticipatingApp/MessengerServer.cpp7
-rw-r--r--TAO/orbsvcs/DevGuideExamples/Security/PolicyControllingApp/MessengerServer.cpp4
-rw-r--r--TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerServer.cpp4
-rwxr-xr-x[-rw-r--r--]TAO/orbsvcs/DevGuideExamples/ValueTypes/Notify/run_test.pl2
-rw-r--r--TAO/orbsvcs/DevGuideExamples/readme.txt12
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Gateway_Service/FTRTEC_Gateway_Service.cpp2
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp55
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h1
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp11
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_Options.h6
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp86
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h9
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp22
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.h12
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp4
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Server_Info.h5
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Server.cpp2
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Service.cpp456
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Service.h53
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Service.mpc18
-rw-r--r--TAO/orbsvcs/Notify_Service/Notify_Service_Export.h40
-rw-r--r--TAO/orbsvcs/Notify_Service/README124
-rw-r--r--TAO/orbsvcs/examples/Notify/MC/monitor/monitor.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/AV.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosConcurrency.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosEvent.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosEvent_Serv.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosEvent_Skel.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosLifeCycle.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosLoadBalancing.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosNaming.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosNaming_Serv.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosNaming_Skel.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosNotification.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosNotification_Serv.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosNotification_Skel.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosProperty.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosTime.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosTrading.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosTrading_Serv.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/CosTrading_Skel.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/DsEventLogAdmin.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/DsLogAdmin.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/FaultTolerance.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp8
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Naming/Flat_File_Persistence.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/Naming/Hash_Naming_Context.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Naming/Naming_Server.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp72
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp5
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.inl2
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp10
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp6
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp34
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/Notify/Proxy.inl4
-rw-r--r--TAO/orbsvcs/orbsvcs/PortableGroup.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/RTEvent.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/RTEvent_Serv.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/RTEvent_Skel.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/RTSched.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/RTSchedEvent.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/RT_Notification.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.cpp24
-rw-r--r--TAO/orbsvcs/orbsvcs/Security.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/Security/SL2_SecurityManager.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/Svc_Utils.rc2
-rw-r--r--TAO/orbsvcs/orbsvcs/Trader/Constraint_l.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/Trader/Trader.h4
-rw-r--r--TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp2
-rw-r--r--TAO/orbsvcs/tests/AVStreams/Latency/control.cpp4
-rw-r--r--TAO/orbsvcs/tests/Bug_2247_Regression/Manager.cpp4
-rw-r--r--TAO/orbsvcs/tests/Bug_2248_Regression/client.cpp6
-rw-r--r--TAO/orbsvcs/tests/Bug_2800_Regression/NamingTask.cpp4
-rw-r--r--TAO/orbsvcs/tests/Bug_3598b_Regression/client.cpp2
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/Bug_3673_Regression.mpc55
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/Hello.cpp23
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/Hello.h31
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/NamingTask.cpp87
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/NamingTask.h27
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.cpp19
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.h28
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/Test.idl26
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/client.cpp113
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/nsmain.cpp191
-rwxr-xr-xTAO/orbsvcs/tests/Bug_3673_Regression/run_test.pl59
-rw-r--r--TAO/orbsvcs/tests/Bug_3673_Regression/server.cpp158
-rw-r--r--TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp8
-rw-r--r--TAO/orbsvcs/tests/FT_App/FT_Client.cpp2
-rw-r--r--TAO/orbsvcs/tests/FaultTolerance/IOGR/Manager.cpp4
-rw-r--r--TAO/orbsvcs/tests/ImplRepo/Bug_689_Regression/client.cpp2
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/ReconnectServer/ReconnectServer.mpc49
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/ReconnectServer/client.cpp164
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl151
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/ReconnectServer/serverA.cpp128
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp135
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/ReconnectServer/test.idl15
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/ReconnectServer/test_i.cpp51
-rwxr-xr-xTAO/orbsvcs/tests/ImplRepo/ReconnectServer/test_i.h48
-rw-r--r--TAO/orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/test_idl.cpp2
-rw-r--r--TAO/orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/test_idl.cpp2
-rw-r--r--TAO/orbsvcs/tests/Makefile.am1
-rw-r--r--TAO/orbsvcs/tests/Notify/Blocking/Structured_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_1385_Regression/Structured_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_1884_Regression/consumer.cpp1
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_2561_Regression/Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_2926_Regression/Bug_2926_Regression.mpc (renamed from TAO/orbsvcs/tests/Bug_2926_Regression/Bug_2926_Regression.mpc)0
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_2926_Regression/DllORB.cpp (renamed from TAO/orbsvcs/tests/Bug_2926_Regression/DllORB.cpp)5
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_2926_Regression/DllORB.h (renamed from TAO/orbsvcs/tests/Bug_2926_Regression/DllORB.h)0
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_2926_Regression/Makefile.am (renamed from TAO/orbsvcs/tests/Bug_2926_Regression/Makefile.am)0
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_2926_Regression/bug2926_export.h (renamed from TAO/orbsvcs/tests/Bug_2926_Regression/bug2926_export.h)0
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_2926_Regression/run_test.pl (renamed from TAO/orbsvcs/tests/Bug_2926_Regression/run_test.pl)0
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp (renamed from TAO/orbsvcs/tests/Bug_2926_Regression/server.cpp)0
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3252_Regression/DllOrb.cpp3
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/Bug_3646a_Regression.mpc10
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/Consumer.cpp48
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3646a_Regression/run_test.pl63
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/Bug_3646b_Regression.mpc18
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.cpp228
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.h42
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/bug3646b_export.h58
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3646b_Regression/run_test.pl36
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp130
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/Bug_3646c_Regression.mpc27
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/Consumer.cpp52
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/DllORB.cpp228
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/DllORB.h42
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/bug3646c_export.h58
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3646c_Regression/run_test.pl62
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp130
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/Bug_3646d_Regression.mpc19
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/DllORB.cpp228
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/DllORB.h42
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/bug3646d_export.h58
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3646d_Regression/run_test.pl36
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp150
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3663_Regression/Bug_3663_Regression.mpc18
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3663_Regression/DllORB.cpp228
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3663_Regression/DllORB.h42
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3663_Regression/bug3663_export.h58
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3663_Regression/run_test.pl36
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp137
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3688_Regression/Bug_3688_Regression.mpc19
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3688_Regression/common.h83
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3688_Regression/consumer.cpp206
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3688_Regression/run_test.pl76
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3688_Regression/supplier.cpp156
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/Bug_3688b.mpc21
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/DllORB.cpp228
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/DllORB.h42
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.cpp125
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.h43
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.cpp107
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.h51
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/bug3688_export.h58
-rwxr-xr-xTAO/orbsvcs/tests/Notify/Bug_3688b_Regression/run_test.pl36
-rw-r--r--TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp209
-rw-r--r--TAO/orbsvcs/tests/Notify/Discarding/Sequence_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Discarding/Structured_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/MC/Structured_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/MC/test_monitor.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/MT_Dispatching/Structured_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Ordering/Sequence_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Ordering/Structured_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Sequence_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/Sequence_Multi_Filter/Sequence_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.cpp11
-rw-r--r--TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.h2
-rw-r--r--TAO/orbsvcs/tests/Notify/performance-tests/Filter/Sequence_Consumer.cpp2
-rw-r--r--TAO/orbsvcs/tests/Notify/performance-tests/Filter/Structured_Consumer.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/orbsvcs/tests/Security/MT_SSLIOP/run_test_heavy.pl0
-rw-r--r--TAO/orbsvcs/tests/ior_corbaname/ior_corbaname_client_i.cpp3
-rwxr-xr-xTAO/orbsvcs/tests/start_services112
-rw-r--r--TAO/orbsvcs/tests/tests_svc_loader/tests_svc_loader.cpp2
-rw-r--r--TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp2
-rw-r--r--TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.h5
-rw-r--r--TAO/tao/AnyTypeCode/Enum_TypeCode.cpp3
-rw-r--r--TAO/tao/AnyTypeCode/Enum_TypeCode_Static.cpp3
-rw-r--r--TAO/tao/Asynch_Queued_Message.cpp4
-rw-r--r--TAO/tao/BiDir_GIOP/TAO_BiDir_GIOP.rc2
-rw-r--r--TAO/tao/Block_Flushing_Strategy.cpp12
-rw-r--r--TAO/tao/Bounded_Array_Sequence_T.h5
-rw-r--r--TAO/tao/Bounded_Basic_String_Sequence_T.h5
-rw-r--r--TAO/tao/Bounded_Object_Reference_Sequence_T.h5
-rw-r--r--TAO/tao/Bounded_Value_Sequence_T.h5
-rw-r--r--TAO/tao/CORBALOC_Parser.cpp4
-rw-r--r--TAO/tao/ClientRequestInterceptor_Adapter.h5
-rw-r--r--TAO/tao/CodecFactory/TAO_CodecFactory.rc2
-rw-r--r--TAO/tao/Compression/Base_Compressor.cpp8
-rw-r--r--TAO/tao/Compression/Compression.pidl4
-rw-r--r--TAO/tao/Compression/TAO_Compression.rc2
-rw-r--r--TAO/tao/Compression/bzip2/TAO_Bzip2Compressor.rc2
-rw-r--r--TAO/tao/Compression/lzo/TAO_LzoCompressor.rc2
-rw-r--r--TAO/tao/Compression/zlib/TAO_ZlibCompressor.rc2
-rw-r--r--TAO/tao/Connection_Handler.cpp4
-rw-r--r--TAO/tao/DynamicAny/TAO_DynamicAny.rc2
-rw-r--r--TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp5
-rw-r--r--TAO/tao/DynamicInterface/TAO_DynamicInterface.rc2
-rw-r--r--TAO/tao/GIOP_Message_Base.cpp23
-rw-r--r--TAO/tao/IFR_Client/TAO_IFR_Client.rc2
-rw-r--r--TAO/tao/IIOP_Acceptor.cpp12
-rw-r--r--TAO/tao/IIOP_Connection_Handler.cpp9
-rw-r--r--TAO/tao/IIOP_Endpoint.cpp25
-rw-r--r--TAO/tao/IIOP_Endpoint.h11
-rw-r--r--TAO/tao/IIOP_Profile.cpp23
-rw-r--r--TAO/tao/IIOP_Profile.h5
-rw-r--r--TAO/tao/IIOP_Transport.cpp19
-rw-r--r--TAO/tao/IIOP_Transport.h2
-rw-r--r--TAO/tao/IORInterceptor/TAO_IORInterceptor.rc2
-rw-r--r--TAO/tao/IORManipulation/TAO_IORManip.rc2
-rw-r--r--TAO/tao/IORTable/TAO_IORTable.rc2
-rw-r--r--TAO/tao/ImR_Client/ImR_Client.cpp13
-rw-r--r--TAO/tao/ImR_Client/TAO_IMR_Client.rc2
-rw-r--r--TAO/tao/Incoming_Message_Stack.h4
-rw-r--r--TAO/tao/Intrusive_Ref_Count_Handle_T.h2
-rw-r--r--TAO/tao/Invocation_Adapter.cpp4
-rw-r--r--TAO/tao/Invocation_Base.cpp64
-rw-r--r--TAO/tao/Invocation_Base.h6
-rw-r--r--TAO/tao/Leader_Follower.cpp12
-rw-r--r--TAO/tao/LocalObject.h5
-rw-r--r--TAO/tao/LocalObject.inl4
-rw-r--r--TAO/tao/LocateRequest_Invocation.cpp40
-rw-r--r--TAO/tao/LocateRequest_Invocation_Adapter.cpp3
-rw-r--r--TAO/tao/Makefile.am9
-rw-r--r--TAO/tao/Messaging/Messaging_Queueing_Strategies.cpp2
-rw-r--r--TAO/tao/Messaging/TAO_Messaging.rc2
-rw-r--r--TAO/tao/ORB.cpp7
-rw-r--r--TAO/tao/ORB_Core.cpp12
-rw-r--r--TAO/tao/ObjRefTemplate/TAO_ObjRefTemplate.rc2
-rw-r--r--TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h10
-rw-r--r--TAO/tao/PI/PICurrent.cpp4
-rw-r--r--TAO/tao/PI/PICurrent_Impl.cpp89
-rw-r--r--TAO/tao/PI/PICurrent_Impl.h18
-rw-r--r--TAO/tao/PI/PICurrent_Impl.inl26
-rw-r--r--TAO/tao/PI/RequestInterceptor_Adapter_Impl.cpp69
-rw-r--r--TAO/tao/PI/RequestInterceptor_Adapter_Impl.h61
-rw-r--r--TAO/tao/PI_Server/ServerInterceptorAdapter.h12
-rw-r--r--TAO/tao/PortableServer/Root_POA.cpp3
-rw-r--r--TAO/tao/PortableServer/Root_POA.h7
-rw-r--r--TAO/tao/PortableServer/TAO_PortableServer.rc2
-rw-r--r--TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp2
-rw-r--r--TAO/tao/RTCORBA/TAO_RTCORBA.rc2
-rw-r--r--TAO/tao/RTPortableServer/TAO_RTPortableServer.rc2
-rw-r--r--TAO/tao/RTScheduling/TAO_RTScheduler.rc2
-rw-r--r--TAO/tao/RequestInterceptor_Adapter.cpp26
-rw-r--r--TAO/tao/RequestInterceptor_Adapter.h54
-rw-r--r--TAO/tao/ServerRequestInterceptor_Adapter.h4
-rw-r--r--TAO/tao/SmartProxies/SmartProxies.rc2
-rw-r--r--TAO/tao/Strategies/DIOP_Acceptor.cpp5
-rw-r--r--TAO/tao/Strategies/DIOP_Transport.cpp2
-rw-r--r--TAO/tao/Strategies/TAO_Strategies.rc2
-rw-r--r--TAO/tao/Synch_Invocation.cpp39
-rw-r--r--TAO/tao/SystemException.cpp2
-rw-r--r--TAO/tao/TAO_Server_Request.cpp4
-rw-r--r--TAO/tao/Transport.cpp113
-rw-r--r--TAO/tao/Transport.h139
-rw-r--r--TAO/tao/Transport.inl4
-rw-r--r--TAO/tao/Transport_Connector.cpp8
-rw-r--r--TAO/tao/TypeCodeFactory/TypeCodeFactory.rc2
-rw-r--r--TAO/tao/Valuetype/Bounded_Valuetype_Sequence_T.h5
-rw-r--r--TAO/tao/Valuetype/TAO_Valuetype.rc2
-rw-r--r--TAO/tao/ZIOP/ZIOP.cpp46
-rw-r--r--TAO/tao/ZIOP/ZIOP.h18
-rw-r--r--TAO/tao/ZIOP/ZIOP.pidl4
-rw-r--r--TAO/tao/params.cpp1
-rw-r--r--TAO/tao/params.h10
-rw-r--r--TAO/tao/params.inl13
-rw-r--r--TAO/tao/tao.mpc2
-rw-r--r--TAO/tests/Abstract_Interface/client.cpp2
-rwxr-xr-xTAO/tests/BiDirectional/run_test3557.pl2
-rw-r--r--TAO/tests/Big_Reply/client.cpp2
-rw-r--r--TAO/tests/Bug_1254_Regression/client.cpp2
-rw-r--r--TAO/tests/Bug_1269_Regression/Server_Timer.cpp2
-rw-r--r--TAO/tests/Bug_1270_Regression/Server_Timer.cpp2
-rw-r--r--TAO/tests/Bug_1361_Regression/Echo.cpp2
-rw-r--r--TAO/tests/Bug_1482_Regression/Client_Task.cpp7
-rw-r--r--TAO/tests/Bug_1482_Regression/Client_Task.h2
-rwxr-xr-xTAO/tests/Bug_1482_Regression/run_test.pl2
-rw-r--r--TAO/tests/Bug_1482_Regression/server.cpp11
-rw-r--r--TAO/tests/Bug_1568_Regression/server.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/tests/Bug_1869_Regression/run_test.pl0
-rw-r--r--TAO/tests/Bug_2084_Regression/Collocated_Test.cpp22
-rw-r--r--TAO/tests/Bug_2084_Regression/EventNode.cpp4
-rw-r--r--TAO/tests/Bug_2084_Regression/Hello.cpp8
-rwxr-xr-xTAO/tests/Bug_2084_Regression/run_test.pl2
-rw-r--r--TAO/tests/Bug_2174_Regression/client.cpp2
-rw-r--r--TAO/tests/Bug_2234_Regression/server.cpp5
-rw-r--r--TAO/tests/Bug_2345_Regression/server.cpp9
-rw-r--r--TAO/tests/Bug_2356_Regression/ami_test_i.cpp6
-rw-r--r--TAO/tests/Bug_2356_Regression/client.cpp6
-rwxr-xr-xTAO/tests/Bug_2593_Regression/run_test.pl3
-rw-r--r--TAO/tests/Bug_2734_Regression/client.cpp2
-rw-r--r--TAO/tests/Bug_2768_Regression/client.cpp2
-rw-r--r--TAO/tests/Bug_3171_Regression/server.cpp4
-rw-r--r--TAO/tests/Bug_3198_Regression/bug_3198_regression.cpp2
-rw-r--r--TAO/tests/Bug_3598a_Regression/client.cpp2
-rw-r--r--TAO/tests/Bug_3632_Regression/Bug_3632_Regression.mpc16
-rw-r--r--TAO/tests/Bug_3632_Regression/README10
-rwxr-xr-xTAO/tests/Bug_3632_Regression/run_test.pl22
-rw-r--r--TAO/tests/Bug_3632_Regression/test.cpp13
-rw-r--r--TAO/tests/Bug_3632_Regression/test.idl6
-rw-r--r--TAO/tests/Bug_3647_Regression/Backend_Impl.cpp68
-rw-r--r--TAO/tests/Bug_3647_Regression/Backend_Impl.h40
-rw-r--r--TAO/tests/Bug_3647_Regression/Bug_3647_Regression.mpc52
-rw-r--r--TAO/tests/Bug_3647_Regression/Middle_Impl.cpp100
-rw-r--r--TAO/tests/Bug_3647_Regression/Middle_Impl.h49
-rw-r--r--TAO/tests/Bug_3647_Regression/README32
-rw-r--r--TAO/tests/Bug_3647_Regression/Test.idl50
-rw-r--r--TAO/tests/Bug_3647_Regression/backend_server.cpp120
-rw-r--r--TAO/tests/Bug_3647_Regression/client.cpp147
-rw-r--r--TAO/tests/Bug_3647_Regression/middle_server.cpp221
-rwxr-xr-xTAO/tests/Bug_3647_Regression/run_test.pl148
-rw-r--r--TAO/tests/Bug_3647_Regression/svc.conf6
-rw-r--r--TAO/tests/Bug_3672_Regression/Bug_3672_Regression.mpc34
-rw-r--r--TAO/tests/Bug_3672_Regression/ami_test.idl27
-rw-r--r--TAO/tests/Bug_3672_Regression/ami_test_i.cpp43
-rw-r--r--TAO/tests/Bug_3672_Regression/ami_test_i.h41
-rw-r--r--TAO/tests/Bug_3672_Regression/client.cpp324
-rwxr-xr-xTAO/tests/Bug_3672_Regression/run_test.pl67
-rw-r--r--TAO/tests/Bug_3672_Regression/server.cpp126
-rw-r--r--TAO/tests/Bug_3674_Regression/Bug_3674_Regression.mpc13
-rwxr-xr-xTAO/tests/Bug_3674_Regression/run_test.pl17
-rw-r--r--TAO/tests/Bug_3674_Regression/test.cpp380
-rw-r--r--TAO/tests/Bug_3674_Regression/test.idl7
-rw-r--r--TAO/tests/Bug_3676_Regression/Bug_3676_Regression.mpc37
-rw-r--r--TAO/tests/Bug_3676_Regression/Hello.cpp23
-rw-r--r--TAO/tests/Bug_3676_Regression/Hello.h31
-rw-r--r--TAO/tests/Bug_3676_Regression/README22
-rw-r--r--TAO/tests/Bug_3676_Regression/Test.idl20
-rw-r--r--TAO/tests/Bug_3676_Regression/client.cpp128
-rwxr-xr-xTAO/tests/Bug_3676_Regression/run_test.pl79
-rw-r--r--TAO/tests/Bug_3676_Regression/server.cpp105
-rw-r--r--TAO/tests/Bug_3683_Regression/Bug_3683_Regression.mpc36
-rw-r--r--TAO/tests/Bug_3683_Regression/Echo.idl27
-rw-r--r--TAO/tests/Bug_3683_Regression/Echo_Client_i.cpp93
-rw-r--r--TAO/tests/Bug_3683_Regression/Echo_Client_i.h55
-rw-r--r--TAO/tests/Bug_3683_Regression/Echo_i.cpp94
-rw-r--r--TAO/tests/Bug_3683_Regression/Echo_i.h63
-rw-r--r--TAO/tests/Bug_3683_Regression/Simple_util.cpp340
-rw-r--r--TAO/tests/Bug_3683_Regression/Simple_util.h165
-rw-r--r--TAO/tests/Bug_3683_Regression/client.cpp21
-rwxr-xr-xTAO/tests/Bug_3683_Regression/run_test.pl76
-rw-r--r--TAO/tests/Bug_3683_Regression/server.cpp38
-rw-r--r--TAO/tests/Bug_3683_Regression/svc.conf3
-rw-r--r--TAO/tests/Bug_3695_Regression/Bug_3695.cpp77
-rw-r--r--TAO/tests/Bug_3695_Regression/Bug_3695_Regression.mpc4
-rwxr-xr-xTAO/tests/Bug_3695_Regression/run_test.pl26
-rw-r--r--TAO/tests/COIOP/Hello.cpp4
-rw-r--r--TAO/tests/Client_Leaks/Process_Factory.cpp2
-rw-r--r--TAO/tests/Client_Leaks/client.cpp2
-rw-r--r--TAO/tests/Collocation_Exception_Test/Hello.cpp4
-rw-r--r--TAO/tests/Collocation_Oneway_Tests/Hello.cpp4
-rw-r--r--TAO/tests/DII_AMI_Forward/orb_initializer.h7
-rw-r--r--TAO/tests/DII_AMI_Forward/server_interceptor.cpp3
-rw-r--r--TAO/tests/DII_AMI_Forward/server_interceptor.h2
-rw-r--r--TAO/tests/DII_Collocation_Tests/oneway/Hello.cpp4
-rwxr-xr-xTAO/tests/DII_Collocation_Tests/oneway/run_test.pl2
-rw-r--r--TAO/tests/DII_Collocation_Tests/twoway/Hello.cpp4
-rwxr-xr-xTAO/tests/DII_Collocation_Tests/twoway/run_test.pl2
-rw-r--r--TAO/tests/FL_Cube/client.cpp2
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/ForwardUponObjectNotExist.mpc35
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/README30
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/client.cpp197
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/run_test.pl73
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/server.cpp110
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/test.idl8
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/test_i.cpp23
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/test_i.h47
-rwxr-xr-xTAO/tests/ForwardUponObjectNotExist/test_i.inl7
-rw-r--r--TAO/tests/HandleExhaustion/client.cpp2
-rw-r--r--TAO/tests/Hello/client.cpp2
-rwxr-xr-xTAO/tests/IPV6/run_test.pl2
-rw-r--r--TAO/tests/Leader_Followers/client.cpp2
-rw-r--r--TAO/tests/MProfile_Forwarding/Manager.cpp6
-rw-r--r--TAO/tests/Multiple/client.cpp2
-rw-r--r--TAO/tests/NestedUpcall/Simple/client.cpp2
-rw-r--r--TAO/tests/NestedUpcall/Simple/simple-client.cpp2
-rw-r--r--TAO/tests/Nested_Event_Loop/client.cpp2
-rw-r--r--TAO/tests/ORB_Local_Config/ORB_Local_Config.mwc14
-rw-r--r--TAO/tests/ORB_Local_Config/Two_DLL_ORB/Two_DLL_ORB.mpc2
-rw-r--r--TAO/tests/ORB_Local_Config/Two_DLL_ORB/client.cpp2
-rwxr-xr-x[-rw-r--r--]TAO/tests/Ondemand_Write/run_test.pl0
-rw-r--r--TAO/tests/POA/EndpointPolicy/client.cpp2
-rw-r--r--TAO/tests/POA/Generic_Servant/client.cpp2
-rw-r--r--TAO/tests/POA/Persistent_ID/client.cpp2
-rw-r--r--TAO/tests/Portable_Interceptors/AMI/client.cpp2
-rw-r--r--TAO/tests/Portable_Interceptors/AdvSlot/client.cpp2
-rw-r--r--TAO/tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp2
-rw-r--r--TAO/tests/Portable_Interceptors/AdvSlotExt/client.cpp2
-rw-r--r--TAO/tests/Portable_Interceptors/Bug_2133/client.cpp2
-rw-r--r--TAO/tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.cpp2
-rw-r--r--TAO/tests/RTCORBA/Bug_3382_Regression/client.cpp2
-rw-r--r--TAO/tests/RTCORBA/Bug_3382_Regression/server.cpp2
-rw-r--r--TAO/tests/RTCORBA/Bug_3643_Regression/Bug_3643_Regression.mpc37
-rw-r--r--TAO/tests/RTCORBA/Bug_3643_Regression/client.cpp245
-rwxr-xr-xTAO/tests/RTCORBA/Bug_3643_Regression/run_test.pl115
-rw-r--r--TAO/tests/RTCORBA/Bug_3643_Regression/server.cpp354
-rw-r--r--TAO/tests/RTCORBA/Bug_3643_Regression/svc.conf.dynamic1
-rw-r--r--TAO/tests/RTCORBA/Bug_3643_Regression/test.idl12
-rw-r--r--TAO/tests/RTCORBA/Bug_3643_Regression/test_i.cpp68
-rw-r--r--TAO/tests/RTCORBA/Bug_3643_Regression/test_i.h42
-rwxr-xr-x[-rw-r--r--]TAO/tests/RTCORBA/Dynamic_Thread_Pool/run_test.pl0
-rw-r--r--TAO/tests/RTCORBA/Linear_Priority/client.cpp2
-rw-r--r--TAO/tests/RTCORBA/Persistent_IOR/client.cpp2
-rw-r--r--TAO/tests/RTCORBA/Policy_Combinations/client.cpp2
-rw-r--r--TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp2
-rw-r--r--TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp6
-rw-r--r--TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp2
-rw-r--r--TAO/tests/Server_Connection_Purging/client2.cpp2
-rw-r--r--TAO/tests/Single_Read/client.cpp2
-rw-r--r--TAO/tests/Smart_Proxies/dtor/client.cpp2
-rw-r--r--TAO/tests/Timed_Buffered_Oneways/client.cpp2
-rw-r--r--TAO/tests/Timeout/client.cpp2
-rw-r--r--TAO/tests/ZIOP/TestCompressor/TAO_TestCompressor.rc2
-rw-r--r--TAO/tests/ZIOP/client.cpp10
-rw-r--r--TAO/tests/ZIOP/server.cpp2
-rw-r--r--TAO/utils/NamingViewer/NamingViewerDlg.cpp2
-rw-r--r--TAO/utils/README3
-rw-r--r--TAO/utils/logWalker/HostProcess.cpp281
-rw-r--r--TAO/utils/logWalker/HostProcess.h61
-rw-r--r--TAO/utils/logWalker/Invocation.cpp582
-rw-r--r--TAO/utils/logWalker/Invocation.h130
-rw-r--r--TAO/utils/logWalker/Log.cpp486
-rw-r--r--TAO/utils/logWalker/Log.h50
-rw-r--r--TAO/utils/logWalker/PeerObject.cpp47
-rw-r--r--TAO/utils/logWalker/PeerObject.h38
-rw-r--r--TAO/utils/logWalker/PeerProcess.cpp243
-rw-r--r--TAO/utils/logWalker/PeerProcess.h73
-rw-r--r--TAO/utils/logWalker/README118
-rw-r--r--TAO/utils/logWalker/Session.cpp175
-rw-r--r--TAO/utils/logWalker/Session.h44
-rw-r--r--TAO/utils/logWalker/Thread.cpp133
-rw-r--r--TAO/utils/logWalker/Thread.h50
-rw-r--r--TAO/utils/logWalker/hello.mft4
-rw-r--r--TAO/utils/logWalker/helloClient.log86
-rw-r--r--TAO/utils/logWalker/helloServer.log80
-rw-r--r--TAO/utils/logWalker/logWalker.cpp143
-rw-r--r--TAO/utils/logWalker/logWalker.mpc7
-rw-r--r--TAO/utils/monitor/monitor_client.cpp2
-rw-r--r--TAO/utils/nslist/nslist.cpp17
1204 files changed, 44115 insertions, 42148 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog
index be842ce0682..db015ed20dc 100644
--- a/ACE/ChangeLog
+++ b/ACE/ChangeLog
@@ -1,11 +1,1365 @@
-Tue Apr 14 09:48:27 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+Mon Jun 22 09:33:40 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
* ACE version 5.7 released.
+Tue Jun 16 15:14:52 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * ace/OS_main.cpp:
+
+ For Windows CE/Mobile: when constructing argv[0], quote the full
+ path to the exe if it contains spaces (\Program Files\...).
+
+Mon Jun 15 07:45:04 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3673_Regression_Test.cpp:
+ * tests/run_test.lst:
+ * tests/tests.mpc:
+ Added a new test for bugzilla 3673, this test whether exception handling
+ works correctly. This doesn't work with CB2007 which is really a compiler
+ bug. This test makes it easier to see if other compilers have the same
+ bug
+
+Fri Jun 12 19:05:43 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * ace/OS_NS_sys_socket.inl:
+
+ Windows Mobile 6 can return WSAENOPROTOOPT instead of WSAEOPNOTSUPP
+ for setsockopt with an unsupported option.
+
+Fri Jun 12 19:16:04 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ Revert the change below, Adam has a better fix
+ * ace/config-WinCE.h
+ Set ACE_LACKS_SO_RCVBUF for WinCE 5, it is not supported
+
+Fri Jun 12 18:37:04 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-WinCE.h
+ Set ACE_LACKS_SO_RCVBUF for WinCE 5, it is not supported
+
+Fri Jun 12 14:12:04 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/run_test.lst: Removed !FIXED_BUGS_ONLY from Process_Test. Not
+ sure why it's there and I never see Process_Test fail.
+
+Fri Jun 12 11:24:09 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.cpp: Added missing ifdef ACE_HAS_EVENT_POLL.
+
+ * tests/run_test.lst: Removed !FIXED_BUGS_ONLY from those fixed:
+ Reactor_Dispatch_Order_Test_Dev_Poll
+ Reactor_Remove_Resume_Test_Dev_Poll
+ Refcounted_Event_Handler_Test_DevPoll
+
+Fri Jun 12 00:45:09 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Dev_Poll_Reactor.{h cpp inl}: Fixed multi-thread behavior of
+ ACE_Dev_Poll_Reactor to resolve Bugzilla 2740, 3178, 3188, 3279.
+ Note that fixing 3178 involved adding the manual-resume behavior from
+ ACE_TP_Reactor which was easy after the other fixes. Essentially
+ what was done is:
+ - Change epoll_wait() from returning all ready events to just one.
+ - Registered events now include the EPOLLONESHOT flag, so once
+ an event is delivered for a handle, no more will be until
+ epoll_ctl() is called again to reset the events.
+ This has the effect of suspending handlers around I/O upcalls and
+ preventing registration changes from happening while another thread
+ is waiting for events.
+
+ * tests/Reactor_Dispatch_Order_Test.cpp:
+ * tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp:
+ * tests/Refcounted_Event_Handler_Test_DevPoll.cpp:
+ When registering the test handle for events, register for read and
+ write, not everything. Registering for everything leaves 'connect'
+ set when 'write' is removed, but they both map to the same event
+ on non-Windows reactors.
+ For the _Dev_Poll test, remove the BSD, VxWorks, Lynx-only case for
+ removing write-mask - this should always be done.
+
+ * tests/MT_Reactor_Upcall_Test.cpp: When setting up the
+ ACE_Dev_Poll_Reactor, set the restart flag.
+
+ * tests/Bug_2740_Regression_Test.cpp: Tweaks for more informative
+ logging and remove false-fails on peer socket closes.
+
+ * tests/run_test.lst: Removed !FIXED_BUGS_ONLY from
+ Bug_2740_Regression_Test.
+
+Thu Jun 11 19:27:33 UTC 2009 Steven Stallion <stallions@ociweb.com>
+
+ * PROBLEM-REPORT-FORM:
+
+ Added additional PRF question about build method (commit performed
+ on behalf of Chris Cleeland).
+
+Thu Jun 11 13:25:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-cygwin32.h:
+ Only define the custom export macros when they are not defined yet
+
+ * ace/TP_Reactor.cpp:
+ owner_ is a bool
+
+Thu Jun 11 13:15:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ Use $(HOST_EXE_EXT) when host_root is set
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Set qos to 1 and updated header
+
+Wed Jun 10 18:18:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-msvc-9.h:
+ * ace/OS_NS_stdio.inl:
+ Fix for Windows CE with msvc9
+
+Wed Jun 10 14:07:09 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * include/makeinclude/platform_vxworks6.3.GNU:
+
+ Minor adjustment to the part of the change below concerning
+ "Allow in-place (no HOST_ROOT) cross-compilation on Win32 hosts."
+ If the host tool variables (like $(TAO_IDL)) are already end in .exe
+ don't add .exe again.
+
+Mon Jun 8 18:39:58 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * ace/Message_Queue_Vx.h:
+ * ace/OS_main.h:
+
+ Added ACE_Export to ACE_Message_Queue_Vx.
+ Added "exports" for the symbols ace_os_main_i and ace_main_i.
+ This allows them to work with GCC 4.x hidden visibility on platforms
+ that use redefinition of main (VxWorks).
+
+ * contrib/minizip/minizip.mwc:
+
+ Added a workspace so minizip will be "found" when running
+ mwc.pl -recurse.
+
+ * include/makeinclude/platform_lynxos.GNU:
+ * include/makeinclude/platform_vxworks6.3.GNU:
+
+ Both VxWorks and LynxOS:
+ For shared library builds (RTP), use -rpath-link to silence
+ warnings from the linker. We assume the libraries in $ACE_ROOT/lib
+ will be present at runtime.
+
+ VxWorks only:
+ Allow in-place (no HOST_ROOT) cross-compilation on Win32 hosts.
+
+ * include/makeinclude/platform_sunos5_sunc++.GNU:
+
+ Default "distrib" to 1, which means we will not set RPATH, similar to
+ other platforms. This resolves bug #3678.
+
+ * tests/Network_Adapters_Test.h:
+ * tests/Process_Manager_Test.cpp:
+ * tests/Signal_Test.cpp:
+ * tests/run_test.lst:
+
+ Fix ACE tests that were failing in single-threaded builds.
+
+Mon Jun 8 09:51:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_1890_Regression_Test.cpp:
+ * tests/Bug_2540_Regression_Test.cpp:
+ Put the reactors on the heap to get these tests running
+ with Windows CE where we only get a 64Kb main thread
+
+Sun Jun 7 17:53:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Tokenizer_T.cpp
+ * ace/Tokenizer_T.h
+ * ace/SString.cpp
+ * ace/SString.h
+ Moved ACE_Tokenizer to its own file and reworked it to
+ the C++ template ACE_Tokenizer_T. ACE_Tokenizer is then a
+ typedef of ACE_Tokenizer_T<ACE_TCHAR>. This makes it
+ possible to use a char tokenizer in a wchar build
+
+ * ace/ace.mpc:
+ * ace/ace_for_tao.mpc:
+ * ace/Makefile.am:
+ Added new files
+
+ * ace/Configuration.cpp:
+ * ace/Process.cpp:
+ * examples/OS/Process/process.cpp:
+ Added include of Tokenizer_T.h
+
+ * ace/OS_NS_Thread.cpp
+ * ace/OS_NS_Thread.h
+ * ace/OS_NS_Thread.inl
+ Changed important_writer_ to bool
+
+Fri Jun 5 18:20:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SString.h:
+ Doxygen changes
+
+Fri Jun 5 18:16:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ETCL/ETCL_Interpreter.cpp:
+ Prefix increment and const changes
+
+ * ace/SString.h:
+ Doxygen changes
+
+Thu Jun 4 10:14:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Select_Reactor_T.cpp:
+ Only call the notify_handler_ when we have a valid pointer
+
+Thu Jun 4 09:42:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * contrib/FaCE/CE_ARGV.h:
+ * contrib/FaCE/FaCE.cpp:
+ Fixed GCC 4.4 warnings
+
+Thu Jun 4 09:12:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.h:
+ Fixed MinGW compile problem
+
+Thu Jun 4 08:56:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_unistd.inl (isatty):
+ Check the return value of _open_osfhandle, if it returns -1,
+ it failed and then calling _isatty with -1 will cause an
+ assert of the msvc9 runtime
+
+Wed Jun 3 07:52:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessWinCE.pm:
+ * bin/PerlACE/ProcessWinCE_Unix.pm:
+ If we can't find the vxtest file, log it as error but just
+ continue
+
+Mon Jun 1 08:09:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Lib_Find.cpp:
+ Fixed gcc4.4 warning in a different way, broke other builds
+
+ * ace/config-win32-borland.h:
+ Changed version checks to not have to patch again for a next
+ path from Embarcadero
+
+Mon Jun 1 05:22:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Lib_Find.cpp:
+ Fixed gcc4.4 warnings
+
+Mon Jun 1 05:15:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-borland.h:
+ We new require to have update pack 3 installed
+
+Fri May 29 16:08:32 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * tests/Bug_2740_Regression_Test.cpp:
+ * tests/tests.mpc:
+ * tests/run_test.lst: New test based on code submitted in
+ Bugzilla 2740.
+
+Fri May 29 13:36:05 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/OS_NS_stropts.cpp:
+ * ace/OS_NS_sys_socket.cpp:
+ * include/makeinclude/platform_cegcc.GNU:
+
+ Fixed compiler error for QoS when compiler is CE gcc.
+ Removed UNDER_CE < 500.
+
+Fri May 29 11:41:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/QoS/qos.mpc:
+ Use prop:windows
+
+Tue May 26 06:56:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Configuration.{h,cpp}
+ Removed my WinCE code again, it seems to break another part
+ of the test
+
+ * ace/os_include/netinet/os_in.h:
+ Layout change
+
+ * ace/config-win32-msvc-10.h:
+ * ace/config-win32-msvc-9.h:
+ If we compile for Vista or higher then enable the native
+ windows condition variables
+
+Tue May 26 05:56:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/JAWS/server/HTTP_Server.cpp:
+ Fixed include
+
+Mon May 25 18:47:24 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * ace/config-linux-common.h:
+ * ace/OS_NS_dirent.h:
+ Johnny Willemsen found a more elegant fix. Applied.
+
+Mon May 25 18:21:40 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * ace/OS_NS_dirent.h:
+ * ace/config-linux-common.h:
+ Fixed bug 3681, code would not build with glibc-2.10 because the
+ prototype for scandir() changed. Automatically detect the
+ version of glibc and use the right prototype for it.
+
+Mon May 25 11:26:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/JAWS/server/IO.cpp
+ * apps/JAWS/server/IO.h
+ * apps/JAWS/server/JAWS_IO.cpp
+ * apps/JAWS/server/JAWS_IO.h
+ Renamed to JAWS_IO
+
+ * apps/JAWS/server/HTTP_Handler.h
+ * apps/JAWS/server/HTTP_Response.cpp
+ * apps/JAWS/server/JAWS_Concurrency.h
+ * apps/JAWS/server/Makefile.am
+ * apps/JAWS/server/server.mpc
+ Updated because of change above
+
+Mon May 25 09:47:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_sys_mman.inl:
+ Don't pass unsupported flags with WinCE. This fixes the Mem_Map_Test
+
+Sun May 24 18:27:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Configuration.{h,cpp}
+ With WinCE RegKeyDelete just does a recursive delete, on regular
+ Windows RegKeyDelete only works when there are no subkeys. Added
+ WinCE specific code to check if we have subkeys, if yes, then
+ return with an error
+
+Fri May 22 16:20:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Message_Queue_Test.cpp:
+ Run part of this test again on VxWorks and reduced the number
+ it messages in the counting test for WinCE, the amount of messages
+ is too much for CE to finish the test in time
+
+Fri May 22 16:10:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/ACE_Init_Test.cpp:
+ Improved message
+
+ * tests/Dirent_Test.cpp:
+ Initialise pointer to 0
+
+ * tests/SOCK_Connector_Test.cpp:
+ Print errno to get some more feedback why this fails on WinCE
+
+Fri May 22 12:11:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessWinCE.pm:
+ * bin/PerlACE/ProcessWinCE_Unix.pm:
+ Only use the vxtest file in a non static test
+
+Fri May 22 11:12:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SOCK_Dgram.cpp:
+ * ace/SOCK_Dgram_Mcast.cpp:
+ Fixed casing of include for cegcc
+
+Fri May 22 10:57:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Some defines only have to be set, not to 1
+
+Fri May 22 10:51:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/JAWS3/jaws3/IO.cpp
+ * apps/JAWS3/jaws3/IO.h
+ * apps/JAWS3/jaws3/Jaws_IO.cpp
+ * apps/JAWS3/jaws3/Jaws_IO.h
+ Renamed to Jaws_IO to fix problems on windows
+
+ * apps/JAWS3/jaws3/Asynch_IO.cpp
+ * apps/JAWS3/jaws3/Asynch_IO.h
+ * apps/JAWS3/jaws3/Asynch_IO_Helpers.h
+ * apps/JAWS3/jaws3/jaws3.mpc
+ * apps/JAWS3/jaws3/Makefile.am
+ * apps/JAWS3/jaws3/Reactive_IO.cpp
+ * apps/JAWS3/jaws3/Reactive_IO.h
+ * apps/JAWS3/jaws3/Reactive_IO_Helpers.h
+ * apps/JAWS3/jaws3/Synch_IO.cpp
+ * apps/JAWS3/jaws3/Synch_IO.h
+ * apps/JAWS3/jaws3/Templates.cpp
+ Updated includes and filenames
+
+Fri May 22 08:31:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Module.h:
+ Doxygen fixes
+
+Fri May 22 07:41:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/run_all.pl:
+ * bin/run_all_win32.pl:
+ Not maintained for some time and seems they are broken
+
+Fri May 22 07:26:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * apps/JAWS2/JAWS/IO.cpp
+ * apps/JAWS2/JAWS/IO.h
+ * apps/JAWS2/JAWS/Jaws_IO.cpp
+ * apps/JAWS2/JAWS/Jaws_IO.h
+ Renamed to Jaws_IO to fix problems on windows
+
+ * apps/JAWS2/JAWS/Concurrency.h
+ * apps/JAWS2/JAWS/IO_Acceptor.h
+ * apps/JAWS2/JAWS/IO_Handler.cpp
+ * apps/JAWS2/JAWS/jaws2.mpc
+ * apps/JAWS2/JAWS/Makefile.am
+ * apps/JAWS2/JAWS/Pipeline_Tasks.cpp
+ * apps/JAWS2/JAWS/Server.cpp
+ Updated includes and filenames
+
+Wed May 20 12:13:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX.pm:
+ * bin/PerlACE/ProcessVX_Unix.pm:
+ * bin/PerlACE/ProcessVX_Win32.pm:
+ * bin/PerlACE/ProcessWinCE.pm:
+ * bin/PerlACE/ProcessWinCE_Unix.pm:
+ Use SYSTEM_LIBS when they are defined. List of dlls that are
+ copied from the lib directory seperate by a semi colon
+
+Wed May 20 12:00:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/TestTarget.pm:
+ Added SYSTEM_LIBS support, these have to be copied before we
+ can run an executable
+
+Wed May 20 11:29:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/Process_Unix.pm:
+ Support cross platform testing
+
+Wed May 20 07:38:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.h:
+ * ace/OS_NS_stdio.inl:
+ On some platforms fileno is a macro
+
+ * ace/OS_NS_dirent.cpp:
+ Layout and const changes
+
+Tue May 19 13:23:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Added _WIN32_IE=0x0500 to RCFLAGS
+
+Tue May 19 13:14:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * contrib/FaCE/FaCE.mpc:
+ * contrib/FaCE/FaCENOACE.mpc:
+ Added missing lib
+
+Tue May 19 11:22:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Set RCFLAGS
+
+Tue May 19 10:12:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * contrib/FaCE/CE_Screen_Output.h:
+ Added missing include of stdio.h for FILE
+
+Tue May 19 07:13:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Mem_Map/IO-tests/IO_Test.cpp:
+ Use ACE_OS::fileno
+
+Tue May 19 06:52:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Countdown_Time.cpp (stop):
+ Make sure elapsed_time is equal or bigger then zero to prevent
+ expanding the max_wait_time at the moment the system time
+ has been changed. Thanks to Michael Guntli
+ <michael dot guntli at leica-geosystems dot com> for reporting this.
+
+Tue May 19 06:50:05 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/config-win32-cegcc.h
+ Removed compiler flags since they are now in platform_cegcc.GNU.
+
+Tue May 19 06:31:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Pass mandatory compiler flags from here
+
+Tue May 19 06:17:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ Added fileno to ACE_OS check
+
+Tue May 19 06:14:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.h:
+ * ace/OS_NS_stdio.inl:
+ Added fileno wrapper which returns ACE_HANDLE. The CEGCC developers
+ fixed their header files
+
+ * ace/ETCL/ETCL_l.cpp:
+ * ace/ETCL/ETCL_l.cpp.diff
+ Use ACE_OS::fileno
+
+ * ace/os_include/os_unistd.h:
+ Removed obsolete casts for WinCE
+
+ * ace/OS_NS_Thread.inl:
+ Const changes
+
+Mon May 18 19:58:35 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/config-aix-5.x.h: Add explicit instantiation for the
+ ACE_EXPORT_SINGLETON_DECLARE - the compiler needs to be forced to
+ generate the template code even if there's no use of it. Fixes
+ unsats for ACE_Utils::UUID_Generator singleton.
+ Also removed settings for AIX Visual Age, etc. earlier than V6.
+
+Mon May 18 17:11:28 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/UUID.cpp: Reverted:
+ Mon May 18 15:33:17 UTC 2009 Steve Huston <shuston@riverace.com>
+ It breaks g++ builds. Working on another solution...
+
+Mon May 18 15:33:17 UTC 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/UUID.cpp: Add explicit instantiation of UUID_Generator singleton.
+ Ensures the code is compiled; resolves missing extern sym on AIX.
+
+Mon May 18 14:44:27 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * bin/fuzz.pl:
+
+ Added and enabled check_for_TAO_Local_RefCounted_Object.
+
+Mon May 18 10:11:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/High_Res_Timer.cpp:
+ * ace/High_Res_Timer.inl:
+ Const changes
+
+ * ace/Token.h:
+ When not defined ACE_USES_WINCE_SEMA_SIMULATION use the
+ semaphore implementation
+
+Mon May 18 08:26:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Countdown_Time.cpp
+ * ace/Countdown_Time.h
+ * ace/Countdown_Time.inl
+ * ace/Makefile.am:
+ Added inline file for Countdown_Time
+
+ * ace/os_include/sys/os_time.h:
+ Removed workaround for deprecated sco
+
+Mon May 18 07:48:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Condition_Recursive_Thread_Mutex.cpp:
+ Const change
+
+ * ace/OS_NS_stdio.{h,inl}:
+ Removed ACE_OS::fileno(), gives problems with CE at this moment
+
+ * ace/Recursive_Thread_Mutex.cpp (get_nesting_level):
+ Disabled again for WinCE, the fact that it compiled is a bug
+ in the CEGCC header files
+
+ * ace/OS_NS_Thread.cpp:
+ Bool changes
+
+ * ace/OS_NS_stdlib.cpp:
+ WinCE has ExitProcess
+
+Mon May 18 06:45:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Recursive_Thread_Mutex.cpp (get_nesting_level):
+ Enabled for WinCE
+
+Mon May 18 06:17:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.{h,inl}:
+ Added ACE_OS::fileno()
+
+Mon May 18 06:15:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Dirent_Test.cpp:
+ Fixed argument not used warning
+
+ * tests/Based_Pointer_Test.cpp:
+ Improved debug message
+
+ * tests/Config_Test.cpp:
+ Const change
+
+ * tests/Thread_Pool_Reactor_Test.cpp:
+ Fixed rcsid
+
+Mon May 18 06:12:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/Reactor/TP_Reactor/AcceptHandler.cpp:
+ * examples/Reactor/TP_Reactor/server.cpp:
+ Use ACE_ERRNO_GET
+
+Sun May 17 10:34:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-cegcc.h:
+ Use lib prefix, the gcc toolchain expects it
+
+ * ace/Future.cpp:
+ Layout changes
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Just use the default lib prefix
+
+ * ace/Configuration.cpp:
+ Removed mingw check, that code also works with other compilers
+
+Sat May 16 18:03:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/OS/Process/imore.cpp:
+ Fixed cegcc compile warnings
+
+Fri May 15 13:57:29 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * bin/MakeProjectCreator/config/ipv6.mpb:
+
+ Replaced: specific(vc6, vc7, vc71, vc8, vc9, vc10, nmake, bmake, bds4)
+ With: specific(prop:windows)
+
+ Zapped references to em3, we no longer support that environement.
+
+ * bin/MakeProjectCreator/config/vcfullmacros.mpt:
+ * bin/MakeProjectCreator/config/vcpartialmacros.mpt:
+
+ Zapped references to em3, we no longer support that environement.
+
+Fri May 15 12:36:35 UTC 2009 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * ace/UUID.h:
+
+ Removed the unnecessary semicolon.
+
+Fri May 15 07:10:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Logging_Strategy_Test.cpp:
+ Added debug statement to assist in analyzing the cegcc failure
+
+Thu May 14 12:06:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Default_Constants.h:
+ Only define ACE_DLL_PREFIX when it has not been defined yet,
+ that way the mingw specific define can move to the mingw config
+ file
+
+ * ace/config-win32-mingw.h:
+ Define ACE_DLL_PREFIX here
+
+ * ace/OS_NS_dlfcn.inl:
+ Initialise pointer with 0
+
+ * ace/OS_NS_sys_mman.inl:
+ Const change
+
+ * ace/OS_NS_Thread.cpp:
+ Removed some not needed ACE_UNUSED_ARG
+
+ * ace/OS_Thread_Adapter.h:
+ * ace/Process.cpp:
+ * ace/Sig_Handler.cpp:
+ * ace/Thread_Manager.inl:
+ Layout change
+
+ * ace/Thread_Manager.cpp:
+ Const change, initialise pointer with 0
+
+Thu May 14 19:39:58 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * bin/MakeProjectCreator/config/ace_fl.mpb:
+ * bin/MakeProjectCreator/config/ace_gl.mpb:
+ * bin/MakeProjectCreator/config/ace_mc.mpb:
+ * bin/MakeProjectCreator/config/ace_qt.mpb:
+ * bin/MakeProjectCreator/config/ace_x11.mpb:
+ * bin/MakeProjectCreator/config/acedefaults.mpb:
+ * bin/MakeProjectCreator/config/crosscompile.mpb:
+
+ Replaced: specific(nmake, vc71, vc8, vc9, vc10)
+ With: specific(prop:microsoft)
+
+Thu May 14 18:27:53 UTC 2009 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * ace/UUID.h:
+ * ace/UUID.cpp:
+
+ Fixed compilation errors related to namespace issues when
+ declaring the UUID_Generator singleton.
+
+Thu May 14 10:18:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Process_Manager_Test.cpp:
+ Set the process_name in the process options for WinCE
+
+Thu May 14 10:10:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Network_Adapters_Test.cpp:
+ Only register signal handlers for SIGINT, SIGQUIT and SIGTERM when
+ they are not equal zero
+
+ * tests/Process_Manager_Test.cpp:
+ Const changes, prefix increment/decrement
+
+Thu May 14 07:17:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/DLL_Test.cpp:
+ Directly assign a local variable
+
+ * tests/Message_Queue_Notifications_Test.cpp:
+ * tests/Message_Queue_Test.cpp:
+ * tests/Multicast_Test.cpp
+ Initialise some pointers with 0
+
+Thu May 14 00:01:54 UTC 2009 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * ace/UUID.h:
+ * ace/UUID.inl:
+ * ace/UUID.cpp:
+ * tests/UUID_Test.cpp:
+
+ The constructor for the UUID generator now calls init ().
+
+ Added ACE_SINGLETON_DECLARE to the UUID_GENERATOR singleton
+ so it will be properly exported from the ACE library.
+
+Wed May 13 17:02:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Network_Adapters_Test.cpp:
+ When registering the signal handlers fails also print the
+ signal number that failed
+
+Tue May 12 18:26:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * netsvcs/lib/Client_Logging_Handler.cpp
+ * protocols/tests/HTBP/Reactor_Tests/client.cpp
+ * protocols/tests/HTBP/Send_Large_Msg/client.cpp
+ More usage of ACE_ERRNO_GET
+
+Tue May 12 12:35:07 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * apps/gperf/src/Key_List.cpp:
+
+ Fixed an incorrect check which resulted in valgrind warning.
+
+Tue May 12 08:31:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_errno.h:
+ Added ACE_ERRNO_GET, this has to be used when errno is passed to a
+ C variable length argument . With WinCE errno is a class instance
+ which we can't pass through a variable length argument, the cegcc
+ compiler gives a warning about this, it results to an abort at
+ runtime. ACE_ERRNO_GET will return the errno as int with WinCE
+
+ * ace/DLL_Manager.cpp:
+ * examples/Reactor/TP_Reactor/AcceptHandler.cpp:
+ * examples/Reactor/TP_Reactor/client.cpp:
+ * examples/Reactor/TP_Reactor/ReadHandler.cpp:
+ * tests/Mem_Map_Test.cpp:
+ * tests/MT_Reactor_Timer_Test.cpp:
+ * tests/MT_SOCK_Test.cpp:
+ * tests/New_Fail_Test.cpp:
+ * tests/Priority_Task_Test.cpp:
+ * tests/Reactor_Performance_Test.cpp:
+ * tests/SOCK_Connector_Test.cpp:
+ * tests/Thread_Pool_Reactor_Resume_Test.cpp:
+ Use ACE_ERRNO_GET
+
+ * tests/Reactor_Notify_Test.cpp:
+ Fixed typo in comment
+
+Mon May 11 18:28:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Sock_Connect.cpp:
+ Some WinCE workarounds are only needed for older WinCE versions
+ and when IPv6 is enabled
+
+Mon May 11 18:17:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_unistd.cpp:
+ * ace/Pagefile_Memory_Pool.cpp:
+ * ace/Pagefile_Memory_Pool.h:
+ Fixed cegcc compile warnings
+
+Sun May 10 14:50:46 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * m4/aio.m4 (Test_Aio): Removed all the commented out 'cout'
+ lines. Thanks to Johnny for this suggestion.
+
+Sat May 9 03:29:08 UTC 2009 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
+
+ * m4/aio.m4: Change #include <iostream.h> to #include <iostream>.
+ Thanks to Boyan Kasarov <bkasarov at gmail dot com> for
+ reporting this.
+
+Mon May 11 06:54:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_stdio.inl (fflush):
+ Don't handle fflush(0) special for VxWorks. On VxWorks
+ fflush(0) is not supported and returns -1, just pass that
+ error back to the caller and not hide it.
+
+ * ace/Mem_Map_Test.cpp:
+ Updated for VxWorks 6.7
+
+Sun May 10 10:31:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/*
+ Changed the _ in the directory names to ., the MPC clonebuild tree
+ can handle the .d now
+
+Thu May 7 01:32:22 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * ace/Process.cpp(command_line):
+
+ Added check for buffer overflow. Thanks to Russ
+ Noseworthy <j dot russell dot noseworthy at saic dot com>
+ for submitting the patch.
+
+ * Monitor_Admin.h:
+ * Monitor_Control/Auto_Update_Starter.h:
+
+ Cosmetic changes.
+
+Tue May 5 13:23:57 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * apps/drwho/CM_Server.cpp:
+ Fixed memset's parameter order.
+
+Sat May 2 03:21:01 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * include/makeinclude/rules.lib.GNU:
+ * include/makeinclude/wrapper_macros.GNU:
+ Moved the definition of LIB_PREFIX from rules.lib.GNU to
+ wrapper_macros.GNU.
+ Now that the checks for library dependencies (i.e. the LIB_CHECK
+ variable) depends on LIB_PREFIX, this latter variable needs to
+ be defined in all Makefiles.
+ However, Makefiles for binaries do not include rules.lib.GNU.
+ I am pretty sure they call include wrapper_macros, thus my
+ choice for the new location.
+
+Fri May 1 18:54:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/*
+ Changed the . in the directory names to _, the MPC clonebuild tree
+ can't handle that
+
+Fri May 1 18:35:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.cpp (add_to_argv):
+ Do nothing if the length of the string is zero
+
+Fri May 1 18:17:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_Thread.cpp:
+ Only add the arg from vx_execae when the string has data.
+
+Fri May 1 17:46:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Map_Manager_Test.cpp:
+ If table_size equals zero we fail directly
+
+Fri May 1 17:29:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Default_Constants.h:
+ Made sure ACE_DEFAULT_TIMERS is defined and not zero
+
+Fri May 1 12:27:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Default_Constants.h:
+ ACE_DEFAULT_MAP_SIZE and ACE_DEFAULT_TIMERS shouldn't be zero
+
+Fri May 1 12:19:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/INET_Addr_Test_IPV6.cpp:
+ No need for ACE_UNUSED_ARG
+
+ * tests/Map_Manager_Test.cpp:
+ Use ACE_TEST_ASSERT and added some more checks
+
+ * tests/test_config.h:
+ Removed ghs workaround and check return value of log_msg open
+ call
+
+Fri May 1 11:43:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Event_Handler.cpp:
+ Initialise members in the ACE_Notification_Buffer constructor
+
+ * ace/Log_Record.h:
+ Doxygen fix
+
+ * ace/Notification_Queue.cpp:
+ Layout change
+
+ * ace/Select_Reactor_Base.cpp:
+ Small code simplification
+
+Fri May 1 09:13:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/fuzz.pl:
+ opt files are allowed in svn
+
+ * bin/make_release.py:
+ Don't generate Pocket PC 2003 and Smartphone 2003 projects
+
+Fri May 1 07:37:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/ace-tao-rpmlintrc.txt:
+ Fixed line wrapper
+
+ * rpmbuild/ace-tao.txt:
+ Removed, we are not maintaining this file anymore
+
+ * rpmbuild/README:
+ Small updates
+
+Fri May 1 07:31:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/*:
+ Changed location of config files for suse
+
+Fri May 1 07:15:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * rpmbuild/*:
+ Extract all archives and put them in subdirectories, makes it much
+ easier to update these files
+
+Wed Apr 29 16:30:05 2009 Steve Huston <shuston@riverace.com>
+
+ * ace/Asynch_Acceptor.cpp (handle_accept): Pass the ACT to accept()
+ when restarting the accept. Thanks to Dicky for this fix.
+
+ * THANKS: Added Dicky <qianchendi at gmail dot com>.
+
+Wed Apr 29 13:52:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/APG/Active_Objects/active_objects.mpc
+ * examples/APG/Config/config.mpc
+ * examples/APG/Containers/containers.mpc
+ * examples/APG/Misc_IPC/misc_ipc.mpc
+ * examples/APG/Naming/naming.mpc
+ * examples/APG/Proactor/proactor.mpc
+ * examples/APG/Processes/processes.mpc
+ * examples/APG/Shared_Memory/shared_memory.mpc
+ * examples/APG/Streams/streams.mpc
+ * examples/APG/Svc_Config/svc_config.mpc
+ * examples/APG/ThreadPools/threadpools.mpc
+ * examples/APG/ThreadSafety/threadsafety.mpc
+ * examples/ASX/Event_Server/Event_Server/Event.mpc
+ * examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc
+ * examples/C++NPv1/C++NPv1.mpc
+ * examples/C++NPv2/C++NPv2.mpc
+ * examples/Connection/blocking/Connection_Blocking.mpc
+ * examples/Connection/misc/Connection_Misc.mpc
+ * examples/Connection/non_blocking/Connection_Non_Blocking.mpc
+ * examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc
+ * examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc
+ * examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc
+ * examples/IPC_SAP/FILE_SAP/file_sap_client.mpc
+ * examples/IPC_SAP/SOCK_SAP/sock_sap.mpc
+ * examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc
+ * examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc
+ * examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc
+ * examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc
+ * examples/Misc/Misc.mpc
+ * examples/Naming/Naming.mpc
+ * examples/OS/Process/OS_Process.mpc
+ * examples/QOS/Diffserv/QOS_Diffserv.mpc
+ * examples/Reactor/Dgram/Reactor_Dgram.mpc
+ * examples/Reactor/FIFO/Reactor_FIFO.mpc
+ * examples/Reactor/Proactor/Proactor.mpc
+ * examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc
+ * examples/Semaphores/Semaphores.mpc
+ * examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.mpc
+ * examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc
+ * examples/Shared_Malloc/Shared_Malloc.mpc
+ * examples/Shared_Memory/Shared_Memory.mpc
+ * examples/Synch/Synch.mpc
+ * examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc
+ * examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc
+ * examples/Threads/Threads.mpc
+ * examples/Web_Crawler/Web_Crawler.mpc
+ Use the avoids_ace_for_tao base project
+
+Wed Apr 29 09:47:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/MakeProjectCreator/templates/gnu.mpd:
+ Don't use a harcoded lib prefix when checking the existance of the
+ libraries, but use $(LIB_PREFIX)
+
+Wed Apr 29 09:29:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Set LIB_PREFIX to empty
+
+Wed Apr 29 06:09:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ * include/makeinclude/platform_vxworks6.7.GNU:
+ Moved the workaround to the vxworks 6.7 file
+
+Tue Apr 28 18:52:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SSL/SSL_Context.cpp (set_mode):
+ Fix compile error with OpenSSL 1.0 beta 2. Thanks to
+ Jules Colding <colding at 42tools dot com> for reporting this
+
+Tue Apr 28 18:33:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessVX_Unix.pm
+ * bin/PerlACE/ProcessVX_Win32.pm
+ * bin/PerlACE/ProcessWinCE.pm
+ * bin/PerlACE/ProcessWinCE_Unix.pm
+ * bin/PerlACE/TestTarget_VxWorks.pm
+ Improved waiting for the prompt
+
+Tue Apr 28 18:00:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ No prelib for cegcc
+
+Tue Apr 28 17:42:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/PerlACE/ProcessWinCE_Unix.pm:
+ * bin/PerlACE/TestTarget_WinCE.pm:
+ Extended for WinCE cross platform testing
+
+Tue Apr 28 11:42:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SSL/SSL_Context.cpp (set_mode):
+ Reverted change below, it breaks current ssl support
+
+Tue Apr 28 09:39:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SSL/SSL_Context.cpp (set_mode):
+ Fix compile error with OpenSSL 1.0 beta 2. Thanks to
+ Jules Colding <colding at 42tools dot com> for reporting this
+
+Tue Apr 28 09:30:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_vxworks6.3.GNU:
+ Fixed vxworks 6.7 rtp shared library link
+
+Tue Apr 28 09:26:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_unistd.cpp:
+ Fixed vxworks warning
+
+ * ace/Service_Object.cpp:
+ Layout changes
+
+Tue Apr 28 07:58:16 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * bin/PerlACE/ProcessVX.pm:
+ * bin/PerlACE/ProcessWinCE_Unix.pm:
+ * bin/PerlACE/Run_Test.pm:
+ * bin/PerlACE/TestTarget_WinCE.pm:
+ Changed to run Windows CE tests, build with CE gcc, on Linux.
+
+Fri Apr 24 20:40:16 UTC 2009 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * docs/ace_guidelines.vsmacros:
+
+ Excluded Purify files from edit macros.
+
+Fri Apr 24 12:21:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Condition_Recursive_Thread_Mutex.h:
+ Doxygen change
+
+ * ace/config-cygwin32.h:
+ Change for Cygwin 1.7
+
+ * ace/OS_NS_unistd.cpp (num_processors_online):
+ Don't use a hard max of 32.
+
+Wed Apr 22 10:14:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_unistd.cpp:
+ Implemented num_processors and num_processors_online using the
+ VxWorks cpu lib
+
+ * ace/config-vxworks6.6.h:
+ VxWorks 6.6 and newer have cpuLib
+
+ * ace/OS_NS_unistd.inl:
+ Const change
+
+Wed Apr 22 09:48:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op_T.cpp:
+ * ace/Guard_T.cpp:
+ Fixed compile problems when ACE_HAS_DUMP is enabled. Thanks to
+ Skrzyniarz Alexandre <alexandre dot skrzyniarz at fr dot thalesgroup dot com>
+ for reporting this
+
+Tue Apr 21 14:50:23 UTC 2009 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * docs/ace_guidelines.vsmacros:
+
+ Prevented the macros from saving .rc files.
+
+Tue Apr 21 13:50:48 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+
+ Fixed the olddate to be consistent with the release of 5.6.9.
+
+Tue Apr 21 07:02:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * examples/OS/Process/imore.cpp:
+ * tests/Recursive_Mutex_Test.cpp:
+ Fixed cegcc warning
+
+Mon Apr 20 20:01:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/OS_NS_string.cpp:
+ Fixed argument not used warning
+
+Mon Apr 20 19:51:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Malloc_Test.cpp:
+ Fixed argument not used warning with cegcc
+
+Mon Apr 20 18:16:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ dlltool is also dependent on architecture
+
+Mon Apr 20 18:08:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/ETCL/ETCL_l.cpp:
+ * ace/ETCL/ETCL_l.cpp.diff:
+ Added a cast for WinCE with GCC
+
+Mon Apr 20 17:47:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/WFMO_Reactor.cpp:
+ Fixed argument not used warning with WinCE
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ dlltool is also dependent on architecture
+
+Mon Apr 20 17:43:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Sock_Connect.cpp:
+ Include iphlpapi.h with all lower cases to resolve compile
+ error when using cross compilation using a linux host
+
+Mon Apr 20 17:39:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/os_unistd.h:
+ Added a cast to resolve cegcc compile error
+
+Mon Apr 20 17:34:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/os_include/os_errno.h:
+ Prevent redefinitions and when we don't have errno.h, define
+ the error numbers if they are not defined yet. Needed for cegcc
+
+Mon Apr 20 17:26:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-win32-cegcc.h:
+ Include _mingw.h and check the MinGW version
+
+Mon Apr 20 17:16:06 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/config-win32-cegcc.h:
+ Fixes compiler error on CE gcc
+
+Mon Apr 20 13:52:06 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/config-win32-cegcc.h:
+ Made a few define's CE gcc version depended.
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Included ACE_HAS_CEGCC as define
+
+Mon Apr 20 12:53:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/wrapper_macros.GNU:
+ For quantify use PURELINK, quantify shouldn't be used when
+ linking a shared library. This fixes bugzilla 1865, thanks
+ to <moyyo at freetekno dot cz> for reporting this.
+
+Mon Apr 20 11:40:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/wrapper_macros.GNU:
+ Addes support for SOLINK.cc.override
+
+Mon Apr 20 11:38:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Only set COMPARCH when it has not been set yet
+
+Mon Apr 20 10:17:32 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * ace/Basic_Types.h:
+ * ace/config-WinCE.h:
+ * ace/OS_NS_stropts.h:
+ * ace/OS_NS_sys_socket.h:
+ * ace/OS_NS_Thread.cpp:
+ Removed WinCE support for versions < 5.0.
+
+ * ace/config-win32-cegcc.h:
+ Removed temporary defines.
+
+ * ace/config-win32-common.h:
+ Replaced UNDER_CE with _WIN32_WCE.
+
+ * ace/OS_main.cpp:
+ * ace/OS_main.h:
+ Removed CE gcc compiler warning by
+ adding destructor.
+
+ * ace/OS_NS_Thread.inl:
+ Removed WinCE support for versions before 5.0.
+ Added ACE_LACKS_CE_THREAD_PRIORITY define in order
+ to compile on CE gcc.
+
+ * ace/Process.cpp:
+ Removed CE gcc compiler warning by
+ using ACE_UNUSED_ARG.
+
+ * ace/Registry.cpp:
+ * ace/Registry.h:
+ Removed CE gcc compiler warning by
+ adding destructor.
+ Removed CE gcc compiler warning by
+ using ACE_UNUSED_ARG.
+
+ * ace/SV_Semaphore_Simple.cpp:
+ Removed pragma's for CE gcc compiler. Removed
+ check on ACE_WIN64 define.
+
+ * include/makeinclude/platform_cegcc.GNU:
+ Default platform macros for CE gcc compiler.
+
+ * include/makeinclude/platform_gnuwin32_common.GNU:
+ Added support for CE gcc compiler.
+
+Mon Apr 20 09:01:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-vxworks6.6.h:
+ * ace/config-vxworks6.4.h:
+ VxWorks 6.6 and newer have cpuset_t and taskCpuAffinitySet
+
+Mon Apr 20 08:51:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-vxworks6.6.h:
+ * NEWS:
+ Enabled the vxAtomicLib by default for VxWorks 6.6 and newer.
+ If you don't want to use this library, undef ACE_HAS_VXATOMICLIB
+ in your config.h file
+
+Mon Apr 20 08:45:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Sock_Connect.cpp:
+ Another fix for HPUX
+
+Sun Apr 19 19:10:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/config-hpux-11.00.h
+ * ace/Sock_Connect.cpp:
+ Added ACE_HAS_STRUCT_LIFNUM, hpux doesn't have this
+
+Sun Apr 19 06:57:04 UTC 2009 James H. Hill <hillj@isis.vanderbilt.edu>
+
+ * ace/UUID.h:
+ * ace/UUID.inl:
+ * ace/UUID.cpp:
+ * tests/UUID_Test.cpp:
+
+ Redesigned the internal structure of the UUID so that its key
+ data members are a contiguous chunk of memory.
+
+ Implemented a hash () method for the UUID. This will enable it
+ to be used in ACE_Hash_Map_Manager objects.
+
+ Remvoed the default constructor (), copy constructor () and
+ assignmetnt operator from the UUID_Node object since the UUID
+ performs such operations.
+
+Fri Apr 17 15:06:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * debianbuild/patches/19-gcc43.dpatch:
+ Removed, not needed anymore
+
+Fri Apr 17 15:03:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/Atomic_Op.{h,inl}:
+ Added support for VxWorks vxAtomicLib. If you want to use
+ that library add ACE_HAS_VXATOMICLIB to your config.h file
+
+ * ace/config-vxworks6.4.h:
+ VxWorks 6.4 has cpuset_t and taskCpuAffinitySet
+
+ * ace/os_include/os_sched.h:
+ VxWorks has cpuset_t
+
+ * ace/OS_NS_sys_mman.inl:
+ Updated VxWorks version checks
+
+ * ace/OS_NS_sys_utsname.cpp:
+ const change
+
+ * ace/OS_NS_Thread.cpp:
+ Added support for taskCpuAffinitySet
+
+ * ace/Sock_Connect.cpp:
+ Changed the checks for VxWorks to correctly detect which
+ implementation of get_ip_interfaces we have to use
+
+ * rpmbuild/ace-tao-orbsvcs-daemon.patch:
+ This patch doesn't work anymore with svn head, if this
+ is a real issue, it has to be addressed in the real code
+ and not with a patch. This should already be possible with
+ the -ORBDeamon flag
+
+ * rpmbuild/ace-tao-ciao.spec:
+ Don't apply ace-tao-orbsvcs-daemon.patch, fixed a small
+ provides bug
+
+Thu Apr 16 16:03:32 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+ * bin/diff-builds-and-group-fixed-tests-only.sh:
+ * bin/make_release.py:
+ * docs/Download.html:
+ * docs/bczar/bczar.html:
+ * etc/index.html:
+ * rpmbuild/ace-tao-ciao.spec:
+
+ Updated in anticipation of 5.7 release.
+
+Tue Apr 14 10:06:19 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * ACE version 5.6.9 released.
+
Tue Apr 14 13:57:16 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
* NEWS:
-
+
Reworded entries to be consistent with release note.
Mon Apr 13 12:19:18 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
diff --git a/ACE/NEWS b/ACE/NEWS
index a021ceb6126..bdd3c3828b9 100644
--- a/ACE/NEWS
+++ b/ACE/NEWS
@@ -3,6 +3,19 @@ PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
. RPM packaging as part of the release process by the doc_group (Remedy and user community)
+USER VISIBLE CHANGES BETWEEN ACE-5.6.9 and ACE-5.7.0
+====================================================
+
+. Added support for the VxWorks vxAtomicLib which is available with VxWorks 6.6
+ and newer. If you don't want to use this library undef ACE_HAS_VXATOMICLIB
+ in your config.h file
+
+. Added support for C++ Builder 2009 Update 3
+
+. Added support for ACE/TAO using the CEGCC project
+
+. Added support for upcoming Fedora 11 and OpenSuSE Factory
+
USER VISIBLE CHANGES BETWEEN ACE-5.6.8 and ACE-5.6.9
====================================================
diff --git a/ACE/PROBLEM-REPORT-FORM b/ACE/PROBLEM-REPORT-FORM
index 867dc761d14..9ae33d167f3 100644
--- a/ACE/PROBLEM-REPORT-FORM
+++ b/ACE/PROBLEM-REPORT-FORM
@@ -60,6 +60,9 @@ Subject: [area]: [synopsis]
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:
+ BUILD METHOD USED:
+[Experimental ./configure or traditional makefile/project file?]
+
CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):
diff --git a/ACE/THANKS b/ACE/THANKS
index ba3d67a097d..57e4611943e 100644
--- a/ACE/THANKS
+++ b/ACE/THANKS
@@ -1,4 +1,4 @@
-ACKNOWLEDGEMENTSACKNOWLEDGEMENTS
+ACKNOWLEDGEMENTS
ACE and TAO have been deeply influenced and improved by the following
members of my research group at Washington University in St. Louis, the
@@ -2286,6 +2286,12 @@ Alon Diamant <diamant at alon at gmail dot com>
Igor Rayak <igor dot rayak at gmail dot com>
Shai Kedem <shai_kedem at hotmail dot com>
Steve Ramsay <steve dot ramsay at caris dot com>
+<moyyo at freetekno dot cz>
+Skrzyniarz Alexandre <alexandre dot skrzyniarz at fr dot thalesgroup dot com>
+Rob Beekmans <r dot a dot beekmans at philips dot com>
+Steven Hartmann <shartmann at militho dot com>
+Dicky <qianchendi at gmail dot com>
+Boyan Kasarov <bkasarov at gmail dot com>
I would particularly like to thank Paul Stephenson, who worked with me
at Ericsson in the early 1990's. Paul devised the recursive Makefile
diff --git a/ACE/VERSION b/ACE/VERSION
index d7de97c5ce3..14c5d93eb60 100644
--- a/ACE/VERSION
+++ b/ACE/VERSION
@@ -1,4 +1,4 @@
-This is ACE version 5.7, released Tue Apr 14 09:48:27 CDT 2009
+This is ACE version 5.7, released Mon Jun 22 09:33:40 CDT 2009
If you have any problems with or questions about ACE, please send
email to the ACE mailing list (ace-users@cs.wustl.edu), using the form
diff --git a/ACE/ace/Asynch_Acceptor.cpp b/ACE/ace/Asynch_Acceptor.cpp
index 1930967ad08..d87ca0d07dc 100644
--- a/ACE/ace/Asynch_Acceptor.cpp
+++ b/ACE/ace/Asynch_Acceptor.cpp
@@ -338,7 +338,7 @@ ACE_Asynch_Acceptor<HANDLER>::handle_accept (const ACE_Asynch_Accept::Result &re
&& result.error () != ECANCELED
#endif
)
- this->accept (this->bytes_to_read_);
+ this->accept (this->bytes_to_read_, result.act ());
}
template <class HANDLER> int
diff --git a/ACE/ace/Atomic_Op.h b/ACE/ace/Atomic_Op.h
index 24abb64ef1d..6c8f5c3809a 100644
--- a/ACE/ace/Atomic_Op.h
+++ b/ACE/ace/Atomic_Op.h
@@ -43,6 +43,8 @@
# endif /* ACE_HAS_INTERLOCKED_EXCHANGEADD */
# elif defined (ACE_HAS_INTEL_ASSEMBLY)
# define ACE_HAS_BUILTIN_ATOMIC_OP
+# elif defined (ACE_HAS_VXATOMICLIB)
+# define ACE_HAS_BUILTIN_ATOMIC_OP
# endif /* WIN32 */
#endif /* ACE_HAS_THREADS */
diff --git a/ACE/ace/Atomic_Op.inl b/ACE/ace/Atomic_Op.inl
index 4d55f05b091..a79cc9e230e 100644
--- a/ACE/ace/Atomic_Op.inl
+++ b/ACE/ace/Atomic_Op.inl
@@ -10,6 +10,10 @@
#pragma intrinsic (_InterlockedExchange, _InterlockedExchangeAdd, _InterlockedIncrement, _InterlockedDecrement)
#endif /* ACE_HAS_INTRINSIC_INTERLOCKED */
+#if defined (ACE_HAS_VXATOMICLIB)
+# include <vxAtomicLib.h>
+#endif
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE
@@ -38,6 +42,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ (void)
return ::_InterlockedIncrement (const_cast<long *> (&this->value_));
#elif defined (WIN32)
return ::InterlockedIncrement (const_cast<long *> (&this->value_));
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return ::vxAtomicInc (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_))) + 1;
#else /* WIN32 */
return (*increment_fn_) (&this->value_);
#endif /* WIN32 */
@@ -56,6 +62,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-- (void)
return ::_InterlockedDecrement (const_cast<long *> (&this->value_));
#elif defined (WIN32)
return ::InterlockedDecrement (const_cast<long *> (&this->value_));
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return ::vxAtomicDec (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_))) - 1;
#else /* WIN32 */
return (*decrement_fn_) (&this->value_);
#endif /* WIN32 */
@@ -76,6 +84,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator+= (long rhs)
#elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
return ::InterlockedExchangeAdd (const_cast<long *> (&this->value_),
rhs) + rhs;
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return ::vxAtomicAdd (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs) + rhs;
#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
return (*exchange_add_fn_) (&this->value_, rhs) + rhs;
#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
@@ -90,6 +100,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator-= (long rhs)
#elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
return ::InterlockedExchangeAdd (const_cast<long *> (&this->value_),
-rhs) - rhs;
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return ::vxAtomicSub (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs) - rhs;
#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
return (*exchange_add_fn_) (&this->value_, -rhs) - rhs;
#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
@@ -138,6 +150,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (long rhs)
::_InterlockedExchange (const_cast<long *> (&this->value_), rhs);
#elif defined (WIN32)
::InterlockedExchange (const_cast<long *> (&this->value_), rhs);
+#elif defined (ACE_HAS_VXATOMICLIB)
+ ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs);
#else /* WIN32 */
(*exchange_fn_) (&this->value_, rhs);
#endif /* WIN32 */
@@ -152,6 +166,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator= (
::_InterlockedExchange (const_cast<long *> (&this->value_), rhs.value_);
#elif defined (WIN32)
::InterlockedExchange (const_cast<long *> (&this->value_), rhs.value_);
+#elif defined (ACE_HAS_VXATOMICLIB)
+ ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (&this->value_)), rhs.value_);
#else /* WIN32 */
(*exchange_fn_) (&this->value_, rhs.value_);
#endif /* WIN32 */
@@ -197,6 +213,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator++ (void)
return static_cast<unsigned long> (::_InterlockedIncrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
#elif defined (WIN32)
return static_cast<unsigned long> (::InterlockedIncrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return static_cast<unsigned long> (::vxAtomicInc (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))))) + 1;
#else /* WIN32 */
return static_cast<unsigned long> ((*increment_fn_) (reinterpret_cast<volatile long *> (&this->value_)));
#endif /* WIN32 */
@@ -215,6 +233,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-- (void)
return static_cast<unsigned long> (::_InterlockedDecrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
#elif defined (WIN32)
return static_cast<unsigned long> (::InterlockedDecrement (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))));
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return static_cast<unsigned long> (::vxAtomicDec (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))))) - 1;
#else /* WIN32 */
return static_cast<unsigned long> ((*decrement_fn_) (reinterpret_cast<volatile long *> (&this->value_)));
#endif /* WIN32 */
@@ -235,6 +255,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator+= (unsigned long rhs)
#elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
return static_cast<unsigned long> (::InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast <volatile long *>(&this->value_)),
rhs)) + rhs;
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return static_cast<unsigned long> (::vxAtomicAdd (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))), rhs)) + rhs;
#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs)) + rhs;
#endif /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
@@ -249,6 +271,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator-= (unsigned long rhs)
#elif defined (WIN32) && defined (ACE_HAS_INTERLOCKED_EXCHANGEADD)
return static_cast<unsigned long> (::InterlockedExchangeAdd (const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_)),
-static_cast<long>(rhs))) - rhs;
+#elif defined (ACE_HAS_VXATOMICLIB)
+ return static_cast<unsigned long> (::vxAtomicSub (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long *>(&this->value_))), rhs)) - rhs;
#else /* WIN32 && ACE_HAS_INTERLOCKED_EXCHANGEADD */
long l_rhs = static_cast<long> (rhs);
return static_cast<unsigned long> ((*exchange_add_fn_) (reinterpret_cast<volatile long *> (&this->value_), -l_rhs)) - rhs;
@@ -298,6 +322,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (unsigned long rhs)
::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs);
#elif defined (WIN32)
::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs);
+#elif defined (ACE_HAS_VXATOMICLIB)
+ ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), rhs);
#else /* WIN32 */
(*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs);
#endif /* WIN32 */
@@ -312,6 +338,8 @@ ACE_Atomic_Op<ACE_Thread_Mutex, unsigned long>::operator= (
::_InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs.value_);
#elif defined (WIN32)
::InterlockedExchange (const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_)), rhs.value_);
+#elif defined (ACE_HAS_VXATOMICLIB)
+ ::vxAtomicSet (reinterpret_cast <atomic_t*>(const_cast<long *> (reinterpret_cast<volatile long*> (&this->value_))), rhs.value_);
#else /* WIN32 */
(*exchange_fn_) (reinterpret_cast<volatile long *> (&this->value_), rhs.value_);
#endif /* WIN32 */
diff --git a/ACE/ace/Atomic_Op_T.cpp b/ACE/ace/Atomic_Op_T.cpp
index ad8f6b01059..87ae8e78027 100644
--- a/ACE/ace/Atomic_Op_T.cpp
+++ b/ACE/ace/Atomic_Op_T.cpp
@@ -38,7 +38,7 @@ ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::dump (void) const
// ACE_TRACE ("ACE_Atomic_Op_Ex<ACE_LOCK, TYPE>::dump");
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
this->mutex_.dump ();
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
+ ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP, this));
#endif /* ACE_HAS_DUMP */
}
diff --git a/ACE/ace/Basic_Types.h b/ACE/ace/Basic_Types.h
index 0643cac467e..37f3481be15 100644
--- a/ACE/ace/Basic_Types.h
+++ b/ACE/ace/Basic_Types.h
@@ -349,13 +349,6 @@ typedef unsigned char ACE_Byte;
# define ACE_SIZEOF_VOID_P ACE_SIZEOF_LONG
# endif /* ACE_SIZEOF_VOID_P */
-// Type for doing arithmetic on pointers ... as elsewhere, we assume
-// that unsigned versions of a type are the same size as the signed
-// version of the same type.
-# if defined (ACE_HAS_WINCE) && (_WIN32_WCE < 400)
-typedef unsigned long ptrdiff_t; // evc3, PocketPC don't defined ptrdiff_t
-# endif
-
ACE_END_VERSIONED_NAMESPACE_DECL
// Byte-order (endian-ness) determination.
diff --git a/ACE/ace/Condition_Recursive_Thread_Mutex.cpp b/ACE/ace/Condition_Recursive_Thread_Mutex.cpp
index af80f4bfbfd..f95fdaf0939 100644
--- a/ACE/ace/Condition_Recursive_Thread_Mutex.cpp
+++ b/ACE/ace/Condition_Recursive_Thread_Mutex.cpp
@@ -78,7 +78,7 @@ ACE_Condition<ACE_Recursive_Thread_Mutex>::wait (ACE_Recursive_Thread_Mutex &mut
// returned with the lock held, but waiters primed and waiting to be
// released. At cond_wait below, the mutex will be released.
// On return, it will be reacquired.
- const int result = abstime == 0
+ int const result = abstime == 0
? ACE_OS::cond_wait (&this->cond_,
&mutex.get_nesting_mutex ())
: ACE_OS::cond_timedwait (&this->cond_,
diff --git a/ACE/ace/Condition_Recursive_Thread_Mutex.h b/ACE/ace/Condition_Recursive_Thread_Mutex.h
index cfcd46a9551..6fad971fc98 100644
--- a/ACE/ace/Condition_Recursive_Thread_Mutex.h
+++ b/ACE/ace/Condition_Recursive_Thread_Mutex.h
@@ -57,7 +57,7 @@ public:
/**
* Block on condition, or until absolute time-of-day has passed. If
- * abstime == 0 use "blocking" <wait> semantics. Else, if <abstime>
+ * abstime == 0 use "blocking" <wait> semantics. Else, if @a abstime
* != 0 and the call times out before the condition is signaled
* <wait> returns -1 and sets errno to ETIME.
*/
diff --git a/ACE/ace/Configuration.cpp b/ACE/ace/Configuration.cpp
index 823a2356a8a..68df0fdbbfe 100644
--- a/ACE/ace/Configuration.cpp
+++ b/ACE/ace/Configuration.cpp
@@ -4,6 +4,7 @@
#include "ace/SString.h"
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_strings.h"
+#include "ace/Tokenizer_T.h"
// Can remove this when import_config and export_config are removed from
// ACE_Configuration. They're deprecated at ACE 5.2.
@@ -518,11 +519,7 @@ ACE_Configuration_Win32Registry::open_section (const ACE_Configuration_Section_K
KEY_ALL_ACCESS,
0,
&result_key,
-#if defined (__MINGW32__)
(PDWORD) 0
-#else
- 0
-#endif /* __MINGW32__ */
)) != ERROR_SUCCESS)
{
errno = errnum;
@@ -540,7 +537,7 @@ ACE_Configuration_Win32Registry::open_section (const ACE_Configuration_Section_K
int
ACE_Configuration_Win32Registry::remove_section (const ACE_Configuration_Section_Key& key,
const ACE_TCHAR* sub_section,
- int recursive)
+ bool recursive)
{
if (validate_name (sub_section))
return -1;
@@ -574,13 +571,12 @@ ACE_Configuration_Win32Registry::remove_section (const ACE_Configuration_Section
0,
0) == ERROR_SUCCESS)
{
- remove_section (section, name_buffer, 1);
+ remove_section (section, name_buffer, true);
buffer_size = ACE_DEFAULT_BUFSIZE;
}
}
- int errnum;
- errnum = ACE_TEXT_RegDeleteKey (base_key, sub_section);
+ int const errnum = ACE_TEXT_RegDeleteKey (base_key, sub_section);
if (errnum != ERROR_SUCCESS)
{
errno = errnum;
@@ -1049,11 +1045,7 @@ ACE_Configuration_Win32Registry::resolve_key (HKEY hKey,
KEY_ALL_ACCESS,
0,
&subkey,
-#if defined (__MINGW32__)
(PDWORD) 0
-#else
- 0
-#endif /* __MINGW32__ */
)) !=ERROR_SUCCESS)
{
errno = errnum;
@@ -1595,7 +1587,7 @@ ACE_Configuration_Heap::open_simple_section (const ACE_Configuration_Section_Key
int
ACE_Configuration_Heap::remove_section (const ACE_Configuration_Section_Key& key,
const ACE_TCHAR* sub_section,
- int recursive)
+ bool recursive)
{
ACE_ASSERT (this->allocator_);
if (validate_name (sub_section))
@@ -1632,7 +1624,7 @@ ACE_Configuration_Heap::remove_section (const ACE_Configuration_Section_Key& key
ACE_TString name;
while (!enumerate_sections (section, index, name))
{
- if (remove_section (section, name.fast_rep (), 1))
+ if (remove_section (section, name.fast_rep (), true))
return -1;
++index;
diff --git a/ACE/ace/Configuration.h b/ACE/ace/Configuration.h
index 5126aeed622..bb30590ff05 100644
--- a/ACE/ace/Configuration.h
+++ b/ACE/ace/Configuration.h
@@ -177,7 +177,7 @@ public:
/**
* @param key Section key to remove the named section from.
* @param sub_section Name of the section to remove.
- * @param recursive If non zero, any subkeys below @a sub_section are
+ * @param recursive If true, any subkeys below @a sub_section are
* removed as well.
*
* @retval 0 for success.
@@ -185,7 +185,7 @@ public:
*/
virtual int remove_section (const ACE_Configuration_Section_Key &key,
const ACE_TCHAR *sub_section,
- int recursive) = 0;
+ bool recursive) = 0;
/**
* Enumerates through the values in a section.
@@ -483,7 +483,7 @@ public:
virtual int remove_section (const ACE_Configuration_Section_Key& key,
const ACE_TCHAR* sub_section,
- int recursive);
+ bool recursive);
virtual int enumerate_values (const ACE_Configuration_Section_Key& key,
int index,
@@ -805,7 +805,7 @@ public:
virtual int remove_section (const ACE_Configuration_Section_Key& key,
const ACE_TCHAR* sub_section,
- int recursive);
+ bool recursive);
virtual int enumerate_values (const ACE_Configuration_Section_Key& key,
int index,
diff --git a/ACE/ace/Countdown_Time.cpp b/ACE/ace/Countdown_Time.cpp
index 4c95e2acfa1..6a5731eafc2 100644
--- a/ACE/ace/Countdown_Time.cpp
+++ b/ACE/ace/Countdown_Time.cpp
@@ -5,6 +5,10 @@ ACE_RCSID (ace,
Countdown_Time,
"$Id$")
+#if !defined (__ACE_INLINE__)
+#include "ace/Countdown_Time.inl"
+#endif /* __ACE_INLINE__ */
+
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_Countdown_Time::ACE_Countdown_Time (ACE_Time_Value *max_wait_time)
@@ -29,20 +33,16 @@ ACE_Countdown_Time::start (void)
}
}
-bool
-ACE_Countdown_Time::stopped (void) const
-{
- return stopped_;
-}
-
void
ACE_Countdown_Time::stop (void)
{
- if (this->max_wait_time_ != 0 && this->stopped_ == false)
+ if (this->max_wait_time_ != 0 && !this->stopped_)
{
- ACE_Time_Value elapsed_time = ACE_OS::gettimeofday () - this->start_time_;
+ ACE_Time_Value const elapsed_time =
+ ACE_OS::gettimeofday () - this->start_time_;
- if (*this->max_wait_time_ > elapsed_time)
+ if (elapsed_time >= ACE_Time_Value::zero &&
+ *this->max_wait_time_ > elapsed_time)
{
*this->max_wait_time_ -= elapsed_time;
}
@@ -56,11 +56,4 @@ ACE_Countdown_Time::stop (void)
}
}
-void
-ACE_Countdown_Time::update (void)
-{
- this->stop ();
- this->start ();
-}
-
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/Countdown_Time.h b/ACE/ace/Countdown_Time.h
index 207b9045fcc..1d17c3aead7 100644
--- a/ACE/ace/Countdown_Time.h
+++ b/ACE/ace/Countdown_Time.h
@@ -22,6 +22,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Time_Value.h"
+#include "ace/Copy_Disabled.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -34,7 +35,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* time the stop() method is called the @c max_wait_time is
* updated.
*/
-class ACE_Export ACE_Countdown_Time
+class ACE_Export ACE_Countdown_Time : private ACE_Copy_Disabled
{
public:
/// Cache the @a max_wait_time and call @c start().
@@ -67,14 +68,14 @@ private:
/// Keeps track of whether we've already been stopped.
bool stopped_;
-
- // Prevent copying
- ACE_Countdown_Time (const ACE_Countdown_Time &);
- ACE_Countdown_Time &operator= (const ACE_Countdown_Time &);
};
ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
+#if defined (__ACE_INLINE__)
+#include "ace/Countdown_Time.inl"
+#endif /* __ACE_INLINE__ */
+
#endif /* ACE_COUNTDOWN_TIME_H */
diff --git a/ACE/ace/Countdown_Time.inl b/ACE/ace/Countdown_Time.inl
new file mode 100644
index 00000000000..3911ca85bda
--- /dev/null
+++ b/ACE/ace/Countdown_Time.inl
@@ -0,0 +1,20 @@
+// -*- C++ -*-
+//
+// $Id$
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+ACE_INLINE bool
+ACE_Countdown_Time::stopped (void) const
+{
+ return stopped_;
+}
+
+ACE_INLINE void
+ACE_Countdown_Time::update (void)
+{
+ this->stop ();
+ this->start ();
+}
+
+ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/DLL_Manager.cpp b/ACE/ace/DLL_Manager.cpp
index e161e2fd791..d8608ee71d9 100644
--- a/ACE/ace/DLL_Manager.cpp
+++ b/ACE/ace/DLL_Manager.cpp
@@ -153,7 +153,7 @@ ACE_DLL_Handle::open (const ACE_TCHAR *dll_name,
ACE_TEXT ("(\'%s\') failed, errno=")
ACE_TEXT ("%d: %s\n"),
name->c_str (),
- errno,
+ ACE_ERRNO_GET,
this->error ()->c_str ()));
#if defined (AIX)
diff --git a/ACE/ace/Default_Constants.h b/ACE/ace/Default_Constants.h
index 95da65760e3..f5f061661c7 100644
--- a/ACE/ace/Default_Constants.h
+++ b/ACE/ace/Default_Constants.h
@@ -18,7 +18,7 @@
#define ACE_DEFAULT_CONSTANTS_H
#include /**/ "ace/pre.h"
-// Included just keep compilers that see #pragma dierctive first
+// Included just keep compilers that see #pragma directive first
// happy.
#include /**/ "ace/config-all.h"
@@ -26,6 +26,9 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+// For _POSIX_TIMER_MAX
+#include "ace/os_include/os_limits.h"
+
// Define the default constants for ACE. Many of these are used for
// the ACE tests and applications. You can change these values by
// defining the macros in your config.h file.
@@ -310,6 +313,10 @@
# define ACE_DEFAULT_MAP_SIZE 1024
# endif /* ACE_DEFAULT_MAP_SIZE */
+# if defined (ACE_DEFAULT_MAP_SIZE) && (ACE_DEFAULT_MAP_SIZE == 0)
+# error ACE_DEFAULT_MAP_SIZE should not be zero
+# endif /* ACE_DEFAULT_MAP_SIZE */
+
// Defaults for ACE Timer Wheel
# if !defined (ACE_DEFAULT_TIMER_WHEEL_SIZE)
# define ACE_DEFAULT_TIMER_WHEEL_SIZE 1024
@@ -461,9 +468,13 @@
// Default number of ACE_Event_Handlers supported by
// ACE_Timer_Heap.
-# if !defined (ACE_DEFAULT_TIMERS)
-# define ACE_DEFAULT_TIMERS _POSIX_TIMER_MAX
-# endif /* ACE_DEFAULT_TIMERS */
+#if !defined (ACE_DEFAULT_TIMERS) && defined (_POSIX_TIMER_MAX)
+# define ACE_DEFAULT_TIMERS _POSIX_TIMER_MAX
+#endif /* ACE_DEFAULT_TIMERS */
+
+#if !defined (ACE_DEFAULT_TIMERS) || (defined (ACE_DEFAULT_TIMERS) && (ACE_DEFAULT_TIMERS == 0))
+#error ACE_DEFAULT_TIMERS should be defined and not be zero
+#endif /* ACE_DEFAULT_TIMERS */
#if defined (ACE_WIN32)
# define ACE_PLATFORM_A "Win32"
@@ -493,11 +504,9 @@
# define ACE_LD_SEARCH_PATH ACE_TEXT ("PATH")
# define ACE_LD_SEARCH_PATH_SEPARATOR_STR ACE_TEXT (";")
# define ACE_DLL_SUFFIX ACE_TEXT (".dll")
-# if defined (__MINGW32__)
-# define ACE_DLL_PREFIX ACE_TEXT ("lib")
-# else /* __MINGW32__ */
+# if !defined (ACE_DLL_PREFIX)
# define ACE_DLL_PREFIX ACE_TEXT ("")
-# endif /* __MINGW32__ */
+# endif /* !ACE_DLL_PREFIX */
#else /* !ACE_WIN32 */
# if !defined (ACE_LD_SEARCH_PATH)
# define ACE_LD_SEARCH_PATH ACE_TEXT ("LD_LIBRARY_PATH")
diff --git a/ACE/ace/Dev_Poll_Reactor.cpp b/ACE/ace/Dev_Poll_Reactor.cpp
index 7697bc48383..a49e9c40f4d 100644
--- a/ACE/ace/Dev_Poll_Reactor.cpp
+++ b/ACE/ace/Dev_Poll_Reactor.cpp
@@ -15,9 +15,7 @@ ACE_RCSID (ace,
# include "ace/OS_NS_fcntl.h"
# include "ace/OS_NS_stropts.h"
-# if defined (ACE_HAS_EVENT_POLL) && defined (linux)
-# include /**/ <sys/epoll.h>
-# elif defined (ACE_HAS_DEV_POLL)
+# if defined (ACE_HAS_DEV_POLL)
# if defined (linux)
# include /**/ <linux/devpoll.h>
# elif defined (HPUX_VERS) && HPUX_VERS < 1123
@@ -136,19 +134,16 @@ ACE_Dev_Poll_Reactor_Notify::notify (ACE_Event_Handler *eh,
ACE_UNUSED_ARG (timeout);
ACE_Dev_Poll_Handler_Guard eh_guard (eh);
- int notification_required =
- notification_queue_.push_new_notification (buffer);
-
- if (notification_required == -1)
+ // When using the queue, always try to write to the notify pipe. If it
+ // fills up, ignore it safely because the already-written bytes will
+ // eventually cause the notify handler to be dispatched.
+ if (-1 == this->notification_queue_.push_new_notification (buffer))
return -1; // Also decrement eh's reference count
// The notification has been queued, so it will be delivered at some
// point (and may have been already); release the refcnt guard.
eh_guard.release ();
- if (notification_required == 0)
- return 0;
-
// Now pop the pipe to force the callback for dispatching when ready. If
// the send fails due to a full pipe, don't fail - assume the already-sent
// pipe bytes will cause the entire notification queue to be processed.
@@ -440,55 +435,52 @@ ACE_Dev_Poll_Reactor_Notify::dump (void) const
// -----------------------------------------------------------------
-ACE_Dev_Poll_Reactor_Handler_Repository::
-ACE_Dev_Poll_Reactor_Handler_Repository (void)
+ACE_Dev_Poll_Reactor::Handler_Repository::Handler_Repository (void)
: max_size_ (0),
handlers_ (0)
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::ACE_Dev_Poll_Reactor_Handler_Repository");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::Handler_Repository");
}
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::invalid_handle (
+bool
+ACE_Dev_Poll_Reactor::Handler_Repository::invalid_handle (
ACE_HANDLE handle) const
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::invalid_handle");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::invalid_handle");
if (handle < 0 || handle >= this->max_size_)
{
errno = EINVAL;
- return 1;
+ return true;
}
else
- return 0;
+ return false;
}
-int
-ACE_Dev_Poll_Reactor_Handler_Repository::handle_in_range (
+bool
+ACE_Dev_Poll_Reactor::Handler_Repository::handle_in_range (
ACE_HANDLE handle) const
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::handle_in_range");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::handle_in_range");
if (handle >= 0 && handle < this->max_size_)
- return 1;
+ return true;
else
{
errno = EINVAL;
- return 0;
+ return false;
}
}
int
-ACE_Dev_Poll_Reactor_Handler_Repository::open (size_t size)
+ACE_Dev_Poll_Reactor::Handler_Repository::open (size_t size)
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::open");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::open");
this->max_size_ = size;
// Try to allocate the memory.
- ACE_NEW_RETURN (this->handlers_,
- ACE_Dev_Poll_Event_Tuple[size],
- -1);
+ ACE_NEW_RETURN (this->handlers_, Event_Tuple[size], -1);
// Try to increase the number of handles if <size> is greater than
// the current limit.
@@ -496,9 +488,9 @@ ACE_Dev_Poll_Reactor_Handler_Repository::open (size_t size)
}
int
-ACE_Dev_Poll_Reactor_Handler_Repository::unbind_all (void)
+ACE_Dev_Poll_Reactor::Handler_Repository::unbind_all (void)
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::unbind_all");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::unbind_all");
// Unbind all of the event handlers.
for (int handle = 0;
@@ -510,9 +502,9 @@ ACE_Dev_Poll_Reactor_Handler_Repository::unbind_all (void)
}
int
-ACE_Dev_Poll_Reactor_Handler_Repository::close (void)
+ACE_Dev_Poll_Reactor::Handler_Repository::close (void)
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::close");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::close");
if (this->handlers_ != 0)
{
@@ -525,37 +517,37 @@ ACE_Dev_Poll_Reactor_Handler_Repository::close (void)
return 0;
}
-ACE_Event_Handler *
-ACE_Dev_Poll_Reactor_Handler_Repository::find (ACE_HANDLE handle,
- size_t *index_p)
+ACE_Dev_Poll_Reactor::Event_Tuple *
+ACE_Dev_Poll_Reactor::Handler_Repository::find (ACE_HANDLE handle)
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::find");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::find");
- ACE_Event_Handler *eh = 0;
+ Event_Tuple *tuple = 0;
// Only bother to search for the <handle> if it's in range.
- if (this->handle_in_range (handle))
+ if (!this->handle_in_range (handle))
{
- eh = this->handlers_[handle].event_handler;
- if (eh != 0)
- {
- if (index_p != 0)
- *index_p = handle;
- }
- else
- errno = ENOENT;
+ errno = ERANGE;
+ return 0;
}
- return eh;
+ tuple = &(this->handlers_[handle]);
+ if (tuple->event_handler == 0)
+ {
+ errno = ENOENT;
+ tuple = 0;
+ }
+
+ return tuple;
}
int
-ACE_Dev_Poll_Reactor_Handler_Repository::bind (
+ACE_Dev_Poll_Reactor::Handler_Repository::bind (
ACE_HANDLE handle,
ACE_Event_Handler *event_handler,
ACE_Reactor_Mask mask)
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::bind");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::bind");
if (event_handler == 0)
return -1;
@@ -574,20 +566,22 @@ ACE_Dev_Poll_Reactor_Handler_Repository::bind (
}
int
-ACE_Dev_Poll_Reactor_Handler_Repository::unbind (ACE_HANDLE handle,
- bool decr_refcnt)
+ACE_Dev_Poll_Reactor::Handler_Repository::unbind (ACE_HANDLE handle,
+ bool decr_refcnt)
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::unbind");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::unbind");
- if (this->find (handle) == 0)
+ Event_Tuple *entry = this->find (handle);
+ if (entry == 0)
return -1;
if (decr_refcnt)
- this->handlers_[handle].event_handler->remove_reference ();
- this->handlers_[handle].event_handler = 0;
- this->handlers_[handle].mask = ACE_Event_Handler::NULL_MASK;
- this->handlers_[handle].suspended = 0;
+ entry->event_handler->remove_reference ();
+ entry->event_handler = 0;
+ entry->mask = ACE_Event_Handler::NULL_MASK;
+ entry->suspended = false;
+ entry->controlled = false;
return 0;
}
@@ -603,15 +597,11 @@ ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor (ACE_Sig_Handler *sh,
, poll_fd_ (ACE_INVALID_HANDLE)
, size_ (0)
// , ready_set_ ()
-#if defined (ACE_HAS_EVENT_POLL)
- , events_ (0)
- , start_pevents_ (0)
- , end_pevents_ (0)
-#else
+#if defined (ACE_HAS_DEV_POLL)
, dp_fds_ (0)
, start_pfds_ (0)
, end_pfds_ (0)
-#endif /* ACE_HAS_EVENT_POLL */
+#endif /* ACE_HAS_DEV_POLL */
, deactivated_ (0)
, token_ (*this, s_queue)
, lock_adapter_ (token_)
@@ -651,15 +641,11 @@ ACE_Dev_Poll_Reactor::ACE_Dev_Poll_Reactor (size_t size,
, poll_fd_ (ACE_INVALID_HANDLE)
, size_ (0)
// , ready_set_ ()
-#if defined (ACE_HAS_EVENT_POLL)
- , events_ (0)
- , start_pevents_ (0)
- , end_pevents_ (0)
-#else
+#if defined (ACE_HAS_DEV_POLL)
, dp_fds_ (0)
, start_pfds_ (0)
, end_pfds_ (0)
-#endif /* ACE_HAS_EVENT_POLL */
+#endif /* ACE_HAS_DEV_POLL */
, deactivated_ (0)
, token_ (*this, s_queue)
, lock_adapter_ (token_)
@@ -707,6 +693,11 @@ ACE_Dev_Poll_Reactor::open (size_t size,
if (this->initialized_)
return -1;
+#ifdef ACE_HAS_EVENT_POLL
+ ACE_OS::memset (&this->event_, 0, sizeof (this->event_));
+ this->event_.data.fd = ACE_INVALID_HANDLE;
+#endif /* ACE_HAS_EVENT_POLL */
+
this->restart_ = restart;
this->signal_handler_ = sh;
this->timer_queue_ = tq;
@@ -755,10 +746,7 @@ ACE_Dev_Poll_Reactor::open (size_t size,
#if defined (ACE_HAS_EVENT_POLL)
- // Allocating event table:
- ACE_NEW_RETURN (this->events_, epoll_event[size], -1);
-
- // Initializing epoll:
+ // Initialize epoll:
this->poll_fd_ = ::epoll_create (size);
if (this->poll_fd_ == -1)
result = -1;
@@ -800,7 +788,7 @@ ACE_Dev_Poll_Reactor::open (size_t size,
this->initialized_ = true;
else
// This will close down all the allocated resources properly.
- (void) this->close ();
+ (void) this->close ();
return result;
}
@@ -859,8 +847,8 @@ ACE_Dev_Poll_Reactor::close (void)
#if defined (ACE_HAS_EVENT_POLL)
- delete [] this->events_;
- this->events_ = 0;
+ ACE_OS::memset (&this->event_, 0, sizeof (this->event_));
+ this->event_.data.fd = ACE_INVALID_HANDLE;
#else
@@ -897,13 +885,10 @@ ACE_Dev_Poll_Reactor::close (void)
this->poll_fd_ = ACE_INVALID_HANDLE;
-#if defined (ACE_HAS_EVENT_POLL)
- this->start_pevents_ = 0;
- this->end_pevents_ = 0;
-#else
+#if defined (ACE_HAS_DEV_POLL)
this->start_pfds_ = 0;
this->end_pfds_ = 0;
-#endif /* ACE_HAS_EVENT_POLL */
+#endif /* ACE_HAS_DEV_POLL */
this->initialized_ = false;
@@ -944,7 +929,7 @@ ACE_Dev_Poll_Reactor::work_pending_i (ACE_Time_Value * max_wait_time)
return 0;
#if defined (ACE_HAS_EVENT_POLL)
- if (this->start_pevents_ != this->end_pevents_)
+ if (this->event_.data.fd != ACE_INVALID_HANDLE)
#else
if (this->start_pfds_ != this->end_pfds_)
#endif /* ACE_HAS_EVENT_POLL */
@@ -968,18 +953,12 @@ ACE_Dev_Poll_Reactor::work_pending_i (ACE_Time_Value * max_wait_time)
#if defined (ACE_HAS_EVENT_POLL)
- // Wait for events.
+ // Wait for an event.
int const nfds = ::epoll_wait (this->poll_fd_,
- this->events_,
- this->size_,
+ &this->event_,
+ 1,
static_cast<int> (timeout));
- if (nfds > 0)
- {
- this->start_pevents_ = this->events_;
- this->end_pevents_ = this->start_pevents_ + nfds;
- }
-
#else
struct dvpoll dvp;
@@ -1040,17 +1019,16 @@ ACE_Dev_Poll_Reactor::handle_events_i (ACE_Time_Value *max_wait_time,
ACE_TRACE ("ACE_Dev_Poll_Reactor::handle_events_i");
int result = 0;
- // int active_handle_count = 0;
// Poll for events
//
- // If the underlying ioctl () call was interrupted via the interrupt
+ // If the underlying event wait call was interrupted via the interrupt
// signal (i.e. returned -1 with errno == EINTR) then the loop will
// be restarted if so desired.
do
{
result = this->work_pending_i (max_wait_time);
- if (result == -1)
+ if (result == -1 && (this->restart_ == 0 || errno != EINTR))
ACE_ERROR ((LM_ERROR, ACE_TEXT("%t: %p\n"), ACE_TEXT("work_pending_i")));
}
while (result == -1 && this->restart_ != 0 && errno == EINTR);
@@ -1097,10 +1075,7 @@ ACE_Dev_Poll_Reactor::dispatch (Token_Guard &guard)
if ((result = this->dispatch_timer_handler (guard)) != 0)
return result;
- // Check to see if there are no more I/O handles left to
- // dispatch AFTER we've handled the timers.
-
- // Finally, dispatch the I/O handlers.
+ // If no timer dispatched, check for an I/O event.
result = this->dispatch_io_event (guard);
return result;
@@ -1173,6 +1148,8 @@ int
ACE_Dev_Poll_Reactor::dispatch_io_event (Token_Guard &guard)
{
+ // Dispatch a ready event.
+
// Define bits to check for while dispatching.
#if defined (ACE_HAS_EVENT_POLL)
const __uint32_t out_event = EPOLLOUT;
@@ -1186,6 +1163,17 @@ ACE_Dev_Poll_Reactor::dispatch_io_event (Token_Guard &guard)
const short err_event = 0; // No known bits for this
#endif /* ACE_HAS_EVENT_POLL */
+#if defined (ACE_HAS_EVENT_POLL)
+ // epoll_wait() pulls one event which is stored in event_. If the handle
+ // is invalid, there's no event there. Else process it. In any event, we
+ // have the event, so clear event_ for the next thread.
+ const ACE_HANDLE handle = this->event_.data.fd;
+ __uint32_t revents = this->event_.events;
+ this->event_.data.fd = ACE_INVALID_HANDLE;
+ this->event_.events = 0;
+ if (handle != ACE_INVALID_HANDLE)
+
+#else
// Since the underlying event demultiplexing mechansim (`/dev/poll'
// or '/dev/epoll') is stateful, and since only one result buffer is
// used, all pending events (i.e. those retrieved from a previous
@@ -1193,8 +1181,6 @@ ACE_Dev_Poll_Reactor::dispatch_io_event (Token_Guard &guard)
// polled. As such, the Dev_Poll_Reactor keeps track of the
// progress of events that have been dispatched.
- // Dispatch the events.
- //
// Select the first available handle with event (s) pending. Check for
// event type in defined order of dispatch: output, exception, input.
// When an event is located, clear its bit in the dispatch set. If there
@@ -1203,21 +1189,31 @@ ACE_Dev_Poll_Reactor::dispatch_io_event (Token_Guard &guard)
//
// Notice that pfds only contains file descriptors that have
// received events.
-#if defined (ACE_HAS_EVENT_POLL)
- struct epoll_event *& pfds = this->start_pevents_;
- if (pfds < this->end_pevents_)
-#else
struct pollfd *& pfds = this->start_pfds_;
if (pfds < this->end_pfds_)
#endif /* ACE_HAS_EVENT_POLL */
+
{
-#if defined (ACE_HAS_EVENT_POLL)
- const ACE_HANDLE handle = pfds->data.fd;
- __uint32_t &revents = pfds->events;
-#else
+
+#ifdef ACE_HAS_DEV_POLL
const ACE_HANDLE handle = pfds->fd;
short &revents = pfds->revents;
+#endif /* ACE_HAS_DEV_POLL */
+
+ /* When using sys_epoll, we can attach arbitrary user
+ data to the descriptor, so it can be delivered when
+ activity is detected. Perhaps we should store event
+ handler together with descriptor, instead of looking
+ it up in a repository ? Could it boost performance ?
+ */
+ Event_Tuple *info = this->handler_rep_.find (handle);
+ if (info == 0) // No registered handler any longer
+ {
+#ifdef ACE_HAS_EVENT_POLL
+ this->event_.data.fd = ACE_INVALID_HANDLE; // Dump the event
#endif /* ACE_HAS_EVENT_POLL */
+ return 0;
+ }
// Figure out what to do first in order to make it easier to manage
// the bit twiddling and possible pfds increment before releasing
@@ -1225,96 +1221,104 @@ ACE_Dev_Poll_Reactor::dispatch_io_event (Token_Guard &guard)
// Note that if there's an error (such as the handle was closed
// without being removed from the event set) the EPOLLHUP and/or
// EPOLLERR bits will be set in revents.
- bool disp_out = false;
- bool disp_exc = false;
- bool disp_in = false;
+ ACE_Reactor_Mask disp_mask = 0;
+ ACE_Event_Handler *eh = info->event_handler;
+ int (ACE_Event_Handler::*callback)(ACE_HANDLE) = 0;
if (ACE_BIT_ENABLED (revents, out_event))
{
- disp_out = true;
+ disp_mask = ACE_Event_Handler::WRITE_MASK;
+ callback = &ACE_Event_Handler::handle_output;
ACE_CLR_BITS (revents, out_event);
}
else if (ACE_BIT_ENABLED (revents, exc_event))
{
- disp_exc = true;
+ disp_mask = ACE_Event_Handler::EXCEPT_MASK;
+ callback = &ACE_Event_Handler::handle_exception;
ACE_CLR_BITS (revents, exc_event);
}
else if (ACE_BIT_ENABLED (revents, in_event))
{
- disp_in = true;
+ disp_mask = ACE_Event_Handler::READ_MASK;
+ callback = &ACE_Event_Handler::handle_input;
ACE_CLR_BITS (revents, in_event);
}
else if (ACE_BIT_ENABLED (revents, err_event))
{
- this->remove_handler_i (handle, ACE_Event_Handler::ALL_EVENTS_MASK);
+ this->remove_handler_i (handle,
+ ACE_Event_Handler::ALL_EVENTS_MASK,
+ info->event_handler);
+#ifdef ACE_HAS_DEV_POLL
++pfds;
+#endif /* ACE_HAS_DEV_POLL */
return 1;
}
else
{
- ACE_ERROR ((LM_ERROR, ACE_TEXT (" (%t) dispatch_io h %d unknown events 0x%x\n"), handle, revents));
- // ACE_ASSERT (0);
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%t) dispatch_io h %d unknown events 0x%x\n"),
+ handle, revents));
}
+#ifdef ACE_HAS_DEV_POLL
// Increment the pointer to the next element before we
// release the token. Otherwise event handlers end up being
// dispatched multiple times for the same poll.
if (revents == 0)
++pfds;
+#else
+ // With epoll, events are registered with oneshot, so the handle is
+ // effectively suspended; future calls to epoll_wait() will select
+ // the next event, so they're not managed here.
+ // The hitch to this is that the notify handler must always be resumed
+ // immediately, before letting go of the guard. Else it's possible to
+ // get into a state where all handles, including the notify pipe, are
+ // suspended and that means the wait thread can't be interrupted.
+ info->suspended = true;
+ if (eh == this->notify_handler_)
+ this->resume_handler_i (handle);
+#endif /* ACE_HAS_DEV_POLL */
+
+ int status = 0; // gets callback status, below.
+ {
+ // Modify the reference count in an exception-safe way.
+ // Note that eh could be the notify handler. It's not strictly
+ // necessary to manage its refcount, but since we don't enable
+ // the counting policy, it won't do much. Management of the
+ // notified handlers themselves is done in the notify handler.
+ ACE_Dev_Poll_Handler_Guard eh_guard (eh);
+
+ // Release the reactor token before upcall.
+ guard.release_token ();
+
+ // Dispatch the detected event; will do the repeated upcalls
+ // if callback returns > 0. We come back with either 0 or < 0.
+ status = this->upcall (eh, callback, handle);
+
+ // All state in the handler repository may have changed during the
+ // upcall while other threads had the token. Thus, reacquire the
+ // token and evaluate what's needed. If the upcalled handler is still
+ // the handler of record for handle, continue with checking whether
+ // or not to remove or resume the handler.
+ guard.acquire ();
+ info = this->handler_rep_.find (handle);
+ if (info != 0 && info->event_handler == eh)
+ {
+ if (status < 0)
+ this->remove_handler_i (handle, disp_mask);
+
+#ifdef ACE_HAS_EVENT_POLL
+ // epoll-based effectively suspends handlers around the upcall.
+ // If the handler must be resumed here, do it now.
+ if (info->suspended &&
+ (eh->resume_handler () ==
+ ACE_Event_Handler::ACE_REACTOR_RESUMES_HANDLER))
+ this->resume_handler_i (handle);
+#endif /* ACE_HAS_EVENT_POLL */
+ }
+ }
+ // Scope close handles eh ref count decrement, if needed.
- /* When using sys_epoll, we can attach arbitrary user
- data to the descriptor, so it can be delivered when
- activity is detected. Perhaps we should store event
- handler together with descriptor, instead of looking
- it up in a repository ? Could it boost performance ?
- */
- ACE_Event_Handler *eh = this->handler_rep_.find (handle);
-
- if (eh)
- {
- // Modify the reference count in an exception-safe way.
- // Note that eh could be the notify handler. It's not strictly
- // necessary to manage its refcount, but since we don't enable
- // the counting policy, it won't do much. Management of the
- // notified handlers themselves is done in the notify handler.
- ACE_Dev_Poll_Handler_Guard eh_guard (eh);
-
- // Release the reactor token before upcall.
- guard.release_token ();
-
- // Dispatch the detected event
- if (disp_out)
- {
- const int status =
- this->upcall (eh, &ACE_Event_Handler::handle_output, handle);
-
- if (status < 0)
- // Note that the token is reacquired in remove_handler ().
- this->remove_handler (handle, ACE_Event_Handler::WRITE_MASK);
- return 1;
- }
-
- if (disp_exc)
- {
- const int status =
- this->upcall (eh, &ACE_Event_Handler::handle_exception, handle);
-
- if (status < 0)
- // Note that the token is reacquired in remove_handler ().
- this->remove_handler (handle, ACE_Event_Handler::EXCEPT_MASK);
- return 1;
- }
-
- if (disp_in)
- {
- const int status =
- this->upcall (eh, &ACE_Event_Handler::handle_input, handle);
-
- if (status < 0)
- // Note that the token is reacquired in remove_handler ().
- this->remove_handler (handle, ACE_Event_Handler::READ_MASK);
- return 1;
- }
- } // The reactor token is reacquired upon leaving this scope.
+ return 1;
}
return 0;
@@ -1406,19 +1410,22 @@ ACE_Dev_Poll_Reactor::register_handler_i (ACE_HANDLE handle,
#if defined (ACE_HAS_EVENT_POLL)
+ Event_Tuple *info = this->handler_rep_.find (handle);
+
struct epoll_event epev;
ACE_OS::memset (&epev, 0, sizeof (epev));
static const int op = EPOLL_CTL_ADD;
- epev.events = this->reactor_mask_to_poll_event (mask);
+ epev.events = this->reactor_mask_to_poll_event (mask) | EPOLLONESHOT;
epev.data.fd = handle;
if (::epoll_ctl (this->poll_fd_, op, handle, &epev) == -1)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT("%p\n"), ACE_TEXT("epoll_ctl")));
- (void) this->handler_rep_.unbind (handle);
+ (void) this->handler_rep_.unbind (handle);
return -1;
}
+ info->controlled = true;
#endif /* ACE_HAS_EVENT_POLL */
}
@@ -1428,10 +1435,11 @@ ACE_Dev_Poll_Reactor::register_handler_i (ACE_HANDLE handle,
// again, possibly for different event. Add new mask to the
// current one.
if (this->mask_ops_i (handle, mask, ACE_Reactor::ADD_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT("%p\n"), ACE_TEXT("mask_ops_i")), -1);
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT("%p\n"), ACE_TEXT("mask_ops_i")),
+ -1);
}
-#ifndef ACE_HAS_EVENT_POLL
+#ifdef ACE_HAS_DEV_POLL
struct pollfd pfd;
@@ -1445,7 +1453,7 @@ ACE_Dev_Poll_Reactor::register_handler_i (ACE_HANDLE handle,
(void) this->handler_rep_.unbind (handle);
return -1;
}
-#endif /*ACE_HAS_EVENT_POLL*/
+#endif /*ACE_HAS_DEV_POLL*/
// Note the fact that we've changed the state of the wait_set_,
// which is used by the dispatching loop to determine whether it can
@@ -1559,15 +1567,24 @@ ACE_Dev_Poll_Reactor::remove_handler (ACE_HANDLE handle,
int
ACE_Dev_Poll_Reactor::remove_handler_i (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
+ ACE_Reactor_Mask mask,
+ ACE_Event_Handler *eh)
{
ACE_TRACE ("ACE_Dev_Poll_Reactor::remove_handler_i");
- ACE_Event_Handler *eh = this->handler_rep_.find (handle);
-
- if (eh == 0 ||
- this->mask_ops_i (handle, mask, ACE_Reactor::CLR_MASK) == -1)
+ // If registered event handler not the same as eh, don't mess with
+ // the mask, but do the proper callback and refcount when needed.
+ bool handle_reg_changed = true;
+ Event_Tuple *info = this->handler_rep_.find (handle);
+ if (info == 0 && eh == 0) // Nothing to work with
return -1;
+ if (info != 0 && (eh == 0 || info->event_handler == eh))
+ {
+ if (this->mask_ops_i (handle, mask, ACE_Reactor::CLR_MASK) == -1)
+ return -1;
+ handle_reg_changed = false;
+ eh = info->event_handler;
+ }
// Check for ref counting now - handle_close () may delete eh.
bool const requires_reference_counting =
@@ -1575,11 +1592,11 @@ ACE_Dev_Poll_Reactor::remove_handler_i (ACE_HANDLE handle,
ACE_Event_Handler::Reference_Counting_Policy::ENABLED;
if (ACE_BIT_DISABLED (mask, ACE_Event_Handler::DONT_CALL))
- (void) eh->handle_close (handle, mask);
+ (void) eh->handle_close (handle, mask);
// If there are no longer any outstanding events on the given handle
// then remove it from the handler repository.
- if (this->handler_rep_.mask (handle) == ACE_Event_Handler::NULL_MASK)
+ if (!handle_reg_changed && info->mask == ACE_Event_Handler::NULL_MASK)
this->handler_rep_.unbind (handle, requires_reference_counting);
// Note the fact that we've changed the state of the wait_set,
@@ -1707,10 +1724,11 @@ ACE_Dev_Poll_Reactor::suspend_handlers (void)
size_t const len = this->handler_rep_.size ();
for (size_t i = 0; i < len; ++i)
- if (this->handler_rep_.suspended (i) == 0
- && this->suspend_handler_i (i) != 0)
- return -1;
-
+ {
+ Event_Tuple *info = this->handler_rep_.find (i);
+ if (info != 0 && !info->suspended && this->suspend_handler_i (i) != 0)
+ return -1;
+ }
return 0;
}
@@ -1719,10 +1737,11 @@ ACE_Dev_Poll_Reactor::suspend_handler_i (ACE_HANDLE handle)
{
ACE_TRACE ("ACE_Dev_Poll_Reactor::suspend_handler_i");
- if (this->handler_rep_.find (handle) == 0)
+ Event_Tuple *info = this->handler_rep_.find (handle);
+ if (info == 0)
return -1;
- if (this->handler_rep_.suspended (handle))
+ if (info->suspended)
return 0; // Already suspended. @@ Should this be an error?
// Remove the handle from the "interest set."
@@ -1742,7 +1761,7 @@ ACE_Dev_Poll_Reactor::suspend_handler_i (ACE_HANDLE handle)
if (::epoll_ctl (this->poll_fd_, op, handle, &epev) == -1)
return -1;
-
+ info->controlled = false;
#else
struct pollfd pfd[1];
@@ -1756,7 +1775,7 @@ ACE_Dev_Poll_Reactor::suspend_handler_i (ACE_HANDLE handle)
#endif /* ACE_HAS_EVENT_POLL */
- this->handler_rep_.suspend (handle);
+ info->suspended = true;
return 0;
}
@@ -1816,9 +1835,11 @@ ACE_Dev_Poll_Reactor::resume_handlers (void)
size_t const len = this->handler_rep_.size ();
for (size_t i = 0; i < len; ++i)
- if (this->handler_rep_.suspended (i)
- && this->resume_handler_i (i) != 0)
- return -1;
+ {
+ Event_Tuple *info = this->handler_rep_.find (i);
+ if (info != 0 && info->suspended && this->resume_handler_i (i) != 0)
+ return -1;
+ }
return 0;
}
@@ -1828,11 +1849,11 @@ ACE_Dev_Poll_Reactor::resume_handler_i (ACE_HANDLE handle)
{
ACE_TRACE ("ACE_Dev_Poll_Reactor::resume_handler_i");
- if (this->handler_rep_.find (handle) == 0
- && this->handler_rep_.suspended (handle) == 0)
+ Event_Tuple *info = this->handler_rep_.find (handle);
+ if (info == 0 || !info->suspended)
return -1;
- ACE_Reactor_Mask mask = this->handler_rep_.mask (handle);
+ ACE_Reactor_Mask mask = info->mask;
if (mask == ACE_Event_Handler::NULL_MASK)
return -1;
@@ -1845,13 +1866,15 @@ ACE_Dev_Poll_Reactor::resume_handler_i (ACE_HANDLE handle)
struct epoll_event epev;
ACE_OS::memset (&epev, 0, sizeof (epev));
- static const int op = EPOLL_CTL_ADD;
-
- epev.events = this->reactor_mask_to_poll_event (mask);
+ int op = EPOLL_CTL_ADD;
+ if (info->controlled)
+ op = EPOLL_CTL_MOD;
+ epev.events = this->reactor_mask_to_poll_event (mask) | EPOLLONESHOT;
epev.data.fd = handle;
if (::epoll_ctl (this->poll_fd_, op, handle, &epev) == -1)
return -1;
+ info->controlled = true;
#else
@@ -1866,7 +1889,7 @@ ACE_Dev_Poll_Reactor::resume_handler_i (ACE_HANDLE handle)
#endif /* ACE_HAS_EVENT_POLL */
- this->handler_rep_.resume (handle);
+ info->suspended = false;
return 0;
}
@@ -2042,10 +2065,10 @@ ACE_Dev_Poll_Reactor::find_handler (ACE_HANDLE handle)
{
ACE_MT (ACE_READ_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, 0));
- ACE_Event_Handler *event_handler = this->handler_rep_.find (handle);
- if (event_handler)
- event_handler->add_reference ();
- return event_handler;
+ Event_Tuple *info = this->handler_rep_.find (handle);
+ if (info)
+ info->event_handler->add_reference ();
+ return info->event_handler;
}
int
@@ -2057,15 +2080,15 @@ ACE_Dev_Poll_Reactor::handler (ACE_HANDLE handle,
ACE_MT (ACE_READ_GUARD_RETURN (ACE_Dev_Poll_Reactor_Token, mon, this->token_, -1));
- ACE_Event_Handler *h = this->handler_rep_.find (handle);
+ Event_Tuple *info = this->handler_rep_.find (handle);
- if (h != 0
- && ACE_BIT_CMP_MASK (this->handler_rep_.mask (handle),
+ if (info != 0
+ && ACE_BIT_CMP_MASK (info->mask,
mask, // Compare all bits in the mask
mask))
{
if (event_handler != 0)
- *event_handler = h;
+ *event_handler = info->event_handler;
return 0;
}
@@ -2215,13 +2238,15 @@ ACE_Dev_Poll_Reactor::mask_ops_i (ACE_HANDLE handle,
{
ACE_TRACE ("ACE_Dev_Poll_Reactor::mask_ops_i");
- if (this->handler_rep_.handle_in_range (handle) == 0)
+ if (!this->handler_rep_.handle_in_range (handle))
return -1;
// Block out all signals until method returns.
ACE_Sig_Guard sb;
- ACE_Reactor_Mask const old_mask = this->handler_rep_.mask (handle);
+ Event_Tuple *info = this->handler_rep_.find (handle);
+
+ ACE_Reactor_Mask const old_mask = info->mask;
ACE_Reactor_Mask new_mask = old_mask;
// Perform GET, CLR, SET, and ADD operations on the interest/wait
@@ -2260,12 +2285,15 @@ ACE_Dev_Poll_Reactor::mask_ops_i (ACE_HANDLE handle,
}
/// Reset the mask for the given handle.
- this->handler_rep_.mask (handle, new_mask);
-
- if (this->handler_rep_.suspended (handle) == 0)
+ info->mask = new_mask;
+
+ // Only attempt to alter events for the handle from the
+ // "interest set" if it hasn't been suspended. If it has been
+ // suspended, the revised mask will take affect when the
+ // handle is resumed. The exception is if all the mask bits are
+ // cleared, we can un-control the fd now.
+ if (!info->suspended || (info->controlled && new_mask == 0))
{
- // Only attempt to alter events for the handle from the
- // "interest set" if it hasn't been suspended.
short const events = this->reactor_mask_to_poll_event (new_mask);
@@ -2301,7 +2329,7 @@ ACE_Dev_Poll_Reactor::mask_ops_i (ACE_HANDLE handle,
else
{
op = EPOLL_CTL_MOD;
- epev.events = events;
+ epev.events = events | EPOLLONESHOT;
}
epev.data.fd = handle;
@@ -2316,7 +2344,7 @@ ACE_Dev_Poll_Reactor::mask_ops_i (ACE_HANDLE handle,
::epoll_ctl (this->poll_fd_, EPOLL_CTL_ADD, handle, &epev) == -1)
return -1;
}
-
+ info->controlled = (op != EPOLL_CTL_DEL);
#else
pollfd pfd[1];
diff --git a/ACE/ace/Dev_Poll_Reactor.h b/ACE/ace/Dev_Poll_Reactor.h
index f991111642d..02f5f7fd457 100644
--- a/ACE/ace/Dev_Poll_Reactor.h
+++ b/ACE/ace/Dev_Poll_Reactor.h
@@ -43,7 +43,7 @@
#if defined (ACE_HAS_DEV_POLL)
struct pollfd;
#elif defined (ACE_HAS_EVENT_POLL)
-struct epoll_event;
+# include /**/ <sys/epoll.h>
#endif
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -52,41 +52,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Sig_Handler;
class ACE_Dev_Poll_Reactor;
-/**
- * @class ACE_Dev_Poll_Event_Tuple
- *
- * @brief Class that associates specific event mask with a given event
- * handler.
- *
- * This class merely provides a means to associate an event mask
- * with an event handler. Such an association is needed since it is
- * not possible to retrieve the event mask from the "interest set"
- * stored in the `/dev/poll' or `/dev/epoll' driver. Without this
- * external association, it would not be possible keep track of the
- * event mask for a given event handler when suspending it or resuming
- * it.
- *
- * @note An ACE_Handle_Set is not used since the number of handles may
- * exceed its capacity (ACE_DEFAULT_SELECT_REACTOR_SIZE).
- */
-class ACE_Dev_Poll_Event_Tuple
-{
-public:
-
- /// Constructor.
- ACE_Dev_Poll_Event_Tuple (void);
-
-public:
-
- /// The event handler.
- ACE_Event_Handler *event_handler;
-
- /// The event mask for the above event handler.
- ACE_Reactor_Mask mask;
-
- /// Flag that states whether or not the event handler is suspended.
- char suspended;
-};
// ---------------------------------------------------------------------
@@ -285,123 +250,6 @@ protected:
// ---------------------------------------------------------------------
/**
- * @class ACE_Dev_Poll_Reactor_Handler_Repository
- *
- * @internal
-
- * @brief Used to map ACE_HANDLEs onto the appropriate
- * ACE_Event_Handler *.
- *
- *
- * This class is simply a container that maps a handle to its
- * corresponding event handler. It is not meant for use outside of
- * the Dev_Poll_Reactor.
- */
-class ACE_Dev_Poll_Reactor_Handler_Repository
-{
-public:
-
- /// Constructor.
- ACE_Dev_Poll_Reactor_Handler_Repository (void);
-
- /// Initialize a repository of the appropriate @a size.
- int open (size_t size);
-
- /// Close down the repository.
- int close (void);
-
- /**
- * @name Repository Manipulation Operations
- *
- * Methods used to search and modify the handler repository.
- */
- //@{
-
- /**
- * Return the @c ACE_Event_Handler associated with @c ACE_HANDLE. If
- * @a index_p is non-zero, then return the index location of the
- * handle, if found.
- */
- ACE_Event_Handler *find (ACE_HANDLE handle, size_t *index_p = 0);
-
- /// Set the event mask for event handler associated with the given
- /// handle.
- void mask (ACE_HANDLE handle, ACE_Reactor_Mask mask);
-
- /// Retrieve the event mask for the event handler associated with
- /// the given handle.
- ACE_Reactor_Mask mask (ACE_HANDLE handle);
-
- /// Mark the event handler associated with the given handle as
- /// "suspended."
- void suspend (ACE_HANDLE handle);
-
- /// Mark the event handler associated with the given handle as
- /// "resumed."
- void resume (ACE_HANDLE handle);
-
- /// Is the event handler for the given handle suspended?
- int suspended (ACE_HANDLE handle) const;
-
- /// Bind the ACE_Event_Handler to the @c ACE_HANDLE with the
- /// appropriate ACE_Reactor_Mask settings.
- int bind (ACE_HANDLE handle,
- ACE_Event_Handler *handler,
- ACE_Reactor_Mask mask);
-
- /// Remove the binding for @c ACE_HANDLE; optionally decrement the associated
- /// handler's reference count.
- int unbind (ACE_HANDLE handle, bool decr_refcnt = true);
-
- /// Remove all the (@c ACE_HANDLE, @c ACE_Event_Handler) tuples.
- int unbind_all (void);
-
- /**
- * @name Sanity Checking
- *
- * Methods used to prevent "out-of-range" errors when indexing the
- * underlying handler array.
- */
- //@{
-
- // Check the @a handle to make sure it's a valid @c ACE_HANDLE that
- // within the range of legal handles (i.e., greater than or equal to
- // zero and less than @c max_size_).
- int invalid_handle (ACE_HANDLE handle) const;
-
- // Check the handle to make sure it's a valid @c ACE_HANDLE that is
- // within the range of currently registered handles (i.e., greater
- // than or equal to zero and less than @c max_handlep1_).
- int handle_in_range (ACE_HANDLE handle) const;
-
- //@}
-
- /// Returns the current table size.
- size_t size (void) const;
-
- /// Dump the state of an object.
- void dump (void) const;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
-private:
-
- /// Maximum number of handles.
- int max_size_;
-
- /// The underlying array of event handlers.
- /**
- * The array of event handlers is directly indexed directly using
- * an @c ACE_HANDLE value. This is Unix-specific.
- */
- ACE_Dev_Poll_Event_Tuple *handlers_;
-
-};
-
-// ---------------------------------------------------------------------
-
-/**
* @class ACE_Dev_Poll_Reactor
*
* @brief A `/dev/poll' or `/dev/epoll' based Reactor implemenatation.
@@ -444,6 +292,149 @@ typedef ACE_Reactor_Token_T<ACE_DEV_POLL_TOKEN> ACE_Dev_Poll_Reactor_Token;
class ACE_Export ACE_Dev_Poll_Reactor : public ACE_Reactor_Impl
{
+
+ /**
+ * @struct Event_Tuple
+ *
+ * @brief Struct that collects event registration information for a handle.
+ *
+ * @internal Internal use only
+ *
+ * This struct merely provides a means to associate an event mask
+ * with an event handler. Such an association is needed since it is
+ * not possible to retrieve the event mask from the "interest set"
+ * stored in the `/dev/poll' or `/dev/epoll' driver. Without this
+ * external association, it would not be possible keep track of the
+ * event mask for a given event handler when suspending it or resuming
+ * it.
+ *
+ * @note An ACE_Handle_Set is not used since the number of handles may
+ * exceed its capacity (ACE_DEFAULT_SELECT_REACTOR_SIZE).
+ */
+ struct Event_Tuple
+ {
+ /// Constructor to set up defaults.
+ Event_Tuple (ACE_Event_Handler *eh = 0,
+ ACE_Reactor_Mask m = ACE_Event_Handler::NULL_MASK,
+ bool is_suspended = false,
+ bool is_controlled = false);
+
+ /// The event handler.
+ ACE_Event_Handler *event_handler;
+
+ /// The event mask for the above event handler.
+ ACE_Reactor_Mask mask;
+
+ /// Flag that states whether or not the event handler is suspended.
+ bool suspended;
+
+ /// Flag to say whether or not this handle is registered with epoll.
+ bool controlled;
+ };
+
+
+ // ---------------------------------------------------------------------
+
+ /**
+ * @class Handler_Repository
+ *
+ * @internal
+ *
+ * @brief Used to map ACE_HANDLEs onto the appropriate Event_Tuple.
+ *
+ * This class is simply a container that maps a handle to its
+ * corresponding event tuple. It is not meant for use outside of
+ * the Dev_Poll_Reactor.
+ *
+ * @note Calls to any method in this class, and any modification to a
+ * Event_Tuple returned from this class's methods, must be made
+ * while holding the reactor token.
+ */
+ class Handler_Repository
+ {
+ public:
+
+ /// Constructor.
+ Handler_Repository (void);
+
+ /// Initialize a repository that can map handles up to the value @a size.
+ /// Since the event tuples are accessed directly using the handle as
+ /// an index, @a size sets the maximum handle value, minus 1.
+ int open (size_t size);
+
+ /// Close down the repository.
+ int close (void);
+
+ /**
+ * @name Repository Manipulation Operations
+ *
+ * Methods used to search and modify the handler repository.
+ */
+ //@{
+
+ /// Return a pointer to the Event_Tuple associated with @a handle.
+ /// If there is none associated, returns 0 and sets errno.
+ Event_Tuple *find (ACE_HANDLE handle);
+
+
+ /// Bind the ACE_Event_Handler to the @c ACE_HANDLE with the
+ /// appropriate ACE_Reactor_Mask settings.
+ int bind (ACE_HANDLE handle,
+ ACE_Event_Handler *handler,
+ ACE_Reactor_Mask mask);
+
+ /// Remove the binding for @a handle; optionally decrement the associated
+ /// handler's reference count.
+ int unbind (ACE_HANDLE handle, bool decr_refcnt = true);
+
+ /// Remove all the registered tuples.
+ int unbind_all (void);
+
+ //@}
+
+ /**
+ * @name Sanity Checking
+ *
+ * Methods used to prevent "out-of-range" errors when indexing the
+ * underlying handler array.
+ */
+ //@{
+
+ // Check the @a handle to make sure it's a valid @c ACE_HANDLE that
+ // within the range of legal handles (i.e., greater than or equal to
+ // zero and less than @c max_size_).
+ bool invalid_handle (ACE_HANDLE handle) const;
+
+ // Check the handle to make sure it's a valid @c ACE_HANDLE that is
+ // within the range of currently registered handles (i.e., greater
+ // than or equal to zero and less than @c max_handlep1_).
+ bool handle_in_range (ACE_HANDLE handle) const;
+
+ //@}
+
+ /// Returns the current table size.
+ size_t size (void) const;
+
+ /// Dump the state of an object.
+ void dump (void) const;
+
+ /// Declare the dynamic allocation hooks.
+ ACE_ALLOC_HOOK_DECLARE;
+
+ private:
+
+ /// Maximum number of handles.
+ int max_size_;
+
+ /// The underlying array of event handlers.
+ /**
+ * The array of event handlers is directly indexed directly using
+ * an @c ACE_HANDLE value. This is Unix-specific.
+ */
+ Event_Tuple *handlers_;
+
+ };
+
public:
/// Initialize @c ACE_Dev_Poll_Reactor with the default size.
@@ -1008,8 +999,12 @@ protected:
ACE_Reactor_Mask mask);
/// Remove the event handler associated with the given handle and
- /// event mask from the "interest set."
- int remove_handler_i (ACE_HANDLE handle, ACE_Reactor_Mask mask);
+ /// event mask from the "interest set." If @a eh is supplied, only
+ /// do the remove if @eh matches the event handler that's registered
+ /// for @a handle.
+ int remove_handler_i (ACE_HANDLE handle,
+ ACE_Reactor_Mask mask,
+ ACE_Event_Handler *eh = 0);
/// Temporarily remove the given handle from the "interest set."
int suspend_handler_i (ACE_HANDLE handle);
@@ -1053,19 +1048,12 @@ protected:
/// ACE_Dev_Poll_Ready_Set ready_set_;
#if defined (ACE_HAS_EVENT_POLL)
- /// Table of event structures to be filled by epoll_wait:
- struct epoll_event *events_;
-
- /// Pointer to the next epoll_event array element that contains the next
- /// event to be dispatched.
- struct epoll_event *start_pevents_;
-
- /// The last element in the event array plus one.
- /**
- * The loop that dispatches IO events stops when this->start_pevents_ ==
- * this->end_pevents_.
- */
- struct epoll_event *end_pevents_;
+ /// Event structure to be filled by epoll_wait. epoll_wait() only gets
+ /// one event at a time and we rely on it's internals for fairness.
+ /// If this struct's fd is ACE_INVALID_HANDLE, the rest is indeterminate.
+ /// If the fd is good, the event is one that's been retrieved by
+ /// epoll_wait() but not yet processed.
+ struct epoll_event event_;
#else
/// The pollfd array that `/dev/poll' will feed its results to.
@@ -1095,7 +1083,7 @@ protected:
ACE_Lock_Adapter<ACE_Dev_Poll_Reactor_Token> lock_adapter_;
/// The repository that contains all registered event handlers.
- ACE_Dev_Poll_Reactor_Handler_Repository handler_rep_;
+ Handler_Repository handler_rep_;
/// Defined as a pointer to allow overriding by derived classes...
ACE_Timer_Queue *timer_queue_;
diff --git a/ACE/ace/Dev_Poll_Reactor.inl b/ACE/ace/Dev_Poll_Reactor.inl
index b7034e07333..d031e06179f 100644
--- a/ACE/ace/Dev_Poll_Reactor.inl
+++ b/ACE/ace/Dev_Poll_Reactor.inl
@@ -7,10 +7,14 @@
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE
-ACE_Dev_Poll_Event_Tuple::ACE_Dev_Poll_Event_Tuple (void)
- : event_handler (0),
- mask (ACE_Event_Handler::NULL_MASK),
- suspended (0)
+ACE_Dev_Poll_Reactor::Event_Tuple::Event_Tuple (ACE_Event_Handler *eh,
+ ACE_Reactor_Mask m,
+ bool is_suspended,
+ bool is_controlled)
+ : event_handler (eh),
+ mask (m),
+ suspended (is_suspended),
+ controlled (is_controlled)
{
}
@@ -27,69 +31,10 @@ ACE_Dev_Poll_Ready_Set::ACE_Dev_Poll_Ready_Set (void)
// ---------------------------------------------------------------------
-ACE_INLINE void
-ACE_Dev_Poll_Reactor_Handler_Repository::mask (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::mask");
-
- // Only bother to search for the handle if it's in range.
- if (this->handle_in_range (handle))
- this->handlers_[handle].mask = mask;
-}
-
-ACE_INLINE ACE_Reactor_Mask
-ACE_Dev_Poll_Reactor_Handler_Repository::mask (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::mask");
-
- ACE_Reactor_Mask mask = ACE_Event_Handler::NULL_MASK;
-
- // Only bother to search for the handle if it's in range.
- if (this->handle_in_range (handle))
- mask = this->handlers_[handle].mask;
-
- if (mask == ACE_Event_Handler::NULL_MASK)
- errno = ENOENT;
-
- return mask;
-}
-
-ACE_INLINE void
-ACE_Dev_Poll_Reactor_Handler_Repository::suspend (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::suspend");
-
- // Only bother to search for the handle if it's in range.
- if (this->handle_in_range (handle))
- this->handlers_[handle].suspended = 1;
-}
-
-ACE_INLINE void
-ACE_Dev_Poll_Reactor_Handler_Repository::resume (ACE_HANDLE handle)
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::resume");
-
- // Only bother to search for the handle if it's in range.
- if (this->handle_in_range (handle))
- this->handlers_[handle].suspended = 0;
-}
-
-ACE_INLINE int
-ACE_Dev_Poll_Reactor_Handler_Repository::suspended (ACE_HANDLE handle) const
-{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::suspended");
-
- if (this->handle_in_range (handle))
- return this->handlers_[handle].suspended;
-
- return -1;
-}
-
ACE_INLINE size_t
-ACE_Dev_Poll_Reactor_Handler_Repository::size (void) const
+ACE_Dev_Poll_Reactor::Handler_Repository::size (void) const
{
- ACE_TRACE ("ACE_Dev_Poll_Reactor_Handler_Repository::size");
+ ACE_TRACE ("ACE_Dev_Poll_Reactor::Handler_Repository::size");
return this->max_size_;
}
@@ -172,7 +117,8 @@ ACE_Dev_Poll_Reactor::upcall (ACE_Event_Handler *event_handler,
{
// If the handler returns positive value (requesting a reactor
// callback) just call back as many times as the handler requests
- // it. Other threads are off handling other things.
+ // it. The handler is suspended internally and other threads are off
+ // handling other things.
int status = 0;
do
diff --git a/ACE/ace/ETCL/ETCL_Interpreter.cpp b/ACE/ace/ETCL/ETCL_Interpreter.cpp
index e7ae9a7d016..5d7cbcfbc58 100644
--- a/ACE/ace/ETCL/ETCL_Interpreter.cpp
+++ b/ACE/ace/ETCL/ETCL_Interpreter.cpp
@@ -62,7 +62,7 @@ ETCL_Interpreter::is_empty_string (const char* str)
break;
}
- i++;
+ ++i;
}
if (str[i] == '\0')
@@ -84,11 +84,11 @@ int
Lex_String_Input::copy_into (char* buf,
int max_size)
{
- int chars_left =
+ int const chars_left =
ACE_Utils::truncate_cast<int> (
Lex_String_Input::end_ - Lex_String_Input::current_);
- int n = max_size > chars_left ? chars_left : max_size;
+ int const n = max_size > chars_left ? chars_left : max_size;
if (n > 0)
{
diff --git a/ACE/ace/ETCL/ETCL_l.cpp b/ACE/ace/ETCL/ETCL_l.cpp
index 9ebb522747c..37ca3d8d26d 100644
--- a/ACE/ace/ETCL/ETCL_l.cpp
+++ b/ACE/ace/ETCL/ETCL_l.cpp
@@ -1542,14 +1542,14 @@ FILE *file;
#if defined (ACE_HAS_WINCE)
// Mimic the behavior as WinCE does not have isatty().
- if ((file != 0) && (file == fileno(file))) {
+ if ((file != 0) && (file == ACE_OS::fileno(file))) {
b->yy_is_interactive = 1;
}
else {
b->yy_is_interactive = 0;
}
#else
- b->yy_is_interactive = file ? (ACE_OS::isatty( fileno(file) ) > 0) : 0;
+ b->yy_is_interactive = file ? (ACE_OS::isatty( ACE_OS::fileno(file) ) > 0) : 0;
#endif // ACE_HAS_WINCE
}
diff --git a/ACE/ace/ETCL/ETCL_l.cpp.diff b/ACE/ace/ETCL/ETCL_l.cpp.diff
index 9709c130de2..2948f90be4f 100644
--- a/ACE/ace/ETCL/ETCL_l.cpp.diff
+++ b/ACE/ace/ETCL/ETCL_l.cpp.diff
@@ -3,35 +3,35 @@
@@ -1,15 +1,14 @@
+
/* A lexical scanner generated by flex */
-
+
/* Scanner skeleton version:
- * $Header$
+ * $Id$
*/
-
+
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-
+
-#include <stdio.h>
-
-
+
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
@@ -21,8 +20,7 @@
-
+
#ifdef __cplusplus
-
+
-#include <stdlib.h>
-#include <unistd.h>
+#include "ace/OS.h"
-
+
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
@@ -262,8 +260,8 @@
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
-
-
+
+
-#define yywrap() 1
-#define YY_SKIP_YYWRAP
+//#define yywrap() 1
@@ -53,7 +53,7 @@
//
// = LIBRARY
// orbsvcs/ECTL
--//
+-//
+//
// = FILENAME
// ETCL.ll
@@ -61,37 +61,37 @@
@@ -462,12 +460,12 @@
//
// ========================================================================
-
+
-#include "ace/OS.h"
-
+#include "ETCL_Interpreter.h"
#include "ETCL_Constraint.h"
#include "ETCL_y.h"
-
+
-static const char * extract_string(char*);
+static const char* extract_string(char*);
+//static const char * extract_string(char*);
-
+
#define TAO_YY_LEX_DEBUG
-
+
@@ -475,12 +473,11 @@
#define TAO_YY_LEX_DEBUG TAO_OS::fprintf(stderr, "%s\n", yytext)
#endif /* TAO_CONSTRAINT_DEBUG */
-
+
-#define YY_DECL int TAO_ETCL_yylex (TAO_ETCL_YYSTYPE *lvalp, void* state)
+//#define YY_DECL int TAO_ETCL_yylex (TAO_ETCL_YYSTYPE *lvalp, void* state)
-
+
#define YY_BREAK
#define YY_NO_UNPUT
-
+
-#line 484 "lex.yy.c"
-
+
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -494,10 +491,6 @@
#endif
#endif
-
+
-#ifndef YY_NO_UNPUT
-static void yyunput YY_PROTO(( int c, char *buf_ptr ));
-#endif
@@ -100,9 +100,9 @@
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
#endif
@@ -556,11 +549,11 @@
-
+
/* Copy whatever the last rule matched to the standard output. */
-
+
-#ifndef ECHO
+#ifndef TAO_ETCL_ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
@@ -111,7 +111,7 @@
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#define TAO_ETCL_ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#endif
-
+
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -628,13 +621,11 @@
YY_DECL
@@ -121,17 +121,17 @@
+ register char *yy_cp = 0;
+ register char *yy_bp = 0;
register int yy_act;
-
+
-#line 50 "ETCL.ll"
-
-
-#line 638 "lex.yy.c"
+//#line 50 "ETCL/ETCL.ll"
-
+
if ( yy_init )
{
@@ -719,240 +710,239 @@
-
+
case 1:
YY_RULE_SETUP
-#line 52 "ETCL.ll"
@@ -327,8 +327,8 @@
case 33:
YY_RULE_SETUP
-#line 84 "ETCL.ll"
--{
-- lvalp->constraint =
+-{
+- lvalp->constraint =
+//#line 84 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
@@ -339,8 +339,8 @@
case 34:
YY_RULE_SETUP
-#line 89 "ETCL.ll"
--{
-- lvalp->constraint =
+-{
+- lvalp->constraint =
+//#line 89 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
@@ -351,13 +351,13 @@
case 35:
YY_RULE_SETUP
-#line 94 "ETCL.ll"
--{
-- lvalp->constraint =
+-{
+- lvalp->constraint =
+//#line 94 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
new TAO_ETCL_Literal_Constraint (ACE_OS::atoi (yytext));
-- TAO_YY_LEX_DEBUG; return TAO_ETCL_INTEGER;
+- TAO_YY_LEX_DEBUG; return TAO_ETCL_INTEGER;
+ TAO_YY_LEX_DEBUG; return TAO_ETCL_INTEGER;
}
YY_BREAK
@@ -367,22 +367,22 @@
+//#line 99 "ETCL/ETCL.ll"
{
double v;
-- sscanf (yytext, "%lf", &v);
-- lvalp->constraint =
+- sscanf (yytext, "%lf", &v);
+- lvalp->constraint =
+ sscanf (yytext, "%lf", &v);
+ yylval.constraint =
new TAO_ETCL_Literal_Constraint (v);
-- TAO_YY_LEX_DEBUG; return TAO_ETCL_FLOAT;
+- TAO_YY_LEX_DEBUG; return TAO_ETCL_FLOAT;
+ TAO_YY_LEX_DEBUG; return TAO_ETCL_FLOAT;
}
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 106 "ETCL.ll"
--{
+-{
- lvalp->constraint =
- new TAO_ETCL_Literal_Constraint (extract_string (yytext));
-- TAO_YY_LEX_DEBUG; return TAO_ETCL_STRING;
+- TAO_YY_LEX_DEBUG; return TAO_ETCL_STRING;
+//#line 106 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
@@ -393,20 +393,20 @@
case 38:
YY_RULE_SETUP
-#line 111 "ETCL.ll"
--{
-- lvalp->constraint =
+-{
+- lvalp->constraint =
+//#line 111 "ETCL/ETCL.ll"
+{
+ yylval.constraint =
new TAO_ETCL_Identifier (yytext);
-- TAO_YY_LEX_DEBUG; return TAO_ETCL_IDENT;
+- TAO_YY_LEX_DEBUG; return TAO_ETCL_IDENT;
+ TAO_YY_LEX_DEBUG; return TAO_ETCL_IDENT;
}
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 116 "ETCL.ll"
--{
+-{
+//#line 116 "ETCL/ETCL.ll"
+{
TAO_YY_LEX_DEBUG; break; // Ignore
@@ -415,7 +415,7 @@
case 40:
YY_RULE_SETUP
-#line 119 "ETCL.ll"
--{
+-{
+//#line 119 "ETCL/ETCL.ll"
+{
TAO_YY_LEX_DEBUG; break; // @@ TODO
@@ -431,11 +431,11 @@
-#line 956 "lex.yy.c"
case YY_STATE_EOF(INITIAL):
yyterminate();
-
+
@@ -1288,7 +1278,7 @@
return yy_is_jam ? 0 : yy_current_state;
}
-
+
-
+#if 0
#ifndef YY_NO_UNPUT
@@ -447,37 +447,37 @@
#endif /* ifndef YY_NO_UNPUT */
-
+#endif /* 0 */
-
+
#ifdef __cplusplus
static int yyinput()
@@ -1406,6 +1396,11 @@
return c;
}
-
+
+void yyflush_current_buffer (void)
+{
+ YY_FLUSH_BUFFER;
+}
+
-
+
#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
@@ -1516,11 +1511,6 @@
}
-
-
+
+
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
-
+
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@@ -1537,15 +1527,18 @@
b->yy_input_file = file;
b->yy_fill_buffer = 1;
-
+
-#if YY_ALWAYS_INTERACTIVE
- b->yy_is_interactive = 1;
-#else
@@ -485,27 +485,27 @@
- b->yy_is_interactive = 0;
+#if defined (ACE_HAS_WINCE)
+ // Mimic the behavior as WinCE does not have isatty().
-+ if ((file != 0) && (file == fileno(file))) {
++ if ((file != 0) && (file == ACE_OS::fileno(file))) {
+ b->yy_is_interactive = 1;
+ }
+ else {
+ b->yy_is_interactive = 0;
+ }
#else
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+ b->yy_is_interactive = file ? (ACE_OS::isatty( ACE_OS::fileno(file) ) > 0) : 0;
-#endif
-#endif
+#endif // ACE_HAS_WINCE
+
}
-
-
+
+
@@ -1838,7 +1831,7 @@
return 0;
}
#endif
-#line 122 "ETCL.ll"
+//#line 122 "ETCL/ETCL.ll"
-
-
+
+
const char*
diff --git a/ACE/ace/Event_Handler.cpp b/ACE/ace/Event_Handler.cpp
index 42c8b36cd8e..dfbf1154034 100644
--- a/ACE/ace/Event_Handler.cpp
+++ b/ACE/ace/Event_Handler.cpp
@@ -377,6 +377,8 @@ ACE_Event_Handler_var::reset (ACE_Event_Handler *p)
// ---------------------------------------------------------------------
ACE_Notification_Buffer::ACE_Notification_Buffer (void)
+ : eh_ (0),
+ mask_ (ACE_Event_Handler::NULL_MASK)
{
ACE_TRACE ("ACE_Notification_Buffer::ACE_Notification_Buffer");
}
diff --git a/ACE/ace/Future.cpp b/ACE/ace/Future.cpp
index 9945827c09c..f83717c6f8f 100644
--- a/ACE/ace/Future.cpp
+++ b/ACE/ace/Future.cpp
@@ -328,8 +328,7 @@ template <class T> int
ACE_Future<T>::cancel (const T &r)
{
this->cancel ();
- return this->future_rep_->set (r,
- *this);
+ return this->future_rep_->set (r, *this);
}
template <class T> int
@@ -346,8 +345,7 @@ template <class T> int
ACE_Future<T>::set (const T &r)
{
// Give the pointer to the result to the ACE_Future_Rep.
- return this->future_rep_->set (r,
- *this);
+ return this->future_rep_->set (r, *this);
}
template <class T> int
diff --git a/ACE/ace/Guard_T.cpp b/ACE/ace/Guard_T.cpp
index d9c72e30be1..895c0d9ffdc 100644
--- a/ACE/ace/Guard_T.cpp
+++ b/ACE/ace/Guard_T.cpp
@@ -32,7 +32,7 @@ ACE_Guard<ACE_LOCK>::dump (void) const
ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("mutex_ = %x\n"), this->lock_));
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("owner_ = %d\n"), this->owner_));
- ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
+ ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP, this));
#endif /* ACE_HAS_DUMP */
}
diff --git a/ACE/ace/High_Res_Timer.cpp b/ACE/ace/High_Res_Timer.cpp
index f4eee00cbbd..ce787c02129 100644
--- a/ACE/ace/High_Res_Timer.cpp
+++ b/ACE/ace/High_Res_Timer.cpp
@@ -273,14 +273,14 @@ ACE_High_Res_Timer::calibrate (const ACE_UINT32 usec,
i < iterations;
++i)
{
- const ACE_Time_Value actual_start =
+ ACE_Time_Value const actual_start =
ACE_OS::gettimeofday ();
- const ACE_hrtime_t start =
+ ACE_hrtime_t const start =
ACE_OS::gethrtime ();
ACE_OS::sleep (sleep_time);
- const ACE_hrtime_t stop =
+ ACE_hrtime_t const stop =
ACE_OS::gethrtime ();
- const ACE_Time_Value actual_delta =
+ ACE_Time_Value const actual_delta =
ACE_OS::gettimeofday () - actual_start;
// Store the sample.
diff --git a/ACE/ace/High_Res_Timer.inl b/ACE/ace/High_Res_Timer.inl
index 90ae2e47630..56df6e1f04b 100644
--- a/ACE/ace/High_Res_Timer.inl
+++ b/ACE/ace/High_Res_Timer.inl
@@ -82,7 +82,7 @@ ACE_High_Res_Timer::gettime (const ACE_OS::ACE_HRTimer_Op op)
// If there isn't a high-res timer, use gettimeofday ();
if (ACE_High_Res_Timer::global_scale_factor_status_ == -1)
{
- ACE_Time_Value tv = ACE_OS::gettimeofday ();
+ ACE_Time_Value const tv = ACE_OS::gettimeofday ();
// Return the time in microseconds because the global_scale_factor_
// is 1.
return tv.sec () * ACE_ONE_SECOND_IN_USECS + tv.usec ();
diff --git a/ACE/ace/Lib_Find.cpp b/ACE/ace/Lib_Find.cpp
index 3caa58bf19e..49cc12d8b27 100644
--- a/ACE/ace/Lib_Find.cpp
+++ b/ACE/ace/Lib_Find.cpp
@@ -375,9 +375,9 @@ ACE::ldfind (const ACE_TCHAR* filename,
else if (pathlen > 0)
return 0;
#else
- ACE_TCHAR *ld_path;
+ ACE_TCHAR *ld_path = 0;
# if defined ACE_DEFAULT_LD_SEARCH_PATH
- ld_path = ACE_DEFAULT_LD_SEARCH_PATH;
+ ld_path = const_cast <ACE_TCHAR*> (ACE_DEFAULT_LD_SEARCH_PATH);
# else
# if defined (ACE_WIN32) || !defined (ACE_USES_WCHAR)
ld_path = ACE_OS::getenv (ACE_LD_SEARCH_PATH);
@@ -593,8 +593,8 @@ ACE::get_temp_dir (ACE_TCHAR *buffer, size_t buffer_len)
buffer);
// Make sure to return -1 if there is an error
- if (result == 0 && ::GetLastError () != ERROR_SUCCESS
- || result > static_cast<int> (buffer_len))
+ if ((result == 0 && ::GetLastError () != ERROR_SUCCESS)
+ || (result > static_cast<int> (buffer_len)))
result = -1;
#else /* ACE_WIN32 */
diff --git a/ACE/ace/Log_Record.h b/ACE/ace/Log_Record.h
index a48b9a322bf..a42d5cb4685 100644
--- a/ACE/ace/Log_Record.h
+++ b/ACE/ace/Log_Record.h
@@ -83,7 +83,7 @@ public:
#if !defined (ACE_LACKS_IOSTREAM_TOTALLY)
/// Write the contents of the logging record to the appropriate
- /// <ostream> if the corresponding type is enabled.
+ /// @a stream if the corresponding type is enabled.
int print (const ACE_TCHAR host_name[],
u_long verbose_flag,
ACE_OSTREAM_TYPE &stream);
diff --git a/ACE/ace/Makefile.am b/ACE/ace/Makefile.am
index 762942fbcae..8a21c9da631 100644
--- a/ACE/ace/Makefile.am
+++ b/ACE/ace/Makefile.am
@@ -475,6 +475,7 @@ nobase_include_HEADERS += \
Containers_T.inl \
Copy_Disabled.h \
Countdown_Time.h \
+ Countdown_Time.inl \
DEV.h \
DEV.inl \
DEV_Addr.h \
@@ -1074,6 +1075,8 @@ nobase_include_HEADERS += \
Timer_Queuefwd.h \
Timer_Wheel_T.cpp \
Timer_Wheel_T.h \
+ Tokenizer_T.cpp \
+ Tokenizer_T.h \
Timer_Hash.h \
Timer_Heap.h \
Timer_List.h \
diff --git a/ACE/ace/Message_Queue_Vx.h b/ACE/ace/Message_Queue_Vx.h
index 418e8cce183..535e1e25557 100644
--- a/ACE/ace/Message_Queue_Vx.h
+++ b/ACE/ace/Message_Queue_Vx.h
@@ -62,7 +62,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
* * is ignored; only the first block of a fragment chain is
* * recognized.
*/
-class ACE_Message_Queue_Vx : public ACE_Message_Queue<ACE_NULL_SYNCH>
+class ACE_Export ACE_Message_Queue_Vx: public ACE_Message_Queue<ACE_NULL_SYNCH>
{
public:
// = Initialization and termination methods.
diff --git a/ACE/ace/Module.h b/ACE/ace/Module.h
index a13d88d5f92..2c90ad64160 100644
--- a/ACE/ace/Module.h
+++ b/ACE/ace/Module.h
@@ -94,8 +94,8 @@ public:
int flags = M_DELETE);
/**
- * Initialize the module with <module_name> as its identity
- * and <reader> and <writer> as its tasks. Previously register
+ * Initialize the module with @a module_name as its identity
+ * and @a reader> and @a writer as its tasks. Previously register
* reader or writers or closed down and deleted according to the
* value of flags_. Should not be called from within
* <ACE_Task::module_closed>.
@@ -174,7 +174,7 @@ public:
private:
/// Implements the close operation for either the reader or the
- /// writer task (depending on <which>).
+ /// writer task (depending on @a which).
int close_i (int which, int flags);
/// Pair of Tasks that form the "read-side" and "write-side" of the
diff --git a/ACE/ace/Monitor_Admin.h b/ACE/ace/Monitor_Admin.h
index 576baeaeb3d..491637c2e3a 100644
--- a/ACE/ace/Monitor_Admin.h
+++ b/ACE/ace/Monitor_Admin.h
@@ -50,10 +50,10 @@ namespace ACE
*/
class Monitor_Point_Auto_Updater : public ACE_Event_Handler
{
- public:
- /// Override of ACE base class method.
- virtual int handle_timeout (const ACE_Time_Value& interval,
- const void* monitor_point);
+ public:
+ /// Override of ACE base class method.
+ virtual int handle_timeout (const ACE_Time_Value& interval,
+ const void* monitor_point);
};
/**
diff --git a/ACE/ace/Monitor_Control/Auto_Update_Starter.h b/ACE/ace/Monitor_Control/Auto_Update_Starter.h
index 8359298cb8c..8339a18f02a 100644
--- a/ACE/ace/Monitor_Control/Auto_Update_Starter.h
+++ b/ACE/ace/Monitor_Control/Auto_Update_Starter.h
@@ -44,8 +44,8 @@ namespace ACE
*/
class MONITOR_CONTROL_Export Auto_Update_Starter : public ACE_Task_Base
{
- public:
- int svc (void);
+ public:
+ int svc (void);
};
}
}
diff --git a/ACE/ace/Notification_Queue.cpp b/ACE/ace/Notification_Queue.cpp
index a63477084dd..fde56ad3f0a 100644
--- a/ACE/ace/Notification_Queue.cpp
+++ b/ACE/ace/Notification_Queue.cpp
@@ -208,8 +208,7 @@ ACE_Notification_Queue::pop_next_notification(
return 0;
}
- ACE_Notification_Queue_Node * node =
- notify_queue_.pop_front();
+ ACE_Notification_Queue_Node * node = notify_queue_.pop_front();
current = node->get();
free_queue_.push_front(node);
diff --git a/ACE/ace/OS_NS_Thread.cpp b/ACE/ace/OS_NS_Thread.cpp
index 98633f4d5f8..9315613c74b 100644
--- a/ACE/ace/OS_NS_Thread.cpp
+++ b/ACE/ace/OS_NS_Thread.cpp
@@ -33,7 +33,7 @@ ACE_MUTEX_LOCK_CLEANUP_ADAPTER_NAME (void *args)
#if !defined(ACE_WIN32) && defined (__IBMCPP__) && (__IBMCPP__ >= 400)
# define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \
(*THR_ID = ::_beginthreadex ((void(_Optlink*)(void*))ENTRY_POINT, STACK, STACKSIZE, ARGS), *THR_ID)
-#elif defined (ACE_HAS_WINCE) && defined (UNDER_CE) && (UNDER_CE >= 211)
+#elif defined (ACE_HAS_WINCE)
# define ACE_BEGINTHREADEX(STACK, STACKSIZE, ENTRY_POINT, ARGS, FLAGS, THR_ID) \
CreateThread (0, STACKSIZE, (unsigned long (__stdcall *) (void *)) ENTRY_POINT, ARGS, (FLAGS) & (CREATE_SUSPENDED | STACK_SIZE_PARAM_IS_A_RESERVATION), (unsigned long *) THR_ID)
#elif defined(ACE_HAS_WTHREADS)
@@ -117,17 +117,15 @@ ACE_OS_thread_key_t ACE_TSS_Emulation::native_tss_key_;
# if defined (ACE_HAS_THR_C_FUNC)
extern "C"
void
-ACE_TSS_Emulation_cleanup (void *ptr)
+ACE_TSS_Emulation_cleanup (void *)
{
- ACE_UNUSED_ARG (ptr);
// Really this must be used for ACE_TSS_Emulation code to make the TSS
// cleanup
}
# else
void
-ACE_TSS_Emulation_cleanup (void *ptr)
+ACE_TSS_Emulation_cleanup (void *)
{
- ACE_UNUSED_ARG (ptr);
// Really this must be used for ACE_TSS_Emulation code to make the TSS
// cleanup
}
@@ -1152,7 +1150,7 @@ ACE_OS::cond_broadcast (ACE_cond_t *cv)
// This is needed to ensure that <waiters_> and <was_broadcast_> are
// consistent relative to each other.
ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- int have_waiters = 0;
+ bool have_waiters = false;
if (cv->waiters_ > 0)
{
@@ -1161,7 +1159,7 @@ ACE_OS::cond_broadcast (ACE_cond_t *cv)
// cond_wait() method know how to optimize itself. Be sure to
// set this with the <waiters_lock_> held.
cv->was_broadcast_ = 1;
- have_waiters = 1;
+ have_waiters = true;
}
ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
int result = 0;
@@ -1299,7 +1297,7 @@ ACE_OS::cond_signal (ACE_cond_t *cv)
// value is not in an inconsistent internal state while being
// updated by another thread.
ACE_OS::thread_mutex_lock (&cv->waiters_lock_);
- bool have_waiters = cv->waiters_ > 0;
+ bool const have_waiters = cv->waiters_ > 0;
ACE_OS::thread_mutex_unlock (&cv->waiters_lock_);
if (have_waiters)
@@ -3423,7 +3421,7 @@ ACE_OS::rwlock_init (ACE_rwlock_t *rw,
rw->ref_count_ = 0;
rw->num_waiting_writers_ = 0;
rw->num_waiting_readers_ = 0;
- rw->important_writer_ = 0;
+ rw->important_writer_ = false;
result = 0;
}
ACE_OS::condattr_destroy (attributes);
@@ -4630,6 +4628,14 @@ ACE_OS::thr_get_affinity (ACE_hthread_t thr_id,
return -1;
}
return 0;
+#elif defined (ACE_HAS_TASKCPUAFFINITYSET)
+ ACE_UNUSED_ARG (cpu_set_size);
+ int result = 0;
+ if (ACE_ADAPT_RETVAL (::taskCpuAffinitySet (thr_id, *cpu_mask), result) == -1)
+ {
+ return -1;
+ }
+ return 0;
#else
ACE_UNUSED_ARG (thr_id);
ACE_UNUSED_ARG (cpu_set_size);
@@ -4672,6 +4678,13 @@ ACE_OS::thr_set_affinity (ACE_hthread_t thr_id,
return -1;
}
return 0;
+#elif defined (ACE_HAS_TASKCPUAFFINITYSET)
+ int result = 0;
+ if (ACE_ADAPT_RETVAL (::taskCpuAffinitySet (thr_id, *cpu_mask), result) == -1)
+ {
+ return -1;
+ }
+ return 0;
#else
ACE_UNUSED_ARG (thr_id);
ACE_UNUSED_ARG (cpu_set_size);
@@ -5127,59 +5140,62 @@ add_to_argv (int& argc, char** argv, int max_args, char* string)
size_t previous = 0;
size_t length = ACE_OS::strlen (string);
- // We use <= to make sure that we get the last argument
- for (size_t i = 0; i <= length; i++)
+ if (length > 0)
{
- // Is it a double quote that hasn't been escaped?
- if (string[i] == '\"' && (i == 0 || string[i - 1] != '\\'))
+ // We use <= to make sure that we get the last argument
+ for (size_t i = 0; i <= length; i++)
{
- indouble ^= 1;
- if (indouble)
+ // Is it a double quote that hasn't been escaped?
+ if (string[i] == '\"' && (i == 0 || string[i - 1] != '\\'))
{
- // We have just entered a double quoted string, so
- // save the starting position of the contents.
- previous = i + 1;
- }
- else
- {
- // We have just left a double quoted string, so
- // zero out the ending double quote.
- string[i] = '\0';
+ indouble ^= 1;
+ if (indouble)
+ {
+ // We have just entered a double quoted string, so
+ // save the starting position of the contents.
+ previous = i + 1;
+ }
+ else
+ {
+ // We have just left a double quoted string, so
+ // zero out the ending double quote.
+ string[i] = '\0';
+ }
}
- }
- else if (string[i] == '\\') // Escape the next character
- {
- // The next character is automatically
- // skipped because of the strcpy
- ACE_OS::strcpy (string + i, string + i + 1);
- length--;
- }
- else if (!indouble &&
- (ACE_OS::ace_isspace (string[i]) || string[i] == '\0'))
- {
- string[i] = '\0';
- if (argc < max_args)
+ else if (string[i] == '\\') // Escape the next character
{
- argv[argc] = string + previous;
- argc++;
+ // The next character is automatically
+ // skipped because of the strcpy
+ ACE_OS::strcpy (string + i, string + i + 1);
+ --length;
}
- else
+ else if (!indouble &&
+ (ACE_OS::ace_isspace (string[i]) || string[i] == '\0'))
{
- ACE_OS::fprintf (stderr, "spae(): number of arguments "
- "limited to %d\n", max_args);
- }
+ string[i] = '\0';
+ if (argc < max_args)
+ {
+ argv[argc] = string + previous;
+ ++argc;
+ }
+ else
+ {
+ ACE_OS::fprintf (stderr, "spae(): number of arguments "
+ "limited to %d\n", max_args);
+ }
- // Skip over whitespace in between arguments
- for(++i; i < length && ACE_OS::ace_isspace (string[i]); ++i)
- {
- }
+ // Skip over whitespace in between arguments
+ for(++i; i < length && ACE_OS::ace_isspace (string[i]); ++i)
+ {
+ }
- // Save the starting point for the next time around
- previous = i;
+ // Save the starting point for the next time around
+ previous = i;
- // Make sure we don't skip over a character due
- // to the above loop to skip over whitespace
- i--;
+ // Make sure we don't skip over a character due
+ // to the above loop to skip over whitespace
+ --i;
+ }
}
}
}
@@ -5305,9 +5321,10 @@ vx_execae (FUNCPTR entry, char* arg, int prio, int opt, int stacksz, ...)
int argc = 1;
// Peel off arguments to run_main () and put into argv.
-
if (arg)
- add_to_argv(argc, argv, ACE_MAX_ARGS, arg);
+ {
+ add_to_argv(argc, argv, ACE_MAX_ARGS, arg);
+ }
// fill unused argv slots with 0 to get rid of leftovers
// from previous invocations
diff --git a/ACE/ace/OS_NS_Thread.h b/ACE/ace/OS_NS_Thread.h
index 82573039b34..70d8d730b34 100644
--- a/ACE/ace/OS_NS_Thread.h
+++ b/ACE/ace/OS_NS_Thread.h
@@ -433,7 +433,7 @@ public:
int ref_count_;
/// Indicate that a reader is trying to upgrade
- int important_writer_;
+ bool important_writer_;
/// Condition for the upgrading reader
ACE_cond_t waiting_important_writer_;
diff --git a/ACE/ace/OS_NS_Thread.inl b/ACE/ace/OS_NS_Thread.inl
index 23058815be6..bddcd067859 100644
--- a/ACE/ace/OS_NS_Thread.inl
+++ b/ACE/ace/OS_NS_Thread.inl
@@ -490,30 +490,11 @@ ACE_OS::recursive_mutex_cond_unlock (ACE_recursive_thread_mutex_t *m,
// need to release the lock one fewer times than this thread has acquired
// it. Remember how many times, and reacquire it that many more times when
// the condition is signaled.
- //
- // For WinCE, the situation is a bit trickier. CE doesn't have
- // RecursionCount, and LockCount has changed semantics over time.
- // In CE 3 (and maybe 4?) LockCount is not an indicator of recursion;
- // instead, see when it's unlocked by watching the OwnerThread, which will
- // change to something other than the current thread when it's been
- // unlocked "enough" times. Note that checking for 0 (unlocked) is not
- // sufficient. Another thread may acquire the lock between our unlock and
- // checking the OwnerThread. So grab our thread ID value first, then
- // compare to it in the loop condition. NOTE - the problem with this
- // scheme is that we really want to unlock the mutex one _less_ times than
- // required to release it for another thread to acquire. With CE 5 we
- // can do this by watching LockCount alone. I _think_ it can be done by
- // watching LockCount on CE 4 as well (though its meaning is different),
- // but I'm leary of changing this code since a user reported success
- // with it.
- //
+
// We're using undocumented fields in the CRITICAL_SECTION structure
// and they've been known to change across Windows variants and versions./
// So be careful if you need to change these - there may be other
// Windows variants that depend on existing values and limits.
-# if defined (ACE_HAS_WINCE) && (UNDER_CE < 500)
- ACE_thread_t me = ACE_OS::thr_self ();
-# endif /* ACE_HAS_WINCE && CE 4 or earlier */
state.relock_count_ = 0;
while (
@@ -521,13 +502,8 @@ ACE_OS::recursive_mutex_cond_unlock (ACE_recursive_thread_mutex_t *m,
m->LockCount > 0 && m->RecursionCount > 1
# else
// WinCE doesn't have RecursionCount and the LockCount semantic
- // has changed between versions; pre-Mobile 5 the LockCount
- // was 0-indexed, and Mobile 5 has it 1-indexed.
-# if (UNDER_CE < 500)
- m->LockCount > 0 && m->OwnerThread == (HANDLE)me
-# else
+ // Mobile 5 has it 1-indexed.
m->LockCount > 1
-# endif /* UNDER_CE < 500 */
# endif /* ACE_HAS_WINCE */
)
{
@@ -1113,7 +1089,7 @@ ACE_OS::rw_trywrlock_upgrade (ACE_rwlock_t *rw)
while (rw->ref_count_ > 1) // wait until only I am left
{
rw->num_waiting_writers_++; // prohibit any more readers
- rw->important_writer_ = 1;
+ rw->important_writer_ = true;
if (ACE_OS::cond_wait (&rw->waiting_important_writer_, &rw->lock_) == -1)
{
@@ -1121,7 +1097,7 @@ ACE_OS::rw_trywrlock_upgrade (ACE_rwlock_t *rw)
// we know that we have the lock again, we have this guarantee,
// but something went wrong
}
- rw->important_writer_ = 0;
+ rw->important_writer_ = false;
rw->num_waiting_writers_--;
}
if (result == 0)
@@ -1386,8 +1362,8 @@ ACE_OS::sema_destroy (ACE_sema_t *s)
ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (*s), ace_result_), int, -1);
# else /* ACE_USES_WINCE_SEMA_SIMULATION */
// Free up underlying objects of the simulated semaphore.
- int r1 = ACE_OS::thread_mutex_destroy (&s->lock_);
- int r2 = ACE_OS::event_destroy (&s->count_nonzero_);
+ int const r1 = ACE_OS::thread_mutex_destroy (&s->lock_);
+ int const r2 = ACE_OS::event_destroy (&s->count_nonzero_);
return r1 != 0 || r2 != 0 ? -1 : 0;
# endif /* ACE_USES_WINCE_SEMA_SIMULATION */
# elif defined (ACE_VXWORKS)
@@ -2705,11 +2681,12 @@ ACE_OS::thr_getprio (ACE_hthread_t ht_id, int &priority, int &policy)
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getprio (ht_id, &priority), result), int, -1);
# elif defined (ACE_HAS_WTHREADS)
ACE_Errno_Guard error (errno);
-# if !defined (ACE_HAS_WINCE)
- priority = ::GetThreadPriority (ht_id);
-# else
+
+# if defined (ACE_HAS_WINCE) && !defined (ACE_LACKS_CE_THREAD_PRIORITY)
priority = ::CeGetThreadPriority (ht_id);
-# endif
+# else
+ priority = ::GetThreadPriority (ht_id);
+# endif /* defined (ACE_HAS_WINCE) && !defined (ACE_LACKS_CE_THREAD_PRIORITY) */
# if defined (ACE_HAS_PHARLAP)
# if defined (ACE_PHARLAP_LABVIEW_RT)
@@ -3136,15 +3113,17 @@ ACE_OS::thr_setprio (ACE_hthread_t ht_id, int priority, int policy)
result),
int, -1);
# elif defined (ACE_HAS_WTHREADS)
-# if !defined (ACE_HAS_WINCE)
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetThreadPriority (ht_id, priority),
+
+# if defined (ACE_HAS_WINCE) && !defined (ACE_LACKS_CE_THREAD_PRIORITY)
+ ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CeSetThreadPriority (ht_id, priority),
ace_result_),
int, -1);
-# else
- ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CeSetThreadPriority (ht_id, priority),
+# else
+ ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetThreadPriority (ht_id, priority),
ace_result_),
int, -1);
-# endif /* ACE_HAS_WINCE */
+# endif /* defined (ACE_HAS_WINCE) && !defined (ACE_LACKS_CE_THREAD_PRIORITY) */
+
# elif defined (ACE_HAS_VXTHREADS)
ACE_OSCALL_RETURN (::taskPrioritySet (ht_id, priority), int, -1);
# else
diff --git a/ACE/ace/OS_NS_dirent.cpp b/ACE/ace/OS_NS_dirent.cpp
index d9d05b0b2d6..e0326a7ff6a 100644
--- a/ACE/ace/OS_NS_dirent.cpp
+++ b/ACE/ace/OS_NS_dirent.cpp
@@ -122,8 +122,7 @@ ACE_OS::readdir_emulation (ACE_DIR *d)
}
else
{
- int retval = ACE_TEXT_FindNextFile (d->current_handle_,
- &d->fdata_);
+ int const retval = ACE_TEXT_FindNextFile (d->current_handle_, &d->fdata_);
if (retval == 0)
{
// Make sure to close the handle explicitly to avoid a leak!
diff --git a/ACE/ace/OS_NS_dlfcn.inl b/ACE/ace/OS_NS_dlfcn.inl
index 5b5e4142bb3..46f73235c82 100644
--- a/ACE/ace/OS_NS_dlfcn.inl
+++ b/ACE/ace/OS_NS_dlfcn.inl
@@ -78,7 +78,7 @@ ACE_OS::dlerror (void)
{
ACE_OS_TRACE ("ACE_OS::dlerror");
# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING)
- const char *err;
+ const char *err = 0;
# if defined(_M_UNIX)
ACE_OSCALL (::_dlerror (), const char *, 0, err);
# else /* _M_UNIX */
diff --git a/ACE/ace/OS_NS_errno.h b/ACE/ace/OS_NS_errno.h
index c4ea9d57a8f..42894742c97 100644
--- a/ACE/ace/OS_NS_errno.h
+++ b/ACE/ace/OS_NS_errno.h
@@ -82,8 +82,10 @@ private:
#if defined (ACE_HAS_WINCE_BROKEN_ERRNO)
# define ACE_ERRNO_TYPE ACE_CE_Errno
+# define ACE_ERRNO_GET ACE_CE_Errno::instance ()->operator int()
#else
# define ACE_ERRNO_TYPE int
+# define ACE_ERRNO_GET errno
#endif /* ACE_HAS_WINCE_BROKEN_ERRNO */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_stdio.h b/ACE/ace/OS_NS_stdio.h
index 3133628d5dc..770b5ac7ca7 100644
--- a/ACE/ace/OS_NS_stdio.h
+++ b/ACE/ace/OS_NS_stdio.h
@@ -34,6 +34,10 @@
# include "ace/os_include/os_unistd.h"
#endif /* CYGWIN32 || ACE_OPENVMS */
+#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
+# include "io.h"
+#endif
+
#if defined (ACE_EXPORT_MACRO)
# undef ACE_EXPORT_MACRO
#endif
@@ -108,6 +112,19 @@ inline int ace_ungetc_helper (int ch, FILE *fp)
#endif /* defined (ungetc) */
}
+inline ACE_HANDLE ace_fileno_helper (FILE *fp)
+{
+#if defined (fileno) && !defined (ACE_WIN32)
+ return fileno (fp);
+#elif defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
+ return (ACE_HANDLE)_get_osfhandle (ACE_STD_NAMESPACE::fileno (fp));
+#else
+ return ACE_STD_NAMESPACE::fileno (fp);
+#endif /* defined (fileno) */
+#if defined (fileno)
+# undef fileno
+#endif /* defined (fileno) */
+}
#if !defined (ACE_LACKS_CUSERID) && !defined(ACE_HAS_ALT_CUSERID) \
&& !defined(ACE_WIN32) && !defined (ACE_VXWORKS)
@@ -298,6 +315,10 @@ namespace ACE_OS {
//@}
+
+ ACE_NAMESPACE_INLINE_FUNCTION
+ ACE_HANDLE fileno (FILE *stream);
+
#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
extern ACE_Export
#else
diff --git a/ACE/ace/OS_NS_stdio.inl b/ACE/ace/OS_NS_stdio.inl
index 26c137e9d10..51318281098 100644
--- a/ACE/ace/OS_NS_stdio.inl
+++ b/ACE/ace/OS_NS_stdio.inl
@@ -544,14 +544,6 @@ ACE_INLINE int
ACE_OS::fflush (FILE *fp)
{
ACE_OS_TRACE ("ACE_OS::fflush");
-#if defined (ACE_VXWORKS)
- if (fp == 0)
- {
- // Do not allow fflush(0) on VxWorks
- return 0;
- }
-#endif /* ACE_VXWORKS */
-
ACE_OSCALL_RETURN (ACE_STD_NAMESPACE::fflush (fp), int, -1);
}
@@ -589,6 +581,12 @@ ACE_OS::fgets (wchar_t *buf, int size, FILE *fp)
}
#endif /* ACE_HAS_WCHAR && !ACE_LACKS_FGETWS */
+ACE_INLINE ACE_HANDLE
+ACE_OS::fileno (FILE *stream)
+{
+ return ace_fileno_helper (stream);
+}
+
#if !(defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
// Win32 PC implementation of fopen () is in OS_NS_stdio.cpp.
ACE_INLINE FILE *
@@ -1011,7 +1009,8 @@ ACE_OS::vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr)
# if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500) || \
(defined (sun) && !(defined(_XOPEN_SOURCE) && (_XOPEN_VERSION-0==4))) || \
defined (ACE_HAS_DINKUM_STL) || defined (__DMC__) || \
- defined (ACE_HAS_VSWPRINTF) || defined (ACE_WIN32_VC9) || \
+ defined (ACE_HAS_VSWPRINTF) || \
+ (defined (ACE_WIN32_VC9) && !defined (ACE_HAS_WINCE)) || \
(defined (ACE_WIN32_VC8) && !defined (ACE_HAS_WINCE) && \
_MSC_FULL_VER > 140050000)
diff --git a/ACE/ace/OS_NS_stdlib.cpp b/ACE/ace/OS_NS_stdlib.cpp
index 0ddc012e888..d89835b7c0b 100644
--- a/ACE/ace/OS_NS_stdlib.cpp
+++ b/ACE/ace/OS_NS_stdlib.cpp
@@ -61,17 +61,11 @@ ACE_OS::exit (int status)
(*exit_hook_) ();
#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER && !ACE_HAS_WINCE && !ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER */
-#if !defined (ACE_HAS_WINCE)
-# if defined (ACE_WIN32)
+#if defined (ACE_WIN32)
::ExitProcess ((UINT) status);
-# else
- ::exit (status);
-# endif /* ACE_WIN32 */
#else
- // @@ This is not exactly the same as ExitProcess. But this is the
- // closest one I can get.
- ::TerminateProcess (::GetCurrentProcess (), status);
-#endif /* ACE_HAS_WINCE */
+ ::exit (status);
+#endif /* ACE_WIN32 */
}
void
diff --git a/ACE/ace/OS_NS_string.cpp b/ACE/ace/OS_NS_string.cpp
index be63e28e450..504d3df7e26 100644
--- a/ACE/ace/OS_NS_string.cpp
+++ b/ACE/ace/OS_NS_string.cpp
@@ -147,7 +147,7 @@ ACE_OS::strerror (int errnum)
* Just returns "Unknown Error" all the time.
*/
char *
-ACE_OS::strerror_emulation (int errnum)
+ACE_OS::strerror_emulation (int)
{
return "Unknown Error";
}
diff --git a/ACE/ace/OS_NS_stropts.cpp b/ACE/ace/OS_NS_stropts.cpp
index 4bde7d4ae9c..4a4023e0054 100644
--- a/ACE/ace/OS_NS_stropts.cpp
+++ b/ACE/ace/OS_NS_stropts.cpp
@@ -47,7 +47,6 @@ ACE_OS::ioctl (ACE_HANDLE socket,
# endif /* ACE_HAS_WINSOCK2 */
}
-#if !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500))
int
ACE_OS::ioctl (ACE_HANDLE socket,
unsigned long io_control_code,
@@ -190,6 +189,5 @@ ACE_OS::ioctl (ACE_HANDLE socket,
ACE_NOTSUP_RETURN (-1);
# endif /* ACE_HAS_WINSOCK2 */
}
-#endif /* !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500)) */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_NS_stropts.h b/ACE/ace/OS_NS_stropts.h
index 762d0c1fbc2..a17e9052fd0 100644
--- a/ACE/ace/OS_NS_stropts.h
+++ b/ACE/ace/OS_NS_stropts.h
@@ -126,7 +126,6 @@ namespace ACE_OS {
ACE_OVERLAPPED *overlapped,
ACE_OVERLAPPED_COMPLETION_FUNC func);
-#if !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500))
/// QoS-enabled @c ioctl when the I/O control code is either
/// SIO_SET_QOS or SIO_GET_QOS.
extern ACE_Export
@@ -138,7 +137,6 @@ namespace ACE_OS {
unsigned long buffer = 0,
ACE_OVERLAPPED *overlapped = 0,
ACE_OVERLAPPED_COMPLETION_FUNC func = 0);
-#endif /* !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500)) */
ACE_NAMESPACE_INLINE_FUNCTION
int isastream (ACE_HANDLE handle);
diff --git a/ACE/ace/OS_NS_sys_mman.inl b/ACE/ace/OS_NS_sys_mman.inl
index 03306ad018a..95d1899d055 100644
--- a/ACE/ace/OS_NS_sys_mman.inl
+++ b/ACE/ace/OS_NS_sys_mman.inl
@@ -75,10 +75,14 @@ ACE_OS::mmap (void *addr,
if (ACE_BIT_ENABLED (flags, MAP_PRIVATE))
{
-# if !defined(ACE_HAS_WINCE)
+# if defined(ACE_HAS_WINCE)
+ // PAGE_WRITECOPY is not avaible on CE, but this should be the same
+ // as PAGE_READONLY according to MSDN
+ nt_flags = FILE_MAP_ALL_ACCESS;
+# else
prot = PAGE_WRITECOPY;
-# endif // ACE_HAS_WINCE
nt_flags = FILE_MAP_COPY;
+# endif // ACE_HAS_WINCE
}
else if (ACE_BIT_ENABLED (flags, MAP_SHARED))
{
@@ -93,7 +97,7 @@ ACE_OS::mmap (void *addr,
{
SECURITY_ATTRIBUTES sa_buffer;
SECURITY_DESCRIPTOR sd_buffer;
- const LPSECURITY_ATTRIBUTES attr =
+ LPSECURITY_ATTRIBUTES const attr =
ACE_OS::default_win32_security_attributes_r (sa,
&sa_buffer,
&sd_buffer);
@@ -116,20 +120,20 @@ ACE_OS::mmap (void *addr,
DWORD low_off = ACE_LOW_PART (off);
DWORD high_off = ACE_HIGH_PART (off);
-# if !defined (ACE_HAS_WINCE)
+# if defined (ACE_HAS_WINCE)
+ void *addr_mapping = ::MapViewOfFile (*file_mapping,
+ nt_flags,
+ high_off,
+ low_off,
+ len);
+# else
void *addr_mapping = ::MapViewOfFileEx (*file_mapping,
nt_flags,
high_off,
low_off,
len,
addr);
-# else
- void *addr_mapping = ::MapViewOfFile (*file_mapping,
- nt_flags,
- high_off,
- low_off,
- len);
-# endif /* ! ACE_HAS_WINCE */
+# endif /* ACE_HAS_WINCE */
// Only close this down if we used the temporary.
if (file_mapping == &local_handle)
@@ -239,7 +243,7 @@ ACE_OS::shm_open (const ACE_TCHAR *filename,
ACE_OS_TRACE ("ACE_OS::shm_open");
#if defined (ACE_HAS_SHM_OPEN)
ACE_UNUSED_ARG (sa);
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x650)
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670)
// With VxWorks the file should just start with / and no other
// slashes, so replace all other / by _
ACE_TCHAR buf [MAXPATHLEN + 1];
@@ -271,7 +275,7 @@ ACE_OS::shm_unlink (const ACE_TCHAR *path)
{
ACE_OS_TRACE ("ACE_OS::shm_unlink");
#if defined (ACE_HAS_SHM_OPEN)
-#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x650)
+#if defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670)
// With VxWorks the file should just start with / and no other
// slashes, so replace all other / by _
ACE_TCHAR buf [MAXPATHLEN + 1];
diff --git a/ACE/ace/OS_NS_sys_socket.cpp b/ACE/ace/OS_NS_sys_socket.cpp
index bbf468f4e63..06d523c2ea0 100644
--- a/ACE/ace/OS_NS_sys_socket.cpp
+++ b/ACE/ace/OS_NS_sys_socket.cpp
@@ -14,7 +14,6 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
int ACE_OS::socket_initialized_;
#endif /* ACE_WIN32 */
-#if !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500))
ACE_HANDLE
ACE_OS::accept (ACE_HANDLE handle,
struct sockaddr *addr,
@@ -95,7 +94,6 @@ ACE_OS::join_leaf (ACE_HANDLE socket,
ACE_NOTSUP_RETURN (ACE_INVALID_HANDLE);
# endif /* ACE_HAS_WINSOCK2 */
}
-#endif /* !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500)) */
int
ACE_OS::socket_init (int version_high, int version_low)
diff --git a/ACE/ace/OS_NS_sys_socket.h b/ACE/ace/OS_NS_sys_socket.h
index e1fcaa3c7c7..fb5a47a59a0 100644
--- a/ACE/ace/OS_NS_sys_socket.h
+++ b/ACE/ace/OS_NS_sys_socket.h
@@ -80,7 +80,6 @@ namespace ACE_OS
struct sockaddr *addr,
int *addrlen);
-#if !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500))
/**
* QoS-enabled @c accept, which passes @a qos_params to @c accept. If
* the OS platform doesn't support QoS-enabled @c accept then the
@@ -91,7 +90,6 @@ namespace ACE_OS
struct sockaddr *addr,
int *addrlen,
const ACE_Accept_QoS_Params &qos_params);
-#endif /* !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500)) */
ACE_NAMESPACE_INLINE_FUNCTION
int bind (ACE_HANDLE s,
@@ -108,7 +106,6 @@ namespace ACE_OS
struct sockaddr *addr,
int addrlen);
-#if !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500))
/**
* QoS-enabled @c connect, which passes @a qos_params to @c connect.
* If the OS platform doesn't support QoS-enabled @c connect then the
@@ -119,7 +116,6 @@ namespace ACE_OS
const sockaddr *addr,
int addrlen,
const ACE_QoS_Params &qos_params);
-#endif /* !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500)) */
/// Retrieve information about available transport protocols
/// installed on the local machine. Windows specific...
@@ -144,14 +140,12 @@ namespace ACE_OS
char *optval,
int *optlen);
-#if !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500))
/// Joins a leaf node into a QoS-enabled multi-point session.
extern ACE_Export
ACE_HANDLE join_leaf (ACE_HANDLE socket,
const sockaddr *name,
int namelen,
const ACE_QoS_Params &qos_params);
-#endif /* !(defined (ACE_HAS_WINCE) && (UNDER_CE < 500)) */
ACE_NAMESPACE_INLINE_FUNCTION
int listen (ACE_HANDLE handle,
diff --git a/ACE/ace/OS_NS_sys_socket.inl b/ACE/ace/OS_NS_sys_socket.inl
index 5fd3fb10447..6fa4c34e15b 100644
--- a/ACE/ace/OS_NS_sys_socket.inl
+++ b/ACE/ace/OS_NS_sys_socket.inl
@@ -875,7 +875,7 @@ ACE_OS::setsockopt (ACE_HANDLE handle,
-1,
result);
#if defined (WSAEOPNOTSUPP)
- if (result == -1 && errno == WSAEOPNOTSUPP)
+ if (result == -1 && (errno == WSAEOPNOTSUPP || errno == WSAENOPROTOOPT))
#else
if (result == -1)
#endif /* WSAEOPNOTSUPP */
diff --git a/ACE/ace/OS_NS_sys_utsname.cpp b/ACE/ace/OS_NS_sys_utsname.cpp
index 77fbf50faf8..76596773579 100644
--- a/ACE/ace/OS_NS_sys_utsname.cpp
+++ b/ACE/ace/OS_NS_sys_utsname.cpp
@@ -213,7 +213,7 @@ ACE_OS::uname (ACE_utsname *name)
# endif /* ACE_LACKS_HOSTNAME */
#elif defined (ACE_VXWORKS)
- size_t maxnamelen = sizeof name->nodename;
+ size_t const maxnamelen = sizeof name->nodename;
ACE_OS::strcpy (name->sysname, "VxWorks");
ACE_OS::strcpy (name->release, kernelVersion());
ACE_OS::strcpy (name->version, sysBspRev ());
diff --git a/ACE/ace/OS_NS_unistd.cpp b/ACE/ace/OS_NS_unistd.cpp
index cb1627f167f..033a1e36fb3 100644
--- a/ACE/ace/OS_NS_unistd.cpp
+++ b/ACE/ace/OS_NS_unistd.cpp
@@ -19,6 +19,11 @@ ACE_RCSID (ace, OS_NS_unistd, "$Id$")
#include "ace/os_include/sys/os_pstat.h"
#include "ace/os_include/sys/os_sysctl.h"
+#if defined ACE_HAS_VXCPULIB
+# include "vxCpuLib.h"
+# include "cpuset.h"
+#endif /* ACE_HAS_VXCPULIB */
+
#if defined (ACE_NEEDS_FTRUNCATE)
extern "C" int
ftruncate (ACE_HANDLE handle, long len)
@@ -64,6 +69,10 @@ ACE_OS::argv_to_string (int argc,
bool substitute_env_args,
bool quote_args)
{
+#if defined (ACE_LACKS_STRENVDUP)
+ ACE_UNUSED_ARG (substitute_env_args);
+#endif /* ACE_LACKS_STRENVDUP */
+
if (argc <= 0 || argv == 0 || argv[0] == 0)
return 0;
@@ -378,6 +387,8 @@ ACE_OS::num_processors (void)
SYSTEM_INFO sys_info;
::GetSystemInfo (&sys_info);
return sys_info.dwNumberOfProcessors;
+#elif defined (ACE_HAS_VXCPULIB)
+ return vxCpuConfiguredGet();
#elif defined (_SC_NPROCESSORS_CONF)
return ::sysconf (_SC_NPROCESSORS_CONF);
#elif defined (ACE_HAS_SYSCTL)
@@ -418,6 +429,20 @@ ACE_OS::num_processors_online (void)
mask >>= 1;
}
return active_processors;
+#elif defined (ACE_HAS_VXCPULIB)
+ long num_cpu = 0;
+ cpuset_t cpuset;
+ CPUSET_ZERO (cpuset);
+ cpuset = vxCpuEnabledGet();
+ unsigned int const maxcpu = vxCpuConfiguredGet();
+ for (unsigned int i =0; i < maxcpu; i++)
+ {
+ if (CPUSET_ISSET (cpuset, i))
+ {
+ ++num_cpu;
+ }
+ }
+ return num_cpu;
#elif defined (_SC_NPROCESSORS_ONLN)
return ::sysconf (_SC_NPROCESSORS_ONLN);
#elif defined (ACE_HAS_SYSCTL)
@@ -741,6 +766,10 @@ ACE_OS::string_to_argv (ACE_TCHAR *buf,
ACE_TCHAR **&argv,
bool substitute_env_args)
{
+#if defined (ACE_LACKS_STRENVDUP)
+ ACE_UNUSED_ARG (substitute_env_args);
+#endif /* ACE_LACKS_STRENVDUP */
+
// Reset the number of arguments
argc = 0;
diff --git a/ACE/ace/OS_NS_unistd.inl b/ACE/ace/OS_NS_unistd.inl
index 9682c3e7cd6..414cb40688b 100644
--- a/ACE/ace/OS_NS_unistd.inl
+++ b/ACE/ace/OS_NS_unistd.inl
@@ -622,9 +622,13 @@ ACE_OS::isatty (ACE_HANDLE handle)
ACE_UNUSED_ARG (handle);
return 0;
#else
- int fd = ::_open_osfhandle (intptr_t (handle), 0);
- int status = ::_isatty (fd);
- ::_close (fd);
+ int const fd = ::_open_osfhandle (intptr_t (handle), 0);
+ int status = 0;
+ if (fd != -1)
+ {
+ status = ::_isatty (fd);
+ ::_close (fd);
+ }
return status;
#endif /* ACE_LACKS_ISATTY */
}
diff --git a/ACE/ace/OS_Thread_Adapter.h b/ACE/ace/OS_Thread_Adapter.h
index 44576daff90..66f3c8e4c3d 100644
--- a/ACE/ace/OS_Thread_Adapter.h
+++ b/ACE/ace/OS_Thread_Adapter.h
@@ -63,7 +63,6 @@ protected:
/// Ensure that this object is allocated on the heap.
~ACE_OS_Thread_Adapter (void);
-
};
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/OS_main.cpp b/ACE/ace/OS_main.cpp
index b1fc32ae8dd..e12f70ab46d 100644
--- a/ACE/ace/OS_main.cpp
+++ b/ACE/ace/OS_main.cpp
@@ -103,11 +103,16 @@ ACE_END_VERSIONED_NAMESPACE_DECL
// CE only gets a command line string; no argv. So we need to convert it
// when the main entrypoint expects argc/argv. ACE_ARGV supports this.
# include "ace/OS_NS_string.h"
+# include "ace/OS_NS_ctype.h"
# include "ace/ACE.h"
# include "ace/ARGV.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+ACE_Main_Base::~ACE_Main_Base ()
+{
+}
+
int ACE_Main_Base::run (HINSTANCE,
HINSTANCE,
LPWSTR lpCmdLine,
@@ -117,8 +122,18 @@ int ACE_Main_Base::run (HINSTANCE,
ACE_TCHAR msg_file [MAXPATHLEN];
if (ACE_TEXT_GetModuleFileName (0, msg_file, MAXPATHLEN))
{
- ACE_OS::strcpy (cmdline, msg_file);
- ACE_OS::strcat (cmdline, ACE_TEXT (" "));
+ bool quote = false;
+ for (size_t i(0); !quote && msg_file[i]; ++i)
+ {
+ if (ACE_OS::ace_isspace (msg_file[i])) quote = true;
+ }
+ ACE_TCHAR *cmd_iter = cmdline;
+ if (quote)
+ {
+ *cmd_iter++ = ACE_TEXT ('"');
+ }
+ ACE_OS::strcpy (cmd_iter, msg_file);
+ ACE_OS::strcat (cmd_iter, quote ? ACE_TEXT ("\" ") : ACE_TEXT (" "));
}
else
{
diff --git a/ACE/ace/OS_main.h b/ACE/ace/OS_main.h
index ec7a43945dd..5749d471198 100644
--- a/ACE/ace/OS_main.h
+++ b/ACE/ace/OS_main.h
@@ -141,14 +141,14 @@ ace_main_i
# define main \
ACE_MAIN (int, char *[]); /* forward decl to gobble up the 'int' if there is one */ \
ACE_BEGIN_VERSIONED_NAMESPACE_DECL \
-int ace_os_main_i (int, char *[]); \
+ACE_Export int ace_os_main_i (int, char *[]); \
ACE_END_VERSIONED_NAMESPACE_DECL \
int \
ACE_MAIN (int argc, char *argv[]) /* user's entry point, e.g., main */ \
{ \
return ace_os_main_i (argc, argv); /* what the user calls "main" */ \
} \
-int \
+ACE_Proper_Export_Flag int \
ace_main_i
# elif !defined (ACE_HAS_WINCE)
@@ -238,6 +238,7 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
class ACE_Export ACE_Main_Base
{
public:
+ virtual ~ACE_Main_Base (void);
int run (HINSTANCE, HINSTANCE, LPWSTR, int);
virtual int run_i (int, ACE_TCHAR *[]) = 0;
};
diff --git a/ACE/ace/Pagefile_Memory_Pool.cpp b/ACE/ace/Pagefile_Memory_Pool.cpp
index 9fa2a5f9302..1651bd2777f 100644
--- a/ACE/ace/Pagefile_Memory_Pool.cpp
+++ b/ACE/ace/Pagefile_Memory_Pool.cpp
@@ -95,6 +95,10 @@ ACE_Pagefile_Memory_Pool::ACE_Pagefile_Memory_Pool (const ACE_TCHAR *backing_sto
ACE_TEXT ("_"));
}
+ACE_Pagefile_Memory_Pool::~ACE_Pagefile_Memory_Pool (void)
+{
+}
+
void *
ACE_Pagefile_Memory_Pool::acquire (size_t nbytes,
size_t &rounded_bytes)
diff --git a/ACE/ace/Pagefile_Memory_Pool.h b/ACE/ace/Pagefile_Memory_Pool.h
index a82e5706c3f..76951771a73 100644
--- a/ACE/ace/Pagefile_Memory_Pool.h
+++ b/ACE/ace/Pagefile_Memory_Pool.h
@@ -67,6 +67,9 @@ public:
ACE_Pagefile_Memory_Pool (const ACE_TCHAR *backing_store_name = 0,
const OPTIONS *options = 0);
+ /// Destructor
+ virtual ~ACE_Pagefile_Memory_Pool (void);
+
/// Ask system for initial chunk of shared memory.
void *init_acquire (size_t nbytes,
size_t &rounded_bytes,
diff --git a/ACE/ace/Process.cpp b/ACE/ace/Process.cpp
index acd4b7c9ab5..b4121ad0c1a 100644
--- a/ACE/ace/Process.cpp
+++ b/ACE/ace/Process.cpp
@@ -22,6 +22,7 @@
#include "ace/Countdown_Time.h"
#include "ace/Truncate.h"
#include "ace/Vector_T.h"
+#include "ace/Tokenizer_T.h"
#if defined (ACE_VXWORKS) && (ACE_VXWORKS > 0x600) && defined (__RTP__)
# include <rtpLib.h>
@@ -138,7 +139,6 @@ ACE_Process::spawn (ACE_Process_Options &options)
// like other OS environment. Therefore, it is user's whole responsibility to call
// 'ACE_Process_Options::process_name(const ACE_TCHAR *name)' to set the proper
// process name (the execution file name with path if needed).
-
BOOL fork_result =
ACE_TEXT_CreateProcess (options.process_name(),
options.command_line_buf(),
@@ -838,6 +838,12 @@ ACE_Process_Options::ACE_Process_Options (bool inherit_environment,
command_line_buf_[0] = '\0';
process_name_[0] = '\0';
+#if defined (ACE_HAS_WINCE)
+ ACE_UNUSED_ARG(inherit_environment);
+ ACE_UNUSED_ARG(env_buf_len);
+ ACE_UNUSED_ARG(max_env_args);
+#endif
+
#if !defined (ACE_HAS_WINCE)
working_directory_[0] = '\0';
ACE_NEW (environment_buf_,
@@ -1174,18 +1180,34 @@ ACE_Process_Options::~ACE_Process_Options (void)
int
ACE_Process_Options::command_line (const ACE_TCHAR *const argv[])
{
- // @@ Factor out the code between this
int i = 0;
if (argv[i])
{
ACE_OS::strcat (command_line_buf_, argv[i]);
+
while (argv[++i])
{
- ACE_OS::strcat (command_line_buf_,
- ACE_TEXT (" "));
- ACE_OS::strcat (command_line_buf_,
- argv[i]);
+ // Check to see if the next argument will overflow the
+ // command_line buffer.
+ int cur_len =
+ static_cast<int> (
+ ACE_OS::strlen (command_line_buf_)
+ + ACE_OS:: strlen (argv[i])
+ + 2);
+
+ if (cur_len > command_line_buf_len_)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("ACE_Process:command_line: ")
+ ACE_TEXT ("command line is ")
+ ACE_TEXT ("longer than %d\n"),
+ command_line_buf_len_),
+ 1);
+ }
+
+ ACE_OS::strcat (command_line_buf_, ACE_TEXT (" "));
+ ACE_OS::strcat (command_line_buf_, argv[i]);
}
}
diff --git a/ACE/ace/QoS/qos.mpc b/ACE/ace/QoS/qos.mpc
index 5e9dc059ac8..965b2989d09 100644
--- a/ACE/ace/QoS/qos.mpc
+++ b/ACE/ace/QoS/qos.mpc
@@ -7,7 +7,7 @@ project(QoS) : acelib, ace_output, install {
dynamicflags = ACE_QoS_BUILD_DLL
macros += ACE_HAS_QOS
- specific(bmake, nmake, em3, vc6, vc7, vc71, vc8, vc9, vc10) {
+ specific(prop:windows) {
macros += ACE_HAS_WINSOCK2_GQOS
}
diff --git a/ACE/ace/Recursive_Thread_Mutex.cpp b/ACE/ace/Recursive_Thread_Mutex.cpp
index f930aa164d4..c0b67604bae 100644
--- a/ACE/ace/Recursive_Thread_Mutex.cpp
+++ b/ACE/ace/Recursive_Thread_Mutex.cpp
@@ -82,7 +82,7 @@ int
ACE_Recursive_Thread_Mutex::get_nesting_level (void)
{
// ACE_TRACE ("ACE_Recursive_Thread_Mutex::get_nesting_level");
-#if defined (ACE_HAS_WINCE) || defined (ACE_HAS_VXTHREADS) || defined (ACE_HAS_PHARLAP)
+#if defined (ACE_HAS_VXTHREADS) || defined (ACE_HAS_PHARLAP) || defined (ACE_HAS_WINCE)
ACE_NOTSUP_RETURN (-1);
#elif defined (ACE_HAS_RECURSIVE_MUTEXES)
# if defined (ACE_WIN32)
diff --git a/ACE/ace/Registry.cpp b/ACE/ace/Registry.cpp
index d20913634de..dc60e119788 100644
--- a/ACE/ace/Registry.cpp
+++ b/ACE/ace/Registry.cpp
@@ -842,11 +842,14 @@ ACE_Registry::Binding_Iterator::Iteration_State::iterator (Binding_Iterator *ite
}
-ACE_Registry::Binding_Iterator::Iteration_State::Iteration_State ()
+ACE_Registry::Binding_Iterator::Iteration_State::Iteration_State (void)
: index_ (0)
{
}
+ACE_Registry::Binding_Iterator::Iteration_State::~Iteration_State (void)
+{
+}
// Next entry
int
@@ -1075,6 +1078,9 @@ ACE_Predefined_Naming_Contexts::connect (ACE_Registry::Naming_Context &naming_co
const ACE_TCHAR *machine_name)
{
#if defined (ACE_HAS_WINCE)
+ ACE_UNUSED_ARG(naming_context);
+ ACE_UNUSED_ARG(predefined);
+ ACE_UNUSED_ARG(machine_name);
return -1;
#else
long result = -1;
diff --git a/ACE/ace/Registry.h b/ACE/ace/Registry.h
index e7a882ee357..6d54479887f 100644
--- a/ACE/ace/Registry.h
+++ b/ACE/ace/Registry.h
@@ -460,7 +460,10 @@ public:
{
public:
/// Constructor
- Iteration_State ();
+ Iteration_State (void);
+
+ /// Destructor
+ virtual ~Iteration_State (void);
/// Set the iterator reference.
void iterator (Binding_Iterator *iterator);
diff --git a/ACE/ace/SOCK_Dgram.cpp b/ACE/ace/SOCK_Dgram.cpp
index 28acd86b0b4..e8b0108747f 100644
--- a/ACE/ace/SOCK_Dgram.cpp
+++ b/ACE/ace/SOCK_Dgram.cpp
@@ -16,7 +16,7 @@
#endif /* __ACE_INLINE__ */
#if defined (ACE_HAS_IPV6) && defined (ACE_WIN32)
-#include /**/ <Iphlpapi.h>
+#include /**/ <iphlpapi.h>
#endif
ACE_RCSID (ace,
diff --git a/ACE/ace/SOCK_Dgram_Mcast.cpp b/ACE/ace/SOCK_Dgram_Mcast.cpp
index 0d7d0b70d2e..fa38997b4ff 100644
--- a/ACE/ace/SOCK_Dgram_Mcast.cpp
+++ b/ACE/ace/SOCK_Dgram_Mcast.cpp
@@ -13,7 +13,7 @@
#endif
#if defined (ACE_HAS_IPV6) && defined (ACE_WIN32)
-#include /**/ <Iphlpapi.h>
+#include /**/ <iphlpapi.h>
#endif
#if !defined (__ACE_INLINE__)
diff --git a/ACE/ace/SSL/SSL_Context.cpp b/ACE/ace/SSL/SSL_Context.cpp
index 2d71688c3c2..2512e716ce7 100644
--- a/ACE/ace/SSL/SSL_Context.cpp
+++ b/ACE/ace/SSL/SSL_Context.cpp
@@ -236,7 +236,11 @@ ACE_SSL_Context::set_mode (int mode)
if (this->context_ != 0)
return -1;
+#if OPENSSL_VERSION_NUMBER >= 0x10000002
+ const SSL_METHOD *method = 0;
+#else
SSL_METHOD *method = 0;
+#endif
switch (mode)
{
diff --git a/ACE/ace/SString.cpp b/ACE/ace/SString.cpp
index 5ba108655aa..c95e4279dc5 100644
--- a/ACE/ace/SString.cpp
+++ b/ACE/ace/SString.cpp
@@ -333,212 +333,6 @@ ACE_SString::substring (size_type offset,
// ************************************************************
-ACE_Tokenizer::ACE_Tokenizer (ACE_TCHAR *buffer)
- : buffer_ (buffer),
- index_ (0),
- preserves_index_ (0),
- delimiter_index_ (0)
-{
-}
-
-int
-ACE_Tokenizer::delimiter (ACE_TCHAR d)
-{
- if (delimiter_index_ == MAX_DELIMITERS)
- return -1;
-
- delimiters_[delimiter_index_].delimiter_ = d;
- delimiters_[delimiter_index_].replace_ = 0;
- delimiter_index_++;
- return 0;
-}
-
-int
-ACE_Tokenizer::delimiter_replace (ACE_TCHAR d,
- ACE_TCHAR replacement)
-{
- // Make it possible to replace delimiters on-the-fly, e.g., parse
- // string until certain token count and then copy rest of the
- // original string.
- for (int i = 0; i < delimiter_index_; i++)
- if (delimiters_[i].delimiter_ == d)
- {
- delimiters_[i].replacement_ = replacement;
- delimiters_[i].replace_ = 1;
- return 0;
- }
-
- if (delimiter_index_ >= MAX_DELIMITERS)
- return -1;
-
- delimiters_[delimiter_index_].delimiter_ = d;
- delimiters_[delimiter_index_].replacement_ = replacement;
- delimiters_[delimiter_index_].replace_ = 1;
- delimiter_index_++;
- return 0;
-}
-
-int
-ACE_Tokenizer::preserve_designators (ACE_TCHAR start,
- ACE_TCHAR stop,
- int strip)
-{
- if (preserves_index_ == MAX_PRESERVES)
- return -1;
-
- preserves_[preserves_index_].start_ = start;
- preserves_[preserves_index_].stop_ = stop;
- preserves_[preserves_index_].strip_ = strip;
- preserves_index_++;
- return 0;
-}
-
-int
-ACE_Tokenizer::is_delimiter (ACE_TCHAR d,
- int &replace,
- ACE_TCHAR &r)
-{
- replace = 0;
-
- for (int x = 0; x < delimiter_index_; x++)
- if (delimiters_[x].delimiter_ == d)
- {
- if (delimiters_[x].replace_)
- {
- r = delimiters_[x].replacement_;
- replace = 1;
- }
- return 1;
- }
-
- return 0;
-}
-
-int
-ACE_Tokenizer::is_preserve_designator (ACE_TCHAR start,
- ACE_TCHAR &stop,
- int &strip)
-{
- for (int x = 0; x < preserves_index_; x++)
- if (preserves_[x].start_ == start)
- {
- stop = preserves_[x].stop_;
- strip = preserves_[x].strip_;
- return 1;
- }
-
- return 0;
-}
-
-ACE_TCHAR *
-ACE_Tokenizer::next (void)
-{
- // Check if the previous pass was the last one in the buffer.
- if (index_ == -1)
- {
- index_ = 0;
- return 0;
- }
-
- ACE_TCHAR replacement = 0;
- int replace;
- ACE_TCHAR *next_token;
-
- // Skip all leading delimiters.
- for (;;)
- {
- // Check for end of string.
- if (buffer_[index_] == '\0')
- {
- // If we hit EOS at the start, return 0.
- index_ = 0;
- return 0;
- }
-
- if (this->is_delimiter (buffer_[index_],
- replace,
- replacement))
- index_++;
- else
- break;
- }
-
- // When we reach this point, buffer_[index_] is a non-delimiter and
- // not EOS - the start of our next_token.
- next_token = buffer_ + index_;
-
- // A preserved region is it's own token.
- ACE_TCHAR stop;
- int strip;
- if (this->is_preserve_designator (buffer_[index_],
- stop,
- strip))
- {
- while (++index_)
- {
- if (buffer_[index_] == '\0')
- {
- index_ = -1;
- goto EXIT_LABEL;
- }
-
- if (buffer_[index_] == stop)
- break;
- }
-
- if (strip)
- {
- // Skip start preserve designator.
- next_token += 1;
- // Zap the stop preserve designator.
- buffer_[index_] = '\0';
- // Increment to the next token.
- index_++;
- }
-
- goto EXIT_LABEL;
- }
-
- // Step through finding the next delimiter or EOS.
- for (;;)
- {
- // Advance pointer.
- index_++;
-
- // Check for delimiter.
- if (this->is_delimiter (buffer_[index_],
- replace,
- replacement))
- {
- // Replace the delimiter.
- if (replace != 0)
- buffer_[index_] = replacement;
-
- // Move the pointer up and return.
- index_++;
- goto EXIT_LABEL;
- }
-
- // A preserve designator signifies the end of this token.
- if (this->is_preserve_designator (buffer_[index_],
- stop,
- strip))
- goto EXIT_LABEL;
-
- // Check for end of string.
- if (buffer_[index_] == '\0')
- {
- index_ = -1;
- goto EXIT_LABEL;
- }
- }
-
-EXIT_LABEL:
- return next_token;
-}
-
-// *************************************************************
-
#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
template char ACE_String_Base<char>::NULL_String_;
template ACE_WSTRING_TYPE ACE_String_Base<ACE_WSTRING_TYPE>::NULL_String_;
diff --git a/ACE/ace/SString.h b/ACE/ace/SString.h
index b52c732ef55..fcaa89a3f3e 100644
--- a/ACE/ace/SString.h
+++ b/ACE/ace/SString.h
@@ -196,7 +196,7 @@ public:
/// slot of the first location that matches, else @c npos.
size_type strstr (const ACE_SString &s) const;
- /// Find <str> starting at pos. Returns the slot of the first
+ /// Find @a str starting at pos. Returns the slot of the first
/// location that matches (will be >= pos), else npos.
size_type find (const ACE_SString &str, size_type pos = 0) const;
@@ -204,11 +204,11 @@ public:
/// location that matches (will be >= pos), else npos.
size_type find (const char *s, size_type pos = 0) const;
- /// Find <c> starting at pos. Returns the slot of the first
+ /// Find @a c starting at pos. Returns the slot of the first
/// location that matches (will be >= pos), else npos.
size_type find (char c, size_type pos = 0) const;
- /// Find <c> starting at pos (counting from the end). Returns the
+ /// Find @a c starting at pos (counting from the end). Returns the
/// slot of the first location that matches, else npos.
size_type rfind (char c, size_type pos = npos) const;
@@ -256,208 +256,6 @@ typedef ACE_WString ACE_TString;
typedef ACE_CString ACE_TString;
#endif /* ACE_USES_WCHAR */
-
-// ************************************************************
-
-/**
- * @class ACE_Tokenizer
- *
- * @brief Tokenizer
- *
- * Tokenizes a buffer. Allows application to set delimiters and
- * preserve designators. Does not allow special characters, yet
- * (e.g., printf ("\"like a quoted string\"")).
- */
-class ACE_Export ACE_Tokenizer
-{
-public:
- /**
- * \a buffer will be parsed. Notice that ACE_Tokenizer will modify
- * \a buffer if you use <code> delimiter_replace </code> or <code>
- * preserve_designators </code> to do character substitution.
- * @note You should NOT pass a constant string or string literal
- * to this constructor, since ACE_Tokenizer will try to modify
- * the string.
- * \sa preserve_designators
- * \sa preserve_designators
- */
- ACE_Tokenizer (ACE_TCHAR *buffer);
-
- /**
- * \a d is a delimiter.
- * \return Returns 0 on success, -1 if there is no memory left.
- *
- * <B>Example:</B>
- * \verbatim
- char buf[30];
- ACE_OS::strcpy(buf, "William/Joseph/Hagins");
-
- ACE_Tokenizer tok (buf);
- tok.delimiter ('/');
- for (char *p = tok.next (); p; p = tok.next ())
- cout << p << endl;
- \endverbatim
- *
- * This will print out:
- * \verbatim
- William/Joseph/Hagins
- Joseph/Hagins
- Hagins \endverbatim
- */
- int delimiter (ACE_TCHAR d);
-
- /**
- * \a d is a delimiter and, when found, will be replaced by
- * \a replacement.
- * \return 0 on success, -1 if there is no memory left.
- *
- * <B>Example:</B>
- * \verbatim
- char buf[30];
- ACE_OS::strcpy(buf, "William/Joseph/Hagins");
-
- ACE_Tokenizer tok (buf);
- tok.delimiter_replace ('/', 0);
- for (char *p = tok.next (); p; p = tok.next ())
- cout << p << endl;
- \endverbatim
- *
- * This will print out:
- * \verbatim
- William
- Joseph
- Hagins \endverbatim
- */
- int delimiter_replace (ACE_TCHAR d, ACE_TCHAR replacement);
-
- /**
- * Extract string between a pair of designator characters.
- * For instance, quotes, or '(' and ')'.
- * \a start specifies the begin designator.
- * \a stop specifies the end designator.
- * \a strip If \a strip == 1, then the preserve
- * designators will be stripped from the tokens returned by next.
- * \return 0 on success, -1 if there is no memory left.
- *
- * <B>Example with strip = 0:</B>
- * \verbatim
- char buf[30];
- ACE_OS::strcpy(buf, "William(Joseph)Hagins");
-
- ACE_Tokenizer tok (buf);
- tok.preserve_designators ('(', ')', 0);
- for (char *p = tok.next (); p; p = tok.next ())
- cout << p << endl;
- \endverbatim
- *
- * This will print out:
- * \verbatim
- William(Joseph)Hagins
- (Joseph)Hagins
- )Hagins \endverbatim
- *
- * <B>Example with strip = 1:</B>
- * \verbatim
- char buf[30];
- ACE_OS::strcpy(buf, "William(Joseph)Hagins");
-
- ACE_Tokenizer tok (buf);
- tok.preserve_designators ('(', ')', 1);
- for (char *p = tok.next (); p; p = tok.next ())
- cout << p << endl;
- \endverbatim
- *
- * This will print out:
- * \verbatim
- William
- Joseph
- Hagins \endverbatim
- */
- int preserve_designators (ACE_TCHAR start, ACE_TCHAR stop, int strip=1);
-
- /// Returns the next token.
- ACE_TCHAR *next (void);
-
- enum {
- MAX_DELIMITERS=16,
- MAX_PRESERVES=16
- };
-
-protected:
- /// Returns 1 if <d> is a delimiter, 0 otherwise. If <d> should be
- /// replaced with @a r, <replace> is set to 1, otherwise 0.
- int is_delimiter (ACE_TCHAR d, int &replace, ACE_TCHAR &r);
-
- /**
- * If <start> is a start preserve designator, returns 1 and sets
- * <stop> to the stop designator. Returns 0 if <start> is not a
- * preserve designator.
- */
- int is_preserve_designator (ACE_TCHAR start, ACE_TCHAR &stop, int &strip);
-
- ACE_TCHAR *buffer_;
- int index_;
-
- /**
- * @class Preserve_Entry
- *
- * @brief Preserve Entry
- *
- * Defines a set of characters that designate an area that
- * should not be parsed, but should be treated as a complete
- * token. For instance, in: (this is a preserve region), start
- * would be a left paren -(- and stop would be a right paren
- * -)-. The strip determines whether the designators should be
- * removed from the token.
- */
- class Preserve_Entry
- {
- public:
- /**
- * E.g., "(".
- * E.g., ")".
- * Whether the designators should be removed from the token.
- */
- ACE_TCHAR start_;
- ACE_TCHAR stop_;
- int strip_;
- };
-
- /// The application can specify MAX_PRESERVES preserve designators.
- Preserve_Entry preserves_[MAX_PRESERVES];
-
- /// Pointer to the next free spot in preserves_.
- int preserves_index_;
-
- /**
- * @class Delimiter_Entry
- *
- * @brief Delimiter Entry
- *
- * Describes a delimiter for the tokenizer.
- */
- class Delimiter_Entry
- {
- public:
- /**
- * Most commonly a space ' '.
- * What occurrences of delimiter_ should be replaced with.
- * Whether replacement_ should be used. This should be replaced
- * with a technique that sets replacement_ = delimiter by
- * default. I'll do that next iteration.
- */
- ACE_TCHAR delimiter_;
- ACE_TCHAR replacement_;
- int replace_;
- };
-
- /// The tokenizer allows MAX_DELIMITERS number of delimiters.
- Delimiter_Entry delimiters_[MAX_DELIMITERS];
-
- /// Pointer to the next free space in delimiters_.
- int delimiter_index_;
-};
-
// ****************************************************************
/**
diff --git a/ACE/ace/SV_Semaphore_Simple.cpp b/ACE/ace/SV_Semaphore_Simple.cpp
index 64256eb001d..918e55f2a26 100644
--- a/ACE/ace/SV_Semaphore_Simple.cpp
+++ b/ACE/ace/SV_Semaphore_Simple.cpp
@@ -138,15 +138,15 @@ ACE_SV_Semaphore_Simple::name_2_key (const char *name)
// Basically "hash" the values in the <name>. This won't
// necessarily guarantee uniqueness of all keys.
// But (IMHO) CRC32 is good enough for most purposes (Carlos)
-#if defined (ACE_WIN64) || defined (ACE_WIN32)
+#if defined (ACE_WIN32) && defined (_MSC_VER)
// The cast below is legit...
# pragma warning(push)
# pragma warning(disable : 4312)
-#endif /* ACE_WIN64 */
+#endif /* defined (ACE_WIN32) && defined (_MSC_VER) */
return (key_t) ACE::crc32 (name);
-#if defined (ACE_WIN64) || defined (ACE_WIN32)
+#if defined (ACE_WIN32) && defined (_MSC_VER)
# pragma warning(pop)
-#endif /* ACE_WIN64 */
+#endif /* defined (ACE_WIN32) && defined (_MSC_VER) */
}
// Open or create a ACE_SV_Semaphore. We return 1 if all is OK, else
diff --git a/ACE/ace/Select_Reactor_Base.cpp b/ACE/ace/Select_Reactor_Base.cpp
index e86008aaf85..771a5b49d90 100644
--- a/ACE/ace/Select_Reactor_Base.cpp
+++ b/ACE/ace/Select_Reactor_Base.cpp
@@ -800,14 +800,9 @@ ACE_Select_Reactor_Notify::dispatch_notify (ACE_Notification_Buffer &buffer)
more_messages_queued,
next);
- if (result == 0)
+ if (result == 0 || result == -1)
{
- return 0;
- }
-
- if (result == -1)
- {
- return -1;
+ return result;
}
if(more_messages_queued)
diff --git a/ACE/ace/Select_Reactor_T.cpp b/ACE/ace/Select_Reactor_T.cpp
index 57f5f9f36bf..30666cbf11f 100644
--- a/ACE/ace/Select_Reactor_T.cpp
+++ b/ACE/ace/Select_Reactor_T.cpp
@@ -211,8 +211,11 @@ ACE_Select_Reactor_T<ACE_SELECT_REACTOR_TOKEN>::notify (ACE_Event_Handler *eh,
// Pass over both the Event_Handler *and* the mask to allow the
// caller to dictate which Event_Handler method the receiver
// invokes. Note that this call can timeout.
-
- ssize_t const n = this->notify_handler_->notify (eh, mask, timeout);
+ ssize_t n = -1;
+ if (this->notify_handler_)
+ {
+ n = this->notify_handler_->notify (eh, mask, timeout);
+ }
return n == -1 ? -1 : 0;
}
diff --git a/ACE/ace/Service_Object.cpp b/ACE/ace/Service_Object.cpp
index f3ca42b25f3..16d650271d3 100644
--- a/ACE/ace/Service_Object.cpp
+++ b/ACE/ace/Service_Object.cpp
@@ -21,12 +21,12 @@ ACE_RCSID (ace,
Service_Object,
"$Id$")
- ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Service_Object)
- ACE_ALLOC_HOOK_DEFINE(ACE_Service_Type)
+ACE_ALLOC_HOOK_DEFINE(ACE_Service_Type)
- void
+void
ACE_Service_Type::dump (void) const
{
#if defined (ACE_HAS_DUMP)
diff --git a/ACE/ace/Sig_Handler.cpp b/ACE/ace/Sig_Handler.cpp
index 484a0930ee2..c932e707ec9 100644
--- a/ACE/ace/Sig_Handler.cpp
+++ b/ACE/ace/Sig_Handler.cpp
@@ -148,8 +148,7 @@ ACE_Sig_Handler::register_handler_i (int signum,
if (ACE_Sig_Handler::in_range (signum))
{
ACE_Sig_Action sa; // Define a "null" action.
- ACE_Event_Handler *sh = ACE_Sig_Handler::handler_i (signum,
- new_sh);
+ ACE_Event_Handler *sh = ACE_Sig_Handler::handler_i (signum, new_sh);
// Return a pointer to the old <ACE_Sig_Handler> if the user
// asks for this.
diff --git a/ACE/ace/Sock_Connect.cpp b/ACE/ace/Sock_Connect.cpp
index e275c96bcb2..9df93e68414 100644
--- a/ACE/ace/Sock_Connect.cpp
+++ b/ACE/ace/Sock_Connect.cpp
@@ -58,8 +58,8 @@ const struct in6_addr in6addr_linklocal_allrouters = IN6ADDR_LINKLOCAL_ALLROUTER
#endif /* ACE_VXWORKS >= 0x630 && <= 0x670 && __RTP__ && ACE_HAS_IPV6 */
#if defined (ACE_HAS_WINCE)
-#include /**/ <Iphlpapi.h>
-# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)
+#include /**/ <iphlpapi.h>
+# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) && (_WIN32_WCE < 0x600) && defined (ACE_HAS_IPV6)
// The following code is suggested by microsoft as a workaround to the fact
// that on Windows CE, these constants are exported as function addresses
// rather than simply values.
@@ -1180,8 +1180,7 @@ get_ip_interfaces_vxworks_lt600 (size_t &count,
// responsible for calling delete [] on parray
int
-ACE::get_ip_interfaces (size_t &count,
- ACE_INET_Addr *&addrs)
+ACE::get_ip_interfaces (size_t &count, ACE_INET_Addr *&addrs)
{
ACE_TRACE ("ACE::get_ip_interfaces");
@@ -1198,7 +1197,7 @@ ACE::get_ip_interfaces (size_t &count,
return get_ip_interfaces_aix (count, addrs);
#elif defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600) && !defined (ACE_HAS_VXWORKS551_MEDUSA)
return get_ip_interfaces_vxworks_lt600 (count, addrs);
-#elif (defined (__unix) || defined (__unix__) || defined (__Lynx__) || defined (ACE_OPENVMS) || (defined (ACE_VXWORKS) && (ACE_VXWORKS == 0x650)) || defined (ACE_HAS_RTEMS)) && !defined (ACE_LACKS_NETWORKING)
+#elif (defined (__unix) || defined (__unix__) || defined (__Lynx__) || defined (ACE_OPENVMS) || (defined (ACE_VXWORKS) && !defined (ACE_HAS_GETIFADDRS)) || defined (ACE_HAS_RTEMS)) && !defined (ACE_LACKS_NETWORKING)
// COMMON (SVR4 and BSD) UNIX CODE
// Call specific routine as necessary.
@@ -1210,7 +1209,7 @@ ACE::get_ip_interfaces (size_t &count,
ACE_TEXT ("ACE::get_ip_interfaces:open")),
-1);
- size_t num_ifs, num_ifs_found;
+ size_t num_ifs = 0;
if (ACE::count_interfaces (handle, num_ifs))
{
@@ -1269,7 +1268,7 @@ ACE::get_ip_interfaces (size_t &count,
-1); // caller must free
struct IFREQ *pcur = p_ifs.get ();
- num_ifs_found = ifcfg.IFC_LEN / sizeof (struct IFREQ); // get the number of returned ifs
+ size_t num_ifs_found = ifcfg.IFC_LEN / sizeof (struct IFREQ); // get the number of returned ifs
// Pull the address out of each INET interface. Not every interface
// is for IP, so be careful to count properly. When setting the
@@ -1347,7 +1346,7 @@ ACE::get_ip_interfaces (size_t &count,
// Retrieve IPv6 local interfaces by scanning /proc/net/if_inet6 if
// it exists. If we cannot open it then ignore possible IPv6
// interfaces, we did our best;-)
- FILE* fp;
+ FILE* fp = 0;
char addr_p[8][5];
char s_ipaddr[64];
int scopeid;
@@ -1404,17 +1403,10 @@ ACE::get_ip_interfaces (size_t &count,
// list of ifreq structs.
int
-ACE::count_interfaces (ACE_HANDLE handle,
- size_t &how_many)
+ACE::count_interfaces (ACE_HANDLE handle, size_t &how_many)
{
-#if defined (ACE_WIN32) || defined (ACE_HAS_GETIFADDRS) || defined (__hpux) || defined (_AIX) || (defined (ACE_VXWORKS) && (ACE_VXWORKS < 0x600))
- // none of these platforms make use of count_interfaces
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (how_many);
- ACE_NOTSUP_RETURN (-1); // no implementation
-
-#elif defined (SIOCGIFNUM)
-# if defined (SIOCGLIFNUM)
+#if defined (SIOCGIFNUM)
+# if defined (SIOCGLIFNUM) && !defined (ACE_LACKS_STRUCT_LIFNUM)
int cmd = SIOCGLIFNUM;
struct lifnum if_num = {AF_UNSPEC,0,0};
# else
@@ -1427,29 +1419,28 @@ ACE::count_interfaces (ACE_HANDLE handle,
ACE_TEXT ("ACE::count_interfaces:")
ACE_TEXT ("ioctl - SIOCGLIFNUM failed")),
-1);
-# if defined (SIOCGLIFNUM)
+# if defined (SIOCGLIFNUM) && !defined (ACE_LACKS_STRUCT_LIFNUM)
how_many = if_num.lifn_count;
# else
how_many = if_num;
# endif /* SIOCGLIFNUM */
return 0;
-#elif (defined (__unix) || defined (__unix__) || defined (__Lynx__) || defined (ACE_OPENVMS) || defined (ACE_HAS_RTEMS)) && !defined (ACE_LACKS_NETWORKING)
+#elif (defined (__unix) || defined (__unix__) || defined (__Lynx__) || defined (ACE_OPENVMS) || defined (ACE_HAS_RTEMS) || (defined (ACE_VXWORKS) && !defined (ACE_HAS_GETIFADDRS))) && !defined (ACE_LACKS_NETWORKING)
// Note: DEC CXX doesn't define "unix". BSD compatible OS: HP UX,
// AIX, SunOS 4.x perform some ioctls to retrieve ifconf list of
// ifreq structs no SIOCGIFNUM on SunOS 4.x, so use guess and scan
// algorithm
// Probably hard to put this many ifs in a unix box..
- const int MAX_IF = 50;
+ int const MAX_IF = 50;
// HACK - set to an unreasonable number
- int num_ifs = MAX_IF;
+ int const num_ifs = MAX_IF;
struct ifconf ifcfg;
size_t ifreq_size = num_ifs * sizeof (struct ifreq);
- struct ifreq *p_ifs =
- (struct ifreq *) ACE_OS::malloc (ifreq_size);
+ struct ifreq *p_ifs = (struct ifreq *) ACE_OS::malloc (ifreq_size);
if (!p_ifs)
{
@@ -1475,7 +1466,8 @@ return 0;
-1);
}
- int if_count = 0, i;
+ int if_count = 0;
+ int i = 0;
// get if address out of ifreq buffers. ioctl puts a blank-named
// interface to mark the end of the returned interfaces.
diff --git a/ACE/ace/TP_Reactor.cpp b/ACE/ace/TP_Reactor.cpp
index ea1988a4d42..ac9bbdada63 100644
--- a/ACE/ace/TP_Reactor.cpp
+++ b/ACE/ace/TP_Reactor.cpp
@@ -54,7 +54,7 @@ ACE_TP_Token_Guard::acquire_read_token (ACE_Time_Value *max_wait_time)
}
// We got the token and so let us mark ourselves as owner
- this->owner_ = 1;
+ this->owner_ = true;
return result;
}
@@ -92,7 +92,7 @@ ACE_TP_Token_Guard::acquire_token (ACE_Time_Value *max_wait_time)
}
// We got the token and so let us mark ourselves as owner
- this->owner_ = 1;
+ this->owner_ = true;
return result;
}
diff --git a/ACE/ace/Thread_Manager.cpp b/ACE/ace/Thread_Manager.cpp
index bf6e309f33f..39189cafa5c 100644
--- a/ACE/ace/Thread_Manager.cpp
+++ b/ACE/ace/Thread_Manager.cpp
@@ -1068,7 +1068,7 @@ ACE_Thread_Manager::kill_thr (ACE_Thread_Descriptor *td, int signum)
errno = ENOENT; \
return -1; \
} \
- int result = OP (ptr, ARG); \
+ int const result = OP (ptr, ARG); \
ACE_Errno_Guard error (errno); \
while (! this->thr_to_be_removed_.is_empty ()) { \
ACE_Thread_Descriptor * td = 0; \
@@ -1719,7 +1719,7 @@ ACE_Thread_Manager::apply_task (ACE_Task_Base *task,
// Save/restore errno.
ACE_Errno_Guard error (errno);
- for (ACE_Thread_Descriptor *td;
+ for (ACE_Thread_Descriptor *td = 0;
this->thr_to_be_removed_.dequeue_head (td) != -1;
)
this->remove_thr (td, 1);
diff --git a/ACE/ace/Thread_Manager.inl b/ACE/ace/Thread_Manager.inl
index 2a22b525047..7d2d75ec01c 100644
--- a/ACE/ace/Thread_Manager.inl
+++ b/ACE/ace/Thread_Manager.inl
@@ -268,9 +268,7 @@ ACE_Thread_Manager::at_exit (void *object,
if (td == 0)
return -1;
else
- return td->at_exit (object,
- cleanup_hook,
- param);
+ return td->at_exit (object, cleanup_hook, param);
}
ACE_INLINE void
diff --git a/ACE/ace/Token.h b/ACE/ace/Token.h
index bfd50fc321f..d9db5ef9aa1 100644
--- a/ACE/ace/Token.h
+++ b/ACE/ace/Token.h
@@ -29,10 +29,10 @@
#include "ace/Thread_Mutex.h"
-#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) || defined (ACE_HAS_VXTHREADS)
+#if (defined (ACE_WIN32) && !defined (ACE_USES_WINCE_SEMA_SIMULATION)) || defined (ACE_HAS_VXTHREADS)
// If platforms support semaphores with timed wait, then we use semaphores instead of c.v.
# define ACE_TOKEN_USES_SEMAPHORE
-#endif /* (ACE_WIN32 && !ACE_HAS_WINCE) || ACE_HAS_VXTHREADS */
+#endif /* ACE_WIN32 || ACE_HAS_VXTHREADS */
#if defined (ACE_TOKEN_USES_SEMAPHORE)
# include "ace/Semaphore.h"
diff --git a/ACE/ace/Tokenizer_T.cpp b/ACE/ace/Tokenizer_T.cpp
new file mode 100644
index 00000000000..f9ce33a7fc9
--- /dev/null
+++ b/ACE/ace/Tokenizer_T.cpp
@@ -0,0 +1,230 @@
+// $Id$
+
+#ifndef ACE_TOKENIZER_T_CPP
+#define ACE_TOKENIZER_T_CPP
+
+#include "ace/ACE.h"
+#include "ace/Malloc_Base.h"
+#include "ace/String_Base.h"
+#include "ace/Auto_Ptr.h"
+#include "ace/OS_NS_string.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+template <class CHAR>
+ACE_Tokenizer_T<CHAR>::ACE_Tokenizer_T (CHAR *buffer)
+ : buffer_ (buffer),
+ index_ (0),
+ preserves_index_ (0),
+ delimiter_index_ (0)
+{
+}
+
+template <class CHAR>
+int
+ACE_Tokenizer_T<CHAR>::delimiter (CHAR d)
+{
+ if (delimiter_index_ == MAX_DELIMITERS)
+ return -1;
+
+ delimiters_[delimiter_index_].delimiter_ = d;
+ delimiters_[delimiter_index_].replace_ = 0;
+ ++delimiter_index_;
+ return 0;
+}
+
+template <class CHAR>
+int
+ACE_Tokenizer_T<CHAR>::delimiter_replace (CHAR d,
+ CHAR replacement)
+{
+ // Make it possible to replace delimiters on-the-fly, e.g., parse
+ // string until certain token count and then copy rest of the
+ // original string.
+ for (int i = 0; i < delimiter_index_; i++)
+ if (delimiters_[i].delimiter_ == d)
+ {
+ delimiters_[i].replacement_ = replacement;
+ delimiters_[i].replace_ = 1;
+ return 0;
+ }
+
+ if (delimiter_index_ >= MAX_DELIMITERS)
+ return -1;
+
+ delimiters_[delimiter_index_].delimiter_ = d;
+ delimiters_[delimiter_index_].replacement_ = replacement;
+ delimiters_[delimiter_index_].replace_ = 1;
+ ++delimiter_index_;
+ return 0;
+}
+
+template <class CHAR>
+int
+ACE_Tokenizer_T<CHAR>::preserve_designators (CHAR start,
+ CHAR stop,
+ int strip)
+{
+ if (preserves_index_ == MAX_PRESERVES)
+ return -1;
+
+ preserves_[preserves_index_].start_ = start;
+ preserves_[preserves_index_].stop_ = stop;
+ preserves_[preserves_index_].strip_ = strip;
+ ++preserves_index_;
+ return 0;
+}
+
+template <class CHAR>
+int
+ACE_Tokenizer_T<CHAR>::is_delimiter (CHAR d,
+ int &replace,
+ CHAR &r)
+{
+ replace = 0;
+
+ for (int x = 0; x < delimiter_index_; x++)
+ if (delimiters_[x].delimiter_ == d)
+ {
+ if (delimiters_[x].replace_)
+ {
+ r = delimiters_[x].replacement_;
+ replace = 1;
+ }
+ return 1;
+ }
+
+ return 0;
+}
+
+template <class CHAR>
+int
+ACE_Tokenizer_T<CHAR>::is_preserve_designator (CHAR start,
+ CHAR &stop,
+ int &strip)
+{
+ for (int x = 0; x < preserves_index_; x++)
+ if (preserves_[x].start_ == start)
+ {
+ stop = preserves_[x].stop_;
+ strip = preserves_[x].strip_;
+ return 1;
+ }
+
+ return 0;
+}
+
+template <class CHAR>
+CHAR *
+ACE_Tokenizer_T<CHAR>::next (void)
+{
+ // Check if the previous pass was the last one in the buffer.
+ if (index_ == -1)
+ {
+ index_ = 0;
+ return 0;
+ }
+
+ CHAR replacement = 0;
+ int replace;
+ CHAR *next_token = 0;
+
+ // Skip all leading delimiters.
+ for (;;)
+ {
+ // Check for end of string.
+ if (buffer_[index_] == '\0')
+ {
+ // If we hit EOS at the start, return 0.
+ index_ = 0;
+ return 0;
+ }
+
+ if (this->is_delimiter (buffer_[index_],
+ replace,
+ replacement))
+ ++index_;
+ else
+ break;
+ }
+
+ // When we reach this point, buffer_[index_] is a non-delimiter and
+ // not EOS - the start of our next_token.
+ next_token = buffer_ + index_;
+
+ // A preserved region is it's own token.
+ CHAR stop;
+ int strip;
+ if (this->is_preserve_designator (buffer_[index_],
+ stop,
+ strip))
+ {
+ while (++index_)
+ {
+ if (buffer_[index_] == '\0')
+ {
+ index_ = -1;
+ goto EXIT_LABEL;
+ }
+
+ if (buffer_[index_] == stop)
+ break;
+ }
+
+ if (strip)
+ {
+ // Skip start preserve designator.
+ next_token += 1;
+ // Zap the stop preserve designator.
+ buffer_[index_] = '\0';
+ // Increment to the next token.
+ ++index_;
+ }
+
+ goto EXIT_LABEL;
+ }
+
+ // Step through finding the next delimiter or EOS.
+ for (;;)
+ {
+ // Advance pointer.
+ ++index_;
+
+ // Check for delimiter.
+ if (this->is_delimiter (buffer_[index_],
+ replace,
+ replacement))
+ {
+ // Replace the delimiter.
+ if (replace != 0)
+ buffer_[index_] = replacement;
+
+ // Move the pointer up and return.
+ ++index_;
+ goto EXIT_LABEL;
+ }
+
+ // A preserve designator signifies the end of this token.
+ if (this->is_preserve_designator (buffer_[index_],
+ stop,
+ strip))
+ goto EXIT_LABEL;
+
+ // Check for end of string.
+ if (buffer_[index_] == '\0')
+ {
+ index_ = -1;
+ goto EXIT_LABEL;
+ }
+ }
+
+EXIT_LABEL:
+ return next_token;
+}
+
+// *************************************************************
+
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* ACE_TOKENIZER_T_CPP */
diff --git a/ACE/ace/Tokenizer_T.h b/ACE/ace/Tokenizer_T.h
new file mode 100644
index 00000000000..0d5455d14c4
--- /dev/null
+++ b/ACE/ace/Tokenizer_T.h
@@ -0,0 +1,241 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Tokenizer_T.h
+ *
+ * $Id$
+ *
+ * @author Douglas C. Schmidt (schmidt@cs.wustl.edu)
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
+#ifndef ACE_TOKENIZER_T_H
+#define ACE_TOKENIZER_T_H
+
+#include /**/ "ace/pre.h"
+
+#include "ace/Global_Macros.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+
+/**
+ * @class ACE_Tokenizer_T
+ *
+ * @brief Tokenizer
+ *
+ * Tokenizes a buffer. Allows application to set delimiters and
+ * preserve designators. Does not allow special characters, yet
+ * (e.g., printf ("\"like a quoted string\"")).
+ */
+template <class CHAR>
+class ACE_Tokenizer_T
+{
+public:
+ /**
+ * \a buffer will be parsed. Notice that ACE_Tokenizer_T will modify
+ * \a buffer if you use <code> delimiter_replace </code> or <code>
+ * preserve_designators </code> to do character substitution.
+ * @note You should NOT pass a constant string or string literal
+ * to this constructor, since ACE_Tokenizer_T will try to modify
+ * the string.
+ * \sa preserve_designators
+ * \sa preserve_designators
+ */
+ ACE_Tokenizer_T (CHAR *buffer);
+
+ /**
+ * \a d is a delimiter.
+ * \return Returns 0 on success, -1 if there is no memory left.
+ *
+ * <B>Example:</B>
+ * \verbatim
+ char buf[30];
+ ACE_OS::strcpy(buf, "William/Joseph/Hagins");
+
+ ACE_Tokenizer_T tok (buf);
+ tok.delimiter ('/');
+ for (char *p = tok.next (); p; p = tok.next ())
+ cout << p << endl;
+ \endverbatim
+ *
+ * This will print out:
+ * \verbatim
+ William/Joseph/Hagins
+ Joseph/Hagins
+ Hagins \endverbatim
+ */
+ int delimiter (CHAR d);
+
+ /**
+ * \a d is a delimiter and, when found, will be replaced by
+ * \a replacement.
+ * \return 0 on success, -1 if there is no memory left.
+ *
+ * <B>Example:</B>
+ * \verbatim
+ char buf[30];
+ ACE_OS::strcpy(buf, "William/Joseph/Hagins");
+
+ ACE_Tokenizer tok (buf);
+ tok.delimiter_replace ('/', 0);
+ for (char *p = tok.next (); p; p = tok.next ())
+ cout << p << endl;
+ \endverbatim
+ *
+ * This will print out:
+ * \verbatim
+ William
+ Joseph
+ Hagins \endverbatim
+ */
+ int delimiter_replace (CHAR d, CHAR replacement);
+
+ /**
+ * Extract string between a pair of designator characters.
+ * For instance, quotes, or '(' and ')'.
+ * \a start specifies the begin designator.
+ * \a stop specifies the end designator.
+ * \a strip If \a strip == 1, then the preserve
+ * designators will be stripped from the tokens returned by next.
+ * \return 0 on success, -1 if there is no memory left.
+ *
+ * <B>Example with strip = 0:</B>
+ * \verbatim
+ char buf[30];
+ ACE_OS::strcpy(buf, "William(Joseph)Hagins");
+
+ ACE_Tokenizer tok (buf);
+ tok.preserve_designators ('(', ')', 0);
+ for (char *p = tok.next (); p; p = tok.next ())
+ cout << p << endl;
+ \endverbatim
+ *
+ * This will print out:
+ * \verbatim
+ William(Joseph)Hagins
+ (Joseph)Hagins
+ )Hagins \endverbatim
+ *
+ * <B>Example with strip = 1:</B>
+ * \verbatim
+ char buf[30];
+ ACE_OS::strcpy(buf, "William(Joseph)Hagins");
+
+ ACE_Tokenizer tok (buf);
+ tok.preserve_designators ('(', ')', 1);
+ for (char *p = tok.next (); p; p = tok.next ())
+ cout << p << endl;
+ \endverbatim
+ *
+ * This will print out:
+ * \verbatim
+ William
+ Joseph
+ Hagins \endverbatim
+ */
+ int preserve_designators (CHAR start, CHAR stop, int strip=1);
+
+ /// Returns the next token.
+ CHAR *next (void);
+
+ enum {
+ MAX_DELIMITERS=16,
+ MAX_PRESERVES=16
+ };
+
+protected:
+ /// Returns 1 if @a d is a delimiter, 0 otherwise. If @a d should be
+ /// replaced with @a r, @a replace is set to 1, otherwise 0.
+ int is_delimiter (CHAR d, int &replace, CHAR &r);
+
+ /**
+ * If @a start is a start preserve designator, returns 1 and sets
+ * @a stop to the stop designator. Returns 0 if @a start is not a
+ * preserve designator.
+ */
+ int is_preserve_designator (CHAR start, CHAR &stop, int &strip);
+
+ CHAR *buffer_;
+ int index_;
+
+ /**
+ * @class Preserve_Entry
+ *
+ * @brief Preserve Entry
+ *
+ * Defines a set of characters that designate an area that
+ * should not be parsed, but should be treated as a complete
+ * token. For instance, in: (this is a preserve region), start
+ * would be a left paren -(- and stop would be a right paren
+ * -)-. The strip determines whether the designators should be
+ * removed from the token.
+ */
+ class Preserve_Entry
+ {
+ public:
+ /**
+ * E.g., "(".
+ * E.g., ")".
+ * Whether the designators should be removed from the token.
+ */
+ CHAR start_;
+ CHAR stop_;
+ int strip_;
+ };
+
+ /// The application can specify MAX_PRESERVES preserve designators.
+ Preserve_Entry preserves_[MAX_PRESERVES];
+
+ /// Pointer to the next free spot in preserves_.
+ int preserves_index_;
+
+ /**
+ * @class Delimiter_Entry
+ *
+ * @brief Delimiter Entry
+ *
+ * Describes a delimiter for the tokenizer.
+ */
+ class Delimiter_Entry
+ {
+ public:
+ /**
+ * Most commonly a space ' '.
+ * What occurrences of delimiter_ should be replaced with.
+ * Whether replacement_ should be used. This should be replaced
+ * with a technique that sets replacement_ = delimiter by
+ * default. I'll do that next iteration.
+ */
+ CHAR delimiter_;
+ CHAR replacement_;
+ int replace_;
+ };
+
+ /// The tokenizer allows MAX_DELIMITERS number of delimiters.
+ Delimiter_Entry delimiters_[MAX_DELIMITERS];
+
+ /// Pointer to the next free space in delimiters_.
+ int delimiter_index_;
+};
+
+typedef ACE_Tokenizer_T <ACE_TCHAR> ACE_Tokenizer;
+
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "ace/Tokenizer_T.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Tokenizer_T.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#include /**/ "ace/post.h"
+
+#endif /* ACE_TOKENIZER_T_H */
diff --git a/ACE/ace/UUID.cpp b/ACE/ace/UUID.cpp
index d43bbc8139c..1690bfcd41f 100644
--- a/ACE/ace/UUID.cpp
+++ b/ACE/ace/UUID.cpp
@@ -24,185 +24,110 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_Utils
{
- UUID_Node::UUID_Node (void)
- {
- for (int i = 0; i < UUID_Node::NODE_ID_SIZE; ++i)
- node_ID_[i] = 0;
- }
-
- UUID_Node::UUID_Node (const UUID_Node & node)
- {
- for (int i = 0; i < UUID_Node::NODE_ID_SIZE; ++i)
- this->node_ID_[i] = node.node_ID_[i];
- }
-
- UUID_Node::Node_ID &
- UUID_Node::node_ID (void)
- {
- return node_ID_;
- }
+ // NIL version of the UUID
+ const UUID UUID::NIL_UUID;
- const UUID_Node::Node_ID &
- UUID_Node::node_ID (void) const
- {
- return node_ID_;
- }
-
- void
- UUID_Node::node_ID (Node_ID& node_ID)
+ UUID::UUID (const ACE_CString& uuid_string)
{
- for (int i = 0; i < UUID_Node::NODE_ID_SIZE; ++i)
- node_ID_[i] = node_ID[i];
+ this->init ();
+ this->from_string_i (uuid_string);
}
- const UUID_Node &
- UUID_Node::operator = (const UUID_Node & rhs)
+ const UUID &
+ UUID::operator = (const UUID & rhs)
{
- // Check for self assignment.
if (this == &rhs)
return *this;
- // Copy the content of the node id.
- for (int i = 0; i < UUID_Node::NODE_ID_SIZE; ++i)
- this->node_ID_[i] = rhs.node_ID_[i];
-
- return *this;
- }
-
- UUID UUID::NIL_UUID;
+ // Reset the string version of the UUID a string version
+ // exist, and the UUID is not equal to the old UUID.
+ if (0 != this->as_string_.get ())
+ {
+ if (0 == rhs.as_string_.get () || *this != rhs)
+ this->as_string_.reset ();
+ }
- /// Construct a nil UUID. Such a UUID has every one of it's data
- /// elements set to zero.
- UUID::UUID (void)
- : time_low_ (0),
- time_mid_ (0),
- time_hi_and_version_ (0),
- clock_seq_hi_and_reserved_ (0),
- clock_seq_low_ (0)
- {
+ // Copy the contents of the UUID.
+ ACE_OS::memcpy (&this->uuid_, &rhs.uuid_, BINARY_SIZE);
- }
+ /// @todo We should create an UUID_Ex class for UUIDs that
+ /// contain the thread id and process id.
+ this->thr_id_ = rhs.thr_id_;
+ this->pid_ = rhs.pid_;
- /// Construct a UUID from a string representation of an UUID.
- UUID::UUID (const ACE_CString& uuid_string)
- : time_low_ (0),
- time_mid_ (0),
- time_hi_and_version_ (0),
- clock_seq_hi_and_reserved_ (0),
- clock_seq_low_ (0)
- {
- this->from_string_i (uuid_string);
+ return *this;
}
- UUID::UUID (const UUID &right)
- : time_low_ (right.time_low_),
- time_mid_ (right.time_mid_),
- time_hi_and_version_ (right.time_hi_and_version_),
- clock_seq_hi_and_reserved_ (right.clock_seq_hi_and_reserved_),
- clock_seq_low_ (right.clock_seq_low_),
- node_ (right.node_)
+ const ACE_CString * UUID::to_string (void) const
{
+ // Compute the string representation only once.
+ if (0 != this->as_string_.get ())
+ return this->as_string_.get ();
- }
+ // Get a buffer exactly the correct size. Use the nil UUID as a
+ // gauge. Don't forget the trailing nul.
+ ACE_Auto_Array_Ptr <char> auto_clean;
+ size_t UUID_STRING_LENGTH = 36 + thr_id_.length () + pid_.length ();
+ char *buf = 0;
- UUID::~UUID (void)
- {
+ if (36 == UUID_STRING_LENGTH)
+ {
+ ACE_NEW_RETURN (buf,
+ char[UUID_STRING_LENGTH + 1],
+ 0);
- }
+ // Let the auto array pointer manage the buffer.
+ auto_clean.reset (buf);
- const UUID &
- UUID::operator = (const UUID & rhs)
- {
- if (this != &rhs)
- {
- // Copy the values of the UUID.
- this->time_low_ = rhs.time_low_;
- this->time_mid_ = rhs.time_mid_;
- this->time_hi_and_version_ = rhs.time_hi_and_version_;
- this->clock_seq_hi_and_reserved_ = rhs.clock_seq_hi_and_reserved_;
- this->clock_seq_low_ = rhs.clock_seq_low_;
- this->node_ = rhs.node_;
-
- // Delete the string version of the UUID.
- this->as_string_.reset (0);
+ ACE_OS::sprintf (buf,
+ "%8.8x-%4.4x-%4.4x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x",
+ this->uuid_.time_low_,
+ this->uuid_.time_mid_,
+ this->uuid_.time_hi_and_version_,
+ this->uuid_.clock_seq_hi_and_reserved_,
+ this->uuid_.clock_seq_low_,
+ (this->uuid_.node_.node_ID ()) [0],
+ (this->uuid_.node_.node_ID ()) [1],
+ (this->uuid_.node_.node_ID ()) [2],
+ (this->uuid_.node_.node_ID ()) [3],
+ (this->uuid_.node_.node_ID ()) [4],
+ (this->uuid_.node_.node_ID ()) [5]);
}
- return *this;
- }
-
- const ACE_CString*
- UUID::to_string (void) const
- {
- /// Only compute the string representation once.
- if (this->as_string_.get () == 0)
+ else
{
- // Get a buffer exactly the correct size. Use the nil UUID as a
- // gauge. Don't forget the trailing nul.
- ACE_Auto_Array_Ptr <char> auto_clean;
- size_t UUID_STRING_LENGTH = 36 + thr_id_.length () + pid_.length ();
- char *buf = 0;
+ UUID_STRING_LENGTH += 2; //for '-'
+ ACE_NEW_RETURN (buf,
+ char[UUID_STRING_LENGTH + 1],
+ 0);
- if ((thr_id_.length () != 0) && (pid_.length () != 0))
- {
- UUID_STRING_LENGTH += 2; //for '-'
- ACE_NEW_RETURN (buf,
- char[UUID_STRING_LENGTH + 1],
- 0);
-
- // Let the auto array pointer manage the buffer.
- auto_clean.reset (buf);
-
- ACE_OS::sprintf (buf,
- "%8.8x-%4.4x-%4.4x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x-%s-%s",
- this->time_low_,
- this->time_mid_,
- this->time_hi_and_version_,
- this->clock_seq_hi_and_reserved_,
- this->clock_seq_low_,
- (this->node_.node_ID ()) [0],
- (this->node_.node_ID ()) [1],
- (this->node_.node_ID ()) [2],
- (this->node_.node_ID ()) [3],
- (this->node_.node_ID ()) [4],
- (this->node_.node_ID ()) [5],
- thr_id_.c_str (),
- pid_.c_str ()
- );
- }
- else
- {
- ACE_NEW_RETURN (buf,
- char[UUID_STRING_LENGTH + 1],
- 0);
-
- // Let the auto array pointer manage the buffer.
- auto_clean.reset (buf);
-
- ACE_OS::sprintf (buf,
- "%8.8x-%4.4x-%4.4x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x",
- this->time_low_,
- this->time_mid_,
- this->time_hi_and_version_,
- this->clock_seq_hi_and_reserved_,
- this->clock_seq_low_,
- (this->node_.node_ID ()) [0],
- (this->node_.node_ID ()) [1],
- (this->node_.node_ID ()) [2],
- (this->node_.node_ID ()) [3],
- (this->node_.node_ID ()) [4],
- (this->node_.node_ID ()) [5]
- );
- }
+ // Let the auto array pointer manage the buffer.
+ auto_clean.reset (buf);
- // Save the string.
- ACE_CString * as_string = 0;
+ ACE_OS::sprintf (buf,
+ "%8.8x-%4.4x-%4.4x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x-%s-%s",
+ this->uuid_.time_low_,
+ this->uuid_.time_mid_,
+ this->uuid_.time_hi_and_version_,
+ this->uuid_.clock_seq_hi_and_reserved_,
+ this->uuid_.clock_seq_low_,
+ (this->uuid_.node_.node_ID ()) [0],
+ (this->uuid_.node_.node_ID ()) [1],
+ (this->uuid_.node_.node_ID ()) [2],
+ (this->uuid_.node_.node_ID ()) [3],
+ (this->uuid_.node_.node_ID ()) [4],
+ (this->uuid_.node_.node_ID ()) [5],
+ thr_id_.c_str (),
+ pid_.c_str ());
+ }
- ACE_NEW_RETURN (as_string,
- ACE_CString (buf, UUID_STRING_LENGTH),
- 0);
+ // Save the string.
+ ACE_CString * as_string = 0;
- this->as_string_.reset (as_string);
- }
+ ACE_NEW_RETURN (as_string,
+ ACE_CString (buf, UUID_STRING_LENGTH),
+ 0);
+ this->as_string_.reset (as_string);
return this->as_string_.get ();
}
@@ -315,20 +240,18 @@ namespace ACE_Utils
}
}
- this->time_low_ = static_cast<ACE_UINT32> (time_low);
- this->time_mid_ = static_cast<ACE_UINT16> (time_mid);
- this->time_hi_and_version_ = static_cast<ACE_UINT16> (time_hi_and_version);
- this->clock_seq_hi_and_reserved_ = static_cast<u_char> (clock_seq_hi_and_reserved);
- this->clock_seq_low_ = static_cast<u_char> (clock_seq_low);
-
- UUID_Node::Node_ID node_id;
- for (int i = 0; i < UUID_Node::NODE_ID_SIZE; ++i)
- node_id[i] = static_cast<u_char> (node[i]);
+ this->uuid_.time_low_ = static_cast<ACE_UINT32> (time_low);
+ this->uuid_.time_mid_ = static_cast<ACE_UINT16> (time_mid);
+ this->uuid_.time_hi_and_version_ = static_cast<ACE_UINT16> (time_hi_and_version);
+ this->uuid_.clock_seq_hi_and_reserved_ = static_cast<u_char> (clock_seq_hi_and_reserved);
+ this->uuid_.clock_seq_low_ = static_cast<u_char> (clock_seq_low);
- this->node_.node_ID (node_id);
+ for (size_t i = 0; i < UUID_Node::NODE_ID_SIZE; ++ i)
+ this->uuid_.node_.node_ID ()[i] = static_cast <u_char> (node[i]);
// Support varient 10- only
- if ((this->clock_seq_hi_and_reserved_ & 0xc0) != 0x80 && (this->clock_seq_hi_and_reserved_ & 0xc0) != 0xc0)
+ if ((this->uuid_.clock_seq_hi_and_reserved_ & 0xc0) != 0x80 &&
+ (this->uuid_.clock_seq_hi_and_reserved_ & 0xc0) != 0xc0)
{
ACE_DEBUG ((LM_DEBUG,
"ACE_UUID::from_string_i - "
@@ -337,7 +260,7 @@ namespace ACE_Utils
}
/// Support versions 1, 3, and 4 only
- ACE_UINT16 V1 = this->time_hi_and_version_;
+ ACE_UINT16 V1 = this->uuid_.time_hi_and_version_;
if ((V1 & 0xF000) != 0x1000 &&
(V1 & 0xF000) != 0x3000 &&
@@ -349,7 +272,7 @@ namespace ACE_Utils
return;
}
- if ((this->clock_seq_hi_and_reserved_ & 0xc0) == 0xc0)
+ if ((this->uuid_.clock_seq_hi_and_reserved_ & 0xc0) == 0xc0)
{
if (uuid_string.length () == NIL_UUID.to_string ()->length ())
{
@@ -370,15 +293,16 @@ namespace ACE_Utils
}
}
- UUID_Generator::UUID_Generator ()
+ UUID_Generator::UUID_Generator (void)
: time_last_ (0),
- destroy_lock_ (true)
+ destroy_lock_ (true),
+ is_init_ (false)
{
- ACE_NEW (lock_,
- ACE_SYNCH_MUTEX);
+ ACE_NEW (lock_, ACE_SYNCH_MUTEX);
+ this->init ();
}
- UUID_Generator::~UUID_Generator ()
+ UUID_Generator::~UUID_Generator (void)
{
if (destroy_lock_)
delete lock_;
@@ -387,24 +311,19 @@ namespace ACE_Utils
void
UUID_Generator::init (void)
{
+ if (this->is_init_)
+ return;
+
ACE_OS::macaddr_node_t macaddress;
int result = ACE_OS::getmacaddress (&macaddress);
UUID_Node::Node_ID node_id;
- if (result != -1)
+
+ if (-1 != result)
{
-// ACE_DEBUG ((LM_DEBUG,
-// "%02X-%02X-%02X-%02X-%02X-%02X\n",
-// macaddress.node [0],
-// macaddress.node [1],
-// macaddress.node [2],
-// macaddress.node [3],
-// macaddress.node [4],
-// macaddress.node [5]));
-
- ACE_OS::memcpy (&node_id,
+ ACE_OS::memcpy (node_id,
macaddress.node,
- sizeof (node_id));
+ UUID_Node::NODE_ID_SIZE);
}
else
{
@@ -421,13 +340,18 @@ namespace ACE_Utils
{
ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, *lock_);
uuid_state_.timestamp = time_last_;
- uuid_state_.node.node_ID (node_id);
+
+ ACE_OS::memcpy (uuid_state_.node.node_ID (),
+ node_id,
+ UUID_Node::NODE_ID_SIZE);
}
+
+ this->is_init_ = true;
}
void
- UUID_Generator::generate_UUID (UUID& uuid,ACE_UINT16 version,
- u_char variant)
+ UUID_Generator::
+ generate_UUID (UUID& uuid, ACE_UINT16 version, u_char variant)
{
UUID_Time timestamp;
ACE_UINT16 clock_sequence;
@@ -450,7 +374,7 @@ namespace ACE_Utils
cseqHAV |= variant;
uuid.clock_seq_hi_and_reserved (cseqHAV);
- uuid.node (& (uuid_state_.node));
+ uuid.node (uuid_state_.node);
if (variant == 0xc0)
{
@@ -555,7 +479,7 @@ namespace ACE_Utils
now.to_usec (time);
time = time * 10;
timestamp = time + timeOffset;
-}
+ }
ACE_SYNCH_MUTEX*
UUID_Generator::lock (void)
@@ -564,8 +488,7 @@ namespace ACE_Utils
}
void
- UUID_Generator::lock (ACE_SYNCH_MUTEX* lock,
- bool release_lock)
+ UUID_Generator::lock (ACE_SYNCH_MUTEX* lock, bool release_lock)
{
if (this->destroy_lock_)
delete this->lock_;
@@ -573,12 +496,11 @@ namespace ACE_Utils
this->lock_ = lock;
this->destroy_lock_ = release_lock;
}
-
}
#if defined (ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION)
-template ACE_Singleton<ACE_Utils::UUID_Generator, ACE_SYNCH_MUTEX> *
- ACE_Singleton<ACE_Utils::UUID_Generator, ACE_SYNCH_MUTEX>::singleton_;
+ template ACE_Singleton <ACE_Utils::UUID_Generator, ACE_SYNCH_MUTEX> *
+ ACE_Singleton <ACE_Utils::UUID_Generator, ACE_SYNCH_MUTEX>::singleton_;
#endif /* ACE_HAS_EXPLICIT_STATIC_TEMPLATE_MEMBER_INSTANTIATION */
ACE_END_VERSIONED_NAMESPACE_DECL
diff --git a/ACE/ace/UUID.h b/ACE/ace/UUID.h
index 06f09a95404..755f3e84a1d 100644
--- a/ACE/ace/UUID.h
+++ b/ACE/ace/UUID.h
@@ -29,7 +29,11 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_Utils
{
- /// Class to hold a MAC address
+ /**
+ * @class UUID_Node
+ *
+ * @brief Holds the MAC-address of the UUID.
+ */
class ACE_Export UUID_Node
{
public:
@@ -39,30 +43,19 @@ namespace ACE_Utils
/// Type definition of the node.
typedef u_char Node_ID[NODE_ID_SIZE];
- /// Default constructor
- UUID_Node (void);
+ /// Get the node id
+ Node_ID & node_ID (void);
/**
- * Copy constructor.
- *
- * @param[in] node Source node.
+ * @overload
*/
- UUID_Node (const UUID_Node & node);
-
- Node_ID &node_ID (void);
- const Node_ID &node_ID (void) const;
+ const Node_ID & node_ID (void) const;
- void node_ID (Node_ID&);
+ /// Test for equality.
+ bool operator == (const UUID_Node & right) const;
- ///// Equality Operations
- bool operator == (const UUID_Node& right) const;
- bool operator != (const UUID_Node& right) const;
-
- ///// Relational Operations
- //bool operator < (const UUID_Node& right) const;
-
- /// Assign the value of an existing node id to this object.
- const UUID_Node & operator = (const UUID_Node & rhs);
+ /// Test for inequality.
+ bool operator != (const UUID_Node & right) const;
private:
/// The value of the node id.
@@ -70,7 +63,7 @@ namespace ACE_Utils
};
/**
- * @class ACE_UUID
+ * @class ACE_UUID
*
* ACE_UUID represents a Universally Unique IDentifier (UUID) as
* described in (the expired) INTERNET-DRAFT specification entitled
@@ -90,6 +83,8 @@ namespace ACE_Utils
class ACE_Export UUID
{
public:
+ /// The size of a binary UUID.
+ enum { BINARY_SIZE = 16 };
/// Constructor
UUID (void);
@@ -117,10 +112,10 @@ namespace ACE_Utils
u_char clock_seq_low (void) const;
void clock_seq_low (u_char);
- UUID_Node* node (void);
- const UUID_Node* node (void) const;
+ UUID_Node & node (void);
+ const UUID_Node & node (void) const;
- void node (const UUID_Node*);
+ void node (const UUID_Node & node);
ACE_CString* thr_id (void);
void thr_id (char*);
@@ -134,22 +129,23 @@ namespace ACE_Utils
/// Set the value using a string
void from_string (const ACE_CString& uuid_string);
- static UUID NIL_UUID;
+ /// NIL UUID
+ static const UUID NIL_UUID;
/// Equality Operations
- bool operator== (const UUID &right) const;
- bool operator!= (const UUID &right) const;
+ bool operator == (const UUID &right) const;
+ bool operator != (const UUID &right) const;
- /// Relational Operations
- //bool operator< (const UUID &right) const;
- //bool operator> (const UUID &right) const;
- //bool operator<= (const UUID &right) const;
- //bool operator>= (const UUID &right) const;
+ /// Compute a hash value for the UUID.
+ unsigned long hash (void) const;
/// Assign an existing UUID to this UUID.
const UUID & operator = (const UUID & rhs);
private:
+ /// Initialize the UUID
+ void init (void);
+
/**
* Helper method to convert from a string UUID.
*
@@ -158,13 +154,26 @@ namespace ACE_Utils
void from_string_i (const ACE_CString& uuid_string);
/// Data Members for Class Attributes
- ACE_UINT32 time_low_;
- ACE_UINT16 time_mid_;
- ACE_UINT16 time_hi_and_version_;
- u_char clock_seq_hi_and_reserved_;
- u_char clock_seq_low_;
+ struct data
+ {
+ /// Time low.
+ ACE_UINT32 time_low_;
- UUID_Node node_;
+ /// Time mid.
+ ACE_UINT16 time_mid_;
+
+ /// Time high and version.
+ ACE_UINT16 time_hi_and_version_;
+
+ /// Clock sequence high and reserved space.
+ u_char clock_seq_hi_and_reserved_;
+
+ /// Clock sequence low.
+ u_char clock_seq_low_;
+
+ /// MAC-address within the UUID.
+ UUID_Node node_;
+ } uuid_;
ACE_CString thr_id_;
ACE_CString pid_;
@@ -186,9 +195,14 @@ namespace ACE_Utils
enum {ACE_UUID_CLOCK_SEQ_MASK = 0x3FFF};
- UUID_Generator();
+ /// Default constructor.
+ UUID_Generator(void);
+
+ /// Destructor.
~UUID_Generator();
+ /// Initialize the UUID generator
+ /// @deprecated This method may go away in some future release.
void init (void);
/// Format timestamp, clockseq, and nodeID into an UUID of the
@@ -209,11 +223,9 @@ namespace ACE_Utils
ACE_SYNCH_MUTEX* lock (void);
/// Set a new locking strategy and return the old one.
- void lock (ACE_SYNCH_MUTEX* lock,
- bool release_lock);
+ void lock (ACE_SYNCH_MUTEX* lock, bool release_lock);
private:
-
/// The system time when that last uuid was generated.
UUID_Time time_last_;
@@ -238,20 +250,26 @@ namespace ACE_Utils
/// Obtain the system time in UTC as a count of 100 nanosecond intervals
/// since 00:00:00.00, 15 October 1582 (the date of Gregorian reform to
- /// the Christian calendar).
+ /// the Christian calendar).
void get_systemtime( UUID_Time& timeNow);
/// The UUID generator persistent state.
UUID_State uuid_state_;
ACE_SYNCH_MUTEX* lock_;
+
bool destroy_lock_;
- };
- typedef ACE_Singleton<UUID_Generator, ACE_SYNCH_MUTEX> UUID_GENERATOR;
+ /// Initalization state of the generator.
+ bool is_init_;
+ };
+ typedef ACE_Singleton <ACE_Utils::UUID_Generator, ACE_SYNCH_MUTEX>
+ UUID_GENERATOR;
}
+ACE_SINGLETON_DECLARE (ACE_Singleton, ACE_Utils::UUID_Generator, ACE_SYNCH_MUTEX)
+
ACE_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
diff --git a/ACE/ace/UUID.inl b/ACE/ace/UUID.inl
index bbc494197bd..d4167a74642 100644
--- a/ACE/ace/UUID.inl
+++ b/ACE/ace/UUID.inl
@@ -6,84 +6,129 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE_Utils
{
+ ACE_INLINE
+ const UUID_Node::Node_ID & UUID_Node::node_ID (void) const
+ {
+ return this->node_ID_;
+ }
+
+ ACE_INLINE
+ UUID_Node::Node_ID & UUID_Node::node_ID (void)
+ {
+ return this->node_ID_;
+ }
+
+ ACE_INLINE
+ UUID::UUID (void)
+ {
+ this->init ();
+ }
+
+ ACE_INLINE
+ UUID::UUID (const UUID &right)
+ : thr_id_ (right.thr_id_),
+ pid_ (right.pid_)
+ {
+ ACE_OS::memcpy (&this->uuid_, &right.uuid_, BINARY_SIZE);
+ }
+
+ ACE_INLINE
+ UUID::~UUID (void)
+ {
+
+ }
+
+ ACE_INLINE void
+ UUID::init (void)
+ {
+ ACE_OS::memset (&this->uuid_, 0, BINARY_SIZE);
+ }
+
+ ACE_INLINE unsigned long
+ UUID::hash (void) const
+ {
+ return ACE::hash_pjw (reinterpret_cast <const char *> (&this->uuid_),
+ UUID::BINARY_SIZE);
+ }
- /// Data Members for Class Attributes
ACE_INLINE ACE_UINT32
UUID::time_low (void) const
{
- return this->time_low_;
+ return this->uuid_.time_low_;
}
ACE_INLINE void
UUID::time_low (ACE_UINT32 timelow)
{
- this->time_low_ = timelow;
+ this->uuid_.time_low_ = timelow;
}
ACE_INLINE ACE_UINT16
UUID::time_mid (void) const
{
- return this->time_mid_;
+ return this->uuid_.time_mid_;
}
ACE_INLINE void
UUID::time_mid (ACE_UINT16 time_mid)
{
- this->time_mid_ = time_mid;
+ this->uuid_.time_mid_ = time_mid;
}
ACE_INLINE ACE_UINT16
UUID::time_hi_and_version (void) const
{
- return this->time_hi_and_version_;
+ return this->uuid_.time_hi_and_version_;
}
ACE_INLINE void
UUID::time_hi_and_version (ACE_UINT16 time_hi_and_version)
{
- this->time_hi_and_version_ = time_hi_and_version;
+ this->uuid_.time_hi_and_version_ = time_hi_and_version;
}
ACE_INLINE u_char
UUID::clock_seq_hi_and_reserved (void) const
{
- return this->clock_seq_hi_and_reserved_;
+ return this->uuid_.clock_seq_hi_and_reserved_;
}
ACE_INLINE void
UUID::clock_seq_hi_and_reserved (u_char clock_seq_hi_and_reserved)
{
- this->clock_seq_hi_and_reserved_ = clock_seq_hi_and_reserved;
+ this->uuid_.clock_seq_hi_and_reserved_ = clock_seq_hi_and_reserved;
}
ACE_INLINE u_char
UUID::clock_seq_low (void) const
{
- return this->clock_seq_low_;
+ return this->uuid_.clock_seq_low_;
}
ACE_INLINE void
UUID::clock_seq_low (u_char clock_seq_low)
{
- this->clock_seq_low_ = clock_seq_low;
+ this->uuid_.clock_seq_low_ = clock_seq_low;
}
- ACE_INLINE const UUID_Node*
+ ACE_INLINE const UUID_Node &
UUID::node (void) const
{
- return &this->node_;
+ return this->uuid_.node_;
}
- ACE_INLINE UUID_Node*
+ ACE_INLINE UUID_Node &
UUID::node (void)
{
- return &this->node_;
+ return this->uuid_.node_;
}
ACE_INLINE void
- UUID::node (const UUID_Node* node)
+ UUID::node (const UUID_Node & node)
{
- this->node_ = *node;
+ ACE_OS::memcpy (&this->uuid_.node_,
+ node.node_ID (),
+ UUID_Node::NODE_ID_SIZE);
}
ACE_INLINE ACE_CString*
@@ -119,58 +164,15 @@ namespace ACE_Utils
ACE_INLINE bool
UUID::operator == (const UUID &right) const
{
- if ((this->time_low_ != right.time_low ()) ||
- (this->time_mid_ != right.time_mid ()) ||
- (this->time_hi_and_version_ != right.time_hi_and_version ()) ||
- (this->clock_seq_hi_and_reserved_ != right.clock_seq_hi_and_reserved ()) ||
- (this->clock_seq_low_ != right.clock_seq_low ()) ||
- (this->node_ != *right.node ()))
- return false;
-
- return true;
+ return 0 == ACE_OS::memcmp (&this->uuid_, &right.uuid_, BINARY_SIZE);
}
ACE_INLINE bool
UUID::operator != (const UUID &right) const
{
- return !(*this == right);
+ return 0 != ACE_OS::memcmp (&this->uuid_, &right.uuid_, BINARY_SIZE);
}
-// ACE_INLINE bool
-//UUID::operator < (const UUID &rt) const
-// {
-// UUID right (rt);
-// if ((timeLow_ < right.timeLow ()) ||
-// (timeMid_ < right.timeMid ()) ||
-// (timeHiAndVersion_ < right.timeHiAndVersion ()) ||
-// (clockSeqHiAndReserved_ < right.clockSeqHiAndReserved ()) ||
-// (clockSeqLow_ < right.clockSeqLow ()) ||
-// (node_ < right.node ()))
-// {
-// return true;
-// }
-//
-// return false;
-// }
-//
-// ACE_INLINE bool
-// UUID::operator > (const UUID &right) const
-// {
-// return right < *this;
-// }
-//
-// ACE_INLINE bool
-// UUID::operator <= (const UUID &right) const
-// {
-// return !(*this > right);
-// }
-//
-// ACE_INLINE bool
-// UUID::operator >= (const UUID &right) const
-// {
-// return !(*this < right);
-// }
-//
ACE_INLINE bool
UUID_Node::operator == (const UUID_Node& rt) const
{
diff --git a/ACE/ace/WFMO_Reactor.cpp b/ACE/ace/WFMO_Reactor.cpp
index d498cc77da8..61c063c41d0 100644
--- a/ACE/ace/WFMO_Reactor.cpp
+++ b/ACE/ace/WFMO_Reactor.cpp
@@ -1756,6 +1756,7 @@ ACE_WFMO_Reactor::ok_to_wait (ACE_Time_Value *max_wait_time,
// grab the lock and recheck the ok_to_wait_ event. When we can get them
// both, or there's an error/timeout, return.
#if defined (ACE_HAS_WINCE)
+ ACE_UNUSED_ARG (alertable);
ACE_Time_Value timeout;
if (max_wait_time != 0)
{
diff --git a/ACE/ace/ace.mpc b/ACE/ace/ace.mpc
index 5dfcba00478..fbc2424a2ed 100644
--- a/ACE/ace/ace.mpc
+++ b/ACE/ace/ace.mpc
@@ -360,6 +360,7 @@ project(ACE) : ace_output, acedefaults, install, other, codecs, token, svcconf,
Timer_Queue_Adapters.cpp
Timer_Queue_T.cpp
Timer_Wheel_T.cpp
+ Tokenizer_T.cpp
Typed_SV_Message.cpp
Typed_SV_Message_Queue.cpp
Unbounded_Queue.cpp
diff --git a/ACE/ace/ace_for_tao.mpc b/ACE/ace/ace_for_tao.mpc
index c4625e51f6a..85778635617 100644
--- a/ACE/ace/ace_for_tao.mpc
+++ b/ACE/ace/ace_for_tao.mpc
@@ -271,6 +271,7 @@ project(ACE_FOR_TAO) : acedefaults, install, svcconf, uuid, versioned_namespace,
Timer_Queue_Adapters.cpp
Timer_Queue_T.cpp
Timer_Wheel_T.cpp
+ Tokenizer_T.cpp
Typed_SV_Message.cpp
Typed_SV_Message_Queue.cpp
Unbounded_Queue.cpp
diff --git a/ACE/ace/config-WinCE.h b/ACE/ace/config-WinCE.h
index 9fa49a63018..40a755348fc 100644
--- a/ACE/ace/config-WinCE.h
+++ b/ACE/ace/config-WinCE.h
@@ -15,26 +15,13 @@
# error Use config-win32.h in config.h instead of this header
#endif // ACE_CONFIG_WIN32_H
-#if !defined (UNDER_CE)
-# error Define UNDER_CE to version (i.e. 300 = 3.0)
-#endif // UNDER_CE
-
-#if (UNDER_CE < 300)
-# error ACE requires Windows CE 3.0 and later.
-#endif // UNDER_CE
-
-#if (UNDER_CE < 400)
-// CE 3 doesn't have Winsock 2, but CE 4 does.
-# if !defined (ACE_HAS_WINSOCK2)
-# define ACE_HAS_WINSOCK2 0
-# endif
-# define ACE_LACKS_ASSERT_H
-# define ACE_LACKS_SEARCH_H
-# define ACE_LACKS_WCHAR_H
-# define ACE_LACKS_WCTYPE_H
-# define ACE_LACKS_STDDEF_H
-# define ACE_LACKS_PTRDIFF_T
-#endif /* UNDER_CE < 400 */
+#if !defined (_WIN32_WCE)
+# error Define _WIN32_WCE to version (i.e. 500 = 5.0)
+#endif // _WIN32_WCE
+
+#if (_WIN32_WCE < 500)
+# error ACE requires Windows CE 5.0 and later.
+#endif // _WIN32_WCE
#if !defined (ACE_HAS_WINCE)
# define ACE_HAS_WINCE 1
@@ -50,8 +37,10 @@
#endif
// We need these libraries to build:
-#pragma comment(lib,"corelibc.lib")
-#pragma comment(linker, "/nodefaultlib:oldnames.lib")
+#if defined (_MSC_VER)
+# pragma comment(lib,"corelibc.lib")
+# pragma comment(linker, "/nodefaultlib:oldnames.lib")
+#endif
// Only DLL version is supported on CE.
//#if defined (ACE_HAS_DLL)
@@ -104,7 +93,7 @@
# define ACE_LACKS_ERRNO_H
# define ACE_LACKS_DUP
# define ACE_LACKS_GETSYSTEMTIMEASFILETIME
-#endif
+#endif /* (_WIN32_WCE < 0x600) */
#define ACE_LACKS_REGNOTIFYCHANGEKEYVALUE
@@ -153,23 +142,9 @@
#define _O_TEXT 0x4000 // file mode is text (translated)
#define _O_BINARY 0x8000 // file mode is binary (untranslated)
-// macro to translate the C 2.0 name used to force binary mode for files
-//#define _O_RAW _O_BINARY
-
-// Open handle inherit bit
-//#define _O_NOINHERIT 0x0080 // child process doesn't inherit file
-
// Temporary file bit - file is deleted when last handle is closed
#define _O_TEMPORARY 0x0040 // temporary file bit
-// temporary access hint
-//#define _O_SHORT_LIVED 0x1000 // temporary storage file, try not to flush
-
-// sequential/random access hints
-//#define _O_SEQUENTIAL 0x0020 // file access is primarily sequential
-//#define _O_RANDOM 0x0010 // file access is primarily random
-
-
// Non-ANSI names
#define O_RDONLY _O_RDONLY
#define O_WRONLY _O_WRONLY
@@ -181,11 +156,6 @@
#define O_TEXT _O_TEXT
#define O_BINARY _O_BINARY
#define O_TEMPORARY _O_TEMPORARY
-//#define O_RAW _O_BINARY
-//#define O_NOINHERIT _O_NOINHERIT
-//#define O_SEQUENTIAL _O_SEQUENTIAL
-//#define O_RANDOM _O_RANDOM
-
// @@ NSIG value. This is definitely not correct.
#define NSIG 23
@@ -194,16 +164,10 @@
// Need to find out what it is. (Used in MapViewOfFile ().)
#define FILE_MAP_COPY 0
-#if (_WIN32_WCE >= 0x400)
-# define ACE_HAS_INTERLOCKED_EXCHANGEADD
-#endif
-
+#define ACE_HAS_INTERLOCKED_EXCHANGEADD
#define ACE_LACKS_ACCESS
#define ACE_LACKS__WACCESS
#define ACE_HAS_ACCESS_EMULATION
-#if (_WIN32_WCE < 0x500)
-# define ACE_LACKS_FILELOCKS
-#endif
#define ACE_LACKS_EXEC
#define ACE_LACKS_MKTEMP
#define ACE_LACKS_ISATTY
@@ -229,7 +193,7 @@
#endif // _WIN32_WCE_EMULATION
#if !defined (BUFSIZ)
-# define BUFSIZ 1024
+# define BUFSIZ 1024
#endif
#define ACE_LACKS_MALLOC_H // We do have malloc.h, but don't use it.
@@ -239,22 +203,22 @@
#define ACE_HAS_STRDUP_EMULATION
#if !defined (MAXSYMLINKS)
-#define MAXSYMLINKS 0
+# define MAXSYMLINKS 0
#endif
// WinCE can't do fixed addresses for memory-mapped files.
#if defined (ACE_DEFAULT_BASE_ADDR)
-# undef ACE_DEFAULT_BASE_ADDR
+# undef ACE_DEFAULT_BASE_ADDR
#endif
#define ACE_DEFAULT_BASE_ADDR 0
#if (_WIN32_WCE < 0x600)
-#define ACE_HAS_TSS_EMULATION
+# define ACE_HAS_TSS_EMULATION
#endif // WinCE version < 6.0
// CE doesn't support FILE_SHARE_DELETE like regular windows
#if !defined (ACE_DEFAULT_FILE_PERMS)
-#define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE)
+# define ACE_DEFAULT_FILE_PERMS (FILE_SHARE_READ | FILE_SHARE_WRITE)
#endif
#define ACE_LACKS_SIGNAL_H
diff --git a/ACE/ace/config-aix-5.x.h b/ACE/ace/config-aix-5.x.h
index 8556d5bf9c5..16e75fa4d45 100644
--- a/ACE/ace/config-aix-5.x.h
+++ b/ACE/ace/config-aix-5.x.h
@@ -40,61 +40,52 @@
# endif /* _THREAD_SAFE */
#endif /* !ACE_MT_SAFE || (ACE_MT_SAFE != 0) */
-#if defined (__xlC__) || defined (__IBMCPP__)
- // AIX xlC, IBM C/C++, and Visual Age C++ compilers
+#if defined (__IBMCPP__)
+ // AIX xlC, IBM C/C++ compiler
//********************************************************************
//
-// Compiler does this with a builtin - it's not in libc.
-// Although ACE does have alloca() on this compiler/platform combination, it is
-// disabled by default since it can be dangerous. Uncomment the following line
-// if you ACE to use it.
-//# define ACE_HAS_ALLOCA
+ // Compiler does this with a builtin - it's not in libc.
+ // Although ACE does have alloca() on this compiler/platform combination,
+ // it is disabled by default since it can be dangerous. Uncomment the
+ // following line if you ACE to use it.
+ //# define ACE_HAS_ALLOCA
-// Compiler supports the ssize_t typedef.
+ // Compiler supports the ssize_t typedef.
# define ACE_HAS_SSIZE_T
// Keep an eye on this as the compiler and standards converge...
# define ACE_LACKS_LINEBUFFERED_STREAMBUF
# define ACE_LACKS_PRAGMA_ONCE
- // C Set++ 3.1, IBM C/C++ 3.6, and Visual Age C++ 5 batch (__xlC__)
-# if defined (__xlC__)
-# if (__xlC__ < 0x0500)
-# define ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-# endif /* __xlC__ < 0x0500 */
-# endif
-
- // These are for Visual Age C++ only
-# if defined (__IBMCPP__) && (__IBMCPP__ >= 600)
-# define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
- // When using -qtempinc, we don't need to see template implementation
- // source (though we do need a pragma to find the correct source file).
- // However, without -qtempinc (either -qnotempinc or -qtemplateregistry)
- // we do need to see the source.
-# if defined (__TEMPINC__)
-# if !defined ACE_TEMPLATES_REQUIRE_PRAGMA
-# define ACE_TEMPLATES_REQUIRE_PRAGMA
-# endif
-# else
-# if !defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-# define ACE_TEMPLATES_REQUIRE_SOURCE
-# endif
-# endif /* __TEMPINC__ */
-
-# undef WIFEXITED
-# undef WEXITSTATUS
-# define ACE_HAS_STANDARD_CPP_LIBRARY 1
-# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
-
-# if (__IBMCPP__ >= 600) /* Visual Age 6 and XL C/C++ 7 and up */
-# define ACE_HAS_TEMPLATE_TYPEDEFS
-# define ACE_HAS_CUSTOM_EXPORT_MACROS
-# define ACE_Proper_Export_Flag
-# define ACE_Proper_Import_Flag
-# define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE < CLASS, LOCK >;
-# endif /* __IBMCPP__ >= 600 */
-# endif /* __IBMCPP__ */
+# define ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS
+ // When using -qtempinc, we don't need to see template implementation
+ // source (though we do need a pragma to find the correct source file).
+ // However, without -qtempinc (either -qnotempinc or -qtemplateregistry)
+ // we do need to see the source.
+# if defined (__TEMPINC__)
+# if !defined ACE_TEMPLATES_REQUIRE_PRAGMA
+# define ACE_TEMPLATES_REQUIRE_PRAGMA
+# endif
+# else
+# if !defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+# define ACE_TEMPLATES_REQUIRE_SOURCE
+# endif
+# endif /* __TEMPINC__ */
+
+# undef WIFEXITED
+# undef WEXITSTATUS
+# define ACE_HAS_STANDARD_CPP_LIBRARY 1
+# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+
+# define ACE_HAS_TEMPLATE_TYPEDEFS
+# define ACE_HAS_CUSTOM_EXPORT_MACROS
+# define ACE_Proper_Export_Flag
+# define ACE_Proper_Import_Flag
+ // There's no explicit import/export per-se, but to be sure that declared
+ // template code is exported, explicitly instantiate the class.
+# define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class SINGLETON_TYPE < CLASS, LOCK >;
+# define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE < CLASS, LOCK >;
#elif defined (__GNUG__)
// config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
@@ -118,7 +109,7 @@
# endif /* _REENTRANT */
# endif /* !ACE_MT_SAFE */
-#else /* ! __xlC__ && ! __GNUG__ */
+#else /* ! __IBMCPP__ && ! __GNUG__ */
# ifdef __cplusplus /* Let it slide for C compilers. */
# error unsupported compiler in ace/config-aix-5.x.h
# endif /* __cplusplus */
diff --git a/ACE/ace/config-cygwin32.h b/ACE/ace/config-cygwin32.h
index c8f04092a2b..460a90c57bb 100644
--- a/ACE/ace/config-cygwin32.h
+++ b/ACE/ace/config-cygwin32.h
@@ -25,13 +25,15 @@
#endif /* ACE_IOV_MAX */
// Define custom export macros for export/import of symbols from/of dll's
-#define ACE_HAS_CUSTOM_EXPORT_MACROS 1
-#define ACE_Proper_Export_Flag __declspec (dllexport)
-#define ACE_Proper_Import_Flag __declspec (dllimport)
-#define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T
-#define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllexport) SINGLETON_TYPE<CLASS, LOCK>;
-#define ACE_IMPORT_SINGLETON_DECLARATION(T) extern template class T
-#define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE <CLASS, LOCK>;
+#if !defined (ACE_HAS_CUSTOM_EXPORT_MACROS)
+# define ACE_HAS_CUSTOM_EXPORT_MACROS 1
+# define ACE_Proper_Export_Flag __declspec (dllexport)
+# define ACE_Proper_Import_Flag __declspec (dllimport)
+# define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T
+# define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllexport) SINGLETON_TYPE<CLASS, LOCK>;
+# define ACE_IMPORT_SINGLETON_DECLARATION(T) extern template class T
+# define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE <CLASS, LOCK>;
+#endif
#define ACE_HAS_SELECT_H
@@ -196,9 +198,11 @@
# define ACE_LACKS_PTHREAD_YIELD 1
# define ACE_LACKS_PTHREAD_ATTR_SETSTACK
+#if CYGWIN_VERSION_API_MINOR < 207
// In the 1.5.9 release of Cygwin the pthread_kill gives an access violation
// so for the time being we say Cygwin doesn't support pthread_kill.
# define ACE_LACKS_PTHREAD_KILL
+#endif
#endif /* ACE_MT_SAFE */
diff --git a/ACE/ace/config-hpux-11.00.h b/ACE/ace/config-hpux-11.00.h
index 6a3441d6cca..54db1735b53 100644
--- a/ACE/ace/config-hpux-11.00.h
+++ b/ACE/ace/config-hpux-11.00.h
@@ -367,6 +367,7 @@
#define ACE_HAS_3_PARAM_READDIR_R
+#define ACE_LACKS_STRUCT_LIFNUM
//////////////////////////////////////////////////////////////////////////
//
diff --git a/ACE/ace/config-linux-common.h b/ACE/ace/config-linux-common.h
index 7122d00a974..a38a8c54503 100644
--- a/ACE/ace/config-linux-common.h
+++ b/ACE/ace/config-linux-common.h
@@ -318,8 +318,11 @@
// Platform supplies scandir()
#define ACE_HAS_SCANDIR
+#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 10)
// Although the scandir man page says otherwise, this setting is correct.
+// The setting was fixed in 2.10, so do not use the hack after that.
#define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR
+#endif
// A conflict appears when including both <ucontext.h> and
// <sys/procfs.h> with recent glibc headers.
diff --git a/ACE/ace/config-vxworks6.6.h b/ACE/ace/config-vxworks6.6.h
index 04da8aa983e..5e61fb20264 100644
--- a/ACE/ace/config-vxworks6.6.h
+++ b/ACE/ace/config-vxworks6.6.h
@@ -22,8 +22,13 @@
#if !defined (__RTP__)
# undef ACE_HAS_IOCTL_INT_3_PARAM
+# define ACE_HAS_TASKCPUAFFINITYSET
#endif
+#define ACE_HAS_VXATOMICLIB
+#define ACE_HAS_CPUSET_T
+#define ACE_HAS_VXCPULIB
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_VXWORKS_6_6_H */
diff --git a/ACE/ace/config-win32-borland.h b/ACE/ace/config-win32-borland.h
index c6eeada4acb..62c474907ad 100644
--- a/ACE/ace/config-win32-borland.h
+++ b/ACE/ace/config-win32-borland.h
@@ -11,7 +11,7 @@
#error Use config-win32.h in config.h instead of this header
#endif /* ACE_CONFIG_WIN32_H */
-#if (__BORLANDC__ < 0x610)
+#if (__BORLANDC__ < 0x613)
#error This version of CodeGear C++ is not supported.
#endif
@@ -32,7 +32,7 @@
# define __ACE_INLINE__ 1
# endif /* __ACE_INLINE__ */
-# define ACE_CC_NAME ACE_TEXT ("Borland C++ Builder")
+# define ACE_CC_NAME ACE_TEXT ("Embarcadero C++ Builder")
# define ACE_CC_MAJOR_VERSION (__BORLANDC__ / 0x100)
# define ACE_CC_MINOR_VERSION (__BORLANDC__ % 0x100)
# define ACE_CC_BETA_VERSION (0)
@@ -120,7 +120,6 @@
# define ACE_HAS_USER_MODE_MASKS 1
# define ACE_LACKS_ACE_IOSTREAM 1
# define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
-# define ACE_LACKS_PRAGMA_ONCE 1
# define ACE_HAS_NEW_NOTHROW
# define ACE_TEMPLATES_REQUIRE_SOURCE 1
# define ACE_SIZEOF_LONG_DOUBLE 10
@@ -140,14 +139,16 @@
# endif /* !_MT && !ACE_HAS_WINCE */
#endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */
-#if (__BORLANDC__ <= 0x610)
+#if (__BORLANDC__ < 0x620)
# define ACE_LACKS_ISBLANK
# define ACE_LACKS_ISWBLANK
-# define ACE_LACKS_ISCTYPE
# define ACE_LACKS_ISWCTYPE
+# define ACE_LACKS_PRAGMA_ONCE 1
#endif
-#if (__BORLANDC__ <= 0x610)
+#define ACE_LACKS_ISCTYPE
+
+#if (__BORLANDC__ < 0x620)
// Older Borland compilers can't handle assembly in inline methods or
// templates (E2211). When we build for pentium optimized and we are inlining
// then we disable inline assembly
diff --git a/ACE/ace/config-win32-cegcc.h b/ACE/ace/config-win32-cegcc.h
index fcbb0d8e31a..100ecdbe8b9 100644
--- a/ACE/ace/config-win32-cegcc.h
+++ b/ACE/ace/config-win32-cegcc.h
@@ -35,11 +35,13 @@
#include "ace/config-g++-common.h"
-#undef _WIN32_WCE
-#define _WIN32_WCE 0x600
-
#include /**/ <cegcc.h>
#include /**/ <w32api.h>
+#include /**/ <_mingw.h>
+
+#if (__MINGW32_MAJOR_VERSION > 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION >= 15))
+# undef ACE_LACKS_USECONDS_T
+#endif
#define ACE_HAS_USER_MODE_MASKS
@@ -52,8 +54,6 @@
#undef ACE_LACKS_SEEKDIR
#undef ACE_LACKS_REWINDDIR
-#undef ACE_LACKS_USECONDS_T
-
#undef ACE_HAS_WTOF
#define ACE_LACKS_SIGSET_DEFINITIONS
@@ -93,22 +93,18 @@
#define ACE_LACKS_ERRNO_H
#undef ACE_LACKS_SIGSET
#undef ACE_LACKS_DEV_T
-#define ACE_LACKS_USECONDS_T
#define ACE_LACKS_ISCTYPE
#define ACE_HAS_NONCONST_WFDOPEN
#undef ACE_HAS_WTOI
#undef ACE_HAS_WTOL
-#define ACE_LACKS_GETSYSTEMTIMEASFILETIME
-#define ACE_LACKS_FILELOCKS
#define ACE_INT64_FORMAT_SPECIFIER_ASCII "%I64d"
#define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%I64u"
+#define ACE_ENDTHREADEX(STATUS) ExitThread ((DWORD) STATUS)
+
+#undef ACE_HAS_CUSTOM_EXPORT_MACROS
-#if defined (_WIN32_WCE)
-# define ACE_ENDTHREADEX(STATUS) ExitThread ((DWORD) STATUS)
-#else
-# define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) STATUS)
-#endif /* _WIN32_WCE */
+#define ACE_DLL_PREFIX ACE_TEXT ("lib")
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_WIN32_CEGCC_H */
diff --git a/ACE/ace/config-win32-common.h b/ACE/ace/config-win32-common.h
index b7f821389e9..7955a24b994 100644
--- a/ACE/ace/config-win32-common.h
+++ b/ACE/ace/config-win32-common.h
@@ -519,7 +519,7 @@
# define EDQUOT WSAEDQUOT
# define ESTALE WSAESTALE
# define EREMOTE WSAEREMOTE
-# endif /* UNDER_CE */
+# endif /* (_WIN32_WCE) && (_WIN32_WCE < 0x600) */
# endif /* _WINSOCK2API */
# if defined (ACE_HAS_FORE_ATM_WS2)
@@ -552,7 +552,7 @@
// PharLap ETS has its own winsock lib, so don't grab the one
// supplied with the OS.
-# if defined (_MSC_VER) && !defined (UNDER_CE) && !defined (ACE_HAS_PHARLAP)
+# if defined (_MSC_VER) && !defined (_WIN32_WCE) && !defined (ACE_HAS_PHARLAP)
# pragma comment(lib, "wsock32.lib")
# endif /* _MSC_VER */
diff --git a/ACE/ace/config-win32-mingw.h b/ACE/ace/config-win32-mingw.h
index 8a89a62b372..abab20c1eac 100644
--- a/ACE/ace/config-win32-mingw.h
+++ b/ACE/ace/config-win32-mingw.h
@@ -102,5 +102,7 @@
#define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) (STATUS))
+#define ACE_DLL_PREFIX ACE_TEXT ("lib")
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_WIN32_MINGW_H */
diff --git a/ACE/ace/config-win32-msvc-10.h b/ACE/ace/config-win32-msvc-10.h
index b91e241530d..f8801a07d4a 100644
--- a/ACE/ace/config-win32-msvc-10.h
+++ b/ACE/ace/config-win32-msvc-10.h
@@ -138,5 +138,12 @@
// explicitly instantiate a template that has ACE_UNIMPLEMENTED_FUNC.
# define ACE_NEEDS_FUNC_DEFINITIONS
+// Windows Vista and Windows Server 2008 and newer do have native condition
+// variables
+#if defined (WIN32_WINNT) && (WIN32_WINNT >= 0x0600)
+# define ACE_HAS_WTHREADS_CONDITION_VARIABLE
+# undef ACE_LACKS_COND_T
+#endif
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_WIN32_MSVC_10_H */
diff --git a/ACE/ace/config-win32-msvc-9.h b/ACE/ace/config-win32-msvc-9.h
index 65b817482d6..aa101ab63ad 100644
--- a/ACE/ace/config-win32-msvc-9.h
+++ b/ACE/ace/config-win32-msvc-9.h
@@ -65,10 +65,10 @@
#define ACE_LACKS_STRPTIME
// Evaluate this with a WinCE build; maybe things have improved since VC8.
-//#if !defined (ACE_HAS_WINCE)
+#if !defined (ACE_HAS_WINCE)
# define ACE_HAS_INTRIN_H
# define ACE_HAS_INTRINSIC_INTERLOCKED
-//#endif
+#endif
#if !defined (_WIN32_WCE) || (_WIN32_WCE >= 0x501)
# define ACE_HAS_INTRINSIC_BYTESWAP
@@ -138,5 +138,12 @@
// explicitly instantiate a template that has ACE_UNIMPLEMENTED_FUNC.
# define ACE_NEEDS_FUNC_DEFINITIONS
+// Windows Vista and Windows Server 2008 and newer do have native condition
+// variables
+#if defined (WIN32_WINNT) && (WIN32_WINNT >= 0x0600)
+# define ACE_HAS_WTHREADS_CONDITION_VARIABLE
+# undef ACE_LACKS_COND_T
+#endif
+
#include /**/ "ace/post.h"
#endif /* ACE_CONFIG_WIN32_MSVC_9_H */
diff --git a/ACE/ace/os_include/netinet/os_in.h b/ACE/ace/os_include/netinet/os_in.h
index ceff2e0ab47..b3ef1e68420 100644
--- a/ACE/ace/os_include/netinet/os_in.h
+++ b/ACE/ace/os_include/netinet/os_in.h
@@ -49,7 +49,7 @@ extern "C"
# define ACE_IPPROTO_TCP IPPROTO_TCP
# endif /* ACE_HAS_PHARLAP_RT */
-# if !defined (ACE_HAS_IP_MULTICAST) && defined (ACE_LACKS_IP_ADD_MEMBERSHIP)
+# if !defined (ACE_HAS_IP_MULTICAST) && defined (ACE_LACKS_IP_ADD_MEMBERSHIP)
// Even if ACE_HAS_IP_MULTICAST is not defined, if IP_ADD_MEMBERSHIP
// is defined, assume that the ip_mreq struct is also defined
// (presumably in netinet/in.h).
diff --git a/ACE/ace/os_include/os_errno.h b/ACE/ace/os_include/os_errno.h
index eb51405c576..a24024ae37c 100644
--- a/ACE/ace/os_include/os_errno.h
+++ b/ACE/ace/os_include/os_errno.h
@@ -41,46 +41,122 @@ extern "C"
#if defined (ACE_WIN32)
// error code mapping for windows
-# define ETIME ERROR_SEM_TIMEOUT
-# define EWOULDBLOCK WSAEWOULDBLOCK
-# define EINPROGRESS WSAEINPROGRESS
-# define EALREADY WSAEALREADY
-# define ENOTSOCK WSAENOTSOCK
-# define EDESTADDRREQ WSAEDESTADDRREQ
-# define EMSGSIZE WSAEMSGSIZE
-# define EPROTOTYPE WSAEPROTOTYPE
-# define ENOPROTOOPT WSAENOPROTOOPT
-# define EPROTONOSUPPORT WSAEPROTONOSUPPORT
-# define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
-# define EOPNOTSUPP WSAEOPNOTSUPP
-# define EPFNOSUPPORT WSAEPFNOSUPPORT
-# define EAFNOSUPPORT WSAEAFNOSUPPORT
-# define EADDRINUSE WSAEADDRINUSE
-# define EADDRNOTAVAIL WSAEADDRNOTAVAIL
-# define ENETDOWN WSAENETDOWN
-# define ENETUNREACH WSAENETUNREACH
-# define ENETRESET WSAENETRESET
-# define ECONNABORTED WSAECONNABORTED
-# define ECONNRESET WSAECONNRESET
-# define ENOBUFS WSAENOBUFS
-# define EISCONN WSAEISCONN
-# define ENOTCONN WSAENOTCONN
-# define ESHUTDOWN WSAESHUTDOWN
-# define ETOOMANYREFS WSAETOOMANYREFS
-# define ETIMEDOUT WSAETIMEDOUT
-# define ECONNREFUSED WSAECONNREFUSED
-# define ELOOP WSAELOOP
-# define EHOSTDOWN WSAEHOSTDOWN
-# define EHOSTUNREACH WSAEHOSTUNREACH
-# define EPROCLIM WSAEPROCLIM
-# define EUSERS WSAEUSERS
-# define EDQUOT WSAEDQUOT
-# define ESTALE WSAESTALE
-# define EREMOTE WSAEREMOTE
- // Grrr! ENAMETOOLONG and ENOTEMPTY are already defined by the horrible
- // 'standard' library.
- // #define ENAMETOOLONG WSAENAMETOOLONG
-# define EADDRINUSE WSAEADDRINUSE
+
+# if !defined (ETIME)
+# define ETIME ERROR_SEM_TIMEOUT
+# endif /* !ETIME */
+# if !defined (EWOULDBLOCK)
+# define EWOULDBLOCK WSAEWOULDBLOCK
+# endif /* !EWOULDBLOCK */
+# if !defined (EINPROGRESS)
+# define EINPROGRESS WSAEINPROGRESS
+# endif /* !EINPROGRESS */
+# if !defined (EALREADY)
+# define EALREADY WSAEALREADY
+# endif /* !EALREADY */
+# if !defined (ENOTSOCK)
+# define ENOTSOCK WSAENOTSOCK
+# endif /* !ENOTSOCK */
+# if !defined (EDESTADDRREQ)
+# define EDESTADDRREQ WSAEDESTADDRREQ
+# endif /* !EDESTADDRREQ */
+# if !defined (EMSGSIZE)
+# define EMSGSIZE WSAEMSGSIZE
+# endif /* !EMSGSIZE */
+# if !defined (EPROTOTYPE)
+# define EPROTOTYPE WSAEPROTOTYPE
+# endif /* !EPROTOTYPE */
+# if !defined (ENOPROTOOPT)
+# define ENOPROTOOPT WSAENOPROTOOPT
+# endif /* !ENOPROTOOPT */
+# if !defined (EPROTONOSUPPORT)
+# define EPROTONOSUPPORT WSAEPROTONOSUPPORT
+# endif /* !EPROTONOSUPPORT */
+# if !defined (ESOCKTNOSUPPORT)
+# define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
+# endif /* !ESOCKTNOSUPPORT */
+# if !defined (EOPNOTSUPP)
+# define EOPNOTSUPP WSAEOPNOTSUPP
+# endif /* !EOPNOTSUPP */
+# if !defined (EPFNOSUPPORT)
+# define EPFNOSUPPORT WSAEPFNOSUPPORT
+# endif /* !EPFNOSUPPORT */
+# if !defined (EAFNOSUPPORT)
+# define EAFNOSUPPORT WSAEAFNOSUPPORT
+# endif /* !EAFNOSUPPORT */
+# if !defined (EADDRINUSE)
+# define EADDRINUSE WSAEADDRINUSE
+# endif /* !EADDRINUSE */
+# if !defined (EADDRNOTAVAIL)
+# define EADDRNOTAVAIL WSAEADDRNOTAVAIL
+# endif /* !EADDRNOTAVAIL */
+# if !defined (ENETDOWN)
+# define ENETDOWN WSAENETDOWN
+# endif /* !ENETDOWN */
+# if !defined (ENETUNREACH)
+# define ENETUNREACH WSAENETUNREACH
+# endif /* !ENETUNREACH */
+# if !defined (ENETRESET)
+# define ENETRESET WSAENETRESET
+# endif /* !ENETRESET */
+# if !defined (ECONNABORTED)
+# define ECONNABORTED WSAECONNABORTED
+# endif /* !ECONNABORTED */
+# if !defined (ECONNRESET)
+# define ECONNRESET WSAECONNRESET
+# endif /* !ECONNRESET */
+# if !defined (ENOBUFS)
+# define ENOBUFS WSAENOBUFS
+# endif /* !ENOBUFS */
+# if !defined (EISCONN)
+# define EISCONN WSAEISCONN
+# endif /* !EISCONN */
+# if !defined (ENOTCONN)
+# define ENOTCONN WSAENOTCONN
+# endif /* !ENOTCONN */
+# if !defined (ESHUTDOWN)
+# define ESHUTDOWN WSAESHUTDOWN
+# endif /* !ESHUTDOWN */
+# if !defined (ETOOMANYREFS)
+# define ETOOMANYREFS WSAETOOMANYREFS
+# endif /* !ETOOMANYREFS */
+# if !defined (ETIMEDOUT)
+# define ETIMEDOUT WSAETIMEDOUT
+# endif /* !ETIMEDOUT */
+# if !defined (ECONNREFUSED)
+# define ECONNREFUSED WSAECONNREFUSED
+# endif /* !ECONNREFUSED */
+# if !defined (ELOOP)
+# define ELOOP WSAELOOP
+# endif /* !ELOOP */
+# if !defined (EHOSTDOWN)
+# define EHOSTDOWN WSAEHOSTDOWN
+# endif /* !EHOSTDOWN */
+# if !defined (EHOSTUNREACH)
+# define EHOSTUNREACH WSAEHOSTUNREACH
+# endif /* !EHOSTUNREACH */
+# if !defined (EPROCLIM)
+# define EPROCLIM WSAEPROCLIM
+# endif /* !EPROCLIM */
+# if !defined (EUSERS)
+# define EUSERS WSAEUSERS
+# endif /* !EUSERS */
+# if !defined (EDQUOT)
+# define EDQUOT WSAEDQUOT
+# endif /* !EDQUOT */
+# if !defined (ESTALE)
+# define ESTALE WSAESTALE
+# endif /* !ESTALE */
+# if !defined (EREMOTE)
+# define EREMOTE WSAEREMOTE
+# endif /* !EREMOTE */
+
+ // Grrr! ENAMETOOLONG and ENOTEMPTY are already defined by the horrible
+ // 'standard' library.
+ // #define ENAMETOOLONG WSAENAMETOOLONG
+# if !defined (EADDRINUSE)
+# define EADDRINUSE WSAEADDRINUSE
+# endif /* EADDRINUSE*/
// CE needs this...
# if !defined (EPERM)
@@ -92,6 +168,120 @@ extern "C"
void herror (const char *str);
#endif /* ACE_HAS_H_ERRNO */
+#if defined (ACE_LACKS_ERRNO_H)
+# if !defined (EPERM)
+# define EPERM 1
+# endif /* EPERM */
+# if !defined (ENOENT)
+# define ENOENT 2
+# endif /* ENOENT */
+# if !defined (ESRCH)
+# define ESRCH 3
+# endif /* ESRCH */
+# if !defined (EINTR)
+# define EINTR 4
+# endif /* EINTR */
+# if !defined (EIO)
+# define EIO 5
+# endif /* EIO */
+# if !defined (ENXIO)
+# define ENXIO 6
+# endif /* ENXIO */
+# if !defined (E2BIG)
+# define E2BIG 7
+# endif /* E2BIG */
+# if !defined (ENOEXEC)
+# define ENOEXEC 8
+# endif /* ENOEXEC */
+# if !defined (EBADF)
+# define EBADF 9
+# endif /* EBADF */
+# if !defined (ECHILD)
+# define ECHILD 10
+# endif /* ECHILD */
+# if !defined (EAGAIN)
+# define EAGAIN 11
+# endif /* EAGAIN */
+# if !defined (ENOMEM)
+# define ENOMEM 12
+# endif /* ENOMEM */
+# if !defined (EACCES)
+# define EACCES 13
+# endif /* EACCES */
+# if !defined (EFAULT)
+# define EFAULT 14
+# endif /* EFAULT */
+# if !defined (EBUSY)
+# define EBUSY 16
+# endif /* EBUSY */
+# if !defined (EEXIST)
+# define EEXIST 17
+# endif /* EEXIST */
+# if !defined (EXDEV)
+# define EXDEV 18
+# endif /* EXDEV */
+# if !defined (ENODEV)
+# define ENODEV 19
+# endif /* ENODEV */
+# if !defined (ENOTDIR)
+# define ENOTDIR 20
+# endif /* ENOTDIR */
+# if !defined (EISDIR)
+# define EISDIR 21
+# endif /* EISDIR */
+# if !defined (EINVAL)
+# define EINVAL 22
+# endif /* EINVAL */
+# if !defined (ENFILE)
+# define ENFILE 23
+# endif /* ENFILE */
+# if !defined (EMFILE)
+# define EMFILE 24
+# endif /* EMFILE */
+# if !defined (ENOTTY)
+# define ENOTTY 25
+# endif /* ENOTTY */
+# if !defined (EFBIG)
+# define EFBIG 27
+# endif /* EFBIG */
+# if !defined (ENOSPC)
+# define ENOSPC 28
+# endif /* ENOSPC */
+# if !defined (ESPIPE)
+# define ESPIPE 29
+# endif /* ESPIPE */
+# if !defined (EROFS)
+# define EROFS 30
+# endif /* EROFS */
+# if !defined (EMLINK)
+# define EMLINK 31
+# endif /* EMLINK */
+# if !defined (EPIPE)
+# define EPIPE 32
+# endif /* EPIPE */
+# if !defined (EDOM)
+# define EDOM 33
+# endif /* EDOM */
+# if !defined (ERANGE)
+# define ERANGE 34
+# endif /* ERANGE */
+# if !defined (EDEADLK)
+# define EDEADLK 36
+# endif /* EDEADLK */
+# if !defined (ENAMETOOLONG)
+# define ENAMETOOLONG 38
+# endif /* ENAMETOOLONG */
+# if !defined (ENOLCK)
+# define ENOLCK 39
+# endif /* ENOLCK */
+# if !defined (ENOSYS)
+# define ENOSYS 40
+# endif /* ENOSYS */
+# if !defined (ENOTEMPTY)
+# define ENOTEMPTY 41
+# endif /* ENOTEMPTY */
+#endif /* ACE_LACKS_ERRNO_H */
+
#if defined (ACE_LACKS_T_ERRNO)
extern int t_errno;
#endif /* ACE_LACKS_T_ERRNO */
diff --git a/ACE/ace/os_include/os_sched.h b/ACE/ace/os_include/os_sched.h
index e430a6f0fa1..c28f8cf947d 100644
--- a/ACE/ace/os_include/os_sched.h
+++ b/ACE/ace/os_include/os_sched.h
@@ -37,11 +37,15 @@ extern "C"
#endif /* __cplusplus */
#if !defined (__cpu_set_t_defined) || !defined (ACE_HAS_CPU_SET_T)
+#if defined (ACE_HAS_CPUSET_T)
+ typedef cpuset_t cpu_set_t;
+#else
# define ACE_CPU_SETSIZE 1024
typedef struct
{
ACE_UINT32 bit_array_[ACE_CPU_SETSIZE / (8 * sizeof (ACE_UINT32))];
} cpu_set_t;
+#endif
#endif /* !ACE_HAS_CPU_SET_T || !__cpu_set_t_defined */
#ifdef __cplusplus
diff --git a/ACE/ace/os_include/os_unistd.h b/ACE/ace/os_include/os_unistd.h
index 29c9a39e405..07ae8cec7e8 100644
--- a/ACE/ace/os_include/os_unistd.h
+++ b/ACE/ace/os_include/os_unistd.h
@@ -63,7 +63,7 @@ extern "C"
// The following are #defines and #includes that are specific to
// WIN32.
# if defined (ACE_HAS_WINCE)
-# define ACE_STDIN _fileno (stdin)
+# define ACE_STDIN _fileno (stdin)
# define ACE_STDOUT _fileno (stdout)
# define ACE_STDERR _fileno (stderr)
# else
diff --git a/ACE/ace/os_include/sys/os_time.h b/ACE/ace/os_include/sys/os_time.h
index d8d061b5d62..491dc209b69 100644
--- a/ACE/ace/os_include/sys/os_time.h
+++ b/ACE/ace/os_include/sys/os_time.h
@@ -41,11 +41,7 @@ extern "C"
#endif /* __cplusplus */
#if defined (ACE_HAS_SVR4_GETTIMEOFDAY)
-# if !defined (SCO)
int gettimeofday (struct timeval *tp, void * = 0);
-# else
- int gettimeofday (struct timeval *tp);
-# endif /* !SCO */
#elif defined (ACE_HAS_OSF1_GETTIMEOFDAY)
int gettimeofday (struct timeval *tp, struct timezone * = 0);
#elif defined (ACE_HAS_VOIDPTR_GETTIMEOFDAY)
diff --git a/ACE/apps/JAWS/server/HTTP_Handler.cpp b/ACE/apps/JAWS/server/HTTP_Handler.cpp
index b87fda02b5c..5bb9adfdc2e 100644
--- a/ACE/apps/JAWS/server/HTTP_Handler.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Handler.cpp
@@ -7,7 +7,7 @@
#include "HTTP_Handler.h"
#include "HTTP_Helpers.h"
-#include "IO.h"
+#include "JAWS_IO.h"
#include "ace/OS_NS_sys_socket.h"
#include "ace/OS_NS_stdio.h"
diff --git a/ACE/apps/JAWS/server/HTTP_Handler.h b/ACE/apps/JAWS/server/HTTP_Handler.h
index c4c44799535..65685909428 100644
--- a/ACE/apps/JAWS/server/HTTP_Handler.h
+++ b/ACE/apps/JAWS/server/HTTP_Handler.h
@@ -26,7 +26,7 @@ class HTTP_Handler_Factory;
#include "HTTP_Request.h"
#include "HTTP_Response.h"
-#include "IO.h"
+#include "JAWS_IO.h"
/**
* @class HTTP_Handler
diff --git a/ACE/apps/JAWS/server/HTTP_Response.cpp b/ACE/apps/JAWS/server/HTTP_Response.cpp
index 2f67a49c873..0ae902fbd7f 100644
--- a/ACE/apps/JAWS/server/HTTP_Response.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Response.cpp
@@ -11,7 +11,7 @@
#include "HTTP_Request.h"
#include "HTTP_Helpers.h"
#include "HTTP_Config.h"
-#include "IO.h"
+#include "JAWS_IO.h"
ACE_RCSID(server, HTTP_Response, "$Id$")
diff --git a/ACE/apps/JAWS/server/HTTP_Server.cpp b/ACE/apps/JAWS/server/HTTP_Server.cpp
index 77d08f05cc0..3ef96eda033 100644
--- a/ACE/apps/JAWS/server/HTTP_Server.cpp
+++ b/ACE/apps/JAWS/server/HTTP_Server.cpp
@@ -12,7 +12,7 @@
#include "ace/Signal.h"
#include "ace/Auto_Ptr.h"
-#include "IO.h"
+#include "JAWS_IO.h"
#include "HTTP_Server.h"
ACE_RCSID(server, HTTP_Server, "$Id$")
diff --git a/ACE/apps/JAWS/server/JAWS_Concurrency.h b/ACE/apps/JAWS/server/JAWS_Concurrency.h
index 7096d1dbefa..0020d24fc84 100644
--- a/ACE/apps/JAWS/server/JAWS_Concurrency.h
+++ b/ACE/apps/JAWS/server/JAWS_Concurrency.h
@@ -11,7 +11,7 @@
#endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Task.h"
-#include "IO.h"
+#include "JAWS_IO.h"
class JAWS_Concurrency_Base : public ACE_Task<ACE_SYNCH>
// = TITLE
diff --git a/ACE/apps/JAWS/server/IO.cpp b/ACE/apps/JAWS/server/JAWS_IO.cpp
index 394a6a88f2a..5ca0dfeb245 100644
--- a/ACE/apps/JAWS/server/IO.cpp
+++ b/ACE/apps/JAWS/server/JAWS_IO.cpp
@@ -7,7 +7,7 @@
#include "ace/Min_Max.h"
#include "ace/SOCK_Stream.h"
#include "ace/Filecache.h"
-#include "IO.h"
+#include "JAWS_IO.h"
#include "HTTP_Helpers.h"
#include "ace/OS_NS_fcntl.h"
diff --git a/ACE/apps/JAWS/server/IO.h b/ACE/apps/JAWS/server/JAWS_IO.h
index 0fd3035558e..c7d512946f5 100644
--- a/ACE/apps/JAWS/server/IO.h
+++ b/ACE/apps/JAWS/server/JAWS_IO.h
@@ -2,7 +2,7 @@
//=============================================================================
/**
- * @file IO.h
+ * @file JAWS_IO.h
*
* $Id$
*
diff --git a/ACE/apps/JAWS/server/Makefile.am b/ACE/apps/JAWS/server/Makefile.am
index 206dce1d281..70fa5f67798 100644
--- a/ACE/apps/JAWS/server/Makefile.am
+++ b/ACE/apps/JAWS/server/Makefile.am
@@ -32,7 +32,7 @@ libJAWS_la_SOURCES = \
HTTP_Request.cpp \
HTTP_Response.cpp \
HTTP_Server.cpp \
- IO.cpp \
+ JAWS_IO.cpp \
JAWS_Concurrency.cpp \
JAWS_Pipeline.cpp \
Parse_Headers.cpp
@@ -44,7 +44,7 @@ noinst_HEADERS = \
HTTP_Request.h \
HTTP_Response.h \
HTTP_Server.h \
- IO.h \
+ JAWS_IO.h \
JAWS_Concurrency.h \
JAWS_Pipeline.h \
Parse_Headers.h
diff --git a/ACE/apps/JAWS/server/server.mpc b/ACE/apps/JAWS/server/server.mpc
index 19e880d3530..6d86b6a02c2 100644
--- a/ACE/apps/JAWS/server/server.mpc
+++ b/ACE/apps/JAWS/server/server.mpc
@@ -18,7 +18,7 @@ project(JAWS) : ace_output, acelib {
HTTP_Request.cpp
HTTP_Response.cpp
Parse_Headers.cpp
- IO.cpp
+ JAWS_IO.cpp
}
}
diff --git a/ACE/apps/JAWS2/JAWS/Concurrency.h b/ACE/apps/JAWS2/JAWS/Concurrency.h
index c88d75c4dbe..6f65c5017bd 100644
--- a/ACE/apps/JAWS2/JAWS/Concurrency.h
+++ b/ACE/apps/JAWS2/JAWS/Concurrency.h
@@ -14,7 +14,7 @@
#include "ace/Synch_Traits.h"
#include "JAWS/Export.h"
-#include "JAWS/IO.h"
+#include "JAWS/Jaws_IO.h"
class JAWS_Data_Block;
class JAWS_Dispatch_Policy;
diff --git a/ACE/apps/JAWS2/JAWS/IO_Acceptor.h b/ACE/apps/JAWS2/JAWS/IO_Acceptor.h
index 3f97f876d0b..e14a38a2714 100644
--- a/ACE/apps/JAWS2/JAWS/IO_Acceptor.h
+++ b/ACE/apps/JAWS2/JAWS/IO_Acceptor.h
@@ -17,7 +17,7 @@
#include "ace/Singleton.h"
#include "JAWS/Export.h"
-#include "JAWS/IO.h"
+#include "JAWS/Jaws_IO.h"
#include "JAWS/IO_Handler.h"
// Forward declaration.
diff --git a/ACE/apps/JAWS2/JAWS/IO_Handler.cpp b/ACE/apps/JAWS2/JAWS/IO_Handler.cpp
index 82f9753a41d..9d052348b01 100644
--- a/ACE/apps/JAWS2/JAWS/IO_Handler.cpp
+++ b/ACE/apps/JAWS2/JAWS/IO_Handler.cpp
@@ -5,7 +5,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/OS_NS_sys_socket.h"
-#include "JAWS/IO.h"
+#include "JAWS/Jaws_IO.h"
#include "JAWS/IO_Handler.h"
#include "JAWS/IO_Acceptor.h"
#include "JAWS/Data_Block.h"
diff --git a/ACE/apps/JAWS2/JAWS/IO.cpp b/ACE/apps/JAWS2/JAWS/Jaws_IO.cpp
index 41603c6b626..4f0525a6f6d 100644
--- a/ACE/apps/JAWS2/JAWS/IO.cpp
+++ b/ACE/apps/JAWS2/JAWS/Jaws_IO.cpp
@@ -11,7 +11,7 @@
#include "JAWS/Data_Block.h"
#include "JAWS/Policy.h"
-#include "JAWS/IO.h"
+#include "JAWS/Jaws_IO.h"
#include "JAWS/IO_Handler.h"
#include "JAWS/IO_Acceptor.h"
#include "JAWS/Filecache.h"
diff --git a/ACE/apps/JAWS2/JAWS/IO.h b/ACE/apps/JAWS2/JAWS/Jaws_IO.h
index e336487bd86..188a5b64442 100644
--- a/ACE/apps/JAWS2/JAWS/IO.h
+++ b/ACE/apps/JAWS2/JAWS/Jaws_IO.h
@@ -38,8 +38,6 @@ ACE_END_VERSIONED_NAMESPACE_DECL
class JAWS_IO_Handler;
class JAWS_IO_Acceptor;
-
-
class JAWS_Export JAWS_IO
// = TITLE
//
diff --git a/ACE/apps/JAWS2/JAWS/Makefile.am b/ACE/apps/JAWS2/JAWS/Makefile.am
index dd00e5870ea..99bd5bce9d0 100644
--- a/ACE/apps/JAWS2/JAWS/Makefile.am
+++ b/ACE/apps/JAWS2/JAWS/Makefile.am
@@ -34,7 +34,7 @@ libJAWS2_la_SOURCES = \
FILE.cpp \
Filecache.cpp \
Headers.cpp \
- IO.cpp \
+ Jaws_IO.cpp \
IO_Acceptor.cpp \
IO_Handler.cpp \
Parse_Headers.cpp \
@@ -65,7 +65,7 @@ noinst_HEADERS = \
Hash_Bucket_T.cpp \
Hash_Bucket_T.h \
Headers.h \
- IO.h \
+ Jaws_IO.h \
IO_Acceptor.h \
IO_Handler.h \
Parse_Headers.h \
diff --git a/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp b/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp
index 0368acfc6c4..8279d182de7 100644
--- a/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp
+++ b/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.cpp
@@ -1,6 +1,6 @@
// $Id$
-#include "JAWS/IO.h"
+#include "JAWS/Jaws_IO.h"
#include "JAWS/Pipeline_Tasks.h"
#include "JAWS/Pipeline_Handler_T.h"
#include "JAWS/Data_Block.h"
diff --git a/ACE/apps/JAWS2/JAWS/Server.cpp b/ACE/apps/JAWS2/JAWS/Server.cpp
index aeb3e9cbd7d..24200d9d211 100644
--- a/ACE/apps/JAWS2/JAWS/Server.cpp
+++ b/ACE/apps/JAWS2/JAWS/Server.cpp
@@ -11,7 +11,7 @@
#include "JAWS/Server.h"
#include "JAWS/Data_Block.h"
#include "JAWS/Concurrency.h"
-#include "JAWS/IO.h"
+#include "JAWS/Jaws_IO.h"
#include "JAWS/IO_Handler.h"
#include "JAWS/IO_Acceptor.h"
#include "JAWS/Pipeline_Tasks.h"
diff --git a/ACE/apps/JAWS2/JAWS/jaws2.mpc b/ACE/apps/JAWS2/JAWS/jaws2.mpc
index f1fa986cc8c..c371f14c28c 100644
--- a/ACE/apps/JAWS2/JAWS/jaws2.mpc
+++ b/ACE/apps/JAWS2/JAWS/jaws2.mpc
@@ -21,7 +21,7 @@ project(JAWS2) : ace_output, acelib {
FILE.cpp
Filecache.cpp
Headers.cpp
- IO.cpp
+ Jaws_IO.cpp
IO_Acceptor.cpp
IO_Handler.cpp
Parse_Headers.cpp
diff --git a/ACE/apps/JAWS3/jaws3/Asynch_IO.cpp b/ACE/apps/JAWS3/jaws3/Asynch_IO.cpp
index 54b4f1c012d..298f5b02274 100644
--- a/ACE/apps/JAWS3/jaws3/Asynch_IO.cpp
+++ b/ACE/apps/JAWS3/jaws3/Asynch_IO.cpp
@@ -6,7 +6,7 @@
#include "ace/config-lite.h"
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Asynch_IO.h"
#include "jaws3/Event_Completer.h"
#include "jaws3/Event_Result.h"
diff --git a/ACE/apps/JAWS3/jaws3/Asynch_IO.h b/ACE/apps/JAWS3/jaws3/Asynch_IO.h
index 68fd257cb24..f2b7cb81cb7 100644
--- a/ACE/apps/JAWS3/jaws3/Asynch_IO.h
+++ b/ACE/apps/JAWS3/jaws3/Asynch_IO.h
@@ -10,7 +10,7 @@
#include "ace/Time_Value.h"
#include "jaws3/Export.h"
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Event_Result.h"
class JAWS_Asynch_IO;
diff --git a/ACE/apps/JAWS3/jaws3/Asynch_IO_Helpers.h b/ACE/apps/JAWS3/jaws3/Asynch_IO_Helpers.h
index e82ab8189e5..21c65e73339 100644
--- a/ACE/apps/JAWS3/jaws3/Asynch_IO_Helpers.h
+++ b/ACE/apps/JAWS3/jaws3/Asynch_IO_Helpers.h
@@ -7,7 +7,7 @@
#include "ace/Asynch_IO.h"
#include "ace/Singleton.h"
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Event_Result.h"
#include "jaws3/Event_Completer.h"
diff --git a/ACE/apps/JAWS3/jaws3/IO.cpp b/ACE/apps/JAWS3/jaws3/Jaws_IO.cpp
index 98e2e6e32f5..f4187cbb806 100644
--- a/ACE/apps/JAWS3/jaws3/IO.cpp
+++ b/ACE/apps/JAWS3/jaws3/Jaws_IO.cpp
@@ -6,7 +6,7 @@
#include "ace/OS_NS_strings.h"
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Asynch_IO.h"
#include "jaws3/Synch_IO.h"
#include "jaws3/Reactive_IO.h"
diff --git a/ACE/apps/JAWS3/jaws3/IO.h b/ACE/apps/JAWS3/jaws3/Jaws_IO.h
index a910a4fb029..a910a4fb029 100644
--- a/ACE/apps/JAWS3/jaws3/IO.h
+++ b/ACE/apps/JAWS3/jaws3/Jaws_IO.h
diff --git a/ACE/apps/JAWS3/jaws3/Makefile.am b/ACE/apps/JAWS3/jaws3/Makefile.am
index d140de85b12..96751258f06 100644
--- a/ACE/apps/JAWS3/jaws3/Makefile.am
+++ b/ACE/apps/JAWS3/jaws3/Makefile.am
@@ -33,7 +33,7 @@ libJAWS3_la_SOURCES = \
Event_Completer.cpp \
Event_Dispatcher.cpp \
FILE.cpp \
- IO.cpp \
+ Jaws_IO.cpp \
Options.cpp \
Protocol_Handler.cpp \
Reactive_IO.cpp \
@@ -63,7 +63,7 @@ noinst_HEADERS = \
Event_Result.h \
Export.h \
FILE.h \
- IO.h \
+ Jaws_IO.h \
Options.h \
Protocol_Handler.h \
Reactive_IO.h \
diff --git a/ACE/apps/JAWS3/jaws3/Reactive_IO.cpp b/ACE/apps/JAWS3/jaws3/Reactive_IO.cpp
index ead383efa24..d2e16ff8b11 100644
--- a/ACE/apps/JAWS3/jaws3/Reactive_IO.cpp
+++ b/ACE/apps/JAWS3/jaws3/Reactive_IO.cpp
@@ -8,7 +8,7 @@
#define JAWS_BUILD_DLL
#endif
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Reactive_IO.h"
#include "jaws3/Reactive_IO_Helpers.h"
#include "jaws3/Event_Completer.h"
diff --git a/ACE/apps/JAWS3/jaws3/Reactive_IO.h b/ACE/apps/JAWS3/jaws3/Reactive_IO.h
index e899357e5fc..1efc0f86cc5 100644
--- a/ACE/apps/JAWS3/jaws3/Reactive_IO.h
+++ b/ACE/apps/JAWS3/jaws3/Reactive_IO.h
@@ -10,7 +10,7 @@
#include "ace/Time_Value.h"
#include "jaws3/Export.h"
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Event_Result.h"
class JAWS_Reactive_IO;
diff --git a/ACE/apps/JAWS3/jaws3/Reactive_IO_Helpers.h b/ACE/apps/JAWS3/jaws3/Reactive_IO_Helpers.h
index 9f94fd4caaf..d14f6c33998 100644
--- a/ACE/apps/JAWS3/jaws3/Reactive_IO_Helpers.h
+++ b/ACE/apps/JAWS3/jaws3/Reactive_IO_Helpers.h
@@ -10,7 +10,7 @@
#include "ace/Time_Value.h"
#include "jaws3/Export.h"
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Event_Result.h"
#include "jaws3/Event_Completer.h"
diff --git a/ACE/apps/JAWS3/jaws3/Synch_IO.cpp b/ACE/apps/JAWS3/jaws3/Synch_IO.cpp
index 69b0d92fd95..1f66363d8ea 100644
--- a/ACE/apps/JAWS3/jaws3/Synch_IO.cpp
+++ b/ACE/apps/JAWS3/jaws3/Synch_IO.cpp
@@ -6,7 +6,7 @@
#define JAWS_BUILD_DLL
#endif
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Synch_IO.h"
#include "jaws3/Event_Completer.h"
diff --git a/ACE/apps/JAWS3/jaws3/Synch_IO.h b/ACE/apps/JAWS3/jaws3/Synch_IO.h
index 5ecf5267088..79c8a936a2e 100644
--- a/ACE/apps/JAWS3/jaws3/Synch_IO.h
+++ b/ACE/apps/JAWS3/jaws3/Synch_IO.h
@@ -6,7 +6,7 @@
#include "ace/Singleton.h"
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
class JAWS_Export JAWS_Synch_IO : public JAWS_IO_Impl
{
diff --git a/ACE/apps/JAWS3/jaws3/Templates.cpp b/ACE/apps/JAWS3/jaws3/Templates.cpp
index c28a9019318..2f702936747 100644
--- a/ACE/apps/JAWS3/jaws3/Templates.cpp
+++ b/ACE/apps/JAWS3/jaws3/Templates.cpp
@@ -13,7 +13,7 @@
#include "jaws3/Asynch_IO.h"
#include "jaws3/Concurrency.h"
#include "jaws3/Export.h"
-#include "jaws3/IO.h"
+#include "jaws3/Jaws_IO.h"
#include "jaws3/Event_Dispatcher.h"
#include "jaws3/Event_Completer.h"
#include "jaws3/Options.h"
diff --git a/ACE/apps/JAWS3/jaws3/jaws3.mpc b/ACE/apps/JAWS3/jaws3/jaws3.mpc
index 850c50b09c3..e8ba773a578 100644
--- a/ACE/apps/JAWS3/jaws3/jaws3.mpc
+++ b/ACE/apps/JAWS3/jaws3/jaws3.mpc
@@ -21,7 +21,7 @@ project(JAWS3) : ace_output, acelib {
Event_Completer.cpp
Event_Dispatcher.cpp
FILE.cpp
- IO.cpp
+ Jaws_IO.cpp
Options.cpp
Protocol_Handler.cpp
Reactive_IO.cpp
@@ -55,7 +55,7 @@ project(JAWS3) : ace_output, acelib {
Event_Result.h
Export.h
FILE.h
- IO.h
+ Jaws_IO.h
Options.h
Protocol_Handler.h
Reactive_IO.h
diff --git a/ACE/apps/drwho/CM_Server.cpp b/ACE/apps/drwho/CM_Server.cpp
index 2b2da3abe51..5cca27910fc 100644
--- a/ACE/apps/drwho/CM_Server.cpp
+++ b/ACE/apps/drwho/CM_Server.cpp
@@ -21,7 +21,7 @@ CM_Server::open (short port_number)
if (this->sokfd_ < 0)
return -1;
- ACE_OS::memset (&this->sin_, sizeof this->sin_, 0);
+ ACE_OS::memset (&this->sin_, 0, sizeof this->sin_);
this->sin_.sin_family = AF_INET;
this->sin_.sin_port = htons (port_number);
this->sin_.sin_addr.s_addr = INADDR_ANY;
diff --git a/ACE/apps/gperf/src/Key_List.cpp b/ACE/apps/gperf/src/Key_List.cpp
index 34c0f4f49f7..407265728f3 100644
--- a/ACE/apps/gperf/src/Key_List.cpp
+++ b/ACE/apps/gperf/src/Key_List.cpp
@@ -234,10 +234,10 @@ Key_List::output_types (void)
ACE_OS::strncpy (struct_tag,
array_type_,
struct_tag_length);
- if (struct_tag[struct_tag_length] != ' ')
+ if (struct_tag[struct_tag_length - 1] != ' ')
{
struct_tag[struct_tag_length] = ' ';
- struct_tag_length++;
+ ++struct_tag_length;
}
struct_tag[struct_tag_length] = '\0';
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_fl.mpb b/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
index 2f42e405db6..99dffd223db 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_fl.mpb
@@ -12,7 +12,7 @@ project : ace_x11, ace_gl {
LDFLAGS += $(PLATFORM_FL_LDFLAGS) $(PLATFORM_GL_LDFLAGS)
LDFLAGS += $(PLATFORM_GL_LDFLAGS)
}
- specific(vc10,vc9,vc8,vc71) {
+ specific(prop:microsoft) {
libs += fltkdll
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_gl.mpb b/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
index 4b18245232a..e71387335dc 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_gl.mpb
@@ -10,7 +10,7 @@ project : ace_x11 {
LIBS += $(PLATFORM_GL_LIBS) $(PLATFORM_X11_LIBS)
LDFLAGS += $(PLATFORM_GL_LDFLAGS) $(PLATFORM_GL_LDFLAGS)
}
- specific(vc71,vc8,vc9,vc10) {
+ specific(prop:microsoft) {
lit_libs += OpenGL32
}
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_mc.mpb b/ACE/bin/MakeProjectCreator/config/ace_mc.mpb
index 5d7ea882f48..9b43cf23b46 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_mc.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_mc.mpb
@@ -6,7 +6,7 @@ project : ace_etcl_parser {
libs += ACE_Monitor_Control
avoids += wince
- specific (vc6, vc7, vc71, vc8, vc9, vc10, nmake) {
+ specific (prop:microsoft) {
lit_libs += pdh
}
verbatim (gnuace, local) {
diff --git a/ACE/bin/MakeProjectCreator/config/ace_qt.mpb b/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
index d5853390400..b17c35c4d5d 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_qt.mpb
@@ -21,7 +21,7 @@ project: qt {
pure_libs += $(ACE_QT_LIBS)
}
- specific(vc71, vc8, vc9, vc10, nmake) {
+ specific(prop:microsoft) {
lit_libs -= qt-mt$(QT_VERSION)
pure_libs += $(PLATFORM_QT_LIBS)
}
diff --git a/ACE/bin/MakeProjectCreator/config/ace_x11.mpb b/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
index ac67115901d..12de6ed62bc 100644
--- a/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ace_x11.mpb
@@ -2,7 +2,7 @@
// $Id$
project {
- specific(vc71,vc8,vc9,vc10) {
+ specific(prop:microsoft) {
} else {
requires += x11
}
diff --git a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
index 228c6e6c40a..be0a49b11fc 100644
--- a/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
+++ b/ACE/bin/MakeProjectCreator/config/acedefaults.mpb
@@ -19,7 +19,7 @@ project: ipv6, vc_warnings, build_files, test_files, svc_conf_files {
libpaths -= $(ACE_ROOT)/lib
}
- specific(vc7,vc71,vc8,vc9,vc10,nmake) {
+ specific(prop:microsoft) {
macro_for_lib_modifier=1
}
}
diff --git a/ACE/bin/MakeProjectCreator/config/crosscompile.mpb b/ACE/bin/MakeProjectCreator/config/crosscompile.mpb
index 2aba9af82ad..2fda2aa83ff 100644
--- a/ACE/bin/MakeProjectCreator/config/crosscompile.mpb
+++ b/ACE/bin/MakeProjectCreator/config/crosscompile.mpb
@@ -2,7 +2,7 @@
// $Id$
project {
- specific(vc7, vc71, vc8, vc9, vc10) {
+ specific(prop:microsoft) {
nocross = 1
}
verbatim(gnuace, circuit) {
diff --git a/ACE/bin/MakeProjectCreator/config/ipv6.mpb b/ACE/bin/MakeProjectCreator/config/ipv6.mpb
index 8184e876675..92473ad7113 100644
--- a/ACE/bin/MakeProjectCreator/config/ipv6.mpb
+++ b/ACE/bin/MakeProjectCreator/config/ipv6.mpb
@@ -2,13 +2,9 @@
// $Id$
feature(ipv6) {
- specific(vc6, vc7, vc71, vc8, vc9, vc10, nmake, bmake, bds4) {
+ specific(prop:windows) {
lit_libs += iphlpapi
}
- specific(em3) {
- lit_libs += iphlpapi ccrtrtti
- }
-
macros += ACE_HAS_IPV6
}
diff --git a/ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt b/ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt
index a3bb4b1bbd1..eeab3db82c0 100644
--- a/ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt
+++ b/ACE/bin/MakeProjectCreator/config/vcfullmacros.mpt
@@ -1,7 +1,7 @@
// -*- MPC -*-
// $Id$
-// ACE specific macros for nmake, vc6, vc7 and em3
+// ACE specific macros for nmake, vc6, and vc7
Static MFC Release {
defines += ACE_HAS_MFC=1 ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER
diff --git a/ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt b/ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt
index 1105c25cd39..0a521b3ff1d 100644
--- a/ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt
+++ b/ACE/bin/MakeProjectCreator/config/vcpartialmacros.mpt
@@ -1,7 +1,7 @@
// -*- MPC -*-
// $Id$
-// ACE specific macros for nmake, vc6, vc7 and em3
+// ACE specific macros for nmake, vc6, and vc7
MFC Release {
defines += ACE_HAS_MFC=1 ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER
diff --git a/ACE/bin/MakeProjectCreator/templates/gnu.mpd b/ACE/bin/MakeProjectCreator/templates/gnu.mpd
index 656145b8eba..4390596c376 100644
--- a/ACE/bin/MakeProjectCreator/templates/gnu.mpd
+++ b/ACE/bin/MakeProjectCreator/templates/gnu.mpd
@@ -225,7 +225,7 @@ else
ifeq ($(findstring k, $(MAKEFLAGS)),k)
LIBCHECK = 1
else
- LIBCHECK ?= $(filter-out $(foreach lib,<%foreach(libs)%><%libname_prefix%><%lib%><%fornotlast(" ")%><%endfor%>,$(findstring $(lib),$(foreach libpath,<%foreach(libpaths)%><%if(targetoutdir)%><%libpath%>/<%targetoutdir%> <%endif%><%libpath%> <%endfor%>/usr/lib /usr/lib64 $(INSLIB),$(wildcard $(libpath)/lib$(lib).* $(libpath)/$(lib).lib)))),<%foreach(libs)%><%libname_prefix%><%lib%><%fornotlast(" ")%><%endfor%>)
+ LIBCHECK ?= $(filter-out $(foreach lib,<%foreach(libs)%><%libname_prefix%><%lib%><%fornotlast(" ")%><%endfor%>,$(findstring $(lib),$(foreach libpath,<%foreach(libpaths)%><%if(targetoutdir)%><%libpath%>/<%targetoutdir%> <%endif%><%libpath%> <%endfor%>/usr/lib /usr/lib64 $(INSLIB),$(wildcard $(libpath)/$(LIB_PREFIX)$(lib).* $(libpath)/$(lib).lib)))),<%foreach(libs)%><%libname_prefix%><%lib%><%fornotlast(" ")%><%endfor%>)
ifeq ($(LIBCHECK),)
LIBCHECK = 1
endif
diff --git a/ACE/bin/PerlACE/ProcessVX.pm b/ACE/bin/PerlACE/ProcessVX.pm
index 389963991ea..175da90bae6 100644
--- a/ACE/bin/PerlACE/ProcessVX.pm
+++ b/ACE/bin/PerlACE/ProcessVX.pm
@@ -363,6 +363,7 @@ sub reboot {
# Helper for spawning with list of kernel modules in a .vxtest file
sub handle_vxtest_file
{
+ my $self = shift;
my $vxtestfile = shift;
my $vx_ref = shift;
my $unld_ref = shift;
@@ -425,8 +426,12 @@ for(my $i = 0; $i <= $#ARGV; ++$i) {
$PerlACE::ProcessVX::WAIT_DELAY_FACTOR = $ENV{"ACE_RUNTEST_DELAY"};
if (defined $ENV{'ACE_TEST_WINCE'}) {
+if ($OSNAME eq "MSWin32") {
require PerlACE::ProcessWinCE;
} else {
+ require PerlACE::ProcessWinCE_Unix;
+}
+} else {
if ($OSNAME eq "MSWin32") {
require PerlACE::ProcessVX_Win32;
}
diff --git a/ACE/bin/PerlACE/ProcessVX_Unix.pm b/ACE/bin/PerlACE/ProcessVX_Unix.pm
index 0f38566ff6b..7a3b083d3f8 100644
--- a/ACE/bin/PerlACE/ProcessVX_Unix.pm
+++ b/ACE/bin/PerlACE/ProcessVX_Unix.pm
@@ -198,7 +198,7 @@ sub Spawn ()
my(@unload_commands);
if (!$PerlACE::Static && !$PerlACE::VxWorks_RTP_Test) {
my $vxtest_file = $program . '.vxtest';
- if (handle_vxtest_file($vxtest_file, \@load_commands, \@unload_commands)) {
+ if (handle_vxtest_file($self, $vxtest_file, \@load_commands, \@unload_commands)) {
@cmds[$cmdnr++] = "cd \"$ENV{'ACE_RUN_VX_TGTSVR_ROOT'}/lib\"";
push @cmds, @load_commands;
$cmdnr += scalar @load_commands;
@@ -275,16 +275,15 @@ sub Spawn ()
if (defined $ENV{'ACE_TEST_VERBOSE'}) {
print "Couldn't open telnet connection; sleeping then retrying\n";
}
+ if ($retries == 0) {
+ die "ERROR: Telnet open to <" . $telnet_host . ":". $telnet_port . "> " . $t->errmsg;
+ }
sleep(5);
+ } else {
+ last;
}
}
- if (!$t->open()) {
- die "ERROR: Telnet open to <" . $telnet_host . ":". $telnet_port . "> " . $t->errmsg;
- }
-
- $t->print("");
-
my $target_login = $ENV{'ACE_RUN_VX_LOGIN'};
my $target_password = $ENV{'ACE_RUN_VX_PASSWORD'};
@@ -298,21 +297,19 @@ sub Spawn ()
$t->print("$target_password");
}
- $t->print("");
-
- my $blk;
- my $buf;
+ my $buf = '';
# wait for the prompt
- my $prompt1 = '-> $';
- while ($blk = $t->get) {
- printf $blk;
+ my $prompt1 = '->[\ ]$';
+ while (1) {
+ my $blk = $t->get;
+ print $blk;
$buf .= $blk;
if ($buf =~ /$prompt1/) {
last;
}
}
if ($buf !~ /$prompt1/) {
- die "ERROR: Didn't got prompt but got <$buf> <$blk>";
+ die "ERROR: Didn't got prompt but got <$buf>";
}
my $i = 0;
my @lines;
@@ -322,10 +319,10 @@ sub Spawn ()
}
if ($t->print (@cmds[$i++])) {
# After each command wait for the prompt
- my $blk;
- my $buf;
- while ($blk = $t->get) {
- printf $blk;
+ my $buf = '';
+ while (1) {
+ my $blk = $t->get;
+ print $blk;
$buf .= $blk;
if ($buf =~ /$prompt/) {
last;
diff --git a/ACE/bin/PerlACE/ProcessVX_Win32.pm b/ACE/bin/PerlACE/ProcessVX_Win32.pm
index 5f65ef8f0e6..1be9a425d13 100644
--- a/ACE/bin/PerlACE/ProcessVX_Win32.pm
+++ b/ACE/bin/PerlACE/ProcessVX_Win32.pm
@@ -192,7 +192,7 @@ sub Spawn ()
my(@unload_commands);
if (!$PerlACE::Static && !$PerlACE::VxWorks_RTP_Test) {
my $vxtest_file = $program . '.vxtest';
- if (handle_vxtest_file($vxtest_file, \@load_commands, \@unload_commands)) {
+ if (handle_vxtest_file($self, $vxtest_file, \@load_commands, \@unload_commands)) {
@cmds[$cmdnr++] = "cd \"$ENV{'ACE_RUN_VX_TGTSVR_ROOT'}/lib\"";
push @cmds, @load_commands;
$cmdnr += scalar @load_commands;
@@ -270,8 +270,6 @@ if (!$t->open()) {
my $target_login = $ENV{'ACE_RUN_VX_LOGIN'};
my $target_password = $ENV{'ACE_RUN_VX_PASSWORD'};
-$t->print("\n");
-
if (defined $target_login) {
$t->waitfor('/VxWorks login: $/');
$t->print("$target_login");
@@ -282,20 +280,19 @@ if (defined $target_password) {
$t->print("$target_password");
}
-$t->print("\n");
# wait for the prompt
-my $blk;
-my $buf;
+my $buf = '';
my $prompt1 = '-> $';
-while ($blk = $t->get) {
- printf $blk;
+while (1) {
+ my $blk = $t->get;
+ print $blk;
$buf .= $blk;
if ($buf =~ /$prompt1/) {
last;
}
}
if ($buf !~ /$prompt1/) {
- die "ERROR: Didn't got prompt but got <$buf> <$blk>";
+ die "ERROR: Didn't got prompt but got <$buf>";
}
my $i = 0;
my @lines;
@@ -304,10 +301,10 @@ while($i < $cmdnr) {
print @cmds[$i]."\n";
}
if ($t->print (@cmds[$i++])) {
- my $blk;
- my $buf;
- while ($blk = $t->get) {
- printf $blk;
+ my $buf = '';
+ while (1) {
+ my $blk = $t->get;
+ print $blk;
$buf .= $blk;
if ($buf =~ /$prompt/) {
last;
diff --git a/ACE/bin/PerlACE/ProcessWinCE.pm b/ACE/bin/PerlACE/ProcessWinCE.pm
index 7556c68bdbb..7f6bed61dd0 100644
--- a/ACE/bin/PerlACE/ProcessWinCE.pm
+++ b/ACE/bin/PerlACE/ProcessWinCE.pm
@@ -154,12 +154,11 @@ sub Spawn ()
my(@load_commands);
my(@unload_commands);
my $vxtest_file = $program . '.vxtest';
- if (handle_vxtest_file($vxtest_file, \@load_commands, \@unload_commands)) {
+ if (handle_vxtest_file($self, $vxtest_file, \@load_commands, \@unload_commands)) {
push @cmds, @load_commands;
$cmdnr += scalar @load_commands;
} else {
print STDERR "ERROR: Cannot find <", $vxtest_file, ">\n";
- return -1;
}
if (defined $self->{ARGUMENTS}) {
@@ -205,8 +204,10 @@ if (!defined $t) {
$t->open();
my $ok = false;
-while ($blk = $t->get) {
- printf $blk;
+my $buf = '';
+while (1) {
+ my $blk = $t->get;
+ print $blk;
$buf .= $blk;
if ($buf =~ /$prompt/) {
$ok = true;
@@ -221,9 +222,9 @@ if ($ok) {
print @cmds[$i]."\n";
}
if ($t->print (@cmds[$i++])) {
- my $blk;
- my $buf;
- while ($blk = $t->get) {
+ my $buf = '';
+ while (1) {
+ my $blk = $t->get;
printf $blk;
$buf .= $blk;
if ($buf =~ /$prompt/) {
@@ -333,23 +334,33 @@ sub Kill ()
sub handle_vxtest_file
{
+ my $self = shift;
my $vxtestfile = shift;
my $vx_ref = shift;
my $unld_ref = shift;
my $fh = new FileHandle;
- if (open ($fh, $vxtestfile)) {
- push @$vx_ref, "copy " . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/lib/MSVCR80D.dll .";
- my $line1 = <$fh>;
- chomp $line1;
- while(<$fh>) {
- $line1 = $_;
+
+ if (defined $self->{TARGET} && $self->{TARGET}->SystemLibs())
+ {
+ my @tokens = split(/;/, $self->{TARGET}->SystemLibs());
+ foreach my $token (@tokens) {
+ push @$vx_ref, "copy " . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/lib/" . $token . " .";
+ }
+ }
+ if (!$PerlACE::Static) {
+ if (open ($fh, $vxtestfile)) {
+ my $line1 = <$fh>;
chomp $line1;
- push @$vx_ref, "copy " . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/lib/$line1" . "d.dll .";
- unshift @$unld_ref, "del $line1" . "d.dll";
+ while(<$fh>) {
+ $line1 = $_;
+ chomp $line1;
+ push @$vx_ref, "copy " . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/lib/$line1" . "d.dll .";
+ unshift @$unld_ref, "del $line1" . "d.dll";
+ }
+ close $fh;
+ } else {
+ return 0;
}
- close $fh;
- } else {
- return 0;
}
return 1;
}
diff --git a/ACE/bin/PerlACE/ProcessWinCE_Unix.pm b/ACE/bin/PerlACE/ProcessWinCE_Unix.pm
new file mode 100644
index 00000000000..fd73c2ef6be
--- /dev/null
+++ b/ACE/bin/PerlACE/ProcessWinCE_Unix.pm
@@ -0,0 +1,440 @@
+#! /usr/bin/perl
+# $Id$
+
+package PerlACE::ProcessVX;
+
+use strict;
+use POSIX "sys_wait_h";
+use File::Basename;
+use File::Spec;
+use Config;
+use FileHandle;
+use Cwd;
+
+eval { require Net::Telnet; };
+
+###############################################################################
+
+### Grab signal names
+
+my @signame;
+
+if (defined $Config{sig_name}) {
+ my $i = 0;
+ foreach my $name (split (' ', $Config{sig_name})) {
+ $signame[$i] = $name;
+ $i++;
+ }
+}
+else {
+ my $i;
+ for ($i = 0; $i < 255; ++$i) {
+ $signame[$i] = $i;
+ }
+}
+
+###############################################################################
+
+# This is what GetExitCode will return if the process is still running.
+my $STILL_ACTIVE = 259;
+
+###############################################################################
+
+### Constructor and Destructor
+
+sub new
+{
+ my $proto = shift;
+ my $class = ref ($proto) || $proto;
+ my $self = {};
+
+ $self->{RUNNING} = 0;
+ $self->{IGNOREEXESUBDIR} = 1;
+ $self->{PROCESS} = undef;
+ $self->{EXECUTABLE} = shift;
+ $self->{ARGUMENTS} = shift;
+ $self->{TARGET} = shift;
+ if (!defined $PerlACE::ProcessVX::WAIT_DELAY_FACTOR) {
+ $PerlACE::ProcessVX::WAIT_DELAY_FACTOR = 2;
+ }
+ if (!defined $PerlACE::ProcessVX::RebootCmd) {
+ $PerlACE::ProcessVX::RebootCmd = "reboot 0x02";
+ }
+ bless ($self, $class);
+ return $self;
+}
+
+sub DESTROY
+{
+ my $self = shift;
+
+ if ($self->{RUNNING} == 1) {
+ print STDERR "ERROR: <", $self->{EXECUTABLE},
+ "> still running upon object destruction\n";
+ $self->Kill ();
+ }
+
+ if (defined $ENV{'ACE_RUN_VX_IBOOT'} && !defined $ENV{'ACE_RUN_VX_NO_SHUTDOWN'}) {
+ # Shutdown the target to save power
+ $self->iboot_cycle_power(1);
+ }
+}
+
+###############################################################################
+
+# Spawn the process and continue.
+
+sub Spawn ()
+{
+ my $self = shift;
+
+ if ($self->{RUNNING} == 1) {
+ print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
+ "> already running\n";
+ return -1;
+ }
+
+ if (!defined $self->{EXECUTABLE}) {
+ print STDERR "ERROR: Cannot Spawn: No executable specified\n";
+ return -1;
+ }
+
+ if ($self->{IGNOREEXESUBDIR} == 0) {
+ if (!-f $self->Executable ()) {
+ print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
+ "> not found\n";
+ return -1;
+ }
+ }
+
+ my $status = 0;
+
+ my $cmdline;
+
+ # Reboot the target if necessery
+ $self->reboot();
+
+ my $program = $self->Executable ();
+ my $cwdrel = dirname ($program);
+ my $prjroot = defined $ENV{"ACE_RUN_VX_PRJ_ROOT"} ? $ENV{"ACE_RUN_VX_PRJ_ROOT"} : $ENV{"ACE_ROOT"};
+ if (length ($cwdrel) > 0) {
+ $cwdrel = File::Spec->abs2rel( cwd(), $prjroot );
+ }
+ else {
+ $cwdrel = File::Spec->abs2rel( $cwdrel, $prjroot );
+ }
+ $program = basename($program, $PerlACE::ProcessVX::ExeExt);
+
+ my @cmds;
+ my $cmdnr = 0;
+ my $arguments = "";
+ my $prompt = '';
+ my $exesubdir = defined $ENV{"ACE_RUN_VX_EXE_SUBDIR"} ? $ENV{"ACE_RUN_VX_EXE_SUBDIR"} : "";
+
+ if (defined $ENV{"ACE_RUN_VX_STARTUP_SCRIPT"}) {
+ if (defined $ENV{"ACE_RUN_VX_STARTUP_SCRIPT_ROOT"}) {
+ @cmds[$cmdnr++] = 'cd "' . $ENV{'ACE_RUN_VX_STARTUP_SCRIPT_ROOT'} . '"';
+ }
+ @cmds[$cmdnr++] = '< ' . $ENV{"ACE_RUN_VX_STARTUP_SCRIPT"};
+ }
+
+ if (defined $ENV{"ACE_RUN_VX_STARTUP_COMMAND"}) {
+ @cmds[$cmdnr++] = $ENV{"ACE_RUN_VX_STARTUP_COMMAND"};
+ }
+
+ @cmds[$cmdnr++] = 'cd ' . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/" . $cwdrel . "/" . $exesubdir;
+ @cmds[$cmdnr++] = 'set TMPDIR=' . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/" . $cwdrel;
+
+ if (defined $ENV{'ACE_RUN_ACE_DEBUG'}) {
+ @cmds[$cmdnr++] = 'set ACE_DEBUG=' . $ENV{"ACE_RUN_ACE_DEBUG"};
+ }
+
+ if (defined $ENV{'ACE_RUN_TAO_ORB_DEBUG'}) {
+ @cmds[$cmdnr++] = 'set TAO_ORB_DEBUG=' . $ENV{"ACE_RUN_TAO_ORB_DEBUG"};
+ }
+
+ if (defined $ENV{'ACE_RUN_ACE_LD_SEARCH_PATH'}) {
+ @cmds[$cmdnr++] = 'set ACE_LD_SEARCH_PATH=' . $ENV{"ACE_RUN_ACE_LD_SEARCH_PATH"};
+ }
+
+ my(@load_commands);
+ my(@unload_commands);
+ my $vxtest_file = $program . '.vxtest';
+ if (handle_vxtest_file($self, $vxtest_file, \@load_commands, \@unload_commands)) {
+ push @cmds, @load_commands;
+ $cmdnr += scalar @load_commands;
+ } else {
+ print STDERR "ERROR: Cannot find <", $vxtest_file, ">\n";
+ }
+
+ if (defined $self->{ARGUMENTS}) {
+ ($arguments = $self->{ARGUMENTS})=~ s/\"/\\\"/g;
+ ($arguments = $self->{ARGUMENTS})=~ s/\'/\\\'/g;
+ }
+ $cmdline = $program . ' ' . $arguments;
+ if (defined $ENV{'ACE_RUN_VX_TGTSRV_WORKINGDIR'}) {
+ @cmds[$cmdnr++] = 'cd ' . $ENV{'ACE_RUN_VX_TGTSRV_WORKINGDIR'};
+ } else {
+ @cmds[$cmdnr++] = 'cd ' . $ENV{'ACE_RUN_VX_TGTSVR_ROOT'} . "/" . $cwdrel;
+ }
+ @cmds[$cmdnr++] = $cmdline;
+ if (!defined $ENV{'ACE_TEST_VERBOSE'}) {
+ push @cmds, @unload_commands;
+ $cmdnr += scalar @unload_commands;
+ }
+ $prompt = '[\\\\].*>[\ ]$';
+
+ FORK:
+ {
+ if ($self->{PROCESS} = fork) {
+ #parent here
+ bless $self;
+ }
+ elsif (defined $self->{PROCESS}) {
+ #child here
+ my $telnet_port = $ENV{'ACE_RUN_VX_TGT_TELNET_PORT'};
+ my $telnet_host = $ENV{'ACE_RUN_VX_TGT_TELNET_HOST'};
+ if (!defined $telnet_host) {
+ $telnet_host = $ENV{'ACE_RUN_VX_TGTHOST'};
+ }
+ if (!defined $telnet_port) {
+ $telnet_port = 23;
+ }
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "Opening telnet connection <" . $telnet_host . ":". $telnet_port . ">\n";
+ }
+ my $t = new Net::Telnet(Timeout => 600, Errmode => 'return', Host => $telnet_host, Port => $telnet_port);
+ if (!defined $t) {
+ die "ERROR: Telnet failed to <" . $telnet_host . ":". $telnet_port . ">";
+ }
+ my $retries = 10;
+ while ($retries--) {
+ if (!$t->open()) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print "Couldn't open telnet connection; sleeping then retrying\n";
+ }
+ if ($retries == 0) {
+ die "ERROR: Telnet open to <" . $telnet_host . ":". $telnet_port . "> " . $t->errmsg;
+ }
+ sleep(5);
+ } else {
+ last;
+ }
+ }
+
+ my $target_login = $ENV{'ACE_RUN_VX_LOGIN'};
+ my $target_password = $ENV{'ACE_RUN_VX_PASSWORD'};
+
+ if (defined $target_login) {
+ $t->waitfor('/VxWorks login: $/');
+ $t->print("$target_login");
+ }
+
+ if (defined $target_password) {
+ $t->waitfor('/Password: $/');
+ $t->print("$target_password");
+ }
+
+ my $buf = '';
+ # wait for the prompt
+ while (1) {
+ my $blk = $t->get;
+ print $blk;
+ $buf .= $blk;
+ if ($buf =~ /$prompt/) {
+ last;
+ }
+ }
+ if ($buf !~ /$prompt/) {
+ die "ERROR: Didn't got prompt but got <$buf>";
+ }
+ my $i = 0;
+ my @lines;
+ while($i < $cmdnr) {
+ if (defined $ENV{'ACE_TEST_VERBOSE'}) {
+ print @cmds[$i]."\n";
+ }
+ if ($t->print (@cmds[$i++])) {
+ # After each command wait for the prompt
+ my $buf = '';
+ while (1) {
+ my $blk = $t->get;
+ print $blk;
+ $buf .= $blk;
+ if ($buf =~ /$prompt/) {
+ last;
+ }
+ }
+ } else {
+ print $t->errmsg;
+ }
+ }
+ $t->close();
+ sleep(2);
+ exit;
+ }
+ elsif ($! =~ /No more process/) {
+ #EAGAIN, supposedly recoverable fork error
+ sleep 5;
+ redo FORK;
+ }
+ else {
+ # weird fork error
+ print STDERR "ERROR: Can't fork <" . $cmdline . ">: $!\n";
+ }
+ }
+ $self->{RUNNING} = 1;
+ return 0;
+}
+
+
+# Terminate the process and wait for it to finish
+
+sub TerminateWaitKill ($)
+{
+ my $self = shift;
+ my $timeout = shift;
+
+ if ($self->{RUNNING}) {
+ print STDERR "INFO: $self->{EXECUTABLE} being killed.\n";
+ kill ('TERM', $self->{PROCESS});
+
+ $PerlACE::ProcessVX::DoVxInit = 1; # force reboot on next run
+ }
+
+ return $self->WaitKill ($timeout);
+}
+
+# really only for internal use
+sub check_return_value ($)
+{
+ my $self = shift;
+ my $rc = shift;
+
+ my $CC_MASK = 0xff00;
+
+ # Exit code processing
+ if ($rc == 0) {
+ return 0;
+ }
+ elsif ($rc == $CC_MASK) {
+ print STDERR "ERROR: <", $self->{EXECUTABLE},
+ "> failed: $!\n";
+
+ $PerlACE::ProcessVX::DoVxInit = 1; # force reboot on next run
+
+ return ($rc >> 8);
+ }
+ elsif (($rc & 0xff) == 0) {
+ $rc >>= 8;
+ return $rc;
+ }
+
+ # Remember Core dump flag
+ my $dump = 0;
+
+ if ($rc & 0x80) {
+ $rc &= ~0x80;
+ $dump = 1;
+ }
+
+ # check for ABRT, KILL or TERM
+ if ($rc == 6 || $rc == 9 || $rc == 15) {
+ return 0;
+ }
+
+ print STDERR "ERROR: <", $self->{EXECUTABLE},
+ "> exited with ";
+
+ print STDERR "coredump from " if ($dump == 1);
+
+ print STDERR "signal $rc : ", $signame[$rc], "\n";
+
+ $PerlACE::ProcessVX::DoVxInit = 1; # force reboot on next run
+
+ return 0;
+}
+
+sub Kill ()
+{
+ my $self = shift;
+
+ if ($self->{RUNNING} && !defined $ENV{'ACE_TEST_WINDOW'}) {
+ kill ('KILL', $self->{PROCESS});
+ waitpid ($self->{PROCESS}, 0);
+ $self->check_return_value ($?);
+ }
+
+ $self->{RUNNING} = 0;
+}
+
+# Wait until a process exits.
+# return -1 if the process is still alive.
+sub Wait ($)
+{
+ my $self = shift;
+ my $timeout = shift;
+ if (!defined $timeout || $timeout < 0) {
+ waitpid ($self->{PROCESS}, 0);
+ } else {
+ return TimedWait($self, $timeout);
+ }
+
+}
+
+sub TimedWait ($)
+{
+ my $self = shift;
+ my $timeout = shift;
+
+ if ($PerlACE::Process::WAIT_DELAY_FACTOR > 0) {
+ $timeout *= $PerlACE::Process::WAIT_DELAY_FACTOR;
+ }
+
+ while ($timeout-- != 0) {
+ my $pid = waitpid ($self->{PROCESS}, &WNOHANG);
+ if ($pid != 0 && $? != -1) {
+ return $self->check_return_value ($?);
+ }
+ sleep 1;
+ }
+
+ $PerlACE::ProcessVX::DoVxInit = 1; # force reboot on next run
+
+ return -1;
+}
+
+sub handle_vxtest_file
+{
+ my $self = shift;
+ my $vxtestfile = shift;
+ my $vx_ref = shift;
+ my $unld_ref = shift;
+ my $fh = new FileHandle;
+
+ if (defined $self->{TARGET} && $self->{TARGET}->SystemLibs())
+ {
+ my @tokens = split(/;/, $self->{TARGET}->SystemLibs());
+ foreach my $token (@tokens) {
+ push @$vx_ref, "copy " . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/lib/" . $token . " .";
+ }
+ }
+ if (!$PerlACE::Static) {
+ if (open ($fh, $vxtestfile)) {
+ my $line1 = <$fh>;
+ chomp $line1;
+ while(<$fh>) {
+ $line1 = $_;
+ chomp $line1;
+ push @$vx_ref, "copy " . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/lib/$line1" . ".dll .";
+ unshift @$unld_ref, "del $line1" . "d.dll";
+ }
+ close $fh;
+ } else {
+ return 0;
+ }
+ }
+ return 1;
+}
+
+1;
diff --git a/ACE/bin/PerlACE/Process_Unix.pm b/ACE/bin/PerlACE/Process_Unix.pm
index b6d836c3a8f..d08da933761 100644
--- a/ACE/bin/PerlACE/Process_Unix.pm
+++ b/ACE/bin/PerlACE/Process_Unix.pm
@@ -87,6 +87,14 @@ sub Executable
}
my $executable = $self->{EXECUTABLE};
+ # If the target's config has a different ACE_ROOT, rebase the executable
+ # from $ACE_ROOT to the target's root.
+ if (defined $self->{TARGET} &&
+ $self->{TARGET}->ACE_ROOT() ne $ENV{"ACE_ROOT"}) {
+ $executable = File::Spec->rel2abs($executable);
+ $executable = File::Spec->abs2rel($executable, $ENV{"ACE_ROOT"});
+ $executable = $self->{TARGET}->ACE_ROOT() . "/$executable";
+ }
if ($self->{IGNOREHOSTROOT} == 0) {
if (PerlACE::is_vxworks_test()) {
diff --git a/ACE/bin/PerlACE/Run_Test.pm b/ACE/bin/PerlACE/Run_Test.pm
index 98e74752f6e..8122f4309df 100644
--- a/ACE/bin/PerlACE/Run_Test.pm
+++ b/ACE/bin/PerlACE/Run_Test.pm
@@ -42,7 +42,11 @@ if ($PerlACE::LabVIEW_RT_Test) {
$PerlACE::WinCE_Test = $config->check_config("WINCE");
if ($PerlACE::WinCE_Test) {
+if ($OSNAME eq "MSWin32") {
require PerlACE::ProcessWinCE;
+} else {
+ require PerlACE::ProcessWinCE_Unix;
+}
}
# Figure out the svc.conf extension
diff --git a/ACE/bin/PerlACE/TestTarget.pm b/ACE/bin/PerlACE/TestTarget.pm
index b83ac809b76..52317ace5ec 100644
--- a/ACE/bin/PerlACE/TestTarget.pm
+++ b/ACE/bin/PerlACE/TestTarget.pm
@@ -199,6 +199,10 @@ sub GetConfigSettings ($)
if (exists $ENV{$env_name}) {
$self->{HOST_ROOT} = $ENV{$env_name};
}
+ $env_name = $env_prefix.'SYSTEM_LIBS';
+ if (exists $ENV{$env_name}) {
+ $self->{SYSTEM_LIBS} = $ENV{$env_name};
+ }
}
##################################################################
@@ -237,6 +241,12 @@ sub ExeSubDir ($)
return $self->{EXE_SUBDIR};
}
+sub SystemLibs ($)
+{
+ my $self = shift;
+ return $self->{SYSTEM_LIBS};
+}
+
sub RandomPort ($)
{
my $self = shift;
diff --git a/ACE/bin/PerlACE/TestTarget_VxWorks.pm b/ACE/bin/PerlACE/TestTarget_VxWorks.pm
index bbd99b068dd..be5f4600c27 100644
--- a/ACE/bin/PerlACE/TestTarget_VxWorks.pm
+++ b/ACE/bin/PerlACE/TestTarget_VxWorks.pm
@@ -17,6 +17,7 @@ use strict;
use PerlACE::TestTarget;
use PerlACE::ProcessVX;
use Cwd;
+use English;
our @ISA = qw(PerlACE::TestTarget);
diff --git a/ACE/bin/PerlACE/TestTarget_WinCE.pm b/ACE/bin/PerlACE/TestTarget_WinCE.pm
index b1d650e5c88..17e736c95da 100644
--- a/ACE/bin/PerlACE/TestTarget_WinCE.pm
+++ b/ACE/bin/PerlACE/TestTarget_WinCE.pm
@@ -18,6 +18,7 @@ use PerlACE::TestTarget;
use PerlACE::ProcessVX;
use File::Copy;
use Cwd;
+use English;
our @ISA = qw(PerlACE::TestTarget);
@@ -107,8 +108,11 @@ sub LocalFile {
sub CreateProcess {
my $self = shift;
- my $process = new PerlACE::ProcessVX ($self, @_);
- return $process;
+if ($OSNAME eq "MSWin32") {
+ my $process = new PerlACE::ProcessVX ($self, @_); return $process;
+} else {
+ my $process = new PerlACE::ProcessVX (@_, $self); return $process;
+}
}
# Need a reboot when this target is destroyed.
diff --git a/ACE/bin/diff-builds-and-group-fixed-tests-only.sh b/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
index 9f88c97335d..ba69dd5123d 100755
--- a/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
+++ b/ACE/bin/diff-builds-and-group-fixed-tests-only.sh
@@ -1,4 +1,4 @@
-if test -z $1; then olddate=2009_02_09; else olddate=$1; fi
+if test -z $1; then olddate=2009_04_14; else olddate=$1; fi
if test -z $2; then prefix=`date -u +%Y%m%d%a`; else prefix=$2; fi
if test -z $ACE_ROOT; then ACE_ROOT=..; fi
if test -z $TAO_ROOT; then TAO_ROOT=${ACE_ROOT}/TAO; fi
diff --git a/ACE/bin/fuzz.pl b/ACE/bin/fuzz.pl
index fd10b9c7465..e8d84ec2a3e 100755
--- a/ACE/bin/fuzz.pl
+++ b/ACE/bin/fuzz.pl
@@ -137,7 +137,7 @@ sub store_file ($)
elsif ($name =~ /\.(mpc|mwc|mpb|mpt)$/i) {
push @files_mpc, ($name);
}
- elsif ($name =~ /\.(icc|ncb|opt|zip)$/i) {
+ elsif ($name =~ /\.(icc|ncb|zip)$/i) {
push @files_noncvs, ($name);
}
}
@@ -448,7 +448,7 @@ sub check_for_lack_ACE_OS ()
$OS_NS_signal_symbols = "kill|pthread_sigmask|sigaction|sigaddset|sigdelset|sigemptyset|sigfillset|sigismember|signal|sigprocmask|sigsuspend|raise";
- $OS_NS_stdio_symbols = "checkUnicodeFormat|clearerr|cuserid|fclose|fdopen|fflush|fgetc|getc|fgetpos|fgets|flock_adjust_params|flock_init|flock_destroy|flock_rdlock|flock_tryrdlock|flock_trywrlock|flock_unlock|flock_wrlock|fopen|default_win32_security_attributes|default_win32_security_attributes_r|get_win32_versioninfo|get_win32_resource_module|set_win32_resource_module|fprintf|ungetc|fputc|putc|fputs|fread|freopen|fseek|fsetpos|ftell|fwrite|perror|printf|puts|rename|rewind|snprintf|sprintf|tempnam|vsprintf|vsnprintf|asprintf|aswprintf|vasprintf|vaswprintf";
+ $OS_NS_stdio_symbols = "fileno|checkUnicodeFormat|clearerr|cuserid|fclose|fdopen|fflush|fgetc|getc|fgetpos|fgets|flock_adjust_params|flock_init|flock_destroy|flock_rdlock|flock_tryrdlock|flock_trywrlock|flock_unlock|flock_wrlock|fopen|default_win32_security_attributes|default_win32_security_attributes_r|get_win32_versioninfo|get_win32_resource_module|set_win32_resource_module|fprintf|ungetc|fputc|putc|fputs|fread|freopen|fseek|fsetpos|ftell|fwrite|perror|printf|puts|rename|rewind|snprintf|sprintf|tempnam|vsprintf|vsnprintf|asprintf|aswprintf|vasprintf|vaswprintf";
$OS_NS_stdlib_symbols = "_exit|abort|atexit|atof|atol|atoi|atop|bsearch|calloc|exit|free|getenv|getenvstrings|itoa|itoa_emulation|itow_emulation|malloc|mkstemp|mkstemp_emulation|mktemp|setenv|unsetenv|putenv|qsort|rand|rand_r|realloc|realpath|set_exit_hook|srand|strenvdup|strtod|strtol|strtol_emulation|strtoul|strtoul_emulation|strtoll|strtoll_emulation|strtoull|strtoull_emulation|system|getprogname|setprogname";
@@ -1842,6 +1842,35 @@ sub check_for_refcountservantbase ()
}
}
+sub check_for_TAO_Local_RefCounted_Object ()
+{
+ print "Running TAO_Local_RefCounted_Object check\n";
+
+ ITERATION: foreach $file (@files_h, @files_cpp, @files_inl) {
+ if (open (FILE, $file)) {
+ my $disable = 0;
+ print "Looking at file $file\n" if $opt_d;
+ while (<FILE>) {
+ if (/FUZZ\: disable check_for_TAO_Local_RefCounted_Object/) {
+ $disable = 1;
+ }
+ if (/FUZZ\: enable check_for_TAO_Local_RefCounted_Object/) {
+ $disable = 0;
+ next ITERATION;
+ }
+
+ if ($disable == 0 and /TAO_Local_RefCounted_Object/) {
+ print_error ("$file:$.: TAO_Local_RefCounted_Object is deprecated, use CORBA::LocalObject instead");
+ }
+ }
+ close (FILE);
+ }
+ else {
+ print STDERR "Error: Could not open $file\n";
+ }
+ }
+}
+
# This test checks for the correct use of ORB_init() so as
# to be compatiable with wide character builds.
sub check_for_ORB_init ()
@@ -1975,6 +2004,7 @@ if (!getopts ('cdhl:t:mv') || $opt_h) {
check_for_non_bool_operators
check_for_long_file_names
check_for_refcountservantbase
+ check_for_TAO_Local_RefCounted_Object
check_for_ORB_init\n";
exit (1);
}
@@ -2040,6 +2070,7 @@ check_for_include () if ($opt_l >= 5);
check_for_non_bool_operators () if ($opt_l > 2);
check_for_long_file_names () if ($opt_l > 1 );
check_for_improper_main_declaration ();
+check_for_TAO_Local_RefCounted_Object ();
check_for_ORB_init ();
print "\nFuzz.pl - $errors error(s), $warnings warning(s)\n";
diff --git a/ACE/bin/make_release.py b/ACE/bin/make_release.py
index 7d46456c030..ed6409a4f9f 100755
--- a/ACE/bin/make_release.py
+++ b/ACE/bin/make_release.py
@@ -589,9 +589,9 @@ def create_file_lists (base_dir, prefix, exclude):
continue
else:
if bin_regex.search (fullitem) is not None:
- bin_files.append (os.path.join (prefix, fullitem))
+ bin_files.append ('"' + os.path.join (prefix, fullitem) + '"')
else:
- text_files.append (os.path.join (prefix, fullitem))
+ text_files.append ('"' + os.path.join (prefix, fullitem) + '"')
return (text_files, bin_files)
@@ -703,8 +703,6 @@ def generate_workspaces (stage_dir):
# Build option string for VC8 platforms
ce_option = ' -name_modifier *_vc8_WinCE -features "uses_wchar=1,wince=1" '
- ce_option += ' -value_template platforms=\'"Pocket PC 2003 (ARMV4)"\' '
- ce_option += ' -value_template platforms+=\'"Smartphone 2003 (ARMV4)"\' '
ce_option += ' -value_template platforms+=\'"Windows Mobile 5.0 Pocket PC SDK (ARMV4I)"\' '
ce_option += ' -value_template platforms+=\'"Windows Mobile 5.0 Smartphone SDK (ARMV4I)"\' '
ce_option += ' -value_template platforms+=\'"Windows Mobile 6 Standard SDK (ARMV4I)"\' '
diff --git a/ACE/bin/run_all.pl b/ACE/bin/run_all.pl
deleted file mode 100755
index dfa4841262c..00000000000
--- a/ACE/bin/run_all.pl
+++ /dev/null
@@ -1,224 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# -*- perl -*-
-# $Id$
-#
-# This script execute the test programs (usually, other scripts) in
-# the RUN_LIST defined below. If it detects any problem it send email.
-#
-# This script requires ActivePerl for Win32 and libnet from CPAN.
-#
-# Usage: run_all.pl <log directory> <admin email address>
-#
-# For example: run_all.pl /tmp/log peter_pan@neverland.org
-
-use Net::SMTP;
-use File::Basename;
-use FileHandle;
-require POSIX;
-
-push @INC, $ENV{'ACE_ROOT'}.'/bin';
-require run_all_list;
-
-# Find out the command name.
-$CMD = basename($0);
-
-$single_threaded = 0;
-$minimum_corba = 0;
-$dont_run = 0;
-$report_success = 0;
-$debug = 0;
-$ami=0
-@ARGS = ();
-while ($#ARGV >= 0) {
- if (!($ARGV[0] =~ m/-/)) {
- push @ARGS, $ARGV[0];
- shift;
- } elsif ($ARGV[0] eq "-single_threaded") {
- $single_threaded = 1;
- shift;
- } elsif ($ARGV[0] eq "-minimum_corba") {
- $minimum_corba = 1;
- shift;
- } elsif ($ARGV[0] eq "-ami") {
- $ami = 1;
- shift;
- } elsif ($ARGV[0] eq "-report_success") {
- $report_success = 1;
- shift;
- } elsif ($ARGV[0] eq "-debug") {
- $debug = 1;
- shift;
- }
-}
-
-# We obtain our revision to report errors.
-$REVISION='$Revision$ ';
-
-# Extract configuration information from command line.
- # TODO: Some validation and checking should be done here.
-$LOGDIR = $ARGS[0];
-$ADMIN = $ARGS[1];
-$MAIL = "mail";
-if ($#ARGS >= 2) {
- $MAIL = $ARGS[2];
-}
-
-$disable_file = $LOGDIR . '/.disable';
-$histfile = $LOGDIR . '/history';
-$LOGBASE = POSIX::strftime("%b%d_%Y.log", localtime);
-$LOGFILE = $LOGDIR . '/' . $LOGBASE;
-$HOST = `hostname`;
-chop $HOST;
-$LOG_NAME = $HOST . "_" . $BUILD . "_" . $LOGBASE;
-$STATUS = "OK";
-
-sub report_errors {
- # Now send a summary of the errors to the ADMIN account...
- local $to = $ADMIN;
-
- open (MAIL, "|".$MAIL.' -s [AUTO_COMPILE] '.$to)
- || die "Cannot open mail pipe for: $_\n";
-
- print MAIL 'The following message is brought to you by: ', "\n";
- print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
- local $m;
- foreach $m (@_) {
- print MAIL $m, "\n";
- }
-
- print MAIL "\nPlease check the following log for more info:\n\n";
- print MAIL 'http://www.cs.wustl.edu/~bugzilla/auto_compile_logs/',
- $LOG_NAME, "\n\n";
-
- close (MAIL); # Ignore errors....
-
-# # Now send the complete log to bugzilla...
-# local $bugs = 'bugzilla'.'@cs.wustl.edu';
-# open (MAIL, "|".$MAIL.' -s AUTO_COMPILE_LOG='.$LOG_NAME.' '.$bugs)
-# || die "Cannot open mail pipe for: $LOG_NAME\n";
-
-# print MAIL 'This is the log for: ', "\n";
-# print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
-# print MAIL "\n================================================================\n";
-
-# if (open (THELOG, "$LOGFILE"))
-# {
-# while (<THELOG>) {
-# print MAIL $_;
-# }
-# close (THELOG);
-# }
-# close (MAIL); # Ignore errors....
-}
-
-### MAIN FUNCTION
-
-$histfile = $LOGDIR . '/history';
-open(HIST, '>>' . $histfile)
- # Do not use 'die' to report the problem, it tries to use HIST....
- || die "cannot open history file \"$histfile\"\n";
-
-$date = localtime;
-
-print HIST $CMD, ': running at ', $date, ' ';
-
-if (-f $disable_file) {
- print HIST "DISABLED\n";
- exit 0;
-}
-
-open (DISABLE, '>' . $disable_file)
- || die "cannot open disable file";
-print DISABLE "auto_compile <$date> is running\n";
-close (DISABLE)
- || die "cannot close disable file";
-
-$LOGFILE = $LOGDIR . '/' . POSIX::strftime("%b%d_%Y.log", localtime);
-open(LOG, '>' . $LOGFILE)
- || die "cannot open log file";
-
-LOG->autoflush ();
-
-@failures = ();
-
-if ($dont_run == 0) {
- @LIST = @RUN_LIST;
- if ($single_threaded) {
- @LIST = @SINGLE_THREADED_LIST;
- } elsif ($minimum_corba) {
- @LIST = @MINIMUM_CORBA_LIST;
- } elsif ($ami) {
- @LIST = @AMI_CORBA_LIST;
- }
-
- $DIR = $ENV{'PWD'};
- foreach $i (@LIST) {
- local @test_info = split (/\ \,\ /, $i);
- local $directory = $test_info[0];
- local $program = $test_info[1];
-
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: running $program in $directory at ", $date, "\n";
- local $subdir = $DIR . '/' . $directory;
- chdir ($subdir)
- || die "cannot chdir to $subdir";
-
- $run_error = 0;
- if (open(RUN, "perl $program 2>&1 |") == 0) {
- push @failures, "cannot run $program in $directory";
- next;
- }
- while (<RUN>) {
- print LOG $_;
- if (m/Error/
- || m/FAILED/
- || m/EXCEPTION/
- || m/pure virtual /i) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- $run_error = 1;
- }
- }
- if (close(RUN) == 0) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- push @failures, "Error when closing pipe for $program in $directory";
- next;
- }
- $date = localtime;
- print LOG "$CMD: $program finished ", $date, "\n";
-
- if ($run_error != 0) {
- push @failures,
- "errors detected while running $program in $directory";
- }
- }
-}
-
-if ($#failures >= 0) {
- report_errors @failures;
-}
-
-close(LOG)
- || die "cannot close LOGFILE";
-
-print HIST "$STATUS\n";
-close(HIST)
- || die "cannot close history file";
-
-unlink $disable_file
- || die "cannot unlink disable file";
-
-if ($report_success) {
- report_errors "Congratulations: No errors or warnings detected\n";
-}
-
-exit 0;
diff --git a/ACE/bin/run_all_win32.pl b/ACE/bin/run_all_win32.pl
deleted file mode 100755
index 84021c3a8d9..00000000000
--- a/ACE/bin/run_all_win32.pl
+++ /dev/null
@@ -1,180 +0,0 @@
-# -*- perl -*-
-# $Id$
-#
-# This script execute the test programs (usually, other scripts) in
-# the RUN_LIST defined below. If it detects any problem it send email.
-#
-# This script requires ActivePerl for Win32 and libnet from CPAN.
-#
-# Usage: run_all_win32.pl <log directory> <admin email address>
-#
-# For example: run_all_win32.pl c:\log peter_pan@neverland.org
-
-use Net::SMTP;
-use File::Basename;
-use FileHandle;
-require POSIX;
-
-use lib "$ENV{ACE_ROOT}/bin";
-require run_all_list;
-
-# This is the module we will checkout, someday someone could define a
-# smaller module.
-$MODULE='ACE_wrappers';
-
-# The following are for redirecting execution results to temporary files.
-$exe_log_name='run_test.log'; # Name of the tempfile used.
-
-# If using 'sh'.
-$sh_cmd="c:/bin/sh ";
-$sh_redirection=" > $exe_log_name 2>&1";
-
-#if using '4nt', 4nt is not quite working yet.
-$four_nt_cmd="d:/Utils/4NT301/4NT.EXE ";
-$four_nt_redirection=" >& $exe_log_name";
-
-# Pick the one your like.
-$shell_invoke = $sh_cmd;
-$redirect_output = $sh_redirection;
-
-# We obtain our revision to report errors.
-#$REVISION='$Revision$';
-
-# Find out the command name.
-$CMD = basename($0);
-
-# Extract configuration information from command line.
-# TODO: Some validation and checking should be done here.
-$LOGDIR = $ARGV[0];
-$ADMIN = $ARGV[1];
-
-# When an error is found we try to die gracefully and send some email
-# to ADMIN.
-
-$disable_file = $LOGDIR . '/.disable';
-
-sub mywarn {
- local @msg = @_;
-
- # Need more error checking here.
-
- $smtp = Net::SMTP->new('mail.cs.wustl.edu');
- $smtp->mail( "$ADMIN" ); # sender's address
- $smtp->to("$ADMIN"); # recipient's address
- $smtp->data(); # Start the mail
-
- # Mail Header
- $smtp->datasend("To: $ADMIN\n");
- $smtp->datasend("Subject: Auto run results\n");
- $smtp->datasend("From: $ADMIN\n");
- $smtp->datasend("\n");
-
- # Now the message body
- $smtp->datasend ('The following message is brought to you by: ', "\n");
- $smtp->datasend ("$CMD, [ $REVISION ] for $BUILD on $CHECKOUT\n\n");
-
- local $m;
- foreach $m (@msg) {
- $smtp->datasend ("$m \n");
- }
-
- $smtp->datasend ("\nPlease check log files for more info\n");
-
- $smtp->dataend(); # Finish sending the mail
- $smtp->quit; # Close the SMTP connection
-}
-
-sub mydie {
- mywarn @_;
- print HIST 'FAILED', "\n";
- unlink $disable_file
- || die "cannot unlink disable file";
- exit 0;
-}
-
-### MAIN FUNCTION
-
-### MAIN FUNCTION
-
-$histfile = $LOGDIR . '/history';
-open(HIST, '>>' . $histfile)
- # Do not use 'mydie' to report the problem, it tries to use HIST....
- || die "cannot open history file \"$histfile\"\n";
-
-$date = localtime;
-
-print HIST $CMD, ': running at ', $date, ' ';
-
-if (-f $disable_file) {
- print HIST "DISABLED\n";
- exit 0;
-}
-
-open (DISABLE, '>' . $disable_file)
- || mydie "cannot open disable file";
-print DISABLE "auto_compile <$date> is running\n";
-close (DISABLE)
- || mydie "cannot close disable file";
-
-$LOGFILE = $LOGDIR . '/' . POSIX::strftime("%b%d_%Y.log", localtime);
-open(LOG, '>' . $LOGFILE)
- || mydie "cannot open log file";
-
-LOG->autoflush ();
-
-foreach $i (@RUN_LIST) {
- local @test_info = split (/\ \,\ /, $i);
- local $directory = $test_info[0];
- local $program = $test_info[1];
- print "$directory, $program\n";
-
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: running $program in $directory at ", $date, "\n";
- local $subdir =
- $ENV{ACE_ROOT} . '/'. $directory;
- chdir ($subdir)
- || mydie "cannot chdir to $subdir";
-
- $run_error = 0;
-
- system ($shell_invoke . " " . $program . " " . $redirect_output);
-
- open (RUN, "$exe_log_name") || push @failures, "Can't open execution log file $exe_log_name\n";
-
- while (<RUN>) {
- print LOG $_;
- if (m/^Error/ || m/FAILED/ || m/EXCEPTION/) {
- $run_error = 1;
- }
- }
- if (close(RUN) == 0) {
- push @failures, "Error when closing log file $program in $directory";
- next;
- }
- $date = localtime;
- print LOG "$CMD: $program finished ", $date, "\n";
-
- if ($run_error != 0) {
- push @failures,
- "errors detected while running $program in $directory";
- }
-
- unlink ("$exe_log_name");
-}
-
-if ($#failures >= 0) {
- mydie @failures;
-}
-
-close(LOG)
- || mydie "cannot close LOGFILE";
-
-print HIST "OK\n";
-close(HIST)
- || mydie "cannot close history file";
-
-unlink $disable_file
- || mydie "cannot unlink disable file";
-
-exit 0;
diff --git a/ACE/contrib/FaCE/CE_ARGV.CPP b/ACE/contrib/FaCE/CE_ARGV.cpp
index 6b97a30b640..2da41912678 100644
--- a/ACE/contrib/FaCE/CE_ARGV.CPP
+++ b/ACE/contrib/FaCE/CE_ARGV.cpp
@@ -1,7 +1,6 @@
// $Id$
-#include "CE_ARGV.H"
-
+#include "CE_ARGV.h"
CE_ARGV::CE_ARGV(wchar_t* cmdLine)
: ce_argv_(0)
diff --git a/ACE/contrib/FaCE/CE_ARGV.H b/ACE/contrib/FaCE/CE_ARGV.h
index 716887ae1a8..a4cf2b1aaad 100644
--- a/ACE/contrib/FaCE/CE_ARGV.H
+++ b/ACE/contrib/FaCE/CE_ARGV.h
@@ -1,7 +1,7 @@
// -*- C++ -*-
//=============================================================================
/**
- * @file CE_ARGV.H
+ * @file CE_ARGV.h
*
* $Id$
*
@@ -13,6 +13,7 @@
#define CE_ARGV_H
#include <windows.h>
+#include <ctype.h>
/**
@@ -51,7 +52,7 @@ public:
/**
* Returns the 'char**' that contains the converted command line parameters.
*/
- wchar_t** const argv(void);
+ wchar_t** argv(void);
private:
/**
@@ -82,7 +83,7 @@ inline int CE_ARGV::argc()
}
-inline wchar_t** const CE_ARGV::argv()
+inline wchar_t** CE_ARGV::argv()
{
return ce_argv_;
}
diff --git a/ACE/contrib/FaCE/CE_Screen_Output.h b/ACE/contrib/FaCE/CE_Screen_Output.h
index 9f29c9cf30f..6f26d48d09c 100644
--- a/ACE/contrib/FaCE/CE_Screen_Output.h
+++ b/ACE/contrib/FaCE/CE_Screen_Output.h
@@ -11,6 +11,7 @@
#define CE_Screen_Output_h
#include <windows.h>
+#include <stdio.h>
const wchar_t endl[] = L"\r\n";
const wchar_t tab[] = L"\t";
diff --git a/ACE/contrib/FaCE/FaCE.cpp b/ACE/contrib/FaCE/FaCE.cpp
index 75a982564bd..b1d61ec0796 100644
--- a/ACE/contrib/FaCE/FaCE.cpp
+++ b/ACE/contrib/FaCE/FaCE.cpp
@@ -4,7 +4,7 @@
#ifdef NO_ACE
-#include "CE_ARGV.H"
+#include "CE_ARGV.h"
#else
@@ -21,7 +21,7 @@
// This utility does not use ACE, and shouldn't.
//FUZZ: disable check_for_lack_ACE_OS
-ACE_TCHAR* g_ParameterFileName = ACE_TEXT("Parameters.txt");
+const ACE_TCHAR* g_ParameterFileName = ACE_TEXT("Parameters.txt");
/**
* This simple and small class manages user-input command line
@@ -455,15 +455,15 @@ HWND CreateRpCommandBar(HWND hwnd)
}
// Mesage handler for the About box.
-LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM)
{
SHINITDLGINFO shidi;
- ACE_TCHAR* copyrightNote = ACE_TEXT(
-"ACE® and TAO® are copyrighted by Dr. Douglas C. Schmidt and Center for Distributed Object \
-Computing at Washington University,© 1993-2002, all rights reserved. \
-FaCE is copyrighted by Object Computing, Inc.,© 2002,\n all rights reserved.\n\
-See License.txt for more information.");
+ const ACE_TCHAR* copyrightNote =
+ACE_TEXT("ACE and TAO are copyrighted by Dr. Douglas C. Schmidt and Center for Distributed Object") \
+ACE_TEXT("Computing at Washington University, 1993-2002, all rights reserved.") \
+ACE_TEXT("FaCE is copyrighted by Object Computing, Inc., 2002,\n all rights reserved.\n") \
+ACE_TEXT("See License.txt for more information.");
switch (message)
{
@@ -488,7 +488,7 @@ See License.txt for more information.");
}
-LRESULT CALLBACK CommandLine(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT CALLBACK CommandLine(HWND hDlg, UINT message, WPARAM wParam, LPARAM)
{
int wmId;
int wmEvent;
@@ -529,7 +529,7 @@ LRESULT CALLBACK CommandLine(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPar
}
-LRESULT CALLBACK SaveFileName(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT CALLBACK SaveFileName(HWND hDlg, UINT message, WPARAM wParam, LPARAM)
{
int wmId;
int wmEvent;
@@ -617,7 +617,7 @@ LRESULT CALLBACK SaveFileName(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
}
-LRESULT CALLBACK FileError(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT CALLBACK FileError(HWND hDlg, UINT message, WPARAM wParam, LPARAM)
{
switch (message)
{
@@ -637,7 +637,7 @@ LRESULT CALLBACK FileError(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam
}
-LRESULT CALLBACK FileExist(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+LRESULT CALLBACK FileExist(HWND hDlg, UINT message, WPARAM wParam, LPARAM)
{
switch (message)
{
diff --git a/ACE/contrib/FaCE/FaCE.mpc b/ACE/contrib/FaCE/FaCE.mpc
index 6e1c9205a13..6159abcf3aa 100644
--- a/ACE/contrib/FaCE/FaCE.mpc
+++ b/ACE/contrib/FaCE/FaCE.mpc
@@ -7,7 +7,7 @@ project: aceexe {
// in MPC builds
requires += dummy_label
requires += wince
- lit_libs += aygshell
+ lit_libs += aygshell commctrl
Source_Files {
FaCE.cpp
diff --git a/ACE/contrib/FaCE/FaCENOACE.mpc b/ACE/contrib/FaCE/FaCENOACE.mpc
index 6868e78bc07..9eb444a1e27 100644
--- a/ACE/contrib/FaCE/FaCENOACE.mpc
+++ b/ACE/contrib/FaCE/FaCENOACE.mpc
@@ -5,12 +5,12 @@ project: vc_warnings {
exename = FaCENOACE
requires += wince
macros += NO_ACE
- lit_libs += aygshell
+ lit_libs += aygshell commctrl
Source_Files {
FaCE.cpp
Main.cpp
- CE_ARGV.CPP
+ CE_ARGV.cpp
CE_Screen_Output.cpp
}
}
diff --git a/ACE/contrib/FaCE/Main.cpp b/ACE/contrib/FaCE/Main.cpp
index 84e041db5f8..06947701d2e 100644
--- a/ACE/contrib/FaCE/Main.cpp
+++ b/ACE/contrib/FaCE/Main.cpp
@@ -13,7 +13,7 @@ extern BOOL InitInstance (HINSTANCE, int);
extern void InitSetup();
-int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, ACE_TCHAR* lpCmdLine, int nCmdShow)
+int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, ACE_TCHAR*, int nCmdShow)
{
MSG msg;
HACCEL hAccelTable;
diff --git a/ACE/contrib/minizip/minizip.mwc b/ACE/contrib/minizip/minizip.mwc
new file mode 100644
index 00000000000..397b73c819f
--- /dev/null
+++ b/ACE/contrib/minizip/minizip.mwc
@@ -0,0 +1,3 @@
+// $Id$
+workspace {
+}
diff --git a/ACE/debianbuild/patches/19-gcc43.dpatch b/ACE/debianbuild/patches/19-gcc43.dpatch
deleted file mode 100644
index d857df95f1b..00000000000
--- a/ACE/debianbuild/patches/19-gcc43.dpatch
+++ /dev/null
@@ -1,32 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 19-gcc43.dpatch by Thomas Girard <thomas.g.girard@free.fr>
-##
-## DP: fix failures and warnings with g++ 4.3
-## DP: See http://bugzilla.dre.vanderbilt.edu/show_bug.cgi?id=3270
-@DPATCH@
---- ACE_wrappers.orig/ace/config-macros.h
-+++ ACE_wrappers/ace/config-macros.h
-@@ -380,7 +380,7 @@
- // This eliminates the warnings, and no code is generated for the null
- // conditional statement. @note that may only be true if -O is enabled,
- // such as with GreenHills (ghs) 1.8.8.
--# define ACE_UNUSED_ARG(a) do {/* null */} while (&a == 0)
-+# define ACE_UNUSED_ARG(a) do {/* null */} while (&a < 0)
- #elif defined (__DMC__)
- #define ACE_UNUSED_ID(identifier)
- template <class T>
---- ACE_wrappers.orig/apps/JAWS/server/HTTP_Server.cpp
-+++ ACE_wrappers/apps/JAWS/server/HTTP_Server.cpp
-@@ -143,10 +143,12 @@
- HTTP_Handler_Factory *f = 0;
-
- if (this->strategy_ != (JAWS::JAWS_POOL | JAWS::JAWS_ASYNCH))
-+ {
- if (this->caching_)
- ACE_NEW_RETURN (f, Synch_HTTP_Handler_Factory (), -1);
- else
- ACE_NEW_RETURN (f, No_Cache_Synch_HTTP_Handler_Factory (), -1);
-+ }
-
- //NOTE: At this point f better not be a NULL pointer,
- //so please do not change the ACE_NEW_RETURN macros unless
diff --git a/ACE/docs/Download.html b/ACE/docs/Download.html
index 167dfcd0300..3a21c13884e 100644
--- a/ACE/docs/Download.html
+++ b/ACE/docs/Download.html
@@ -84,101 +84,101 @@ of the ACE, TAO, and CIAO micro release kit is available for
<TR><TH>Filename</TH><TH>Description</TH><TH>Full</TH><TH>Sources only</TH></TR>
<TR><TD>ACE+TAO+CIAO.tar.gz</TD>
<TD>ACE+TAO+CIAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.9.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.9.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.9.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.9.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+CIAO.tar.bz2</TD>
<TD>ACE+TAO+CIAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.9.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.9.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.9.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.9.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO+CIAO.zip</TD>
<TD>ACE+TAO+CIAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.9.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-5.6.9.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.9.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-5.6.9.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.tar.gz</TD>
<TD>ACE+TAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.9.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.9.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.9.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.9.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.tar.bz2</TD>
<TD>ACE+TAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.9.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.9.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.9.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.9.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE+TAO.zip</TD>
<TD>ACE+TAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.9.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-5.6.9.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.9.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE+TAO-src-5.6.9.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.tar.gz</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.9.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.9.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.tar.bz2</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.9.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.9.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE-html.zip</TD>
<TD>Doxygen documentation for ACE+TAO+CIAO (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.9.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-html-5.6.9.zip">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.tar.gz</TD>
<TD>ACE only (tar+gzip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.9.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.9.tar.gz">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.8.tar.gz">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.8.tar.gz">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.9.tar.gz">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.9.tar.gz">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.tar.bz2</TD>
<TD>ACE only (tar+bzip2 format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.9.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.9.tar.bz2">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.8.tar.bz2">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.8.tar.bz2">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.9.tar.bz2">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.9.tar.bz2">FTP</A>]
</TD>
</TR>
<TR><TD>ACE.zip</TD>
<TD>ACE only (zip format)</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.9.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-5.6.9.zip">FTP</A>]
</TD>
- <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.8.zip">HTTP</A>]
- [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.8.zip">FTP</A>]
+ <TD>[<A HREF="http://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.9.zip">HTTP</A>]
+ [<A HREF="ftp://download.dre.vanderbilt.edu/previous_versions/ACE-src-5.6.9.zip">FTP</A>]
</TD>
</TR>
</TABLE>
diff --git a/ACE/docs/ace_guidelines.vsmacros b/ACE/docs/ace_guidelines.vsmacros
index b8d34f113f2..a01cb158ebd 100644
--- a/ACE/docs/ace_guidelines.vsmacros
+++ b/ACE/docs/ace_guidelines.vsmacros
Binary files differ
diff --git a/ACE/etc/index.html b/ACE/etc/index.html
index 97f4162a304..b526316b798 100644
--- a/ACE/etc/index.html
+++ b/ACE/etc/index.html
@@ -35,6 +35,7 @@
<hr>
We do have the documentation for previous releases
<ul>
+ <LI><P><A HREF="5.6.9/html">5.6.9</A></P></LI>
<LI><P><A HREF="5.6.8/html">5.6.8</A></P></LI>
<LI><P><A HREF="5.6.7/html">5.6.7</A></P></LI>
<LI><P><A HREF="5.6.6/html">5.6.6</A></P></LI>
diff --git a/ACE/examples/APG/Active_Objects/active_objects.mpc b/ACE/examples/APG/Active_Objects/active_objects.mpc
index 44fe88bfd30..51b7c6f1f1e 100644
--- a/ACE/examples/APG/Active_Objects/active_objects.mpc
+++ b/ACE/examples/APG/Active_Objects/active_objects.mpc
@@ -1,16 +1,14 @@
// -*- MPC -*-
// $Id$
-project(AO) : aceexe {
- avoids += ace_for_tao
+project(AO) : aceexe, avoids_ace_for_tao {
exename = AO
Source_Files {
AO.cpp
}
}
-project(AO2) : aceexe {
- avoids += ace_for_tao
+project(AO2) : aceexe, avoids_ace_for_tao {
exename = AO2
Source_Files {
AO2.cpp
diff --git a/ACE/examples/APG/Config/config.mpc b/ACE/examples/APG/Config/config.mpc
index 5b705d144bc..1e2b8dc2146 100644
--- a/ACE/examples/APG/Config/config.mpc
+++ b/ACE/examples/APG/Config/config.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*HA Status) : aceexe {
- avoids += ace_for_tao
+project(*HA Status) : aceexe, avoids_ace_for_tao {
exename = HA_Status
Source_Files {
HA_Status.cpp
diff --git a/ACE/examples/APG/Containers/containers.mpc b/ACE/examples/APG/Containers/containers.mpc
index d08ef9133aa..a49ede94ef4 100644
--- a/ACE/examples/APG/Containers/containers.mpc
+++ b/ACE/examples/APG/Containers/containers.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(DLList) : aceexe {
- avoids += ace_for_tao
+project(DLList) : aceexe, avoids_ace_for_tao {
exename = DLList
Source_Files {
DLList.cpp
diff --git a/ACE/examples/APG/Misc_IPC/misc_ipc.mpc b/ACE/examples/APG/Misc_IPC/misc_ipc.mpc
index 47e1c34758b..e3c3e7d1b6b 100644
--- a/ACE/examples/APG/Misc_IPC/misc_ipc.mpc
+++ b/ACE/examples/APG/Misc_IPC/misc_ipc.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(UDP Broadcast) : aceexe {
- avoids += ace_for_tao
+project(UDP Broadcast) : aceexe, avoids_ace_for_tao {
exename = UDP_Broadcast
Source_Files {
UDP_Broadcast.cpp
@@ -16,8 +15,7 @@ project(UDP Multicast) : aceexe {
}
}
-project(UDP Unicast) : aceexe {
- avoids += ace_for_tao
+project(UDP Unicast) : aceexe, avoids_ace_for_tao {
exename = UDP_Unicast
Source_Files {
UDP_Unicast.cpp
diff --git a/ACE/examples/APG/Naming/naming.mpc b/ACE/examples/APG/Naming/naming.mpc
index 1915280b379..0bbc4e92e13 100644
--- a/ACE/examples/APG/Naming/naming.mpc
+++ b/ACE/examples/APG/Naming/naming.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(Netlocal) : aceexe {
- avoids += ace_for_tao
+project(Netlocal) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = Netlocal
Source_Files {
@@ -11,8 +10,7 @@ project(Netlocal) : aceexe {
}
}
-project(Netlocal Reader) : aceexe {
- avoids += ace_for_tao
+project(Netlocal Reader) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = Netlocal_reader
Source_Files {
@@ -22,8 +20,7 @@ project(Netlocal Reader) : aceexe {
}
}
-project(Nodelocal) : aceexe {
- avoids += ace_for_tao
+project(Nodelocal) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = Nodelocal
Source_Files {
@@ -32,8 +29,7 @@ project(Nodelocal) : aceexe {
}
}
-project(Nodelocal Shared) : aceexe {
- avoids += ace_for_tao
+project(Nodelocal Shared) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = Nodelocal_shared
Source_Files {
@@ -42,8 +38,7 @@ project(Nodelocal Shared) : aceexe {
}
}
-project(Nodelocal Shared Reader) : aceexe {
- avoids += ace_for_tao
+project(Nodelocal Shared Reader) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = Nodelocal_shared_reader
Source_Files {
diff --git a/ACE/examples/APG/Proactor/proactor.mpc b/ACE/examples/APG/Proactor/proactor.mpc
index 85ef950ae66..b6370fdc4c4 100644
--- a/ACE/examples/APG/Proactor/proactor.mpc
+++ b/ACE/examples/APG/Proactor/proactor.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(HA Proactive Status) : aceexe {
- avoids += ace_for_tao
+project(HA Proactive Status) : aceexe, avoids_ace_for_tao {
exename = HA_Proactive_Status
Source_Files {
HA_Proactive_Status.cpp
diff --git a/ACE/examples/APG/Processes/processes.mpc b/ACE/examples/APG/Processes/processes.mpc
index a7cb01040bb..ccc40de827f 100644
--- a/ACE/examples/APG/Processes/processes.mpc
+++ b/ACE/examples/APG/Processes/processes.mpc
@@ -1,32 +1,28 @@
// -*- MPC -*-
// $Id$
-project(Process Manager Death) : aceexe {
- avoids += ace_for_tao
+project(Process Manager Death) : aceexe, avoids_ace_for_tao {
exename = Process_Manager_Death
Source_Files {
Process_Manager_Death.cpp
}
}
-project(Process Manager Spawn) : aceexe {
- avoids += ace_for_tao
+project(Process Manager Spawn) : aceexe, avoids_ace_for_tao {
exename = Process_Manager_Spawn
Source_Files {
Process_Manager_Spawn.cpp
}
}
-project(Process Mutex) : aceexe {
- avoids += ace_for_tao
+project(Process Mutex) : aceexe, avoids_ace_for_tao {
exename = Process_Mutex
Source_Files {
Process_Mutex.cpp
}
}
-project(Spawn) : aceexe {
- avoids += ace_for_tao
+project(Spawn) : aceexe, avoids_ace_for_tao {
exename = Spawn
Source_Files {
Spawn.cpp
diff --git a/ACE/examples/APG/Shared_Memory/shared_memory.mpc b/ACE/examples/APG/Shared_Memory/shared_memory.mpc
index 2cf2400ef8e..234fe033297 100644
--- a/ACE/examples/APG/Shared_Memory/shared_memory.mpc
+++ b/ACE/examples/APG/Shared_Memory/shared_memory.mpc
@@ -1,40 +1,35 @@
// -*- MPC -*-
// $Id$
-project(*Hash Map) : aceexe {
- avoids += ace_for_tao
+project(*Hash Map) : aceexe, avoids_ace_for_tao {
exename = Hash_Map
Source_Files {
Hash_Map.cpp
}
}
-project(Malloc) : aceexe {
- avoids += ace_for_tao
+project(Malloc) : aceexe, avoids_ace_for_tao {
exename = Malloc
Source_Files {
Malloc.cpp
}
}
-project(Mem Map) : aceexe {
- avoids += ace_for_tao
+project(Mem Map) : aceexe, avoids_ace_for_tao {
exename = Mem_Map
Source_Files {
Mem_Map.cpp
}
}
-project(PI Malloc) : aceexe {
- avoids += ace_for_tao
+project(PI Malloc) : aceexe, avoids_ace_for_tao {
exename = PI_Malloc
Source_Files {
PI_Malloc.cpp
}
}
-project(Pool Growth) : aceexe {
- avoids += ace_for_tao
+project(Pool Growth) : aceexe, avoids_ace_for_tao {
exename = Pool_Growth
Source_Files {
Pool_Growth.cpp
diff --git a/ACE/examples/APG/Streams/streams.mpc b/ACE/examples/APG/Streams/streams.mpc
index 6756a1bb877..588bdc0dd27 100644
--- a/ACE/examples/APG/Streams/streams.mpc
+++ b/ACE/examples/APG/Streams/streams.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(Answerer) : aceexe, threads {
- avoids += ace_for_tao
+project(Answerer) : aceexe, threads, avoids_ace_for_tao {
exename = Answerer
Source_Files {
Answerer.cpp
diff --git a/ACE/examples/APG/Svc_Config/svc_config.mpc b/ACE/examples/APG/Svc_Config/svc_config.mpc
index ddc33b97c53..cc156a940cb 100644
--- a/ACE/examples/APG/Svc_Config/svc_config.mpc
+++ b/ACE/examples/APG/Svc_Config/svc_config.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*HA Status) : acelib {
- avoids += ace_for_tao
+project(*HA Status) : acelib, avoids_ace_for_tao {
sharedname = HA_Status
dynamicflags = HASTATUS_BUILD_DLL
Source_Files {
@@ -10,16 +9,14 @@ project(*HA Status) : acelib {
}
}
-project(HA Configurable Server Dynamic) : aceexe {
- avoids += ace_for_tao
+project(HA Configurable Server Dynamic) : aceexe, avoids_ace_for_tao {
exename = HA_Configurable_Server_Dynamic
Source_Files {
HA_Configurable_Server_Dynamic.cpp
}
}
-project(HA Configurable Server Static) : aceexe {
- avoids += ace_for_tao
+project(HA Configurable Server Static) : aceexe, avoids_ace_for_tao {
exename = HA_Configurable_Server_Static
Source_Files {
HA_Configurable_Server_Static.cpp
diff --git a/ACE/examples/APG/ThreadPools/threadpools.mpc b/ACE/examples/APG/ThreadPools/threadpools.mpc
index 1bb9a860920..f1f1345db00 100644
--- a/ACE/examples/APG/ThreadPools/threadpools.mpc
+++ b/ACE/examples/APG/ThreadPools/threadpools.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(Futures) : aceexe {
- avoids += ace_for_tao
+project(Futures) : aceexe, avoids_ace_for_tao {
exename = Futures
Source_Files {
Futures.cpp
diff --git a/ACE/examples/APG/ThreadSafety/threadsafety.mpc b/ACE/examples/APG/ThreadSafety/threadsafety.mpc
index 3598d274917..97967989572 100644
--- a/ACE/examples/APG/ThreadSafety/threadsafety.mpc
+++ b/ACE/examples/APG/ThreadSafety/threadsafety.mpc
@@ -22,16 +22,14 @@ project(Mutex) : aceexe {
}
}
-project(RW Lock) : aceexe {
- avoids += ace_for_tao
+project(RW Lock) : aceexe, avoids_ace_for_tao {
exename = RW_Lock
Source_Files {
RW_Lock.cpp
}
}
-project(Semaphore) : aceexe {
- avoids += ace_for_tao
+project(Semaphore) : aceexe, avoids_ace_for_tao {
exename = Semaphore
Source_Files {
Semaphore.cpp
diff --git a/ACE/examples/ASX/Event_Server/Event_Server/Event.mpc b/ACE/examples/ASX/Event_Server/Event_Server/Event.mpc
index f99e912ce04..7503fec4763 100644
--- a/ACE/examples/ASX/Event_Server/Event_Server/Event.mpc
+++ b/ACE/examples/ASX/Event_Server/Event_Server/Event.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*Server) : aceexe {
- avoids += ace_for_tao
+project(*Server) : aceexe, avoids_ace_for_tao {
exename = Event_Server
Source_Files {
Consumer_Router.cpp
diff --git a/ACE/examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc b/ACE/examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc
index a4c93dc1fdb..a4c4334fc31 100644
--- a/ACE/examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc
+++ b/ACE/examples/ASX/UPIPE_Event_Server/UPIPE_Event.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*Server) : aceexe {
- avoids += ace_for_tao
+project(*Server) : aceexe, avoids_ace_for_tao {
exename = UPIPE_Event_Server
Source_Files {
Consumer_Router.cpp
diff --git a/ACE/examples/C++NPv1/C++NPv1.mpc b/ACE/examples/C++NPv1/C++NPv1.mpc
index 2cc6967e831..5d5a8fb55f1 100644
--- a/ACE/examples/C++NPv1/C++NPv1.mpc
+++ b/ACE/examples/C++NPv1/C++NPv1.mpc
@@ -1,8 +1,8 @@
// -*- MPC -*-
// $Id$
-project(*Iterative_Logging_Server) : aceexe {
- avoids += uses_wchar ace_for_tao
+project(*Iterative_Logging_Server) : aceexe, avoids_ace_for_tao {
+ avoids += uses_wchar
exename = iterative_logging_server
Source_Files {
Iterative_Logging_Server.cpp
@@ -19,8 +19,8 @@ project(*Logging_Client) : aceexe {
}
}
-project(*PPC_Logging_Server) : aceexe {
- avoids += uses_wchar ace_for_tao
+project(*PPC_Logging_Server) : aceexe, avoids_ace_for_tao {
+ avoids += uses_wchar
exename = ppc_logging_server
Source_Files {
Process_Per_Connection_Logging_Server.cpp
@@ -29,8 +29,8 @@ project(*PPC_Logging_Server) : aceexe {
}
}
-project(*Reactive_Logging_Server) : aceexe {
- avoids += uses_wchar ace_for_tao
+project(*Reactive_Logging_Server) : aceexe, avoids_ace_for_tao {
+ avoids += uses_wchar
exename = reactive_logging_server
Source_Files {
Reactive_Logging_Server.cpp
@@ -39,8 +39,8 @@ project(*Reactive_Logging_Server) : aceexe {
}
}
-project(*Reactive_Logging_Server_Ex) : aceexe {
- avoids += uses_wchar ace_for_tao
+project(*Reactive_Logging_Server_Ex) : aceexe, avoids_ace_for_tao {
+ avoids += uses_wchar
exename = reactive_logging_server_ex
Source_Files {
Reactive_Logging_Server_Ex.cpp
@@ -49,8 +49,8 @@ project(*Reactive_Logging_Server_Ex) : aceexe {
}
}
-project(*RTTPC_Logging_Server) : aceexe {
- avoids += uses_wchar ace_for_tao
+project(*RTTPC_Logging_Server) : aceexe, avoids_ace_for_tao {
+ avoids += uses_wchar
exename = RTTPC_logging_server
Source_Files {
RT_Thread_Per_Connection_Logging_Server.cpp
@@ -59,8 +59,8 @@ project(*RTTPC_Logging_Server) : aceexe {
}
}
-project(*TPC_Logging_Server) : aceexe {
- avoids += uses_wchar ace_for_tao
+project(*TPC_Logging_Server) : aceexe, avoids_ace_for_tao {
+ avoids += uses_wchar
exename = tpc_logging_server
Source_Files {
Thread_Per_Connection_Logging_Server.cpp
diff --git a/ACE/examples/C++NPv2/C++NPv2.mpc b/ACE/examples/C++NPv2/C++NPv2.mpc
index c392cb358e2..dc83c833224 100644
--- a/ACE/examples/C++NPv2/C++NPv2.mpc
+++ b/ACE/examples/C++NPv2/C++NPv2.mpc
@@ -98,8 +98,8 @@ project(*SLD) : acelib, avoids_ace_for_tao {
}
}
-project(*SLDex) : acelib {
- avoids += uses_wchar ace_for_tao
+project(*SLDex) : acelib, avoids_ace_for_tao {
+ avoids += uses_wchar
sharedname = SLDex
dynamicflags = SLDEX_BUILD_DLL
specific(gnuace) {
@@ -123,8 +123,8 @@ project(*SR_Configurable_Log_Server) : aceexe {
}
}
-project(*TP_Reactor_Log_Server) : aceexe {
- avoids += uses_wchar ace_for_tao
+project(*TP_Reactor_Log_Server) : aceexe, avoids_ace_for_tao {
+ avoids += uses_wchar
exename = tp_reactor_logging_server
specific(gnuace) {
after += *Reactor_Log_Server
@@ -151,8 +151,8 @@ project(*TPCLS) : acelib, ssl {
}
}
-project(*TPLS) : acelib {
- avoids += uses_wchar ace_for_tao
+project(*TPLS) : acelib, avoids_ace_for_tao {
+ avoids += uses_wchar
sharedname = TPLS
dynamicflags = TPLS_BUILD_DLL
specific(gnuace) {
@@ -166,8 +166,8 @@ project(*TPLS) : acelib {
}
}
-project(*WFMO_Reactor_Log_Server) : aceexe, wfmo {
- avoids += uses_wchar ace_for_tao
+project(*WFMO_Reactor_Log_Server) : aceexe, wfmo, avoids_ace_for_tao {
+ avoids += uses_wchar
exename = wfmo_reactor_logging_server
specific(gnuace) {
after += *Reactor_Log_Server
diff --git a/ACE/examples/Connection/blocking/Connection_Blocking.mpc b/ACE/examples/Connection/blocking/Connection_Blocking.mpc
index 758e2bfbf95..164e1dd34d0 100644
--- a/ACE/examples/Connection/blocking/Connection_Blocking.mpc
+++ b/ACE/examples/Connection/blocking/Connection_Blocking.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*acceptor) : aceexe {
- avoids += ace_for_tao
+project(*acceptor) : aceexe, avoids_ace_for_tao {
exename = acceptor
Source_Files {
SPIPE-acceptor.cpp
@@ -10,8 +9,7 @@ project(*acceptor) : aceexe {
}
}
-project(*connector) : aceexe {
- avoids += ace_for_tao
+project(*connector) : aceexe, avoids_ace_for_tao {
exename = connector
Source_Files {
SPIPE-connector.cpp
diff --git a/ACE/examples/Connection/misc/Connection_Misc.mpc b/ACE/examples/Connection/misc/Connection_Misc.mpc
index a960e604338..f58a648e27a 100644
--- a/ACE/examples/Connection/misc/Connection_Misc.mpc
+++ b/ACE/examples/Connection/misc/Connection_Misc.mpc
@@ -8,8 +8,7 @@ project (*Handler) : aceexe {
}
}
-project (*test_upipe) : aceexe {
- avoids += ace_for_tao
+project (*test_upipe) : aceexe, avoids_ace_for_tao {
exename = test_upipe
Source_Files {
test_upipe.cpp
diff --git a/ACE/examples/Connection/non_blocking/Connection_Non_Blocking.mpc b/ACE/examples/Connection/non_blocking/Connection_Non_Blocking.mpc
index de9ecaea5e0..b6da5bde1a1 100644
--- a/ACE/examples/Connection/non_blocking/Connection_Non_Blocking.mpc
+++ b/ACE/examples/Connection/non_blocking/Connection_Non_Blocking.mpc
@@ -17,8 +17,7 @@ project (*SockServer) : aceexe {
}
}
-project (*LSockClient) : aceexe {
- avoids += ace_for_tao
+project (*LSockClient) : aceexe, avoids_ace_for_tao {
exename = lsock_client
Source_Files {
CPP-connector.cpp
@@ -26,8 +25,7 @@ project (*LSockClient) : aceexe {
}
}
-project (*LSockServer) : aceexe {
- avoids += ace_for_tao
+project (*LSockServer) : aceexe, avoids_ace_for_tao {
exename = lsock_server
Source_Files {
CPP-acceptor.cpp
diff --git a/ACE/examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc b/ACE/examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc
index a6535c82e82..439f4777409 100644
--- a/ACE/examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc
+++ b/ACE/examples/IPC_SAP/DEV_SAP/reader/dev_sap_reader.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project : aceexe {
- avoids += ace_for_tao
+project : aceexe, avoids_ace_for_tao {
exename = reader
Source_Files {
reader.cpp
diff --git a/ACE/examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc b/ACE/examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc
index 75486584b6d..e7774f140bd 100644
--- a/ACE/examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc
+++ b/ACE/examples/IPC_SAP/DEV_SAP/writer/dev_sap_writer.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project : aceexe {
- avoids += ace_for_tao
+project : aceexe, avoids_ace_for_tao {
exename = writer
Source_Files {
writer.cpp
diff --git a/ACE/examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc b/ACE/examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc
index 1e6d04447e5..5a144621b09 100644
--- a/ACE/examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc
+++ b/ACE/examples/IPC_SAP/FIFO_SAP/fifo_sap.mpc
@@ -1,16 +1,14 @@
// -*- MPC -*-
// $Id$
-project(*client) : aceexe {
- avoids += ace_for_tao
+project(*client) : aceexe, avoids_ace_for_tao {
exename = FIFO-client
Source_Files {
FIFO-client.cpp
}
}
-project(*server) : aceexe {
- avoids += ace_for_tao
+project(*server) : aceexe, avoids_ace_for_tao {
exename = FIFO-server
Source_Files {
FIFO-server.cpp
@@ -31,8 +29,7 @@ project(*Msg_Server) : aceexe {
}
}
-project(*test) : aceexe {
- avoids += ace_for_tao
+project(*test) : aceexe, avoids_ace_for_tao {
exename = FIFO-test
Source_Files {
FIFO-test.cpp
diff --git a/ACE/examples/IPC_SAP/FILE_SAP/file_sap_client.mpc b/ACE/examples/IPC_SAP/FILE_SAP/file_sap_client.mpc
index 24f9a2b3a61..f47f7a7c7d7 100644
--- a/ACE/examples/IPC_SAP/FILE_SAP/file_sap_client.mpc
+++ b/ACE/examples/IPC_SAP/FILE_SAP/file_sap_client.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project : aceexe {
- avoids += ace_for_tao
+project : aceexe, avoids_ace_for_tao {
exename = client
Source_Files {
client.cpp
diff --git a/ACE/examples/IPC_SAP/SOCK_SAP/sock_sap.mpc b/ACE/examples/IPC_SAP/SOCK_SAP/sock_sap.mpc
index e2081ed7652..b7fb2b66f46 100644
--- a/ACE/examples/IPC_SAP/SOCK_SAP/sock_sap.mpc
+++ b/ACE/examples/IPC_SAP/SOCK_SAP/sock_sap.mpc
@@ -23,48 +23,42 @@ project(*CPP_inclient) : aceexe {
}
}
-project(*CPP_inserver) : aceexe {
- avoids += ace_for_tao
+project(*CPP_inserver) : aceexe, avoids_ace_for_tao {
exename = CPP-inserver
Source_Files {
CPP-inserver.cpp
}
}
-project(*CPP_memclient) : aceexe {
- avoids += ace_for_tao
+project(*CPP_memclient) : aceexe, avoids_ace_for_tao {
exename = CPP-memclient
Source_Files {
CPP-memclient.cpp
}
}
-project(*CPP_memserver) : aceexe {
- avoids += ace_for_tao
+project(*CPP_memserver) : aceexe, avoids_ace_for_tao {
exename = CPP-memserver
Source_Files {
CPP-memserver.cpp
}
}
-project(*FD_unclient) : aceexe {
- avoids += ace_for_tao
+project(*FD_unclient) : aceexe, avoids_ace_for_tao {
exename = FD-unclient
Source_Files {
FD-unclient.cpp
}
}
-project(*CPP_unclient) : aceexe {
- avoids += ace_for_tao
+project(*CPP_unclient) : aceexe, avoids_ace_for_tao {
exename = CPP-unclient
Source_Files {
CPP-unclient.cpp
}
}
-project(*CPP_unserver) : aceexe {
- avoids += ace_for_tao
+project(*CPP_unserver) : aceexe, avoids_ace_for_tao {
exename = CPP-unserver
Source_Files {
CPP-unserver.cpp
diff --git a/ACE/examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc b/ACE/examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc
index f67fdb7c2a0..4096e4960fe 100644
--- a/ACE/examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc
+++ b/ACE/examples/IPC_SAP/SSL_SAP/SSL_SAP.mpc
@@ -1,48 +1,42 @@
// -*- MPC -*-
// $Id$
-project(*client) : aceexe, ssl {
- avoids += ace_for_tao
+project(*client) : aceexe, ssl, avoids_ace_for_tao {
exename = client
Source_Files {
SSL-client.cpp
}
}
-project(*client_simple) : aceexe, ssl {
- avoids += ace_for_tao
+project(*client_simple) : aceexe, ssl, avoids_ace_for_tao {
exename = client-simple
Source_Files {
SSL-client-simple.cpp
}
}
-project(*server) : aceexe, ssl {
- avoids += ace_for_tao
+project(*server) : aceexe, ssl, avoids_ace_for_tao {
exename = server
Source_Files {
SSL-server.cpp
}
}
-project(*server_fancy) : aceexe, ssl {
- avoids += ace_for_tao
+project(*server_fancy) : aceexe, ssl, avoids_ace_for_tao {
exename = server-fancy
Source_Files {
SSL-server-fancy.cpp
}
}
-project(*server_poll) : aceexe, ssl {
- avoids += ace_for_tao
+project(*server_poll) : aceexe, ssl, avoids_ace_for_tao {
exename = server-poll
Source_Files {
SSL-server-poll.cpp
}
}
-project(*server_simple) : aceexe, ssl {
- avoids += ace_for_tao
+project(*server_simple) : aceexe, ssl, avoids_ace_for_tao {
exename = server-simple
Source_Files {
SSL-server-simple.cpp
diff --git a/ACE/examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc b/ACE/examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc
index d34d8671735..65e65655203 100644
--- a/ACE/examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc
+++ b/ACE/examples/IPC_SAP/UPIPE_SAP/UPIPE_SAP.mpc
@@ -1,24 +1,21 @@
// -*- MPC -*-
// $Id$
-project(*ex1) : aceexe {
- avoids += ace_for_tao
+project(*ex1) : aceexe, avoids_ace_for_tao {
exename = ex1
Source_Files {
ex1.cpp
}
}
-project(*ex2) : aceexe {
- avoids += ace_for_tao
+project(*ex2) : aceexe, avoids_ace_for_tao {
exename = ex2
Source_Files {
ex2.cpp
}
}
-project(*ex3) : aceexe {
- avoids += ace_for_tao
+project(*ex3) : aceexe, avoids_ace_for_tao {
exename = ex3
Source_Files {
ex3.cpp
diff --git a/ACE/examples/Mem_Map/IO-tests/IO_Test.cpp b/ACE/examples/Mem_Map/IO-tests/IO_Test.cpp
index 58b96e2f660..2628dd2f9de 100644
--- a/ACE/examples/Mem_Map/IO-tests/IO_Test.cpp
+++ b/ACE/examples/Mem_Map/IO-tests/IO_Test.cpp
@@ -1,6 +1,6 @@
// $Id$
-#if !defined(_WIN32)
+#if !defined(_WIN32)
#include "ace/OS_NS_string.h"
#include "ace/OS_NS_unistd.h"
@@ -35,13 +35,13 @@ Slow_Read_Write_Test::Slow_Read_Write_Test (const char *name,
{
}
-int
+int
Slow_Read_Write_Test::run_test (int iterations,
FILE *input_fp,
FILE *output_fp)
{
- ACE_HANDLE ifd = fileno (input_fp);
- ACE_HANDLE ofd = fileno (output_fp);
+ ACE_HANDLE ifd = ACE_OS::fileno (input_fp);
+ ACE_HANDLE ofd = ACE_OS::fileno (output_fp);
this->tm_.start ();
@@ -58,7 +58,7 @@ Slow_Read_Write_Test::run_test (int iterations,
this->tm_.stop ();
return 0;
-}
+}
Stdio_Test::Stdio_Test (const char *name,
ACE_Profile_Timer &tm)
@@ -66,7 +66,7 @@ Stdio_Test::Stdio_Test (const char *name,
{
}
-int
+int
Stdio_Test::run_test (int iterations,
FILE *input_fp,
FILE *output_fp)
@@ -85,7 +85,7 @@ Stdio_Test::run_test (int iterations,
}
this->tm_.stop ();
return 0;
-}
+}
Block_Read_Write_Test::Block_Read_Write_Test (const char *name,
ACE_Profile_Timer &tm)
@@ -93,13 +93,13 @@ Block_Read_Write_Test::Block_Read_Write_Test (const char *name,
{
}
-int
+int
Block_Read_Write_Test::run_test (int iterations,
FILE *input_fp,
FILE *output_fp)
{
- int ifd = fileno (input_fp);
- int ofd = fileno (output_fp);
+ ACE_HANDLE ifd = ACE_OS::fileno (input_fp);
+ ACE_HANDLE ofd = ACE_OS::fileno (output_fp);
this->tm_.start ();
@@ -119,7 +119,7 @@ Block_Read_Write_Test::run_test (int iterations,
this->tm_.stop ();
return 0;
-}
+}
Block_Fread_Fwrite_Test::Block_Fread_Fwrite_Test (const char *name,
ACE_Profile_Timer &tm)
@@ -127,7 +127,7 @@ Block_Fread_Fwrite_Test::Block_Fread_Fwrite_Test (const char *name,
{
}
-int
+int
Block_Fread_Fwrite_Test::run_test (int iterations,
FILE *input_fp,
FILE *output_fp)
@@ -151,7 +151,7 @@ Block_Fread_Fwrite_Test::run_test (int iterations,
this->tm_.stop ();
return 0;
-}
+}
Mmap1_Test::Mmap1_Test (const char *name,
ACE_Profile_Timer &tm)
@@ -159,12 +159,12 @@ Mmap1_Test::Mmap1_Test (const char *name,
{
}
-int
+int
Mmap1_Test::run_test (int iterations,
FILE *input_fp,
FILE *output_fp)
{
- ACE_Mem_Map map_input (fileno (input_fp));
+ ACE_Mem_Map map_input (ACE_OS::fileno (input_fp));
void *src = map_input.addr ();
if (src == MAP_FAILED)
@@ -175,21 +175,21 @@ Mmap1_Test::run_test (int iterations,
while (--iterations >= 0)
{
- if (ACE_OS::write (fileno (output_fp),
+ if (ACE_OS::write (ACE_OS::fileno (output_fp),
src,
map_input.size ()) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%C"),
this->name ()),
-1);
- ACE_OS::lseek (fileno (output_fp),
+ ACE_OS::lseek (ACE_OS::fileno (output_fp),
0,
SEEK_SET);
}
this->tm_.stop ();
}
-
+
if (map_input.unmap () == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%C"),
@@ -197,7 +197,7 @@ Mmap1_Test::run_test (int iterations,
-1);
else
return 0;
-}
+}
Mmap2_Test::Mmap2_Test (const char *name,
ACE_Profile_Timer &tm)
@@ -205,14 +205,14 @@ Mmap2_Test::Mmap2_Test (const char *name,
{
}
-int
+int
Mmap2_Test::run_test (int iterations,
FILE *input_fp,
FILE *output_fp)
{
- ACE_Mem_Map map_input (fileno (input_fp));
+ ACE_Mem_Map map_input (ACE_OS::fileno (input_fp));
int size = map_input.size ();
- ACE_Mem_Map map_output (fileno (output_fp),
+ ACE_Mem_Map map_output (ACE_OS::fileno (output_fp),
size,
PROT_WRITE,
MAP_SHARED);
@@ -230,11 +230,11 @@ Mmap2_Test::run_test (int iterations,
this->tm_.stop ();
}
-
- if (map_input.unmap () == -1
+
+ if (map_input.unmap () == -1
|| map_output.unmap () == -1)
return -1;
else
return 0;
-}
+}
#endif
diff --git a/ACE/examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc b/ACE/examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc
index 4066ccc2613..33b661b229d 100644
--- a/ACE/examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc
+++ b/ACE/examples/Mem_Map/IO-tests/Mem_Map_IO_Tests.mpc
@@ -1,7 +1,6 @@
// -*- MPC -*-
// $Id$
-project : aceexe {
+project : aceexe, avoids_ace_for_tao {
exename = test_io
- avoids += ace_for_tao
}
diff --git a/ACE/examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc b/ACE/examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc
index 368866edb73..9d07999c33b 100644
--- a/ACE/examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc
+++ b/ACE/examples/Mem_Map/file-reverse/Mem_Map_File_Reverse.mpc
@@ -1,7 +1,6 @@
// -*- MPC -*-
// $Id$
-project : aceexe {
- avoids += ace_for_tao
+project : aceexe, avoids_ace_for_tao {
exename = file-reverse
}
diff --git a/ACE/examples/Misc/Misc.mpc b/ACE/examples/Misc/Misc.mpc
index 84be1f4d1e6..68eeb0b5a2e 100644
--- a/ACE/examples/Misc/Misc.mpc
+++ b/ACE/examples/Misc/Misc.mpc
@@ -15,8 +15,7 @@ project(*test_get_opt) : aceexe {
}
}
-project(*test_profile_timer) : aceexe {
- avoids += ace_for_tao
+project(*test_profile_timer) : aceexe, avoids_ace_for_tao {
exename = test_profile_timer
Source_Files {
test_profile_timer.cpp
diff --git a/ACE/examples/Naming/Naming.mpc b/ACE/examples/Naming/Naming.mpc
index 0738944434f..760a8021f36 100644
--- a/ACE/examples/Naming/Naming.mpc
+++ b/ACE/examples/Naming/Naming.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*multiple_contexts) : aceexe {
- avoids += ace_for_tao
+project(*multiple_contexts) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = multiple_contexts
Source_Files {
@@ -10,8 +9,7 @@ project(*multiple_contexts) : aceexe {
}
}
-project(*non_existent) : aceexe {
- avoids += ace_for_tao
+project(*non_existent) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = non_existent
Source_Files {
@@ -19,8 +17,7 @@ project(*non_existent) : aceexe {
}
}
-project(*writers) : aceexe {
- avoids += ace_for_tao
+project(*writers) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = writers
Source_Files {
@@ -28,8 +25,7 @@ project(*writers) : aceexe {
}
}
-project(*open) : aceexe {
- avoids += ace_for_tao
+project(*open) : aceexe, avoids_ace_for_tao {
requires += ace_other
exename = open
Source_Files {
diff --git a/ACE/examples/OS/Process/OS_Process.mpc b/ACE/examples/OS/Process/OS_Process.mpc
index ea2e08ec454..433efdf7877 100644
--- a/ACE/examples/OS/Process/OS_Process.mpc
+++ b/ACE/examples/OS/Process/OS_Process.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*imore) : aceexe {
- avoids += ace_for_tao
+project(*imore) : aceexe, avoids_ace_for_tao {
exename = imore
Source_Files {
imore.cpp
diff --git a/ACE/examples/OS/Process/imore.cpp b/ACE/examples/OS/Process/imore.cpp
index e6c672d949f..04b6cbfb392 100644
--- a/ACE/examples/OS/Process/imore.cpp
+++ b/ACE/examples/OS/Process/imore.cpp
@@ -38,8 +38,6 @@ ACE_RCSID(Process, imore, "$Id$")
#if defined (ACE_WIN32)
static const ACE_TCHAR *executable = ACE_TEXT("MORE.COM");
-static const ACE_TCHAR *rendezvous_dir = ACE_TEXT("c:/temp");
-static const ACE_TCHAR *rendezvous_pfx = ACE_TEXT("imore");
#else
static const char * executable = "more"; // I like less better.
static const ACE_TCHAR *rendezvous_dir = ACE_TEXT("/tmp");
@@ -94,6 +92,7 @@ parse_args (int argc, ACE_TCHAR **argv)
return 0;
}
+#if !defined (ACE_WIN32)
static int
setup_named_pipes (ACE_Process_Options &opt)
{
@@ -142,7 +141,9 @@ setup_named_pipes (ACE_Process_Options &opt)
wfifo.close ();
return 0;
}
+#endif
+#if !defined (ACE_WIN32)
static int
setup_unnamed_pipe (ACE_Process_Options &opt)
{
@@ -169,7 +170,9 @@ setup_unnamed_pipe (ACE_Process_Options &opt)
pipe.close ();
return 0;
}
+#endif
+#if !defined (ACE_WIN32)
static int
print_file (ACE_HANDLE infd)
{
@@ -193,9 +196,10 @@ print_file (ACE_HANDLE infd)
}
}
}
-
+
return 0;
}
+#endif
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
diff --git a/ACE/examples/OS/Process/process.cpp b/ACE/examples/OS/Process/process.cpp
index 89d32881243..7187338dd5d 100644
--- a/ACE/examples/OS/Process/process.cpp
+++ b/ACE/examples/OS/Process/process.cpp
@@ -29,6 +29,7 @@
#include "ace/Time_Value.h"
#include "ace/SString.h"
#include "ace/Truncate.h"
+#include "ace/Tokenizer_T.h"
ACE_RCSID(Process, process, "$Id$")
diff --git a/ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp b/ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp
index 7688bc34373..bc8e7860593 100644
--- a/ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp
+++ b/ACE/examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp
@@ -167,7 +167,7 @@ Sender_QoS_Event_Handler::handle_qos (ACE_HANDLE)
25,
1)))
{
- case 1 :
+ case 1 :
ACE_ERROR_RETURN ((LM_ERROR,
"Unable to bind the new flow spec\n"
"The Flow Spec name already exists\n"),
diff --git a/ACE/examples/QOS/Diffserv/QOS_Diffserv.mpc b/ACE/examples/QOS/Diffserv/QOS_Diffserv.mpc
index 3e66fbee34a..39f5272ad55 100644
--- a/ACE/examples/QOS/Diffserv/QOS_Diffserv.mpc
+++ b/ACE/examples/QOS/Diffserv/QOS_Diffserv.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*client) : aceexe, qos {
- avoids += ace_for_tao
+project(*client) : aceexe, qos, avoids_ace_for_tao {
exename = client
requires += qos
Source_Files {
diff --git a/ACE/examples/Reactor/Dgram/Reactor_Dgram.mpc b/ACE/examples/Reactor/Dgram/Reactor_Dgram.mpc
index 1040aedc184..64342526293 100644
--- a/ACE/examples/Reactor/Dgram/Reactor_Dgram.mpc
+++ b/ACE/examples/Reactor/Dgram/Reactor_Dgram.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*CO) : aceexe {
- avoids += ace_for_tao
+project(*CO) : aceexe, avoids_ace_for_tao {
exename = codgram
Source_Files {
CODgram.cpp
diff --git a/ACE/examples/Reactor/FIFO/Reactor_FIFO.mpc b/ACE/examples/Reactor/FIFO/Reactor_FIFO.mpc
index 072ec5412b8..911c66f64ad 100644
--- a/ACE/examples/Reactor/FIFO/Reactor_FIFO.mpc
+++ b/ACE/examples/Reactor/FIFO/Reactor_FIFO.mpc
@@ -1,16 +1,14 @@
// -*- MPC -*-
// $Id$
-project(*client) : aceexe {
- avoids += ace_for_tao
+project(*client) : aceexe, avoids_ace_for_tao {
exename = client
Source_Files {
client.cpp
}
}
-project(*server) : aceexe {
- avoids += ace_for_tao
+project(*server) : aceexe, avoids_ace_for_tao {
exename = server
Source_Files {
server.cpp
diff --git a/ACE/examples/Reactor/Proactor/Proactor.mpc b/ACE/examples/Reactor/Proactor/Proactor.mpc
index edb0736d726..28daf51b485 100644
--- a/ACE/examples/Reactor/Proactor/Proactor.mpc
+++ b/ACE/examples/Reactor/Proactor/Proactor.mpc
@@ -1,72 +1,63 @@
// -*- MPC -*-
// $Id$
-project(*cancel) : aceexe {
- avoids += ace_for_tao
+project(*cancel) : aceexe, avoids_ace_for_tao {
exename = test_cancel
Source_Files {
test_cancel.cpp
}
}
-project(*end_event_loops) : aceexe {
- avoids += ace_for_tao
+project(*end_event_loops) : aceexe, avoids_ace_for_tao {
exename = test_end_event_loop
Source_Files {
test_end_event_loop.cpp
}
}
-project(*multiple_loops) : aceexe {
- avoids += ace_for_tao
+project(*multiple_loops) : aceexe, avoids_ace_for_tao {
exename = test_multiple_loops
Source_Files {
test_multiple_loops.cpp
}
}
-project(*post_completions) : aceexe {
- avoids += ace_for_tao
+project(*post_completions) : aceexe, avoids_ace_for_tao {
exename = test_post_completions
Source_Files {
post_completions.cpp
}
}
-project(*proactor) : aceexe {
- avoids += ace_for_tao
+project(*proactor) : aceexe, avoids_ace_for_tao {
exename = test_proactor
Source_Files {
test_proactor.cpp
}
}
-// project(*proactor2) : aceexe {
-// avoids += ace_for_tao
+// project(*proactor2) : aceexe, avoids_ace_for_tao {
// exename = test_proactor2
// Source_Files {
// test_proactor2.cpp
// }
// }
-// project(*proactor3) : aceexe {
-// avoids += ace_for_tao
+// project(*proactor3) : aceexe, avoids_ace_for_tao {
// exename = test_proactor3
// Source_Files {
// test_proactor3.cpp
// }
// }
-project(*timeout) : aceexe {
- avoids += ace_for_tao
+project(*timeout) : aceexe, avoids_ace_for_tao {
exename = test_timeout
Source_Files {
test_timeout.cpp
}
}
-project(*udp_proactor) : aceexe {
- avoids += ace_for_tao
+project(*udp_proactor) : aceexe, avoids_ace_for_tao {
exename = test_udp_proactor
Source_Files {
test_udp_proactor.cpp
diff --git a/ACE/examples/Reactor/TP_Reactor/AcceptHandler.cpp b/ACE/examples/Reactor/TP_Reactor/AcceptHandler.cpp
index 4ca0e6ac71b..40bda74f4da 100644
--- a/ACE/examples/Reactor/TP_Reactor/AcceptHandler.cpp
+++ b/ACE/examples/Reactor/TP_Reactor/AcceptHandler.cpp
@@ -35,19 +35,19 @@ int AcceptHandler::open(void) {
// open a port using the acceptor; reuse the address later
if (mAcceptor.open(addr, 1) == -1)
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l: Failed to open ")
- ACE_TEXT ("listening socket. (errno = %i: %m)\n"), errno), -1);
+ ACE_TEXT ("listening socket. (errno = %i: %m)\n"), ACE_ERRNO_GET), -1);
// register the handler with the reactor
if (mReactor->register_handler(this,
ACE_Event_Handler::ACCEPT_MASK) == -1) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to register accept ")
- ACE_TEXT ("handler. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("handler. (errno = %i: %m)\n"), ACE_ERRNO_GET));
// don't leave the acceptor open
if (mAcceptor.close() == -1)
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to close the socket ")
ACE_TEXT ("after previous error. (errno = %i: %m)\n"),
- errno));
+ ACE_ERRNO_GET));
return -1;
}
@@ -69,7 +69,7 @@ int AcceptHandler::handle_input(ACE_HANDLE) {
ACE_NEW_NORETURN (reader, ReadHandler());
if (reader == 0)
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l: Failed to allocate ")
- ACE_TEXT ("reader. (errno = %i: %m)\n"), errno), -1);
+ ACE_TEXT ("reader. (errno = %i: %m)\n"), ACE_ERRNO_GET), -1);
// put reader in an auto pointer so we can use ACE_ERROR_RETURN safely
auto_ptr<ReadHandler> pReader(reader);
@@ -77,13 +77,13 @@ int AcceptHandler::handle_input(ACE_HANDLE) {
// accept the connection using the reader's stream
if (mAcceptor.accept(reader->getStream(), &clientAddr) == -1)
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l: Failed to accept ")
- ACE_TEXT ("client connection. (errno = %i: %m)\n"), errno), -1);
+ ACE_TEXT ("client connection. (errno = %i: %m)\n"), ACE_ERRNO_GET), -1);
// register the reader with the reactor
if (mReactor->register_handler(reader,
ACE_Event_Handler::READ_MASK) == -1)
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l: Failed to register ")
- ACE_TEXT ("read handler. (errno = %i: %m)\n"), errno), -1);
+ ACE_TEXT ("read handler. (errno = %i: %m)\n"), ACE_ERRNO_GET), -1);
// from now on the read handler takes care of itself
pReader.release();
@@ -97,7 +97,7 @@ int AcceptHandler::handle_close(ACE_HANDLE, ACE_Reactor_Mask) {
// close the listening socket
if (mAcceptor.close() == -1)
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to close the ")
- ACE_TEXT ("socket. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("socket. (errno = %i: %m)\n"), ACE_ERRNO_GET));
// no need to distinguish between error during close and normal close
// since ACE does not evaluate the return value of handle_close()
diff --git a/ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp b/ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp
index 25b66e05ade..5813476a30e 100644
--- a/ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp
+++ b/ACE/examples/Reactor/TP_Reactor/ReadHandler.cpp
@@ -40,7 +40,7 @@ ReadHandler::~ReadHandler() {
if (mStream.close() == -1)
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to close socket. ")
- ACE_TEXT ("(errno = %i: %m)\n"), errno));
+ ACE_TEXT ("(errno = %i: %m)\n"), ACE_ERRNO_GET));
delete[] mData;
}
@@ -78,7 +78,7 @@ int ReadHandler::handle_input(ACE_HANDLE) {
if (mStream.recv_n(&mDataSize, sizeof(mDataSize),
&connTimeout) != sizeof(mDataSize)) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to receive ")
- ACE_TEXT ("request. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("request. (errno = %i: %m)\n"), ACE_ERRNO_GET));
INVOCATION_RETURN(-1);
}
@@ -101,7 +101,7 @@ int ReadHandler::handle_input(ACE_HANDLE) {
// allocation did not succeed)
if (mStream.send_n(&response, sizeof(response), &connTimeout) != 1) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to send ")
- ACE_TEXT ("response. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("response. (errno = %i: %m)\n"), ACE_ERRNO_GET));
INVOCATION_RETURN(-1);
}
@@ -123,7 +123,7 @@ int ReadHandler::handle_input(ACE_HANDLE) {
// receive the data from the client
if (mStream.recv_n(mData, mDataSize, &connTimeout) != mDataSize) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to receive data.")
- ACE_TEXT ("(errno = %i: %m)\n"), errno));
+ ACE_TEXT ("(errno = %i: %m)\n"), ACE_ERRNO_GET));
INVOCATION_RETURN(-1);
}
@@ -131,7 +131,7 @@ int ReadHandler::handle_input(ACE_HANDLE) {
if (mStream.send_n(&response, 1, &connTimeout) != 1) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to send ")
- ACE_TEXT ("confirmation. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("confirmation. (errno = %i: %m)\n"), ACE_ERRNO_GET));
INVOCATION_RETURN(-1);
}
diff --git a/ACE/examples/Reactor/TP_Reactor/client.cpp b/ACE/examples/Reactor/TP_Reactor/client.cpp
index c7ef4f2e431..5b516266696 100644
--- a/ACE/examples/Reactor/TP_Reactor/client.cpp
+++ b/ACE/examples/Reactor/TP_Reactor/client.cpp
@@ -77,7 +77,7 @@ int ACE_TMAIN(int argc, ACE_TCHAR **argv) {
if (connector.connect(stream, serverAddr) == -1) {
ACE_ERROR((LM_ERROR,
ACE_TEXT("%N:%l: Failed to connect to ")
- ACE_TEXT ("server. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("server. (errno = %i: %m)\n"), ACE_ERRNO_GET));
break;
}
@@ -88,14 +88,14 @@ int ACE_TMAIN(int argc, ACE_TCHAR **argv) {
// platforms (i.e. little-endian/big-endian, data type size)
if (stream.send_n(&size, sizeof(size), &connTimeout) != sizeof(size)) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to send ")
- ACE_TEXT ("request. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("request. (errno = %i: %m)\n"), ACE_ERRNO_GET));
throw 1;
}
// receive the answer
if (stream.recv_n(&answer, sizeof(answer), &connTimeout) != 1) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N: %l: Failed to receive ")
- ACE_TEXT ("1st response. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("1st response. (errno = %i: %m)\n"), ACE_ERRNO_GET));
throw 1;
}
@@ -105,14 +105,14 @@ int ACE_TMAIN(int argc, ACE_TCHAR **argv) {
// send a huge message to the server
if (stream.send_n(someData, size, &connTimeout) != size) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to send ")
- ACE_TEXT ("someData. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("someData. (errno = %i: %m)\n"), ACE_ERRNO_GET));
throw 1;
}
// get an answer
if (stream.recv_n(&answer, sizeof(answer), &connTimeout) != 1) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N: %l: Failed to receive ")
- ACE_TEXT ("2nd response. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("2nd response. (errno = %i: %m)\n"), ACE_ERRNO_GET));
throw 1;
}
@@ -130,7 +130,7 @@ int ACE_TMAIN(int argc, ACE_TCHAR **argv) {
// close the current stream
if (stream.close() == -1) {
ACE_ERROR((LM_ERROR, ACE_TEXT("%N:%l: Failed to close ")
- ACE_TEXT ("socket. (errno = %i: %m)\n"), errno));
+ ACE_TEXT ("socket. (errno = %i: %m)\n"), ACE_ERRNO_GET));
break;
}
} // while
diff --git a/ACE/examples/Reactor/TP_Reactor/run_test.pl b/ACE/examples/Reactor/TP_Reactor/run_test.pl
index ac07295a735..ac07295a735 100644..100755
--- a/ACE/examples/Reactor/TP_Reactor/run_test.pl
+++ b/ACE/examples/Reactor/TP_Reactor/run_test.pl
diff --git a/ACE/examples/Reactor/TP_Reactor/server.cpp b/ACE/examples/Reactor/TP_Reactor/server.cpp
index 0c147818424..d80b1a32a14 100644
--- a/ACE/examples/Reactor/TP_Reactor/server.cpp
+++ b/ACE/examples/Reactor/TP_Reactor/server.cpp
@@ -45,7 +45,7 @@ int ACE_TMAIN(int, ACE_TCHAR **) {
ACE_NEW_NORETURN (acceptHandler, AcceptHandler(&reactor));
if (acceptHandler == 0)
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l: Failed to allocate ")
- ACE_TEXT ("accept handler. (errno = %i: %m)\n"), errno), -1);
+ ACE_TEXT ("accept handler. (errno = %i: %m)\n"), ACE_ERRNO_GET), -1);
// open the accept handler
if (acceptHandler->open() == -1) {
diff --git a/ACE/examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc b/ACE/examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc
index 3663aa7c6e1..c0a48d52768 100644
--- a/ACE/examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc
+++ b/ACE/examples/Reactor/WFMO_Reactor/WFMO_Reactor.mpc
@@ -71,8 +71,7 @@ project(*Registration): aceexe, wfmo {
}
}
-project(*Registry_Changes): aceexe, wfmo {
- avoids += ace_for_tao
+project(*Registry_Changes): aceexe, wfmo, avoids_ace_for_tao {
exename = registry_changes
Source_Files {
Registry_Changes.cpp
@@ -93,8 +92,7 @@ project(*Suspended_Removals): aceexe, wfmo {
}
}
-project(*Talker): aceexe, wfmo {
- avoids += ace_for_tao
+project(*Talker): aceexe, wfmo, avoids_ace_for_tao {
exename = talker
Source_Files {
Talker.cpp
@@ -108,8 +106,7 @@ project(*Timeouts): aceexe, wfmo {
}
}
-project(*Window_Messages): aceexe, wfmo {
- avoids += ace_for_tao
+project(*Window_Messages): aceexe, wfmo, avoids_ace_for_tao {
exename = window_messages
Source_Files {
Window_Messages.cpp
diff --git a/ACE/examples/Semaphores/Semaphores.mpc b/ACE/examples/Semaphores/Semaphores.mpc
index 51040a647ef..dbcefd53827 100644
--- a/ACE/examples/Semaphores/Semaphores.mpc
+++ b/ACE/examples/Semaphores/Semaphores.mpc
@@ -1,16 +1,14 @@
// -*- MPC -*-
// $Id$
-project(*starter) : aceexe {
- avoids += ace_for_tao
+project(*starter) : aceexe, avoids_ace_for_tao {
exename = starter
Source_Files {
starter.cpp
}
}
-project(*worker) : aceexe {
- avoids += ace_for_tao
+project(*worker) : aceexe, avoids_ace_for_tao {
exename = worker
Source_Files {
diff --git a/ACE/examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.mpc b/ACE/examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.mpc
index 6876c4aac4d..d8847545cc8 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.mpc
+++ b/ACE/examples/Service_Configurator/IPC-tests/client/Svc_Cfg_IPC_Client.mpc
@@ -1,22 +1,19 @@
// -*- MPC -*-
// $Id$
-project(*loc dgram) : aceexe {
- avoids += ace_for_tao
+project(*loc dgram) : aceexe, avoids_ace_for_tao {
exename = local_dgram_test
Source_Files {
local_dgram_client_test.cpp
}
}
-project(*loc fifo) : aceexe {
- avoids += ace_for_tao
+project(*loc fifo) : aceexe, avoids_ace_for_tao {
exename = local_fifo_test
Source_Files {
local_fifo_client_test.cpp
}
}
-project(*loc pipe) : aceexe {
- avoids += ace_for_tao
+project(*loc pipe) : aceexe, avoids_ace_for_tao {
exename = local_pipe_test
Source_Files {
local_pipe_client_test.cpp
@@ -28,15 +25,13 @@ project(*loc spipe) : aceexe {
local_spipe_client_test.cpp
}
}
-project(*loc stream) : aceexe {
- avoids += ace_for_tao
+project(*loc stream) : aceexe, avoids_ace_for_tao {
exename = local_stream_test
Source_Files {
local_stream_client_test.cpp
}
}
-project(*rem dgram) : aceexe {
- avoids += ace_for_tao
+project(*rem dgram) : aceexe, avoids_ace_for_tao {
exename = remote_dgram_test
Source_Files {
remote_dgram_client_test.cpp
@@ -48,8 +43,7 @@ project(*rem svc dir) : aceexe {
remote_service_directory_test.cpp
}
}
-project(*rem stream) : aceexe {
- avoids += ace_for_tao
+project(*rem stream) : aceexe, avoids_ace_for_tao {
exename = remote_stream_test
Source_Files {
remote_stream_client_test.cpp
@@ -61,8 +55,7 @@ project(*rem thr_stream) : aceexe {
remote_thr_stream_client_test.cpp
}
}
-project(*bcast) : aceexe {
- avoids += ace_for_tao
+project(*bcast) : aceexe, avoids_ace_for_tao {
exename = remote_broadcast_test
Source_Files {
broadcast_client_test.cpp
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc b/ACE/examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc
index c44b40c6e32..900cd9635d2 100644
--- a/ACE/examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc
+++ b/ACE/examples/Service_Configurator/IPC-tests/server/Svc_Cfg_IPC_Server.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project(*Lib) : acelib {
- avoids += ace_for_tao
+project(*Lib) : acelib, avoids_ace_for_tao {
sharedname = IPC_Tests_Server
dynamicflags += ACE_BUILD_SVC_DLL
Source_Files {
@@ -19,8 +18,7 @@ project(*Lib) : acelib {
}
}
-project(*test) : aceexe {
- avoids += ace_for_tao
+project(*test) : aceexe, avoids_ace_for_tao {
exename = server_test
after += Svc_Cfg_IPC_Server_Lib
libs += IPC_Tests_Server
diff --git a/ACE/examples/Shared_Malloc/Shared_Malloc.mpc b/ACE/examples/Shared_Malloc/Shared_Malloc.mpc
index 42753246815..3f30d3bd6f0 100644
--- a/ACE/examples/Shared_Malloc/Shared_Malloc.mpc
+++ b/ACE/examples/Shared_Malloc/Shared_Malloc.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project : aceexe {
- avoids += ace_for_tao
+project : aceexe, avoids_ace_for_tao {
exename = malloc
Source_Files {
Malloc.cpp
@@ -10,8 +9,7 @@ project : aceexe {
test_malloc.cpp
}
}
-project(*multiple) : aceexe {
- avoids += ace_for_tao
+project(*multiple) : aceexe, avoids_ace_for_tao {
exename = multiple
Source_Files {
Malloc.cpp
@@ -19,15 +17,13 @@ project(*multiple) : aceexe {
test_multiple_mallocs.cpp
}
}
-project(*persistence) : aceexe {
- avoids += ace_for_tao
+project(*persistence) : aceexe, avoids_ace_for_tao {
exename = persistence
Source_Files {
test_persistence.cpp
}
}
-project(*posind) : aceexe {
- avoids += ace_for_tao
+project(*posind) : aceexe, avoids_ace_for_tao {
exename = posind
Source_Files {
Malloc.cpp
diff --git a/ACE/examples/Shared_Memory/Shared_Memory.mpc b/ACE/examples/Shared_Memory/Shared_Memory.mpc
index f0ee256597b..b43422fddfc 100644
--- a/ACE/examples/Shared_Memory/Shared_Memory.mpc
+++ b/ACE/examples/Shared_Memory/Shared_Memory.mpc
@@ -1,15 +1,13 @@
// -*- MPC -*-
// $Id$
-project(*MM) : aceexe {
- avoids += ace_for_tao
+project(*MM) : aceexe, avoids_ace_for_tao {
exename = testmm
Source_Files {
test_MM.cpp
}
}
-project(*SV) : aceexe {
- avoids += ace_for_tao
+project(*SV) : aceexe, avoids_ace_for_tao {
exename = testsv
Source_Files {
test_SV.cpp
diff --git a/ACE/examples/Synch/Synch.mpc b/ACE/examples/Synch/Synch.mpc
index 024e8459803..055d3ff6f07 100644
--- a/ACE/examples/Synch/Synch.mpc
+++ b/ACE/examples/Synch/Synch.mpc
@@ -1,7 +1,6 @@
// -*- MPC -*-
// $Id$
-project : aceexe {
- avoids += ace_for_tao
+project : aceexe, avoids_ace_for_tao {
exename = proc_sema
}
diff --git a/ACE/examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc b/ACE/examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc
index 62cb7a0a819..05f0c36a9b1 100644
--- a/ACE/examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc
+++ b/ACE/examples/System_V_IPC/SV_Message_Queues/SV_Message_Queues.mpc
@@ -1,29 +1,25 @@
// -*- MPC -*-
// $Id$
-project(*MQ Client) : aceexe {
- avoids += ace_for_tao
+project(*MQ Client) : aceexe, avoids_ace_for_tao {
exename = mqclient
Source_Files {
MQ_Client.cpp
}
}
-project(*MQ Server) : aceexe {
- avoids += ace_for_tao
+project(*MQ Server) : aceexe, avoids_ace_for_tao {
exename = mqserver
Source_Files {
MQ_Server.cpp
}
}
-project(*TMQ Client) : aceexe {
- avoids += ace_for_tao
+project(*TMQ Client) : aceexe, avoids_ace_for_tao {
exename = tmqclient
Source_Files {
TMQ_Client.cpp
}
}
-project(*TMQ Server) : aceexe {
- avoids += ace_for_tao
+project(*TMQ Server) : aceexe, avoids_ace_for_tao {
exename = tmqserver
Source_Files {
TMQ_Server.cpp
diff --git a/ACE/examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc b/ACE/examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc
index 647e4a4cf5a..a487dae4114 100644
--- a/ACE/examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc
+++ b/ACE/examples/System_V_IPC/SV_Semaphores/SV_Semaphores.mpc
@@ -1,15 +1,13 @@
// -*- MPC -*-
// $Id$
-project(*1) : aceexe {
- avoids += ace_for_tao
+project(*1) : aceexe, avoids_ace_for_tao {
exename = sem1
Source_Files {
Semaphores_1.cpp
}
}
-project(*2) : aceexe {
- avoids += ace_for_tao
+project(*2) : aceexe, avoids_ace_for_tao {
exename = sem2
Source_Files {
Semaphores_2.cpp
diff --git a/ACE/examples/Threads/Threads.mpc b/ACE/examples/Threads/Threads.mpc
index 2c57feda243..2c64e03aa7c 100644
--- a/ACE/examples/Threads/Threads.mpc
+++ b/ACE/examples/Threads/Threads.mpc
@@ -25,15 +25,13 @@ project(*cancel) : aceexe {
cancel.cpp
}
}
-project(*future1) : aceexe {
- avoids += ace_for_tao
+project(*future1) : aceexe, avoids_ace_for_tao {
exename = future1
Source_Files {
future1.cpp
}
}
-project(*future2) : aceexe {
- avoids += ace_for_tao
+project(*future2) : aceexe, avoids_ace_for_tao {
exename = future2
Source_Files {
future2.cpp
@@ -45,15 +43,13 @@ project(*manual_event) : aceexe {
manual_event.cpp
}
}
-project(*process_mutex) : aceexe {
- avoids += ace_for_tao
+project(*process_mutex) : aceexe, avoids_ace_for_tao {
exename = process_mutex
Source_Files {
process_mutex.cpp
}
}
-project(*process_semaphore) : aceexe {
- avoids += ace_for_tao
+project(*process_semaphore) : aceexe, avoids_ace_for_tao {
exename = process_semaphore
Source_Files {
process_semaphore.cpp
diff --git a/ACE/examples/Web_Crawler/Web_Crawler.mpc b/ACE/examples/Web_Crawler/Web_Crawler.mpc
index 0a4f3d32685..28621737115 100644
--- a/ACE/examples/Web_Crawler/Web_Crawler.mpc
+++ b/ACE/examples/Web_Crawler/Web_Crawler.mpc
@@ -1,8 +1,7 @@
// -*- MPC -*-
// $Id$
-project : aceexe {
- avoids += ace_for_tao
+project : aceexe, avoids_ace_for_tao {
exename = main
specific(bmake) {
avoids += uses_wchar
diff --git a/ACE/include/makeinclude/platform_cegcc.GNU b/ACE/include/makeinclude/platform_cegcc.GNU
new file mode 100644
index 00000000000..2ea29151faf
--- /dev/null
+++ b/ACE/include/makeinclude/platform_cegcc.GNU
@@ -0,0 +1,47 @@
+# $Id$
+#
+# This file should allow to build ACE for Windows CE with GCC tools.
+#
+# Don't forget to define the ACE_ROOT environment variable!
+#
+
+#
+# Chose your target CPU (by default we set it to ARM. In your
+# platform_macros.GNU file you can override this to pentium, i486 or i386
+#
+TCPU ?= arm
+
+cygwin32 = 1
+
+# Cygwin doesn't have rwho
+rwho = 0
+
+# Cygwin doesn't allow to add the version number of ACE to the dll name
+# because fe ace.dll.5.2.3 isn't a valid dll name
+versioned_so=0
+
+ACE_CE_VER ?= 0x600
+
+qos ?= 1
+
+# Disable auto-import warnings. The Cygwin linker has a problem with imports
+# See https://sourceforge.net/tracker/?func=detail&atid=102435&aid=683455&group_id=2435
+# for the details why to do this.
+LDFLAGS += -Wl,--enable-auto-import
+CPPFLAGS += -DACE_HAS_CEGCC
+
+CPPFLAGS += -D_WIN32_WCE=$(ACE_CE_VER) -DUNICODE -D_UNICODE -D_WINDOWS -DCEVER -DWIN32 -D_WINSOCKAPI_
+RCFLAGS += -D_WIN32_WCE=$(ACE_CE_VER) -DUNICODE -D_UNICODE -D_WINDOWS -DCEVER -DWIN32 -D_WINSOCKAPI_ -D_WIN32_IE=0x0500
+
+cpumodelflag=0
+tunemodelflag=0
+
+COMPARCH ?= i386-mingw32ce-
+#COMPARCH ?= arm-wince-mingw32ce-
+
+LIBS += -lcoredll -lmingw32 -lmingwex -lws2 -lsupc++ -liphlpapi
+
+no_hidden_visibility ?= 1
+qos ?= 1
+
+include $(ACE_ROOT)/include/makeinclude/platform_gnuwin32_common.GNU
diff --git a/ACE/include/makeinclude/platform_gnuwin32_common.GNU b/ACE/include/makeinclude/platform_gnuwin32_common.GNU
index 00750e11752..f1c4fbac86e 100644
--- a/ACE/include/makeinclude/platform_gnuwin32_common.GNU
+++ b/ACE/include/makeinclude/platform_gnuwin32_common.GNU
@@ -29,20 +29,29 @@ endif
ifeq ($(debug),0)
CFLAGS += -DNDEBUG
endif
-
-CC = gcc
-CXX = g++
-RC = windres
-DLLTOOL = dlltool
+CC = ${COMPARCH}gcc
+CXX = ${COMPARCH}g++
+RC = ${COMPARCH}windres
+DLLTOOL = ${COMPARCH}dlltool
RC_OUTPUT_FLAG = -o
ifeq (2.9,$(findstring 2.9,$(GNUWIN32_CXX_VERSION)))
- MODEL_FLAGS += -mcpu=$(TCPU)
+ cpumodelflag ?= 1
+ tunemodelflag ?= 0
else
+ cpumodelflag ?= 0
+ tunemodelflag ?= 1
+endif
+
+ifeq ($(tunemodelflag),1)
MODEL_FLAGS += -mtune=$(TCPU)
endif
+ifeq ($(cpumodelflag),1)
+ MODEL_FLAGS += -mcpu=$(TCPU)
+endif
+
CFLAGS += -Wpointer-arith
ifeq ($(threads),1)
CFLAGS += -mthreads
@@ -65,9 +74,9 @@ endif
OCFLAGS += -O3
PIC =
-AR = ar
+AR = ${COMPARCH}ar
ARFLAGS = rsuv
-RANLIB = ranlib
+RANLIB = ${COMPARCH}ranlib
SOEXT = dll
SOFLAGS += $(MODEL_FLAGS) $(CPPFLAGS)
SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
diff --git a/ACE/include/makeinclude/platform_lynxos.GNU b/ACE/include/makeinclude/platform_lynxos.GNU
index 6279f4d2624..b2ea6d788c9 100644
--- a/ACE/include/makeinclude/platform_lynxos.GNU
+++ b/ACE/include/makeinclude/platform_lynxos.GNU
@@ -96,6 +96,9 @@ ifeq ($(shared_libs),1)
CPPFLAGS += -DACE_HAS_SVR4_DYNAMIC_LINKING
LDFLAGS += -mshared
LIBS += -ldl
+ ifeq ($(CROSS-COMPILE),1)
+ LDFLAGS += -Wl,-rpath-link,$(ACE_ROOT)/lib
+ endif
else
LIBS += -lnetinet -lnsl
endif
diff --git a/ACE/include/makeinclude/platform_sunos5_sunc++.GNU b/ACE/include/makeinclude/platform_sunos5_sunc++.GNU
index 5bf5127adaf..0c4663d5796 100644
--- a/ACE/include/makeinclude/platform_sunos5_sunc++.GNU
+++ b/ACE/include/makeinclude/platform_sunos5_sunc++.GNU
@@ -42,7 +42,7 @@
compat4 ?= 0
debug ?= 1
-distrib ?= 0
+distrib ?= 1
stdcpplib ?= 1
threads ?= 1
versioned_so ?= 1
diff --git a/ACE/include/makeinclude/platform_vxworks6.3.GNU b/ACE/include/makeinclude/platform_vxworks6.3.GNU
index 7bdc6254526..3b904fbf2b2 100644
--- a/ACE/include/makeinclude/platform_vxworks6.3.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.3.GNU
@@ -64,22 +64,22 @@ ifeq ("$(WIND_HOST_TYPE)","x86-win32")
CIAO_ROOT:=$(subst \,/,$(CIAO_ROOT))
HOST_ROOT:=$(subst \,/,$(HOST_ROOT))
override RM=rm -f
+ HOST_EXE_EXT = .exe
endif # x86-win32
ifneq (,$(HOST_ROOT))
TAO_IDLFLAGS += -g $(HOST_ROOT)/bin/ace_gperf
-ifeq ("$(WIND_HOST_TYPE)","x86-win32")
- TAO_IDL = $(HOST_ROOT)/bin/tao_idl.exe
- TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2.exe
- CIDLC = $(HOST_ROOT)/TAO/CIAO/bin/cidlc.exe
-else
- TAO_IDL = $(HOST_ROOT)/bin/tao_idl
- TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2
- CIDLC = $(HOST_ROOT)/TAO/CIAO/bin/cidlc
-endif
+TAO_IDL = $(HOST_ROOT)/bin/tao_idl$(HOST_EXE_EXT)
+TAO_IDL3_TO_IDL2 = $(HOST_ROOT)/bin/tao_idl3_to_idl2$(HOST_EXE_EXT)
+CIDLC = $(HOST_ROOT)/TAO/CIAO/bin/cidlc$(HOST_EXE_EXT)
TAO_IDL_DEP = $(TAO_IDL)
TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2)
CIDLC_DEP = $(CIDLC)
+else
+# Append the HOST_EXE_EXT if it's not already there
+TAO_IDL_DEP = $(TAO_IDL:$(HOST_EXE_EXT)=)$(HOST_EXE_EXT)
+TAO_IDL3_TO_IDL2_DEP = $(TAO_IDL3_TO_IDL2:$(HOST_EXE_EXT)=)$(HOST_EXE_EXT)
+CIDLC_DEP = $(CIDLC:$(HOST_EXE_EXT)=)$(HOST_EXE_EXT)
endif
HOST_DIR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
@@ -224,6 +224,7 @@ ifeq ("$(TOOL_FAMILY)","gnu")
ifeq ($(rtp),1)
PIC = -fpic
SOFLAGS += -fpic
+ LDFLAGS += -Wl,-rpath-link,$(ACE_ROOT)/lib
endif
SOFLAGS += -shared
LDFLAGS += -non-static
diff --git a/ACE/include/makeinclude/platform_vxworks6.7.GNU b/ACE/include/makeinclude/platform_vxworks6.7.GNU
index 89289a049a8..d114a26cf94 100644
--- a/ACE/include/makeinclude/platform_vxworks6.7.GNU
+++ b/ACE/include/makeinclude/platform_vxworks6.7.GNU
@@ -7,3 +7,12 @@ endif # VXWORKS_VERSION_FLAG
include $(ACE_ROOT)/include/makeinclude/platform_vxworks6.6.GNU
+ifeq ("$(WIND_HOST_TYPE)","x86-linux2")
+ifeq ($(SHARED_LIBS), 1)
+ifeq ("$(TOOL_FAMILY)","gnu")
+ LDFLAGS += -shared
+else
+ LDFLAGS += -Xshared
+endif
+endif
+endif
diff --git a/ACE/include/makeinclude/rules.lib.GNU b/ACE/include/makeinclude/rules.lib.GNU
index 0a0a6338d8b..ac55167e7f9 100644
--- a/ACE/include/makeinclude/rules.lib.GNU
+++ b/ACE/include/makeinclude/rules.lib.GNU
@@ -35,7 +35,6 @@ endif # versioned_so
# The following targets arrange to build both unshared and shared libraries
#----------------------------------------------------------------------------
-LIB_PREFIX ?= lib
VLIB = $(ARCH_LIB:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
CLEANUP_VLIB = $(CLEANUP_LIB:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
diff --git a/ACE/include/makeinclude/wrapper_macros.GNU b/ACE/include/makeinclude/wrapper_macros.GNU
index 31bc814b4d7..b169dc5e2f3 100644
--- a/ACE/include/makeinclude/wrapper_macros.GNU
+++ b/ACE/include/makeinclude/wrapper_macros.GNU
@@ -438,6 +438,7 @@ endif
OBJEXT ?= o
SOEXT ?= so
LIBEXT ?= a
+LIB_PREFIX ?= lib
CC_OUTPUT_FLAG ?= -o
SO_OUTPUT_FLAG ?= -o
@@ -810,12 +811,12 @@ ifdef quantify
#### You might want to adjust the Quantify options below.
#### -best-effort is undocumented but supported, and seems
#### to help avoid occasional link failure.
- PRELINK += quantify -best-effort -cache-dir=$(PURE_CACHE_DIR) \
- -max_threads=100 $(PLATFORM_QUANTIFY_OPTIONS)
+ PURELINK += quantify -best-effort -cache-dir=$(PURE_CACHE_DIR) \
+ -max_threads=100 $(PLATFORM_QUANTIFY_OPTIONS)
CPPFLAGS += -DACE_HAS_QUANTIFY -I$(ACE_QUANTIFY_DIR)
ifeq ($(shell uname -p),sparc)
- PRELINK += -record-register-window-traps
+ PURELINK += -record-register-window-traps
endif # sparc
endif # quantify
@@ -913,4 +914,8 @@ else
LINK.cc = $(PURELINK) $(PRELINK) $(LD) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS)
endif # LINK.cc.override
-SOLINK.cc = $(PRELINK) $(DLD) $(SOFLAGS)
+ifeq ($(SOLINK.cc),override)
+ SOLINK.cc = $(SOLINK.cc.override)
+else
+ SOLINK.cc = $(PRELINK) $(DLD) $(SOFLAGS)
+endif # SOLINK.cc.override
diff --git a/ACE/m4/aio.m4 b/ACE/m4/aio.m4
index aaa5622dd33..b8248c6d24c 100644
--- a/ACE/m4/aio.m4
+++ b/ACE/m4/aio.m4
@@ -64,7 +64,7 @@ if test "$ace_has_aio_funcs" = yes; then
#include <string.h>
#include <errno.h>
#include <stdio.h>
-#include <iostream.h>
+#include <iostream>
#include <aio.h>
@@ -138,7 +138,6 @@ Test_Aio::init (void)
// Init the buffers.
this->buffer_write_ = new char [sizeof (message) + 1];
strcpy (this->buffer_write_, message);
- // cout << "The buffer : " << this->buffer_write_ << endl;
this->buffer_read_ = new char [sizeof (message) + 1];
return 0;
@@ -220,8 +219,6 @@ Test_Aio::do_aio (void)
list_aiocb [0] = 0;
}
}
-// else
-// cout << "AIO in progress" << endl;
if (list_aiocb [1] != 0 && aio_error (list_aiocb [1]) != EINPROGRESS)
{
@@ -238,17 +235,12 @@ Test_Aio::do_aio (void)
list_aiocb [1] = 0;
}
}
-// else
-// cout << "AIO in progress" << endl;
// Is it done?
if ((list_aiocb [0] == 0) && (list_aiocb [1] == 0))
done = 1;
}
- //cout << "Both the AIO operations done." << endl;
- //cout << "The buffer is :" << this->buffer_read_ << endl;
-
return 0;
}
diff --git a/ACE/netsvcs/lib/Client_Logging_Handler.cpp b/ACE/netsvcs/lib/Client_Logging_Handler.cpp
index 84a59ac7d1f..0f50308563a 100644
--- a/ACE/netsvcs/lib/Client_Logging_Handler.cpp
+++ b/ACE/netsvcs/lib/Client_Logging_Handler.cpp
@@ -611,7 +611,7 @@ ACE_Client_Logging_Acceptor::init (int argc, ACE_TCHAR *argv[])
ACE_TEXT ("%m, using stderr\n"),
this->server_addr_.get_host_name (),
this->server_addr_.get_port_number (),
- errno));
+ ACE_ERRNO_GET));
if (ACE_Log_Msg::instance ()->msg_ostream () == 0)
// If we can't connect to the server then we'll send the logging
diff --git a/ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp b/ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp
index 9d4dffe0ee9..11a80469739 100644
--- a/ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp
+++ b/ACE/protocols/tests/HTBP/Reactor_Tests/client.cpp
@@ -133,7 +133,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) Client: ")
ACE_TEXT("After wait for ack, n = %d, retry = %d\n"),
- n,retrycount,errno));
+ n,retrycount,ACE_ERRNO_GET));
retrycount = 10;
while ((n = stream.recv(buffer,1000)) == -1
@@ -195,7 +195,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) Client: ")
ACE_TEXT("After wait for ack, n = %d, retry = %d\n"),
- n,retrycount,errno));
+ n,retrycount,ACE_ERRNO_GET));
return 0;
}
diff --git a/ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp b/ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp
index 72c35536f89..4eba0b912f5 100644
--- a/ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp
+++ b/ACE/protocols/tests/HTBP/Send_Large_Msg/client.cpp
@@ -112,7 +112,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT("(%P|%t) Client: ")
ACE_TEXT("%p\n %d"),
- ACE_TEXT("stream send"), errno),
+ ACE_TEXT("stream send"), ACE_ERRNO_GET),
-1);
}
ACE_DEBUG ((LM_DEBUG,
diff --git a/ACE/rpmbuild/README b/ACE/rpmbuild/README
index 6f5cebf2f6e..9acf8cc13a1 100644
--- a/ACE/rpmbuild/README
+++ b/ACE/rpmbuild/README
@@ -36,9 +36,9 @@ the following contents should be enough:
cat > ~/.rpmmacros <<EOF
%_topdir %(echo ${HOME}/rpm)
%_tmppath %{_topdir}/tmp
-
+
%packager Firstname Lastname <your.address@here>
-
+
# Have built RPMs land in RPMS/ instead of RPMS/<arch>/
%_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
EOF
@@ -52,7 +52,7 @@ There are some important details:
* The tarball name must have the ACE version in the name, for example:
- ACE+TAO+CIAO-5.6.6.tar.bz2
+ ACE+TAO+CIAO-src-5.6.6.tar.bz2
* The spec file inside the tarball
(ACE_wrappers/rpmbuild/ace-tao.spec) must have the correct version
@@ -68,7 +68,7 @@ There are some important details:
ACE_wrappers/ace/Version.h
ACE_wrappers/TAO/tao/Version.h
ACE_wrappers/TAO/CIAO/ciao/Version.h
-
+
Building the RPM
----------------------------------------------------------------
diff --git a/ACE/rpmbuild/ace-tao-ciao.spec b/ACE/rpmbuild/ace-tao-ciao.spec
index 4d7891bc90b..a6bc9baeee2 100644
--- a/ACE/rpmbuild/ace-tao-ciao.spec
+++ b/ACE/rpmbuild/ace-tao-ciao.spec
@@ -1,8 +1,9 @@
# Set the version number here.
-%define ACEVER 5.6.9
-%define TAOVER 1.6.9
-%define CIAOVER 0.6.9
+%define ACEVER 5.7
+%define TAOVER 1.7
+%define CIAOVER 0.7
# Set is_major_ver if the version is X.Y instead X.Y.Z
+%define is_major_ver 1
# TODO
# Test whether a TAO app with MPC can be build against MPC installed version
@@ -67,10 +68,6 @@ URL: http://www.cs.wustl.edu/~schmidt/ACE.html
License: DOC License
Source0: http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-src-%{ACEVER}.tar.bz2
Source1: ace-tao-rpmlintrc
-## Source1: ace-tao-etc.tar.gz
-## Source2: ace-tao-macros.patch
-## Patch0: ace-tao-config.patch
-## Patch5: ace-tao-orbsvcs-daemon.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%if 0%{?centos_version}
@@ -507,7 +504,7 @@ Summary: Make Project Creator
Version: %{ACEVER}
Group: Development/Tools/Building
%if !0%{?suse_version}
-Provides: perl (Driver) perl(MakeProjectBase) perl(ObjectGenerator) perl(ProjectCreator) perl(WorkspaceCreator) perl(WorkspaceHelper) perl(DependencyWriter)
+Provides: perl(Driver) perl(MakeProjectBase) perl(ObjectGenerator) perl(ProjectCreator) perl(WorkspaceCreator) perl(WorkspaceHelper) perl(DependencyWriter)
%endif
%description -n mpc
@@ -826,9 +823,6 @@ export CIAO_ROOT=$TAO_ROOT/CIAO
# patch0 and patch1 are applied a bit later
-#patch5 -p 1
-cat ${ACE_ROOT}/rpmbuild/ace-tao-orbsvcs-daemon.patch | patch -p 1
-
# don't use patch8 until we verify wether needed
%if %{?_with_autoconf:0}%{!?_with_autoconf:1}
@@ -1287,12 +1281,6 @@ rm -f tao-headers.tmp
# install the TAO_IDL compiler
install -d %{buildroot}%{_libdir}
-# NOTE - it appears that when TAO's build copies the files to the
-# ACE_ROOT/ace directory they get versioned with ACE's version number
-# rather then TAO's. Use the ACEVERSO macro for now ...
-install \
- %{buildroot}%{_libdir}
-
install -d %{buildroot}%{_bindir}
install ${ACE_ROOT}/bin/ace_gperf %{buildroot}%{_bindir}
install ${ACE_ROOT}/bin/tao_idl %{buildroot}%{_bindir}
@@ -1308,17 +1296,13 @@ install ${ACE_ROOT}/bin/tao_nslist %{buildroot}%{_bindir}/tao_nslist
# ================================================================
install -d %{buildroot}%{_sysconfdir}
-tar -jxvf ${ACE_ROOT}/rpmbuild/ace-tao-etc.tar.bz2 \
- -C %{buildroot}%{_sysconfdir}
+cp -R ${ACE_ROOT}/rpmbuild/logrotate.d %{buildroot}%{_sysconfdir}/logrotate.d
+cp -R ${ACE_ROOT}/tao %{buildroot}%{_sysconfdir}/tao
%if %{defined suse_version}
-tar -jxvf ${ACE_ROOT}/rpmbuild/ace-tao-init-suse.tar.bz2 \
- -C %{buildroot}%{_sysconfdir}
-mkdir -p %{buildroot}%{_localstatedir}/adm
-mv %{buildroot}%{_sysconfdir}/fillup-templates %{buildroot}%{_localstatedir}/adm/
+cp -R ${ACE_ROOT}/rpmbuild/ace-tao-init-suse %{buildroot}%{_sysconfdir}
%else
-tar -jxvf ${ACE_ROOT}/rpmbuild/ace-tao-init-fedora.tar.bz2 \
- -C %{buildroot}%{_sysconfdir}
+cp -R ${ACE_ROOT}/rpmbuild/ace-tao-init-fedora %{buildroot}%{_sysconfdir}
%endif
%if %{defined suse_version}
@@ -2385,7 +2369,7 @@ fi
%if %{defined suse_version}
%{_sysconfdir}/init.d/tao-cosnaming
%{_sbindir}/rctao-cosnaming
-%{_localstatedir}/adm/fillup-templates/tao-cosnaming
+%{_sysconfdir}/tao/tao-cosnaming
%else
%{_sysconfdir}/rc.d/init.d/tao-cosnaming
%config(noreplace) %{_sysconfdir}/tao/tao-cosnaming.opt
@@ -2414,7 +2398,7 @@ fi
%if %{defined suse_version}
%{_sysconfdir}/init.d/tao-cosevent
%{_sbindir}/rctao-cosevent
-%{_localstatedir}/adm/fillup-templates/tao-cosevent
+%{_sysconfdir}/tao/tao-cosevent
%else
%{_sysconfdir}/rc.d/init.d/tao-cosevent
%config(noreplace) %{_sysconfdir}/tao/tao-cosevent.opt
@@ -2441,7 +2425,7 @@ fi
%if %{defined suse_version}
%{_sysconfdir}/init.d/tao-cosnotification
%{_sbindir}/rctao-cosnotification
-%{_localstatedir}/adm/fillup-templates/tao-cosnotification
+%{_sysconfdir}/tao/tao-cosnotification
%else
%{_sysconfdir}/rc.d/init.d/tao-cosnotification
%config(noreplace) %{_sysconfdir}/tao/tao-cosnotification.opt
@@ -2469,7 +2453,7 @@ fi
%if %{defined suse_version}
%{_sysconfdir}/init.d/tao-costrading
%{_sbindir}/rctao-costrading
-%{_localstatedir}/adm/fillup-templates/tao-costrading
+%{_sysconfdir}/tao/tao-costrading
%else
%{_sysconfdir}/rc.d/init.d/tao-costrading
%config(noreplace) %{_sysconfdir}/tao/tao-costrading.opt
@@ -2496,7 +2480,7 @@ fi
%if %{defined suse_version}
%{_sysconfdir}/init.d/tao-rtevent
%{_sbindir}/rctao-rtevent
-%{_localstatedir}/adm/fillup-templates/tao-rtevent
+%{_sysconfdir}/tao/tao-rtevent
%else
%{_sysconfdir}/rc.d/init.d/tao-rtevent
%config(noreplace) %{_sysconfdir}/tao/tao-rtevent.opt
@@ -2523,7 +2507,7 @@ fi
%if %{defined suse_version}
%{_sysconfdir}/init.d/tao-cosconcurrency
%{_sbindir}/rctao-cosconcurrency
-%{_localstatedir}/adm/fillup-templates/tao-cosconcurrency
+%{_sysconfdir}/tao/tao-cosconcurrency
%else
%{_sysconfdir}/rc.d/init.d/tao-cosconcurrency
%config(noreplace) %{_sysconfdir}/tao/tao-cosconcurrency.opt
diff --git a/ACE/rpmbuild/ace-tao-config.patch b/ACE/rpmbuild/ace-tao-config.patch
deleted file mode 100644
index ad4cd5e4a3f..00000000000
--- a/ACE/rpmbuild/ace-tao-config.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ACE_wrappers/ace/config.h~ 2008-07-05 16:23:04.000000000 -0700
-+++ ACE_wrappers/ace/config.h 2008-07-05 16:29:10.000000000 -0700
-@@ -9,6 +9,8 @@
- #define ACE_CONFIG_LINUX_H
- #include /**/ "ace/pre.h"
-
-+#define TAO_IDL_INCLUDE_DIR "/usr/include/tao"
-+
- #define ACE_PLATFORM_CONFIG config-linux.h
-
- #include "ace/config-linux-common.h"
diff --git a/ACE/rpmbuild/ace-tao-etc.tar.bz2 b/ACE/rpmbuild/ace-tao-etc.tar.bz2
deleted file mode 100644
index 98d6018c23d..00000000000
--- a/ACE/rpmbuild/ace-tao-etc.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/ACE/rpmbuild/ace-tao-etc.tar.gz b/ACE/rpmbuild/ace-tao-etc.tar.gz
deleted file mode 100644
index add6e3f8f42..00000000000
--- a/ACE/rpmbuild/ace-tao-etc.tar.gz
+++ /dev/null
Binary files differ
diff --git a/ACE/rpmbuild/ace-tao-init-fedora.tar.bz2 b/ACE/rpmbuild/ace-tao-init-fedora.tar.bz2
deleted file mode 100644
index e058dcf837a..00000000000
--- a/ACE/rpmbuild/ace-tao-init-fedora.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosconcurrency b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosconcurrency
new file mode 100644
index 00000000000..6f593cc30da
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosconcurrency
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# chkconfig: - 81 14
+# description: Starts and stops the TAO Concurrency Service.
+# processname: tao-cosconcurrency
+# config: /etc/tao/tao-cosconcurrency.opt
+# config: /etc/tao/tao-cosconcurrency.conf
+# pidfile: /var/run/tao-cosconcurrency.pid
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source configuration options
+. /etc/tao/tao-cosconcurrency.opt
+
+RETVAL=0
+
+prog="tao-cosconcurrency"
+progpath="/usr/sbin/$prog"
+svcconf="/etc/tao/${prog}.conf"
+lockpath="/var/lock/subsys/$prog"
+pidpath="/var/run/${prog}.pid"
+
+start()
+{
+ echo -n $"Starting $prog: "
+ daemon --user tao $progpath -p $pidpath $OPTIONS -ORBSvcConf $svcconf --daemon
+ RETVAL=$?
+ [ "$RETVAL" = 0 ] && touch $lockpath
+ echo
+}
+
+stop()
+{
+ echo -n $"Stopping $prog: "
+ killproc $progpath -TERM
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ rm -f $lockpath
+ rm -f $pidpath
+ fi
+ echo
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $prog
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f $lockpath ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ reload)
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+ exit 1
+ ;;
+esac
+exit $RETVAL
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosevent b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosevent
new file mode 100644
index 00000000000..eeac584187b
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosevent
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# chkconfig: - 81 14
+# description: Starts and stops the TAO CosEvent Service.
+# processname: tao-cosevent
+# config: /etc/tao/tao-cosevent.opt
+# config: /etc/tao/tao-cosevent.conf
+# pidfile: /var/run/tao-cosevent.pid
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source configuration options
+. /etc/tao/tao-cosevent.opt
+
+RETVAL=0
+
+prog="tao-cosevent"
+progpath="/usr/sbin/$prog"
+svcconf="/etc/tao/${prog}.conf"
+lockpath="/var/lock/subsys/$prog"
+pidpath="/var/run/${prog}.pid"
+
+start()
+{
+ echo -n $"Starting $prog: "
+ daemon --user tao $progpath -p $pidpath $OPTIONS -ORBSvcConf $svcconf --daemon
+ RETVAL=$?
+ [ "$RETVAL" = 0 ] && touch $lockpath
+ echo
+}
+
+stop()
+{
+ echo -n $"Stopping $prog: "
+ killproc $progpath -TERM
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ rm -f $lockpath
+ rm -f $pidpath
+ fi
+ echo
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $prog
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f $lockpath ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ reload)
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+ exit 1
+ ;;
+esac
+exit $RETVAL
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnaming b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnaming
new file mode 100644
index 00000000000..02bb6e7452d
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnaming
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# chkconfig: - 80 15
+# description: Starts and stops the TAO Naming Service.
+# processname: tao-cosnaming
+# config: /etc/tao/tao-cosnaming.opt
+# config: /etc/tao/tao-cosnaming.conf
+# pidfile: /var/run/tao-cosnaming.pid
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source configuration options
+. /etc/tao/tao-cosnaming.opt
+
+RETVAL=0
+
+prog="tao-cosnaming"
+progpath="/usr/sbin/$prog"
+svcconf="/etc/tao/${prog}.conf"
+lockpath="/var/lock/subsys/$prog"
+pidpath="/var/run/${prog}.pid"
+
+start()
+{
+ echo -n $"Starting $prog: "
+ daemon --user tao $progpath -p $pidpath $OPTIONS -ORBSvcConf $svcconf --daemon
+ RETVAL=$?
+ [ "$RETVAL" = 0 ] && touch $lockpath
+ echo
+}
+
+stop()
+{
+ echo -n $"Stopping $prog: "
+ killproc $progpath -TERM
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ rm -f $lockpath
+ rm -f $pidpath
+ fi
+ echo
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $prog
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f $lockpath ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ reload)
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+ exit 1
+ ;;
+esac
+exit $RETVAL
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnotification b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnotification
new file mode 100644
index 00000000000..0bdc04eeeef
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-cosnotification
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# chkconfig: - 81 14
+# description: Starts and stops the TAO Notify Service.
+# processname: tao-cosnotification
+# config: /etc/tao/tao-cosnotification.opt
+# config: /etc/tao/tao-cosnotification.conf
+# pidfile: /var/run/tao-cosnotification.pid
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source configuration options
+. /etc/tao/tao-cosnotification.opt
+
+RETVAL=0
+
+prog="tao-cosnotification"
+progpath="/usr/sbin/$prog"
+svcconf="/etc/tao/${prog}.conf"
+lockpath="/var/lock/subsys/$prog"
+pidpath="/var/run/${prog}.pid"
+
+start()
+{
+ echo -n $"Starting $prog: "
+ daemon --user tao $progpath -p $pidpath $OPTIONS -ORBSvcConf $svcconf --daemon
+ RETVAL=$?
+ [ "$RETVAL" = 0 ] && touch $lockpath
+ echo
+}
+
+stop()
+{
+ echo -n $"Stopping $prog: "
+ killproc $progpath -TERM
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ rm -f $lockpath
+ rm -f $pidpath
+ fi
+ echo
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $prog
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f $lockpath ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ reload)
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+ exit 1
+ ;;
+esac
+exit $RETVAL
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-costrading b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-costrading
new file mode 100644
index 00000000000..c7b96985de2
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-costrading
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# chkconfig: - 81 14
+# description: Starts and stops the TAO Trading Service.
+# processname: tao-costrading
+# config: /etc/tao/tao-costrading.opt
+# config: /etc/tao/tao-costrading.conf
+# pidfile: /var/run/tao-costrading.pid
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source configuration options
+. /etc/tao/tao-costrading.opt
+
+RETVAL=0
+
+prog="tao-costrading"
+progpath="/usr/sbin/$prog"
+svcconf="/etc/tao/${prog}.conf"
+lockpath="/var/lock/subsys/$prog"
+pidpath="/var/run/${prog}.pid"
+
+start()
+{
+ echo -n $"Starting $prog: "
+ daemon --user tao $progpath -p $pidpath $OPTIONS -ORBSvcConf $svcconf --daemon
+ RETVAL=$?
+ [ "$RETVAL" = 0 ] && touch $lockpath
+ echo
+}
+
+stop()
+{
+ echo -n $"Stopping $prog: "
+ killproc $progpath -TERM
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ rm -f $lockpath
+ rm -f $pidpath
+ fi
+ echo
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $prog
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f $lockpath ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ reload)
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+ exit 1
+ ;;
+esac
+exit $RETVAL
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-rtevent b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-rtevent
new file mode 100644
index 00000000000..272bb8d60ed
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/rc.d/init.d/tao-rtevent
@@ -0,0 +1,76 @@
+#!/bin/bash
+#
+# chkconfig: - 81 14
+# description: Starts and stops the TAO Event Service.
+# processname: tao-rtevent
+# config: /etc/tao/tao-rtevent.opt
+# config: /etc/tao/tao-rtevent.conf
+# pidfile: /var/run/tao-rtevent.pid
+
+# Source function library.
+. /etc/init.d/functions
+
+# Source configuration options
+. /etc/tao/tao-rtevent.opt
+
+RETVAL=0
+
+prog="tao-rtevent"
+progpath="/usr/sbin/$prog"
+svcconf="/etc/tao/${prog}.conf"
+lockpath="/var/lock/subsys/$prog"
+pidpath="/var/run/${prog}.pid"
+
+start()
+{
+ echo -n $"Starting $prog: "
+ daemon --user tao $progpath -p $pidpath $OPTIONS -ORBSvcConf $svcconf --daemon
+ RETVAL=$?
+ [ "$RETVAL" = 0 ] && touch $lockpath
+ echo
+}
+
+stop()
+{
+ echo -n $"Stopping $prog: "
+ killproc $progpath -TERM
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ] ; then
+ rm -f $lockpath
+ rm -f $pidpath
+ fi
+ echo
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $prog
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ if [ -f $lockpath ]; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ reload)
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
+ exit 1
+ ;;
+esac
+exit $RETVAL
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosconcurrency.opt b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosconcurrency.opt
new file mode 100644
index 00000000000..3322b4e0976
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosconcurrency.opt
@@ -0,0 +1,11 @@
+# Specify desired default initial references arguments
+INITREF="-ORBDefaultInitRef corbaloc::localhost:2809"
+
+# Enable debug logging, comment out to disable.
+#DEBUGLEVEL="-d -ORBDebugLevel 10"
+
+# Configure log file
+LOGFILE="-ORBLogFile /var/log/tao/tao-cosconcurrency.log"
+
+# Concatenate all options
+OPTIONS="$INITREF $DEBUGLEVEL $LOGFILE"
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosevent.opt b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosevent.opt
new file mode 100644
index 00000000000..b0eba7f99a6
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosevent.opt
@@ -0,0 +1,11 @@
+# Specify desired default initial references arguments
+INITREF="-ORBDefaultInitRef corbaloc::localhost:2809"
+
+# Enable debug logging, comment out to disable.
+#DEBUGLEVEL="-ORBDebugLevel 10"
+
+# Configure log file
+LOGFILE="-ORBLogFile /var/log/tao/tao-cosevent.log"
+
+# Concatenate all options
+OPTIONS="$INITREF $DEBUGLEVEL $LOGFILE"
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosnaming.opt b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosnaming.opt
new file mode 100644
index 00000000000..79b4dcec707
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosnaming.opt
@@ -0,0 +1,17 @@
+# Specify desired endpoint arguments
+ENDPOINT="-ORBListenEndpoints iiop://:2809"
+
+# Location of persistance data file, comment out to disable persistance.
+PERSISTFILE="-f /var/cache/tao/tao-cosnaming.dat"
+
+# Enable multicast discovery, comment out to disable.
+#MULTICAST="-m 1"
+
+# Enable debug logging, comment out to disable.
+#DEBUGLEVEL="-ORBDebugLevel 10"
+
+# Configure log file
+LOGFILE="-ORBLogFile /var/log/tao/tao-cosnaming.log"
+
+# Concatenate all options
+OPTIONS="$ENDPOINT $PERSISTFILE $MULTICAST $DEBUGLEVEL $LOGFILE"
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosnotification.opt b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosnotification.opt
new file mode 100644
index 00000000000..d9294994039
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-cosnotification.opt
@@ -0,0 +1,11 @@
+# Specify desired default initial references arguments
+INITREF="-ORBDefaultInitRef corbaloc::localhost:2809 -NameSvc"
+
+# Enable debug logging, comment out to disable.
+#DEBUGLEVEL="-ORBDebugLevel 10"
+
+# Configure log file
+LOGFILE="-ORBLogFile /var/log/tao/tao-cosnotification.log"
+
+# Concatenate all options
+OPTIONS="$INITREF $DEBUGLEVEL $LOGFILE"
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-costrading.opt b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-costrading.opt
new file mode 100644
index 00000000000..acd2b382f25
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-costrading.opt
@@ -0,0 +1,11 @@
+# Specify desired endpoint arguments
+INITREF="-ORBDefaultInitRef corbaloc::localhost:2809"
+
+# Enable debug logging, comment out to disable.
+#DEBUGLEVEL="-ORBDebugLevel 10"
+
+# Configure log file
+LOGFILE="-ORBLogFile /var/log/tao/tao-costrading.log"
+
+# Concatenate all options
+OPTIONS="$INITREF $DEBUGLEVEL $LOGFILE"
diff --git a/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-rtevent.opt b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-rtevent.opt
new file mode 100644
index 00000000000..084c50c39b6
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-fedora/tao/tao-rtevent.opt
@@ -0,0 +1,11 @@
+# Specify desired default initial references arguments
+INITREF="-ORBDefaultInitRef corbaloc::localhost:2809"
+
+# Enable debug logging, comment out to disable.
+#DEBUGLEVEL="-ORBDebugLevel 10"
+
+# Configure log file
+LOGFILE="-ORBLogFile /var/log/tao/tao-rtevent.log"
+
+# Concatenate all options
+OPTIONS="$INITREF $DEBUGLEVEL $LOGFILE"
diff --git a/ACE/rpmbuild/ace-tao-init-suse.tar.bz2 b/ACE/rpmbuild/ace-tao-init-suse.tar.bz2
deleted file mode 100644
index b47355194a5..00000000000
--- a/ACE/rpmbuild/ace-tao-init-suse.tar.bz2
+++ /dev/null
Binary files differ
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency
new file mode 100644
index 00000000000..345474c539f
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosconcurrency
@@ -0,0 +1,192 @@
+#!/bin/bash
+#
+# /etc/init.d/tao-cosconcurrency
+# and its symbolic link
+# /(usr/)sbin/rctao-cosconcurrency
+#
+# system startup script for service/daemon tao-cosconcurrency
+#
+# LSB compatible service control script; see http://www.linuxbase.org/spec/
+#
+### BEGIN INIT INFO
+# Provides: tao-cosconcurrency
+# Required-Start: $syslog $remote_fs tao-cosnaming
+# Should-Start: $time ypbind smtp
+# Required-Stop: $syslog $remote_fs
+# Should-Stop: $time ypbind smtp tao-cosnaming
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Starts and stops the TAO Concurrency Service.
+# Description: Start tao-cosconcurrency, the TAO Concurrency Service.
+### END INIT INFO
+
+# Check for missing binaries (stale symlinks should not happen)
+# Note: Special treatment of stop for LSB conformance
+TAO_COSCONCURRENCY_BIN=/usr/sbin/tao-cosconcurrency
+
+test -x $TAO_COSCONCURRENCY_BIN || { echo "$TAO_COSCONCURRENCY_BIN not installed";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 5; fi; }
+
+# Check for existence of needed config file and read it
+TAO_COSCONCURRENCY_CONFIG=/etc/sysconfig/tao/tao-cosconcurrency.opt
+
+test -r $TAO_COSCONCURRENCY_CONFIG || { echo "$TAO_COSCONCURRENCY_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+# Read config
+. $TAO_COSCONCURRENCY_CONFIG
+
+# Source LSB init functions
+# providing start_daemon, killproc, pidofproc,
+# log_success_msg, log_failure_msg and log_warning_msg.
+# This is currently not used by UnitedLinux based distributions and
+# not needed for init scripts for UnitedLinux only. If it is used,
+# the functions from rc.status should not be sourced or used.
+#. /lib/lsb/init-functions
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v be verbose in local rc status and clear it afterwards
+# rc_status -v -r ditto and clear both the local and overall rc status
+# rc_status -s display "skipped" and exit with status 3
+# rc_status -u display "unused" and exit with status 3
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num>
+# rc_reset clear both the local and overall rc status
+# rc_exit exit appropriate to overall rc status
+# rc_active checks whether a service is activated by symlinks
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - user had insufficient privileges
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signaling is not supported) are
+# considered a success.
+prog=tao-cosconcurrency
+OPTIONS="$TAO_COSCONCUR_INITREF $TAO_COSCONCUR_DEBUGLEVEL $TAO_COSCONCUR_LOGFILE"
+svcconf="/etc/tao/${prog}.conf"
+svcname="TAO concurrency service"
+
+case "$1" in
+ start)
+ echo -n "Starting $svcname: "
+ ## Start daemon with startproc(8). If this fails
+ ## the return value is set appropriately by startproc.
+ /sbin/startproc $TAO_COSCONCURRENCY_BIN $OPTIONS -ORBSvcConf $svcconf --daemon
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down $svcname: "
+ ## Stop daemon with killproc(8) and if this fails
+ ## killproc sets the return value according to LSB.
+
+ /sbin/killproc -TERM $TAO_COSCONCURRENCY_BIN
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart|condrestart)
+ ## Do a restart only if the service was active before.
+ ## Note: try-restart is now part of LSB (as of 1.9).
+ ## RH has a similar command named condrestart.
+ if test "$1" = "condrestart"; then
+ echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
+ fi
+ $0 status
+ if test $? = 0; then
+ $0 restart
+ else
+ rc_reset # Not running is not a failure.
+ fi
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart the service if it
+ ## is running.
+
+ echo -n "Reload $svcname "
+ ## if it supports it:
+ /sbin/killproc -HUP $TAO_COSCONCURRENCY_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise:
+ #$0 try-restart
+ #rc_status
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signaling, do nothing (!)
+
+ # If it supports signaling:
+ echo -n "Reload $svcname "
+ /sbin/killproc -HUP $TAO_COSCONCURRENCY_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise if it does not support reload:
+ #rc_failed 3
+ #rc_status -v
+ ;;
+ status)
+ echo -n "Checking for $svcname "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Return value is slightly different for the status command:
+ # 0 - service up and running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running (unused)
+ # 4 - service status unknown :-(
+ # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
+
+ # NOTE: checkproc returns LSB compliant status values.
+ /sbin/checkproc $TAO_COSCONCURRENCY_BIN
+ # NOTE: rc_status knows that we called this init script with
+ # "status" option and adapts its messages accordingly.
+ rc_status -v
+ ;;
+ probe)
+ ## Optional: Probe for the necessity of a reload, print out the
+ ## argument to this init script which is required for a reload.
+ ## Note: probe is not (yet) part of LSB (as of 1.9)
+
+ test $svcconf -nt /var/run/tao-cosconcurrency.pid && echo reload
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
+ exit 1
+ ;;
+esac
+rc_exit
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent
new file mode 100644
index 00000000000..55c33659408
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosevent
@@ -0,0 +1,199 @@
+#!/bin/bash
+#
+# chkconfig: - 81 14
+# description: Starts and stops the TAO CosEvent Service.
+# processname: tao-cosevent
+# config: /etc/tao/tao-cosevent.opt
+# config: /etc/tao/tao-cosevent.conf
+# pidfile: /var/run/tao-cosevent.pid
+# /etc/init.d/TAO-cosevent
+# and its symbolic link
+# /(usr/)sbin/rcTAO-cosevent
+#
+# system startup script for service/daemon TAO-cosconcurrency
+#
+# LSB compatible service control script; see http://www.linuxbase.org/spec/
+#
+### BEGIN INIT INFO
+# Provides: TAO-cosconcurrency
+# Required-Start: $syslog $remote_fs TAO-cosnaming
+# Should-Start: $time ypbind smtp
+# Required-Stop: $syslog $remote_fs TAO-cosnaming
+# Should-Stop: $time ypbind smtp
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Starts and stops the TAO CosEvent Service.
+# Description: Start tao-cosevent, the TAO CosEvent Service.
+### END INIT INFO
+
+# Check for missing binaries (stale symlinks should not happen)
+# Note: Special treatment of stop for LSB conformance
+TAO_COSEVENT_BIN=/usr/sbin/tao-cosevent
+
+test -x $TAO_COSEVENT_BIN || { echo "$TAO_COSEVENT_BIN not installed";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 5; fi; }
+
+# Check for existence of needed config file and read it
+TAO_COSEVENT_CONFIG=/etc/sysconfig/tao/tao-cosevent.opt
+
+test -r $TAO_COSEVENT_CONFIG || { echo "$TAO_COSEVENT_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+# Read config
+. $TAO_COSEVENT_CONFIG
+
+# Source LSB init functions
+# providing start_daemon, killproc, pidofproc,
+# log_success_msg, log_failure_msg and log_warning_msg.
+# This is currently not used by UnitedLinux based distributions and
+# not needed for init scripts for UnitedLinux only. If it is used,
+# the functions from rc.status should not be sourced or used.
+#. /lib/lsb/init-functions
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v be verbose in local rc status and clear it afterwards
+# rc_status -v -r ditto and clear both the local and overall rc status
+# rc_status -s display "skipped" and exit with status 3
+# rc_status -u display "unused" and exit with status 3
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num>
+# rc_reset clear both the local and overall rc status
+# rc_exit exit appropriate to overall rc status
+# rc_active checks whether a service is activated by symlinks
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - user had insufficient privileges
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signaling is not supported) are
+# considered a success.
+# Source configuration options
+prog=tao-cosevent
+OPTIONS="$TAO_COSEVENT_INITREF $TAO_COSEVENT_DEBUGLEVEL $TAO_COSEVENT_LOGFILE"
+svcconf="/etc/tao/${prog}.conf"
+svcname="TAO event service"
+
+case "$1" in
+ start)
+ echo -n "Starting $svcname: "
+ ## Start daemon with startproc(8). If this fails
+ ## the return value is set appropriately by startproc.
+ /sbin/startproc $TAO_COSEVENT_BIN $OPTIONS -ORBSvcConf $svcconf --daemon
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down $svcname: "
+ ## Stop daemon with killproc(8) and if this fails
+ ## killproc sets the return value according to LSB.
+
+ /sbin/killproc -TERM $TAO_COSEVENT_BIN
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart|condrestart)
+ ## Do a restart only if the service was active before.
+ ## Note: try-restart is now part of LSB (as of 1.9).
+ ## RH has a similar command named condrestart.
+ if test "$1" = "condrestart"; then
+ echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
+ fi
+ $0 status
+ if test $? = 0; then
+ $0 restart
+ else
+ rc_reset # Not running is not a failure.
+ fi
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart the service if it
+ ## is running.
+
+ echo -n "Reloading $svcname "
+ ## if it supports it:
+ /sbin/killproc -HUP $TAO_COSEVENT_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise:
+ #$0 try-restart
+ #rc_status
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signaling, do nothing (!)
+
+ # If it supports signaling:
+ echo -n "Reloading $svcname "
+ /sbin/killproc -HUP $TAO_COSEVENT_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise if it does not support reload:
+ #rc_failed 3
+ #rc_status -v
+ ;;
+ status)
+ echo -n "Checking for $svcname "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Return value is slightly different for the status command:
+ # 0 - service up and running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running (unused)
+ # 4 - service status unknown :-(
+ # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
+
+ # NOTE: checkproc returns LSB compliant status values.
+ /sbin/checkproc $TAO_COSEVENT_BIN
+ # NOTE: rc_status knows that we called this init script with
+ # "status" option and adapts its messages accordingly.
+ rc_status -v
+ ;;
+ probe)
+ ## Optional: Probe for the necessity of a reload, print out the
+ ## argument to this init script which is required for a reload.
+ ## Note: probe is not (yet) part of LSB (as of 1.9)
+
+ test $svcconf -nt /var/run/TAO-cosevent.pid && echo reload
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
+ exit 1
+ ;;
+esac
+rc_exit
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming
new file mode 100644
index 00000000000..b69aa0b544d
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnaming
@@ -0,0 +1,192 @@
+#!/bin/bash
+#
+# /etc/init.d/tao-cosnaming
+# and its symbolic link
+# /(usr/)sbin/rctao-cosnaming
+#
+# system startup script for service/daemon tao-cosnaming
+#
+# LSB compatible service control script; see http://www.linuxbase.org/spec/
+#
+### BEGIN INIT INFO
+# Provides: tao-cosnaming
+# Required-Start: $syslog $remote_fs
+# Should-Start: $time ypbind smtp
+# Required-Stop: $syslog $remote_fs
+# Should-Stop: $time ypbind smtp
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Starts and stops the TAO Naming Service.
+# Description: Start tao-cosnaming, the TAO Naming Service.
+### END INIT INFO
+
+# Check for missing binaries (stale symlinks should not happen)
+# Note: Special treatment of stop for LSB conformance
+TAO_COSNAMING_BIN=/usr/sbin/tao-cosnaming
+
+test -x $TAO_COSNAMING_BIN || { echo "$TAO_COSNAMING_BIN not installed";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 5; fi; }
+
+# Check for existence of needed config file and read it
+TAO_COSNAMING_CONFIG=/etc/sysconfig/tao/TAO-cosnaming.opt
+
+test -r $TAO_COSNAMING_CONFIG || { echo "$TAO_COSNAMING_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+# Read config
+. $TAO_COSNAMING_CONFIG
+
+# Source LSB init functions
+# providing start_daemon, killproc, pidofproc,
+# log_success_msg, log_failure_msg and log_warning_msg.
+# This is currently not used by UnitedLinux based distributions and
+# not needed for init scripts for UnitedLinux only. If it is used,
+# the functions from rc.status should not be sourced or used.
+#. /lib/lsb/init-functions
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v be verbose in local rc status and clear it afterwards
+# rc_status -v -r ditto and clear both the local and overall rc status
+# rc_status -s display "skipped" and exit with status 3
+# rc_status -u display "unused" and exit with status 3
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num>
+# rc_reset clear both the local and overall rc status
+# rc_exit exit appropriate to overall rc status
+# rc_active checks whether a service is activated by symlinks
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - user had insufficient privileges
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signaling is not supported) are
+# considered a success.
+prog=tao-cosnaming
+svcname="TAO naming service"
+svcconf=/etc/tao/${prog}.conf
+OPTIONS="$TAO_COSNAMING_ENDPOINT $TAO_COSNAMING_PERSISTFILE $TAO_COSNAMING_MULTICAST $TAO_COSNAMING_DEBUG $TAO_COSNAMING_LOGFILE"
+
+case "$1" in
+ start)
+ echo -n "Starting $svcname: "
+ ## Start daemon with startproc(8). If this fails
+ ## the return value is set appropriately by startproc.
+ /sbin/startproc $TAO_COSNAMING_BIN $OPTIONS -ORBSvcConf $svcconf --daemon
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down $svcname: "
+ ## Stop daemon with killproc(8) and if this fails
+ ## killproc sets the return value according to LSB.
+
+ /sbin/killproc -TERM $TAO_COSNAMING_BIN
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart|condrestart)
+ ## Do a restart only if the service was active before.
+ ## Note: try-restart is now part of LSB (as of 1.9).
+ ## RH has a similar command named condrestart.
+ if test "$1" = "condrestart"; then
+ echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
+ fi
+ $0 status
+ if test $? = 0; then
+ $0 restart
+ else
+ rc_reset # Not running is not a failure.
+ fi
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart the service if it
+ ## is running.
+
+ echo -n "Reloading $svcname "
+ ## if it supports it:
+ /sbin/killproc -HUP $TAO_COSNAMING_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise:
+ #$0 try-restart
+ #rc_status
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signaling, do nothing (!)
+
+ # If it supports signaling:
+ echo -n "Reloading $svcname "
+ /sbin/killproc -HUP $TAO_COSNAMING_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise if it does not support reload:
+ #rc_failed 3
+ #rc_status -v
+ ;;
+ status)
+ echo -n "Checking for $svcname "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Return value is slightly different for the status command:
+ # 0 - service up and running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running (unused)
+ # 4 - service status unknown :-(
+ # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
+
+ # NOTE: checkproc returns LSB compliant status values.
+ /sbin/checkproc $TAO_COSNAMING_BIN
+ # NOTE: rc_status knows that we called this init script with
+ # "status" option and adapts its messages accordingly.
+ rc_status -v
+ ;;
+ probe)
+ ## Optional: Probe for the necessity of a reload, print out the
+ ## argument to this init script which is required for a reload.
+ ## Note: probe is not (yet) part of LSB (as of 1.9)
+
+ test $svcconf -nt /var/run/tao-cosnaming.pid && echo reload
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
+ exit 1
+ ;;
+esac
+rc_exit
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification
new file mode 100644
index 00000000000..4217c629443
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-cosnotification
@@ -0,0 +1,192 @@
+#!/bin/bash
+#
+# /etc/init.d/tao-cosnotification
+# and its symbolic link
+# /(usr/)sbin/rctao-cosnotification
+#
+# system startup script for service/daemon tao-cosnotification
+#
+# LSB compatible service control script; see http://www.linuxbase.org/spec/
+#
+### BEGIN INIT INFO
+# Provides: tao-cosnotification
+# Required-Start: $syslog $remote_fs tao-cosnaming
+# Should-Start: $time ypbind smtp
+# Required-Stop: $syslog $remote_fs tao-cosnaming
+# Should-Stop: $time ypbind smtp
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Starts and stops the TAO Notification Service.
+# Description: Start tao-cosnotification, the TAO Notification Service.
+### END INIT INFO
+
+# Check for missing binaries (stale symlinks should not happen)
+# Note: Special treatment of stop for LSB conformance
+TAO_COSNOTIFICATION_BIN=/usr/sbin/tao-cosnotification
+
+test -x $TAO_COSNOTIFICATION_BIN || { echo "$TAO_COSNOTIFICATION_BIN not installed";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 5; fi; }
+
+# Check for existence of needed config file and read it
+TAO_COSNOTIFICATION_CONFIG=/etc/sysconfig/tao/tao-cosnotification.opt
+
+test -r $TAO_COSNOTIFICATION_CONFIG || { echo "$TAO_COSNOTIFICATION_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+# Read config
+. $TAO_COSNOTIFICATION_CONFIG
+
+# Source LSB init functions
+# providing start_daemon, killproc, pidofproc,
+# log_success_msg, log_failure_msg and log_warning_msg.
+# This is currently not used by UnitedLinux based distributions and
+# not needed for init scripts for UnitedLinux only. If it is used,
+# the functions from rc.status should not be sourced or used.
+#. /lib/lsb/init-functions
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v be verbose in local rc status and clear it afterwards
+# rc_status -v -r ditto and clear both the local and overall rc status
+# rc_status -s display "skipped" and exit with status 3
+# rc_status -u display "unused" and exit with status 3
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num>
+# rc_reset clear both the local and overall rc status
+# rc_exit exit appropriate to overall rc status
+# rc_active checks whether a service is activated by symlinks
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - user had insufficient privileges
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signaling is not supported) are
+# considered a success.
+svcname="TAO notification service"
+prog=TAO-cosnotification
+svcconf="/etc/tao/${prog}.conf"
+OPTIONS="$TAO_COSNOTE_INITREF $TAO_COSNOTE_DEBUGLEVEL $TAO_COSNOTE_LOGFILE"
+
+case "$1" in
+ start)
+ echo -n "Starting $svcname: "
+ ## Start daemon with startproc(8). If this fails
+ ## the return value is set appropriately by startproc.
+ /sbin/startproc $TAO_COSNOTIFICATION_BIN --daemon $OPTIONS -ORBSvcConf $svcconf
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down $svcname: "
+ ## Stop daemon with killproc(8) and if this fails
+ ## killproc sets the return value according to LSB.
+
+ /sbin/killproc -TERM $TAO_COSNOTIFICATION_BIN
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart|condrestart)
+ ## Do a restart only if the service was active before.
+ ## Note: try-restart is now part of LSB (as of 1.9).
+ ## RH has a similar command named condrestart.
+ if test "$1" = "condrestart"; then
+ echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
+ fi
+ $0 status
+ if test $? = 0; then
+ $0 restart
+ else
+ rc_reset # Not running is not a failure.
+ fi
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart the service if it
+ ## is running.
+
+ echo -n "Reloading $svcname "
+ ## if it supports it:
+ /sbin/killproc -HUP $TAO_COSNOTIFICATION_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise:
+ #$0 try-restart
+ #rc_status
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signaling, do nothing (!)
+
+ # If it supports signaling:
+ echo -n "Reloading $svcname "
+ /sbin/killproc -HUP $TAO_COSNOTIFICATION_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise if it does not support reload:
+ #rc_failed 3
+ #rc_status -v
+ ;;
+ status)
+ echo -n "Checking for $svcname "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Return value is slightly different for the status command:
+ # 0 - service up and running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running (unused)
+ # 4 - service status unknown :-(
+ # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
+
+ # NOTE: checkproc returns LSB compliant status values.
+ /sbin/checkproc $TAO_COSNOTIFICATION_BIN
+ # NOTE: rc_status knows that we called this init script with
+ # "status" option and adapts its messages accordingly.
+ rc_status -v
+ ;;
+ probe)
+ ## Optional: Probe for the necessity of a reload, print out the
+ ## argument to this init script which is required for a reload.
+ ## Note: probe is not (yet) part of LSB (as of 1.9)
+
+ test $svcconf -nt /var/run/tao-cosnotification.pid && echo reload
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
+ exit 1
+ ;;
+esac
+rc_exit
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading
new file mode 100644
index 00000000000..05e3651c06e
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-costrading
@@ -0,0 +1,192 @@
+#!/bin/bash
+#
+# /etc/init.d/tao-cosnotification
+# and its symbolic link
+# /(usr/)sbin/rctao-cosnotification
+#
+# system startup script for service/daemon TAO-cosnotification
+#
+# LSB compatible service control script; see http://www.linuxbase.org/spec/
+#
+### BEGIN INIT INFO
+# Provides: tao-costrading
+# Required-Start: $syslog $remote_fs tao-cosnaming
+# Should-Start: $time ypbind smtp
+# Required-Stop: $syslog $remote_fs tao-cosnaming
+# Should-Stop: $time ypbind smtp
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Starts and stops the TAO Trading Service.
+# Description: Start tao-costrading, the TAO Trading Service.
+### END INIT INFO
+
+# Check for missing binaries (stale symlinks should not happen)
+# Note: Special treatment of stop for LSB conformance
+TAO_COSTRADING_BIN=/usr/sbin/tao-costrading
+
+test -x $TAO_COSTRADING_BIN || { echo "$TAO_COSTRADING_BIN not installed";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 5; fi; }
+
+# Check for existence of needed config file and read it
+TAO_COSTRADING_CONFIG=/etc/sysconfig/tao/tao-costrading.opt
+
+test -r $TAO_COSTRADING_CONFIG || { echo "$TAO_COSTRADING_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+# Read config
+. $TAO_COSTRADING_CONFIG
+
+# Source LSB init functions
+# providing start_daemon, killproc, pidofproc,
+# log_success_msg, log_failure_msg and log_warning_msg.
+# This is currently not used by UnitedLinux based distributions and
+# not needed for init scripts for UnitedLinux only. If it is used,
+# the functions from rc.status should not be sourced or used.
+#. /lib/lsb/init-functions
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v be verbose in local rc status and clear it afterwards
+# rc_status -v -r ditto and clear both the local and overall rc status
+# rc_status -s display "skipped" and exit with status 3
+# rc_status -u display "unused" and exit with status 3
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num>
+# rc_reset clear both the local and overall rc status
+# rc_exit exit appropriate to overall rc status
+# rc_active checks whether a service is activated by symlinks
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - user had insufficient privileges
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signaling is not supported) are
+# considered a success.
+prog=tao-costrading
+svcname="TAO trading service"
+svcconf="/etc/tao/${prog}.conf"
+OPTIONS="$TAO_COSTRADING_INITREF $TAO_COSTRADING_DEBUGLEVEL $TAO_COSTRADING_LOGFILE"
+
+case "$1" in
+ start)
+ echo -n "Starting $svcname: "
+ ## Start daemon with startproc(8). If this fails
+ ## the return value is set appropriately by startproc.
+ /sbin/startproc $TAO_COSTRADING_BIN $OPTIONS -ORBSvcConf $svcconf --daemon
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down $svcname: "
+ ## Stop daemon with killproc(8) and if this fails
+ ## killproc sets the return value according to LSB.
+
+ /sbin/killproc -TERM $TAO_COSTRADING_BIN
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart|condrestart)
+ ## Do a restart only if the service was active before.
+ ## Note: try-restart is now part of LSB (as of 1.9).
+ ## RH has a similar command named condrestart.
+ if test "$1" = "condrestart"; then
+ echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
+ fi
+ $0 status
+ if test $? = 0; then
+ $0 restart
+ else
+ rc_reset # Not running is not a failure.
+ fi
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart the service if it
+ ## is running.
+
+ echo -n "Reloading $svcname "
+ ## if it supports it:
+ /sbin/killproc -HUP $TAO_COSTRADING_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise:
+ #$0 try-restart
+ #rc_status
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signaling, do nothing (!)
+
+ # If it supports signaling:
+ echo -n "Reloading $svcname "
+ /sbin/killproc -HUP $TAO_COSTRADING_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise if it does not support reload:
+ #rc_failed 3
+ #rc_status -v
+ ;;
+ status)
+ echo -n "Checking for $svcname "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Return value is slightly different for the status command:
+ # 0 - service up and running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running (unused)
+ # 4 - service status unknown :-(
+ # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
+
+ # NOTE: checkproc returns LSB compliant status values.
+ /sbin/checkproc $TAO_COSTRADING_BIN
+ # NOTE: rc_status knows that we called this init script with
+ # "status" option and adapts its messages accordingly.
+ rc_status -v
+ ;;
+ probe)
+ ## Optional: Probe for the necessity of a reload, print out the
+ ## argument to this init script which is required for a reload.
+ ## Note: probe is not (yet) part of LSB (as of 1.9)
+
+ test $svcconf -nt /var/run/tao-costrading.pid && echo reload
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
+ exit 1
+ ;;
+esac
+rc_exit
diff --git a/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent
new file mode 100644
index 00000000000..862b6ca2d05
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/init.d/tao-rtevent
@@ -0,0 +1,192 @@
+#!/bin/bash
+#
+# /etc/init.d/tao-rtevent
+# and its symbolic link
+# /(usr/)sbin/rctao-rtevent
+#
+# system startup script for service/daemon TAO-rtevent
+#
+# LSB compatible service control script; see http://www.linuxbase.org/spec/
+#
+### BEGIN INIT INFO
+# Provides: TAO-rtevent
+# Required-Start: $syslog $remote_fs tao-cosnaming
+# Should-Start: $time ypbind smtp
+# Required-Stop: $syslog $remote_fs tao-cosnaming
+# Should-Stop: $time ypbind smtp
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: Starts and stops the TAO Trading Service.
+# Description: Start tao-costrading, the TAO Trading Service.
+### END INIT INFO
+
+# Check for missing binaries (stale symlinks should not happen)
+# Note: Special treatment of stop for LSB conformance
+TAO_RTEVENT_BIN=/usr/sbin/tao-rtevent
+
+test -x $TAO_RTEVENT_BIN || { echo "$TAO_RTEVENT_BIN not installed";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 5; fi; }
+
+# Check for existence of needed config file and read it
+TAO_RTEVENT_CONFIG=/etc/sysconfig/tao/tao-rtevent.opt
+
+test -r $TAO_RTEVENT_CONFIG || { echo "$TAO_RTEVENT_CONFIG not existing";
+ if [ "$1" = "stop" ]; then exit 0;
+ else exit 6; fi; }
+
+# Read config
+. $TAO_RTEVENT_CONFIG
+
+# Source LSB init functions
+# providing start_daemon, killproc, pidofproc,
+# log_success_msg, log_failure_msg and log_warning_msg.
+# This is currently not used by UnitedLinux based distributions and
+# not needed for init scripts for UnitedLinux only. If it is used,
+# the functions from rc.status should not be sourced or used.
+#. /lib/lsb/init-functions
+
+# Shell functions sourced from /etc/rc.status:
+# rc_check check and set local and overall rc status
+# rc_status check and set local and overall rc status
+# rc_status -v be verbose in local rc status and clear it afterwards
+# rc_status -v -r ditto and clear both the local and overall rc status
+# rc_status -s display "skipped" and exit with status 3
+# rc_status -u display "unused" and exit with status 3
+# rc_failed set local and overall rc status to failed
+# rc_failed <num> set local and overall rc status to <num>
+# rc_reset clear both the local and overall rc status
+# rc_exit exit appropriate to overall rc status
+# rc_active checks whether a service is activated by symlinks
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+# Return values acc. to LSB for all commands but status:
+# 0 - success
+# 1 - generic or unspecified error
+# 2 - invalid or excess argument(s)
+# 3 - unimplemented feature (e.g. "reload")
+# 4 - user had insufficient privileges
+# 5 - program is not installed
+# 6 - program is not configured
+# 7 - program is not running
+# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
+#
+# Note that starting an already running service, stopping
+# or restarting a not-running service as well as the restart
+# with force-reload (in case signaling is not supported) are
+# considered a success.
+prog=tao-rtevent
+svcname="TAO event service"
+svcconf=/etc/tao/${prog}.conf
+OPTIONS="$TAO_RTEVENT_INITREF $TAO_RTEVENT_DEBUGLEVEL $TAO_RTEVENT_LOGFILE"
+
+case "$1" in
+ start)
+ echo -n "Starting $svcname: "
+ ## Start daemon with startproc(8). If this fails
+ ## the return value is set appropriately by startproc.
+ /sbin/startproc $TAO_RTEVENT_BIN $OPTIONS -ORBSvcConf $svcconf --daemon
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ stop)
+ echo -n "Shutting down $svcname: "
+ ## Stop daemon with killproc(8) and if this fails
+ ## killproc sets the return value according to LSB.
+
+ /sbin/killproc -TERM $TAO_RTEVENT_BIN
+
+ # Remember status and be verbose
+ rc_status -v
+ ;;
+ try-restart|condrestart)
+ ## Do a restart only if the service was active before.
+ ## Note: try-restart is now part of LSB (as of 1.9).
+ ## RH has a similar command named condrestart.
+ if test "$1" = "condrestart"; then
+ echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
+ fi
+ $0 status
+ if test $? = 0; then
+ $0 restart
+ else
+ rc_reset # Not running is not a failure.
+ fi
+ # Remember status and be quiet
+ rc_status
+ ;;
+ restart)
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ $0 stop
+ $0 start
+
+ # Remember status and be quiet
+ rc_status
+ ;;
+ force-reload)
+ ## Signal the daemon to reload its config. Most daemons
+ ## do this on signal 1 (SIGHUP).
+ ## If it does not support it, restart the service if it
+ ## is running.
+
+ echo -n "Reloading $svcname "
+ ## if it supports it:
+ /sbin/killproc -HUP $TAO_RTEVENT_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise:
+ #$0 try-restart
+ #rc_status
+ ;;
+ reload)
+ ## Like force-reload, but if daemon does not support
+ ## signaling, do nothing (!)
+
+ # If it supports signaling:
+ echo -n "Reloading $svcname "
+ /sbin/killproc -HUP $TAO_RTEVENT_BIN
+ #touch /var/run/FOO.pid
+ rc_status -v
+
+ ## Otherwise if it does not support reload:
+ #rc_failed 3
+ #rc_status -v
+ ;;
+ status)
+ echo -n "Checking for $svcname "
+ ## Check status with checkproc(8), if process is running
+ ## checkproc will return with exit status 0.
+
+ # Return value is slightly different for the status command:
+ # 0 - service up and running
+ # 1 - service dead, but /var/run/ pid file exists
+ # 2 - service dead, but /var/lock/ lock file exists
+ # 3 - service not running (unused)
+ # 4 - service status unknown :-(
+ # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
+
+ # NOTE: checkproc returns LSB compliant status values.
+ /sbin/checkproc $TAO_RTEVENT_BIN
+ # NOTE: rc_status knows that we called this init script with
+ # "status" option and adapts its messages accordingly.
+ rc_status -v
+ ;;
+ probe)
+ ## Optional: Probe for the necessity of a reload, print out the
+ ## argument to this init script which is required for a reload.
+ ## Note: probe is not (yet) part of LSB (as of 1.9)
+
+ test $svcconf -nt /var/run/tao-rtevent.pid && echo reload
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
+ exit 1
+ ;;
+esac
+rc_exit
diff --git a/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency.opt b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency.opt
new file mode 100644
index 00000000000..3db9ca68639
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosconcurrency.opt
@@ -0,0 +1,23 @@
+## Path: Network/tao-cosconcurrency
+## Description: TAO Concurrency service settings
+#
+## Type string
+## Default: "-ORBDefaultInitRef corbaloc::localhost:2809"
+## ServiceRestart: tao-cosconcurrency
+#
+# Specify desired default initial references arguments
+TAO_COSCONCUR_INITREF="-ORBDefaultInitRef corbaloc::localhost:2809"
+
+## Type string
+## Default: "-d -ORBDebugLevel 10"
+## ServiceRestart: tao-cosconcurrency
+#
+# Enable debug logging, set to "" to disable
+TAO_COSCONCUR_DEBUGLEVEL="-d -ORBDebugLevel 10"
+
+## Type string
+## Default: "-ORBLogFile /var/log/tao/tao-cosconcurrency.log"
+## ServiceRestart: tao-cosconcurrency
+#
+# Configure log file
+TAO_COSCONCUR_LOGFILE="-ORBLogFile /var/log/tao/tao-cosconcurrency.log"
diff --git a/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosevent.opt b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosevent.opt
new file mode 100644
index 00000000000..4920d28382e
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosevent.opt
@@ -0,0 +1,23 @@
+## Path: Network/tao-cosevent
+## Description: TAO Event service settings
+#
+## Type string
+## Default: "-ORBDefaultInitRef corbaloc::localhost:2809"
+## ServiceRestart: tao-cosnaming
+#
+# Specify desired default initial references arguments
+TAO_COSEVENT_INITREF="-ORBDefaultInitRef corbaloc::localhost:2809"
+
+## Type string
+## Default: ""
+## ServiceRestart: tao-cosnaming
+#
+# Enable debug logging, set to "-ORBDebugLevel 10" to enable.
+TAO_COSEVENT_DEBUGLEVEL=""
+
+## Type string
+## Default: "-ORBLogFile /var/log/tao/tao-cosevent.log"
+## ServiceRestart: tao-cosnaming
+#
+# Configure log file
+TAO_COSEVENT_LOGFILE="-ORBLogFile /var/log/tao/tao-cosevent.log"
diff --git a/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnaming.opt b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnaming.opt
new file mode 100644
index 00000000000..1a805f0ebcb
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnaming.opt
@@ -0,0 +1,37 @@
+## Path: Network/tao-cosnaming
+## Description: TAO Naming service settings
+#
+## Type string
+## Default: "-ORBListenEndpoints iiop://:2809"
+## ServiceRestart: tao-cosnaming
+#
+# Specify desired endpoint arguments
+TAO_COSNAMING_ENDPOINT="-ORBListenEndpoints iiop://:2809"
+
+## Type string
+## Default: "-f /var/cache/tao/tao-cosnaming.dat"
+## ServiceRestart: tao-cosnaming
+#
+# Location of persistance data file, comment out to disable persistance.
+TAO_COSNAMING_PERSISTFILE="-f /var/cache/tao/tao-cosnaming.dat"
+
+## Type string
+## Default: ""
+## ServiceRestart: tao-cosnaming
+#
+# Enable multicast discovery, set to "-m 1" to enable
+TAO_COSNAMING_MULTICAST=""
+
+## Type string
+## Default: ""
+## ServiceRestart: tao-cosnaming
+#
+# Enable debug logging, set to "-ORBDebugLevel 10" to enable.
+TAO_COSNAMING_DEBUG = ""
+
+## Type string
+## Default: "-ORBLogFile /var/log/tao/tao-cosnaming.log"
+## ServiceRestart: tao-cosnaming
+#
+# Configure log file
+TAO_COSNAMING_LOGFILE="-ORBLogFile /var/log/tao/tao-cosnaming.log"
diff --git a/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnotification.opt b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnotification.opt
new file mode 100644
index 00000000000..3501d02a003
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-cosnotification.opt
@@ -0,0 +1,23 @@
+## Path: Network/tao-cosnotification
+## Description: TAO Notification service settings
+#
+## Type string
+## Default: "-ORBDefaultInitRef corbaloc::localhost:2809 -NameSvc"
+## ServiceRestart: tao-cosnotification
+#
+# Specify desired default initial references arguments
+TAO_COSNOTE_INITREF="-ORBDefaultInitRef corbaloc::localhost:2809 -NameSvc"
+
+## Type string
+## Default: ""
+## ServiceRestart: tao-cosnotification
+#
+# Enable debug logging, set to "-ORBDebugLevel 10" to enable.
+TAO_COSNOTE_DEBUGLEVEL=""
+
+## Type string
+## Default: "-ORBLogFile /var/log/tao/tao-cosnotification.log"
+## ServiceRestart: tao-cosnotification
+#
+# Configure log file
+TAO_COSNOTE_LOGFILE="-ORBLogFile /var/log/tao/tao-cosnotification.log"
diff --git a/ACE/rpmbuild/ace-tao-init-suse/tao/tao-costrading.opt b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-costrading.opt
new file mode 100644
index 00000000000..edb136a7564
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-costrading.opt
@@ -0,0 +1,23 @@
+## Path: Network/tao-costrading
+## Description: TAO Trading service settings
+#
+## Type string
+## Default: "-ORBDefaultInitRef corbaloc::localhost:2809"
+## ServiceRestart: tao-costrading
+#
+# Specify desired endpoint arguments
+TAO_COSTRADING_INITREF="-ORBDefaultInitRef corbaloc::localhost:2809"
+
+## Type string
+## Default: ""
+## ServiceRestart: tao-costrading
+#
+# Debug logging, set to "-ORBDebugLevel 10" to enable.
+TAO_COSTRADING_DEBUGLEVEL=""
+
+## Type string
+## Default: "-ORBLogFile /var/log/tao/tao-costrading.log"
+## ServiceRestart: tao-costrading
+#
+# Configure log file
+TAO_COSTRADING_LOGFILE="-ORBLogFile /var/log/tao/tao-costrading.log"
diff --git a/ACE/rpmbuild/ace-tao-init-suse/tao/tao-rtevent.opt b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-rtevent.opt
new file mode 100644
index 00000000000..1939fb54500
--- /dev/null
+++ b/ACE/rpmbuild/ace-tao-init-suse/tao/tao-rtevent.opt
@@ -0,0 +1,24 @@
+## Path: Network/tao-rtevent
+## Description: TAO Event service settings
+#
+## Type string
+## Default: "-ORBDefaultInitRef corbaloc::localhost:2809"
+## ServiceRestart: tao-rtevent
+#
+# Specify desired default initial references arguments
+TAO_RTEVENT_INITREF="-ORBDefaultInitRef corbaloc::localhost:2809"
+
+## Type string
+## Default: "-ORBDefaultInitRef corbaloc::localhost:2809"
+## ServiceRestart: tao-rtevent
+#
+# Enable debug logging, set to "-ORBDebugLevel 10" to enable.
+TAO_RTEVENT_DEBUGLEVEL=""
+
+## Type string
+## Default: "-ORBLogFile /var/log/tao/tao-rtevent.log"
+## ServiceRestart: tao-rtevent
+#
+# Configure log file
+TAO_RTEVENT_LOGFILE="-ORBLogFile /var/log/tao/tao-rtevent.log"
+
diff --git a/ACE/rpmbuild/ace-tao-orbsvcs-daemon.patch b/ACE/rpmbuild/ace-tao-orbsvcs-daemon.patch
deleted file mode 100644
index cd047a64aca..00000000000
--- a/ACE/rpmbuild/ace-tao-orbsvcs-daemon.patch
+++ /dev/null
@@ -1,421 +0,0 @@
---- ACE_wrappers/TAO/orbsvcs/orbsvcs/Naming/Naming_Server.cpp~ 2008-03-28 07:36:30.000000000 -0700
-+++ ACE_wrappers/TAO/orbsvcs/orbsvcs/Naming/Naming_Server.cpp 2008-05-31 16:30:08.000000000 -0700
-@@ -276,6 +276,7 @@
- ACE_TEXT ("-m <1=enable multicast, 0=disable multicast(default) ")
- ACE_TEXT ("%s")
- ACE_TEXT ("-z <relative round trip timeout> ")
-+ ACE_TEXT ("--daemon [run in background as daemon] ")
- ACE_TEXT ("\n"),
- argv [0], reqNonMinCorba),
- -1);
---- ACE_wrappers/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.cpp~ 2008-07-05 14:39:32.000000000 -0700
-+++ ACE_wrappers/TAO/orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.cpp 2008-07-05 15:46:01.000000000 -0700
-@@ -161,6 +161,7 @@
- ACE_TEXT ("-b [send callBacks on disconnect] ")
- ACE_TEXT ("-t [enable typed event channel]")
- ACE_TEXT ("-d [destroy typed event channelon shutdown] ")
-+ ACE_TEXT ("--daemon [run in background as daemon] ")
- ACE_TEXT ("\n"),
- argv[0]));
- #else
-@@ -172,6 +173,7 @@
- ACE_TEXT ("-x [disable naming service bind] ")
- ACE_TEXT ("-r [rebind, no AlreadyBound failures] ")
- ACE_TEXT ("-b [send callBacks on disconnect] ")
-+ ACE_TEXT ("--daemon [run in background as daemon] ")
- ACE_TEXT ("\n"),
- argv[0]));
- #endif /* TAO_HAS_TYPED_EVENT_CHANNEL */
---- ACE_wrappers/TAO/orbsvcs/orbsvcs/Trader/Trading_Loader.cpp~ 2008-06-03 09:45:24.000000000 -0700
-+++ ACE_wrappers/TAO/orbsvcs/orbsvcs/Trader/Trading_Loader.cpp 2008-07-05 15:46:01.000000000 -0700
-@@ -20,6 +20,7 @@
- #include "tao/default_ports.h"
- #include "tao/IORTable/IORTable.h"
-
-+#include "ace/Get_Opt.h"
- #include "ace/Dynamic_Service.h"
- #include "ace/Arg_Shifter.h"
- #include "ace/Argv_Type_Converter.h"
-@@ -28,6 +29,43 @@
-
- ACE_RCSID (Trader, Trading_Loader, "$Id$")
-
-+// Check for "--daemon" option and daemonize if present.
-+namespace
-+{
-+ void check_for_daemon (int &argc, ACE_TCHAR* argv[])
-+ {
-+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("-"));
-+ get_opts.long_option("daemon");
-+ int c;
-+
-+ while ((c = get_opts ()) != -1)
-+ {
-+ switch (c)
-+ {
-+ case 0:
-+ {
-+ // Daemonize, parent exits, child returns here.
-+ ACE::daemonize();
-+
-+ // Remove the option from argv []
-+ // to avoid any confusion that might result.
-+ for (int i = get_opts.opt_ind (); i != argc; ++i)
-+ argv [i-1 ] = argv [i];
-+
-+ // Decrement the value of argc to reflect the removal
-+ // of the option.
-+ argc = argc - 1;
-+ break;
-+ }
-+ case '?':
-+ default:
-+ // Don't do anything ... much more parsing elsewhere.
-+ break;
-+ }
-+ }
-+ }
-+}
-+
- TAO_Trading_Loader::TAO_Trading_Loader (void)
- : federate_ (0),
- ior_output_file_ (0),
-@@ -85,6 +123,12 @@
- // Copy command line parameter.
- ACE_Argv_Type_Converter command_line(argc, argv);
-
-+ // Instead of using -ORBDaemon we check for a "--daemon" flag
-+ // explicitly. This allows us to daemonize early, before
-+ // calling ORB_init.
-+ check_for_daemon (command_line.get_argc(),
-+ command_line.get_TCHAR_argv());
-+
- // Initialize the ORB Manager
- this->orb_manager_.init (command_line.get_argc(),
- command_line.get_ASCII_argv());
---- ACE_wrappers/TAO/orbsvcs/Event_Service/Event_Service.cpp~ 2007-04-17 05:03:07.000000000 -0700
-+++ ACE_wrappers/TAO/orbsvcs/Event_Service/Event_Service.cpp 2008-05-31 16:37:24.000000000 -0700
-@@ -22,6 +22,43 @@
- Event_Service,
- "$Id$")
-
-+// Check for "--daemon" option and daemonize if present.
-+namespace
-+{
-+ void check_for_daemon (int &argc, ACE_TCHAR* argv[])
-+ {
-+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("-"));
-+ get_opts.long_option("daemon");
-+ int c;
-+
-+ while ((c = get_opts ()) != -1)
-+ {
-+ switch (c)
-+ {
-+ case 0:
-+ {
-+ // Daemonize, parent exits, child returns here.
-+ ACE::daemonize();
-+
-+ // Remove the option from argv []
-+ // to avoid any confusion that might result.
-+ for (int i = get_opts.opt_ind (); i != argc; ++i)
-+ argv [i-1 ] = argv [i];
-+
-+ // Decrement the value of argc to reflect the removal
-+ // of the option.
-+ argc = argc - 1;
-+ break;
-+ }
-+ case '?':
-+ default:
-+ // Don't do anything ... much more parsing elsewhere.
-+ break;
-+ }
-+ }
-+ }
-+}
-+
- int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
- {
- bool use_thread_per_consumer = false;
-@@ -69,6 +106,12 @@
- // Make a copy of command line parameter.
- ACE_Argv_Type_Converter command(argc, argv);
-
-+ // Instead of using -ORBDaemon we check for a "--daemon" flag
-+ // explicitly. This allows us to daemonize early, before
-+ // calling ORB_init.
-+ check_for_daemon (command.get_argc(),
-+ command.get_TCHAR_argv());
-+
- // Initialize ORB.
- this->orb_ =
- CORBA::ORB_init (command.get_argc(), command.get_ASCII_argv(), "");
-@@ -392,6 +435,7 @@
- ACE_TEXT("-q ec_object_id ")
- ACE_TEXT("-x [disable naming service bind] ")
- ACE_TEXT("-b [use bidir giop] ")
-+ ACE_TEXT("--daemon [run in background as daemon] ")
- ACE_TEXT("\n"),
- argv[0]));
- return -1;
---- ACE_wrappers/TAO/orbsvcs/Naming_Service/Naming_Service.cpp~ 2008-07-05 14:39:33.000000000 -0700
-+++ ACE_wrappers/TAO/orbsvcs/Naming_Service/Naming_Service.cpp 2008-07-05 15:56:58.000000000 -0700
-@@ -7,6 +7,43 @@
-
- ACE_RCSID(Naming_Service, Naming_Service, "$Id$")
-
-+// Check for "--daemon" option and daemonize if present.
-+namespace
-+{
-+ void check_for_daemon (int &argc, ACE_TCHAR* argv[])
-+ {
-+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("-"));
-+ get_opts.long_option("daemon");
-+ int c;
-+
-+ while ((c = get_opts ()) != -1)
-+ {
-+ switch (c)
-+ {
-+ case 0:
-+ {
-+ // Daemonize, parent exits, child returns here.
-+ ACE::daemonize();
-+
-+ // Remove the option from argv []
-+ // to avoid any confusion that might result.
-+ for (int i = get_opts.opt_ind (); i != argc; ++i)
-+ argv [i-1 ] = argv [i];
-+
-+ // Decrement the value of argc to reflect the removal
-+ // of the option.
-+ argc = argc - 1;
-+ break;
-+ }
-+ case '?':
-+ default:
-+ // Don't do anything ... much more parsing elsewhere.
-+ break;
-+ }
-+ }
-+ }
-+}
-+
- // Default Constructor.
-
- TAO_Naming_Service::TAO_Naming_Service (void)
-@@ -30,6 +67,11 @@
-
- try
- {
-+ // Instead of using -ORBDaemon we check for a "--daemon" flag
-+ // explicitly. This allows us to daemonize early, before
-+ // calling ORB_init.
-+ check_for_daemon (argc, argv);
-+
- // Initialize the ORB
- this->orb_ =
- CORBA::ORB_init (argc, argv);
---- ACE_wrappers/TAO/orbsvcs/CosEvent_Service/CosEvent_Service.cpp~ 2007-01-25 10:04:11.000000000 -0800
-+++ ACE_wrappers/TAO/orbsvcs/CosEvent_Service/CosEvent_Service.cpp 2008-05-31 16:07:37.000000000 -0700
-@@ -12,6 +12,43 @@
- CosEvent_Service,
- "$Id$")
-
-+// Check for "--daemon" option and daemonize if present.
-+namespace
-+{
-+ void check_for_daemon (int &argc, ACE_TCHAR* argv[])
-+ {
-+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("-"));
-+ get_opts.long_option("daemon");
-+ int c;
-+
-+ while ((c = get_opts ()) != -1)
-+ {
-+ switch (c)
-+ {
-+ case 0:
-+ {
-+ // Daemonize, parent exits, child returns here.
-+ ACE::daemonize();
-+
-+ // Remove the option from argv []
-+ // to avoid any confusion that might result.
-+ for (int i = get_opts.opt_ind (); i != argc; ++i)
-+ argv [i-1 ] = argv [i];
-+
-+ // Decrement the value of argc to reflect the removal
-+ // of the option.
-+ argc = argc - 1;
-+ break;
-+ }
-+ case '?':
-+ default:
-+ // Don't do anything ... much more parsing elsewhere.
-+ break;
-+ }
-+ }
-+ }
-+}
-+
- int
- ACE_TMAIN (int argc, ACE_TCHAR* argv[])
- {
-@@ -22,6 +59,12 @@
- // Copy command line parameter.
- ACE_Argv_Type_Converter command_line(argc, argv);
-
-+ // Instead of using -ORBDaemon we check for a "--daemon" flag
-+ // explicitly. This allows us to daemonize early, before
-+ // calling ORB_init.
-+ check_for_daemon (command_line.get_argc(),
-+ command_line.get_TCHAR_argv());
-+
- // Intialize the ORB
- CORBA::ORB_var orb =
- CORBA::ORB_init (command_line.get_argc(), command_line.get_ASCII_argv(), 0);
---- ACE_wrappers/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.cpp~ 2008-07-05 14:39:38.000000000 -0700
-+++ ACE_wrappers/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.cpp 2008-07-05 15:46:01.000000000 -0700
-@@ -15,6 +15,7 @@
-
- #include "Concurrency_Service.h"
-
-+#include "ace/Get_Opt.h"
- #include "ace/Argv_Type_Converter.h"
- #include "tao/debug.h"
- #include "ace/OS_main.h"
-@@ -25,6 +26,43 @@
- Concurrency_Service,
- "$Id$")
-
-+// Check for "--daemon" option and daemonize if present.
-+namespace
-+{
-+ void check_for_daemon (int &argc, ACE_TCHAR* argv[])
-+ {
-+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("-"));
-+ get_opts.long_option("daemon");
-+ int c;
-+
-+ while ((c = get_opts ()) != -1)
-+ {
-+ switch (c)
-+ {
-+ case 0:
-+ {
-+ // Daemonize, parent exits, child returns here.
-+ ACE::daemonize();
-+
-+ // Remove the option from argv []
-+ // to avoid any confusion that might result.
-+ for (int i = get_opts.opt_ind (); i != argc; ++i)
-+ argv [i-1 ] = argv [i];
-+
-+ // Decrement the value of argc to reflect the removal
-+ // of the option.
-+ argc = argc - 1;
-+ break;
-+ }
-+ case '?':
-+ default:
-+ // Don't do anything ... much more parsing elsewhere.
-+ break;
-+ }
-+ }
-+ }
-+}
-+
- // Default Constructor.
-
- Concurrency_Service::Concurrency_Service (void)
-@@ -75,6 +113,7 @@
- ACE_TEXT("usage: %s")
- ACE_TEXT(" [-d]")
- ACE_TEXT(" [-o] <ior_output_file>")
-+ ACE_TEXT(" [--daemon]")
- ACE_TEXT("\n"),
- argv[0]),
- 1);
-@@ -95,6 +134,12 @@
- // Copy command line parameter.
- ACE_Argv_Type_Converter command_line(argc, argv);
-
-+ // Instead of using -ORBDaemon we check for a "--daemon" flag
-+ // explicitly. This allows us to daemonize early, before
-+ // calling ORB_init.
-+ check_for_daemon (command_line.get_argc(),
-+ command_line.get_TCHAR_argv());
-+
- if (this->orb_manager_.init_child_poa (command_line.get_argc(),
- command_line.get_ASCII_argv(),
- "child_poa") == -1)
---- ACE_wrappers/TAO/orbsvcs/Notify_Service/Notify_Service.cpp~ 2008-07-05 14:39:33.000000000 -0700
-+++ ACE_wrappers/TAO/orbsvcs/Notify_Service/Notify_Service.cpp 2008-07-05 15:58:45.000000000 -0700
-@@ -19,6 +19,43 @@
- #include "ace/Synch.h"
- #include "ace/Argv_Type_Converter.h"
-
-+// Check for "--daemon" option and daemonize if present.
-+namespace
-+{
-+ void check_for_daemon (int &argc, ACE_TCHAR* argv[])
-+ {
-+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("-"));
-+ get_opts.long_option("daemon");
-+ int c;
-+
-+ while ((c = get_opts ()) != -1)
-+ {
-+ switch (c)
-+ {
-+ case 0:
-+ {
-+ // Daemonize, parent exits, child returns here.
-+ ACE::daemonize();
-+
-+ // Remove the option from argv []
-+ // to avoid any confusion that might result.
-+ for (int i = get_opts.opt_ind (); i != argc; ++i)
-+ argv [i-1 ] = argv [i];
-+
-+ // Decrement the value of argc to reflect the removal
-+ // of the option.
-+ argc = argc - 1;
-+ break;
-+ }
-+ case '?':
-+ default:
-+ // Don't do anything ... much more parsing elsewhere.
-+ break;
-+ }
-+ }
-+ }
-+}
-+
- TAO_Notify_Service_Driver::TAO_Notify_Service_Driver (void)
- : notify_service_ (0)
- , bootstrap_ (false)
-@@ -46,6 +83,12 @@
- // Copy command line parameter.
- ACE_Argv_Type_Converter command_line(argc, argv);
-
-+ // Instead of using -ORBDaemon we check for a "--daemon" flag
-+ // explicitly. This allows us to daemonize early, before
-+ // calling ORB_init.
-+ check_for_daemon (command_line.get_argc(),
-+ command_line.get_TCHAR_argv());
-+
- this->orb_ = CORBA::ORB_init (command_line.get_argc(),
- command_line.get_ASCII_argv());
-
-@@ -460,6 +503,7 @@
- "-Boot -[No]NameSvc "
- "-IORoutput file_name "
- "-Channel -ChannelName channel_name "
-+ "--daemon "
- "-ORBRunThreads threads "
- "-Timeout <msec>\n"
- "default: %s -Factory NotifyEventChannelFactory "
diff --git a/ACE/rpmbuild/ace-tao-rpmlintrc.txt b/ACE/rpmbuild/ace-tao-rpmlintrc.txt
index b9a2cd279c2..0c4de34e6c5 100644
--- a/ACE/rpmbuild/ace-tao-rpmlintrc.txt
+++ b/ACE/rpmbuild/ace-tao-rpmlintrc.txt
@@ -1,5 +1,4 @@
-# This line is mandatory to access the configuration functions
-from Config import *
+# This line is mandatory to access the configuration functions from Config import *
addFilter("tao.* devel-file-in-non-devel-package")
addFilter("ace-kokyu.* shlib-policy-name-error")
diff --git a/ACE/rpmbuild/ace-tao.txt b/ACE/rpmbuild/ace-tao.txt
deleted file mode 100644
index fa11d6d914c..00000000000
--- a/ACE/rpmbuild/ace-tao.txt
+++ /dev/null
@@ -1,2428 +0,0 @@
-# Set the version number here.
-%define ACEVER 5.6.9
-%define TAOVER 1.6.9
-%define CIAOVER 0.6.9
-# Set is_major_ver if the version is X.Y instead X.Y.Z
-
-# Conditional build
-# Default values are --with guilibs (fltk, tk ,xt and qt support)
-# --with rnq (ACE_HAS_REACTOR_NOTIFICATION_QUEUE)
-# --with ipv6 (IPv6 support)
-# --with opt (Optimized build)
-
-#
-# Read: If neither macro exists, then add the default definition.
-%{!?_with_guilibs: %{!?_without_guilibs: %define _with_guilibs --with-guilibs}}
-%{!?_with_rnq: %{!?_without_rnq: %define _with_rnq --with-rnq}}
-%{!?_with_ipv6: %{!?_without_ipv6: %define _with_ipv6 --with-ipv6}}
-%{!?_with_opt: %{!?_without_opt: %define _with_opt --with-opt}}
-#
-# Read: It's an error if both or neither required options exist.
-%{?_with_guilibs: %{?_without_guilibs: %{error: both _with_guilibs and _without_guilibs}}}
-%{?_with_rnq: %{?_without_rnq: %{error: both _with_rnq and _without_rnq}}}
-%{?_with_ipv6: %{?_without_ipv6: %{error: both _with_ipv6 and _without_ipv6}}}
-%{?_with_opt: %{?_without_opt: %{error: both _with_opt and _without_opt}}}
-
-%{!?skip_make:%define skip_make 0}
-%{!?make_nosrc:%define make_nosrc 0}
-%{!?is_major_ver:%define is_major_ver 0}
-
-# I think Mandrake sets this to .bz2, but Fedora doesn't seem to set it
-%{!?_extension:%define _extension .gz}
-
-%if %{?_with_opt:0}%{!?_with_opt:1}
-%define OPTTAG .O0
-%endif
-
-Summary: The ADAPTIVE Communication Environment (ACE) and The ACE ORB (TAO)
-Name: ace-tao
-Version: %{ACEVER}
-Release: 1%{?OPTTAG}%{?dist}
-Group: Development/Libraries
-URL: http://www.cs.wustl.edu/~schmidt/ACE.html
-License: DOC License
-Source0: http://download.dre.vanderbilt.edu/previous_versions/ACE+TAO+CIAO-%{ACEVER}.tar.bz2
-## Source1: ace-tao-etc.tar.gz
-## Source2: ace-tao-macros.patch
-## Patch0: ace-tao-config.patch
-## Patch5: ace-tao-orbsvcs-daemon.patch
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-Requires(post): /sbin/install-info, /sbin/install-info
-Requires(preun): /sbin/install-info
-Requires(postun): /sbin/ldconfig
-
-BuildRequires: openssl-devel
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-BuildRequires: perl
-BuildRequires: fltk-devel
-BuildRequires: tcl-devel
-BuildRequires: tk-devel
-BuildRequires: tk
-
-# qt3 has a name change in F9
-%if 0%{?fedora} > 8
-BuildRequires: qt3-devel
-%else
-BuildRequires: qt-devel
-%endif
-
-# The xorg package naming scheme changed, use specific files for now.
-# old -> BuildRequires: xorg-x11-devel
-# new -> BuildRequires: libX11-devel
-# BuildRequires: %{_libdir}/libX11.so
-# BuildRequires: %{_libdir}/libXt.so
-%endif
-
-%if %make_nosrc
-# Leave out the distro for now
-NoSource: 0
-%endif
-
-%description
-
-The ADAPTIVE Communication Environment (ACE) is a freely available,
-open-source object-oriented (OO) framework that implements many core
-patterns for concurrent communication software. ACE provides a rich
-set of reusable C++ wrapper facades and framework components that
-perform common communication software tasks across a range of OS
-platforms. The communication software tasks provided by ACE include
-event demultiplexing and event handler dispatching, signal handling,
-service initialization, interprocess communication, shared memory
-management, message routing, dynamic (re)configuration of distributed
-services, concurrent execution and synchronization.
-
-TAO is a real-time implementation of CORBA built using the framework
-components and patterns provided by ACE. TAO contains the network
-interface, OS, communication protocol, and CORBA middleware components
-and features. TAO is based on the standard OMG CORBA reference model,
-with the enhancements designed to overcome the shortcomings of
-conventional ORBs for high-performance and real-time applications.
-
-# ---------------- ace ----------------
-
-%package -n ace
-Summary: The ADAPTIVE Communication Environment (ACE)
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: openssl
-
-%description -n ace
-
-The ADAPTIVE Communication Environment (ACE) is a freely available,
-open-source object-oriented (OO) framework that implements many core
-patterns for concurrent communication software. ACE provides a rich
-set of reusable C++ wrapper facades and framework components that
-perform common communication software tasks across a range of OS
-platforms. The communication software tasks provided by ACE include
-event demultiplexing and event handler dispatching, signal handling,
-service initialization, interprocess communication, shared memory
-management, message routing, dynamic (re)configuration of distributed
-services, concurrent execution and synchronization.
-
-# ---------------- ace-devel ----------------
-
-%package -n ace-devel
-Summary: Header files and development components for ACE
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace = %{ACEVER}
-Requires: openssl-devel
-
-%description -n ace-devel
-
-This package contains the components needed for developing programs
-using ACE.
-
-# ---------------- ace-xml ----------------
-
-%package -n ace-xml
-Summary: ACE XML Runtime Support
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace = %{ACEVER}
-
-%description -n ace-xml
-
-ACE XML Parser interfaces follows the the design of SAX 2.0, which is
-a public domain specification for Java. The major difference between
-ACE XML Parser interfaces and SAX is that we added an reference of
-ACEXML_Env to every SAX method to accommodate platforms/compilers that
-don't support C++ exceptions. SAX is defined by David Megginson
-<david@megginson.com>
-
-# ---------------- ace-xml-devel ----------------
-
-%package -n ace-xml-devel
-Summary: Header files and development components for ACE XML
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace-devel = %{ACEVER}
-Requires: ace-xml = %{ACEVER}
-
-%description -n ace-xml-devel
-
-This package contains the components needed for developing programs
-using ACEXML.
-
-# ---------------- ace-kokyu ----------------
-
-%package -n ace-kokyu
-Summary: Kokyu scheduling framework for ACE
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace = %{ACEVER}
-
-%description -n ace-kokyu
-
-Kokyu is a portable middleware scheduling framework designed to
-provide flexible scheduling and dispatching services within the
-context of higher-level middleware. Kokyu currently provides real-time
-scheduling and dispatching services for TAO's real-time Event Service
-which mediates supplier-consumer relationships between application
-operations. Kokyu also provides a scheduling and dispatching framework
-for threads. This is being used by the TAO RTCORBA 2.0 scheduler
-implementations.
-
-# ---------------- ace-kokyu-devel ----------------
-
-%package -n ace-kokyu-devel
-Summary: Header files and development components for the ACE Kokyu scheduler
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace-devel = %{ACEVER}
-Requires: ace-kokyu = %{ACEVER}
-
-%description -n ace-kokyu-devel
-
-This package contains the components needed for developing programs
-using Kokyu.
-
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-# ---------------- ace-flreactor ----------------
-
-%package -n ace-flreactor
-Summary: ACE_FlReactor for use with the Fast-Light toolkit
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace = %{ACEVER}
-Requires: fltk
-
-%description -n ace-flreactor
-
-A Reactor implementation that uses the Fast-Light (FL) toolkit for
-event demultiplexing. This will let us integrate the FL toolkit with
-ACE and/or TAO.
-
-# ---------------- ace-flreactor-devel ----------------
-
-%package -n ace-flreactor-devel
-Summary: Header files for development with ACE_FlReactor
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace-devel = %{ACEVER}
-Requires: ace-flreactor = %{ACEVER}
-Requires: fltk-devel
-
-%description -n ace-flreactor-devel
-
-This package contains the components needed for developing programs
-using the ACE_FlReactor.
-
-# ---------------- ace-qtreactor ----------------
-
-%package -n ace-qtreactor
-Summary: ACE_QtReactor for use with Qt library
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace = %{ACEVER}
-Requires: qt
-
-%description -n ace-qtreactor
-
-A Reactor implementation that uses the Qt toolkit for event
-demultiplexing. This will let us integrate the Qt toolkit with ACE
-and/or TAO.
-
-# ---------------- ace-qtreactor-devel ----------------
-
-%package -n ace-qtreactor-devel
-Summary: Header files for development with ACE_QtReactor
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace-devel = %{ACEVER}
-Requires: ace-qtreactor = %{ACEVER}
-Requires: qt-devel
-
-%description -n ace-qtreactor-devel
-
-This package contains the components needed for developing programs
-using the ACE_QtReactor.
-
-# ---------------- ace-tkreactor ----------------
-
-%package -n ace-tkreactor
-Summary: ACE_TkReactor for use with Tk toolkit
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace = %{ACEVER}
-Requires: tk
-
-%description -n ace-tkreactor
-
-A Reactor implementation that uses the Tk toolkit for event
-demultiplexing. This will let us integrate the Tk toolkit with ACE
-and/or TAO.
-
-# ---------------- ace-tkreactor-devel ----------------
-
-%package -n ace-tkreactor-devel
-Summary: Header files for development with ACE_TkReactor
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace-devel = %{ACEVER}
-Requires: ace-tkreactor = %{ACEVER}
-Requires: tk-devel
-
-%description -n ace-tkreactor-devel
-
-This package contains the components needed for developing programs
-using the ACE_TkReactor.
-
-# ---------------- ace-xtreactor ----------------
-
-%package -n ace-xtreactor
-Summary: ACE_XtReactor for use with the X Toolkit
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace = %{ACEVER}
-# The xorg packaging scheme changed, let autoreq to the job for now.
-# Requires: xorg-x11-libs
-
-%description -n ace-xtreactor
-
-A Reactor implementation that uses the X Toolkit for event
-demultiplexing. This will let us integrate the X Toolkit with ACE
-and/or TAO.
-
-# ---------------- ace-xtreactor-devel ----------------
-
-%package -n ace-xtreactor-devel
-Summary: Header files for development with ACE_XtReactor
-Version: %{ACEVER}
-Group: Development/Libraries
-Requires: ace-devel = %{ACEVER}
-Requires: ace-xtreactor = %{ACEVER}
-# The xorg package naming scheme changed, use specific files for now.
-# old -> Requires: xorg-x11-devel
-# new -> Requires: libX11-devel
-Requires: %{_libdir}/libX11.so
-Requires: %{_libdir}/libXt.so
-
-%description -n ace-xtreactor-devel
-
-This package contains the components needed for developing programs
-using the ACE_XtReactor.
-%endif
-
-## FIXME - namespace issues need to be resolved
-##
-## # ---------------- MPC ----------------
-##
-## %package -n ace-mpc
-## Summary: Make Project Creator
-## Version: %{ACEVER}
-## Group: Development/Libraries
-##
-## %description -n ace-mpc
-##
-## The Makefile, Project and Workspace Creator.
-## Designed by Justin Michel (michel_j@ociweb.com) and Chad Elliott.
-## Implemented by Chad Elliott (elliott_c@ociweb.com).
-##
-## A single tool (MPC) can be used to generate tool specific input (i.e.
-## Makefile, dsp, vcproj, etc). The generator takes platform and building
-## tool generic files (mpc files) as input which describe basic information
-## needed to generate a "project" file for various build tools. These tools
-## include Make, NMake, Visual C++ 6, Visual C++ 7, etc.
-
-# ---------------- tao ----------------
-
-%package -n tao
-Summary: The ACE ORB (TAO)
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace = %{ACEVER}
-Requires: ace-xml = %{ACEVER}
-Requires: ace-kokyu = %{ACEVER}
-
-%description -n tao
-
-TAO is a real-time implementation of CORBA built using the framework
-components and patterns provided by ACE. TAO contains the network
-interface, OS, communication protocol, and CORBA middleware components
-and features. TAO is based on the standard OMG CORBA reference model,
-with the enhancements designed to overcome the shortcomings of
-conventional ORBs for high-performance and real-time applications.
-
-# ---------------- tao-devel ----------------
-
-%package -n tao-devel
-Summary: Header files and development components for TAO
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: tao = %{TAOVER}
-Requires: ace-devel = %{ACEVER}
-Requires: ace-xml-devel = %{ACEVER}
-Requires: ace-kokyu-devel = %{ACEVER}
-
-%description -n tao-devel
-
-This package contains the components needed for developing programs
-using TAO.
-
-# ---------------- tao-cosnaming ----------------
-
-%package -n tao-cosnaming
-Summary: The TAO CORBA Naming Service (CosNaming) and Interoperable Naming Service (INS)
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: tao = %{TAOVER}
-
-%description -n tao-cosnaming
-
-OMG defined CORBA Naming Service to provide a basic service location
-mechanism for CORBA systems. CosNaming manages a hierarchy of
-name-to-object-reference mappings. Anything, but typically the server
-process hosting an object, may bind an object reference with a name in
-the Naming Service by providing the name and object
-reference. Interested parties (typically clients) can then use the
-Naming Service to resolve a name to an object reference.
-
-More recently, CORBA Naming Service was subsumed/extended by the CORBA
-Interoperable Naming Service, a.k.a. INS. INS inherits all the
-functionality from the original Naming Service specification in
-addition to addressing some its shortcomings. In particular, INS
-defines a standard way for clients and servers to locate the Naming
-Service itself. It also allows the ORB to be administratively
-configured for bootstrapping to services not set up with the orb at
-install time.
-
-# ---------------- tao-cosevent ----------------
-
-%package -n tao-cosevent
-Summary: The TAO CORBA CosEvent Service
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: tao = %{TAOVER}
-
-%description -n tao-cosevent
-
-The CosEvent_Service is a COS compilant Event Service.
-
-The service is registered with the naming service with the name
-"CosEventService" . It exposes the <EventChannel> interface which can be
-used by suppliers and consumers to send and receive events.
-
-# ---------------- tao-cosnotification ----------------
-
-%package -n tao-cosnotification
-Summary: The TAO CORBA Notification Service
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: tao = %{TAOVER}
-
-%description -n tao-cosnotification
-
-The Notify_Service is a COS compilant Notification Service.
-
-The Notify_Service executable starts up a Notification Service factory
-and registers it with the Naming Service under the name
-"NotifyEventChannelFactory"
-
-# ---------------- tao-costrading ----------------
-
-%package -n tao-costrading
-Summary: The TAO CORBA Trading Service
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: tao = %{TAOVER}
-
-%description -n tao-costrading
-
-The Trading_Service is a COS compilant Trading Service.
-
-# ---------------- tao-rtevent ----------------
-
-%package -n tao-rtevent
-Summary: The TAO Real-time Event Service
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: tao = %{TAOVER}
-
-%description -n tao-rtevent
-
-The TAO Real-time Event Service.
-
-# ---------------- tao-cosconcurrency ----------------
-
-%package -n tao-cosconcurrency
-Summary: The TAO CORBA Concurrency Service
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: tao = %{TAOVER}
-
-%description -n tao-cosconcurrency
-
-The CORBA Concurrency Service.
-
-# ---------------- tao-flresource ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%package -n tao-flresource
-Summary: FlResource_Factory for creating FlReactor
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace-flreactor = %{ACEVER}
-Requires: tao = %{TAOVER}
-
-%description -n tao-flresource
-
-This factory is intended for creating FlReactor for ORB. This factory
-can be feed into ORB using TAO_ORB_Core::set_gui_resource_factory
-method which is usually done by TAO_FlResource_Loader.
-
-# ---------------- tao-flresource-devel ----------------
-
-%package -n tao-flresource-devel
-Summary: Header files for development with FlResource_Factory
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace-flreactor-devel = %{ACEVER}
-Requires: tao-devel = %{TAOVER}
-Requires: tao-flresource = %{TAOVER}
-
-%description -n tao-flresource-devel
-
-This package contains the components needed for developing programs
-using the FlResource_Factory.
-
-# ---------------- tao-qtresource ----------------
-
-%package -n tao-qtresource
-Summary: QtResource_Factory for creating QtReactor
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace-qtreactor = %{ACEVER}
-Requires: tao = %{TAOVER}
-
-%description -n tao-qtresource
-
-This factory is intended for creating QtReactor for ORB. This factory
-can be feed into ORB using TAO_ORB_Core::set_gui_resource_factory
-method which is usually done by TAO_QtResource_Loader.
-
-# ---------------- tao-qtresource-devel ----------------
-
-%package -n tao-qtresource-devel
-Summary: Header files for development with QtResource_Factory
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace-qtreactor-devel = %{ACEVER}
-Requires: tao-devel = %{TAOVER}
-Requires: tao-qtresource = %{TAOVER}
-
-%description -n tao-qtresource-devel
-
-This package contains the components needed for developing programs
-using the QtResource_Factory.
-
-# ---------------- tao-tkresource ----------------
-
-%package -n tao-tkresource
-Summary: TkResource_Factory for creating TkReactor
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace-tkreactor = %{ACEVER}
-Requires: tao = %{TAOVER}
-
-%description -n tao-tkresource
-
-This factory is intended for creating TkReactor for ORB. This factory
-can be feed into ORB using TAO_ORB_Core::set_gui_resource_factory
-method which is usually done by TAO_TkResource_Loader.
-
-# ---------------- tao-tkresource-devel ----------------
-
-%package -n tao-tkresource-devel
-Summary: Header files for development with TkResource_Factory
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace-tkreactor-devel = %{ACEVER}
-Requires: tao-devel = %{TAOVER}
-Requires: tao-tkresource = %{TAOVER}
-
-%description -n tao-tkresource-devel
-
-This package contains the components needed for developing programs
-using the TkResource_Factory.
-
-# ---------------- tao-xtresource ----------------
-
-%package -n tao-xtresource
-Summary: XtResource_Factory for creating XtReactor
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace-xtreactor = %{ACEVER}
-Requires: tao = %{TAOVER}
-
-%description -n tao-xtresource
-
-This factory is intended for creating XtReactor for ORB. This factory
-can be feed into ORB using TAO_ORB_Core::set_gui_resource_factory
-method which is usually done by TAO_XtResource_Loader.
-
-# ---------------- tao-xtresource-devel ----------------
-
-%package -n tao-xtresource-devel
-Summary: Header files for development with XtResource_Factory
-Version: %{TAOVER}
-Group: Development/Libraries
-Requires: ace-xtreactor-devel = %{ACEVER}
-Requires: tao-devel = %{TAOVER}
-Requires: tao-xtresource = %{TAOVER}
-
-%description -n tao-xtresource-devel
-
-This package contains the components needed for developing programs
-using the XtResource_Factory.
-%endif
-
-# ================================================================
-# prep
-# ================================================================
-
-%prep
-%setup -q -n ACE_wrappers
-
-%if ! %skip_make
-
-export ACE_ROOT=`pwd`
-export TAO_ROOT=$ACE_ROOT/TAO
-export CIAO_ROOT=$TAO_ROOT/CIAO
-
-# patch0 and patch1 are applied a bit later
-
-#patch5 -p 1
-cat ${ACE_ROOT}/rpmbuild/ace-tao-orbsvcs-daemon.patch | patch -p 1
-
-# don't use patch8 until we verify wether needed
-
-# config.h
-( cd $ACE_ROOT/ace
-rm -f config.h
-cp config-linux.h config.h
-)
-
-#patch0 -p 1
-cat ${ACE_ROOT}/rpmbuild/ace-tao-config.patch | patch -p 1
-
-# If ipv6 support is indicated insert some lines into the confi.h
-# file, right before the ace/post.h include.
-#
-%if %{?_with_ipv6:1}%{!?_with_ipv6:0}
-rm -f $ACE_ROOT/ace/config.h.tmp
-awk 'BEGIN { FLG = 1 }; /ace\/post/ { FLG = 0 }; { if (FLG==1) print }' \
-$ACE_ROOT/ace/config.h >> $ACE_ROOT/ace/config.h.tmp
-cat >> $ACE_ROOT/ace/config.h.tmp <<"EOF"
-#define ACE_HAS_IPV6 // Ken Sedgwick 2006-06-14
-#define ACE_USES_IPV4_IPV6_MIGRATION // Ken Sedgwick 2006-06-14
-EOF
-awk 'BEGIN { FLG = 0 }; /ace\/post/ { FLG = 1 }; { if (FLG==1) print }' \
-$ACE_ROOT/ace/config.h >> $ACE_ROOT/ace/config.h.tmp
-mv $ACE_ROOT/ace/config.h.tmp $ACE_ROOT/ace/config.h
-%endif
-
-# If rnq support is indicated insert some lines into the confi.h
-# file, right before the ace/post.h include.
-#
-%if %{?_with_rnq:1}%{!?_with_rnq:0}
-# Insert into the confi.h file, right before the ace/post.h include.
-rm -f $ACE_ROOT/ace/config.h.tmp
-awk 'BEGIN { FLG = 1 }; /ace\/post/ { FLG = 0 }; { if (FLG==1) print }' \
-$ACE_ROOT/ace/config.h >> $ACE_ROOT/ace/config.h.tmp
-cat >> $ACE_ROOT/ace/config.h.tmp <<"EOF"
-#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE // Ken Sedgwick 2006-04-19
-EOF
-awk 'BEGIN { FLG = 0 }; /ace\/post/ { FLG = 1 }; { if (FLG==1) print }' \
-$ACE_ROOT/ace/config.h >> $ACE_ROOT/ace/config.h.tmp
-mv $ACE_ROOT/ace/config.h.tmp $ACE_ROOT/ace/config.h
-%endif
-
-# For template instantiation visibility and icmp support insert some
-# lines into the confi.h file, right before the ace/post.h include.
-#
-rm -f $ACE_ROOT/ace/config.h.tmp
-awk 'BEGIN { FLG = 1 }; /ace\/post/ { FLG = 0 }; { if (FLG==1) print }' \
-$ACE_ROOT/ace/config.h >> $ACE_ROOT/ace/config.h.tmp
-cat >> $ACE_ROOT/ace/config.h.tmp <<"EOF"
-#define ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS 1 // Ken Sedgwick 2007-05-05
-EOF
-awk 'BEGIN { FLG = 0 }; /ace\/post/ { FLG = 1 }; { if (FLG==1) print }' \
-$ACE_ROOT/ace/config.h >> $ACE_ROOT/ace/config.h.tmp
-mv $ACE_ROOT/ace/config.h.tmp $ACE_ROOT/ace/config.h
-
-# platform_macros.GNU
-cat > $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-ssl = 1
-include \$(ACE_ROOT)/include/makeinclude/platform_linux.GNU
-EOF
-
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-x11 = 1
-xt = 1
-tk = 1
-fl = 1
-qt = 1
-gl = 1
-ace_qtreactor = 1
-ace_xtreactor = 1
-ace_tkreactor = 1
-ace_flreactor = 1
-tao_qtresource = 1
-tao_xtresource = 1
-tao_tkresource = 1
-tao_flresource = 1
-EOF
-%endif
-
-# 64 bit machines need additional macro.
-%ifarch x86_64 ia64 ppc64 s390x
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-buildbits = 64
-EOF
-%endif
-
-%if %{?_with_opt:0}%{!?_with_opt:1}
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-# Disable optimization
-OCFLAGS = -O0
-OCCFLAGS = -O0
-EOF
-%else
-cat >> $ACE_ROOT/include/makeinclude/platform_macros.GNU <<EOF
-# Enable Fedora optimization
-OCFLAGS = %{optflags}
-OCCFLAGS = %{optflags}
-EOF
-%endif
-
-cat > $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
-ssl=1
-qos=0
-cidl=0
-rwho=0
-sctp=0
-EOF
-
-# We don't use default.features to enable ipv6 cause it conflicts w/
-# the config.h generated version. Config.h is superior because it is
-# shipped to the end-user machines and also defines
-# ACE_USES_IPV4_IPV6_MIGRATION which the default.features technique
-# does not seem to set.
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-cat >> $ACE_ROOT/bin/MakeProjectCreator/config/default.features <<EOF
-motif=1
-athena=1
-x11=1
-xt=1
-tk=1
-fl=1
-qt=1
-gl=1
-ace_qtreactor=1
-ace_xtreactor=1
-ace_tkreactor=1
-ace_flreactor=1
-tao_qtresource=1
-tao_xtresource=1
-tao_tkresource=1
-tao_flresource=1
-EOF
-%endif
-
-# Need to regenerate all of the Makefiles ...
-(cd $ACE_ROOT && $ACE_ROOT/bin/mwc.pl -type gnuace)
-
-# Fix source file permissions
-find $TAO_ROOT/orbsvcs/FT_ReplicationManager -type f -exec chmod a-x {} \;
-find $TAO_ROOT/orbsvcs/orbsvcs/FaultTolerance -type f -exec chmod a-x {} \;
-
-%endif
-
-# ================================================================
-# build
-# ================================================================
-
-%build
-
-export ACE_ROOT=`pwd`
-export TAO_ROOT=$ACE_ROOT/TAO
-export LD_LIBRARY_PATH=$ACE_ROOT/lib
-
-%if %skip_make
-cd .. && rm -rf ACE_wrappers && ln -s ACE_wrappers-BUILT ACE_wrappers
-%else
-
-MAKECMD="make %{?_smp_mflags}"
-
-# build ACE components
-for ace_comp in \
- ace \
- Kokyu \
- ACEXML \
- apps/gperf \
- protocols \
- websvcs;
-do
- $MAKECMD -C $ACE_ROOT/$ace_comp;
-done
-
-# build TAO components
-$MAKECMD -C $TAO_ROOT/TAO_IDL
-$MAKECMD -C $TAO_ROOT/tao
-
-# Instead of "$MAKECMD -C $TAO_ROOT/orbsvcs" use the list from
-# $ACE_ROOT/orbsvcs/GNUmakefile less the performance-tests, tests and
-# examples.
-for orbsvcs_comp in \
- TAO_Service \
- orbsvcs \
- Trading_Service \
- Time_Service \
- Scheduling_Service \
- Notify_Service \
- Naming_Service \
- Logging_Service \
- LoadBalancer \
- LifeCycle_Service \
- ImplRepo_Service \
- IFR_Service \
- Fault_Notifier \
- Fault_Detector \
- FT_ReplicationManager \
- FTRT_Event_Service \
- Event_Service \
- Dump_Schedule \
- CosEvent_Service \
- Concurrency_Service;
-do
- $MAKECMD -C $TAO_ROOT/orbsvcs/$orbsvcs_comp;
-done
-
-$MAKECMD -C $TAO_ROOT/utils
-
-%endif
-
-# ================================================================
-# install
-# ================================================================
-
-# For major releases the package version will be the shortened version
-# tuple and the shared-object version needs a placeholder '.0'
-%if %is_major_ver
-%define ACEVERSO %{ACEVER}.0
-%define TAOVERSO %{TAOVER}.0
-%define CIAOVERSO %{CIAOVER}.0
-%else
-%define ACEVERSO %{ACEVER}
-%define TAOVERSO %{TAOVER}
-%define CIAOVERSO %{CIAOVER}
-%endif
-
-%install
-
-export ACE_ROOT=`pwd`
-export TAO_ROOT=$ACE_ROOT/TAO
-
-%if ! %skip_make
-# cat %{SOURCE2} | patch -p 1
-cat ${ACE_ROOT}/rpmbuild/ace-tao-macros.patch | patch -p 1
-%endif
-
-rm -rf $RPM_BUILD_ROOT
-
-# make a new build root dir
-mkdir -p $RPM_BUILD_ROOT
-
-# ---------------- Runtime Components ----------------
-
-# install shared libraries
-install -d $RPM_BUILD_ROOT%{_libdir}
-
-# ACE + XML libraries
-INSTLIBS=`ls ${ACE_ROOT}/lib/libACE*.so.%{ACEVERSO}`
-install $INSTLIBS $RPM_BUILD_ROOT%{_libdir}
-
-# ACE-Kokyu libraries
-INSTLIBS=`ls ${ACE_ROOT}/lib/libKokyu.so.%{ACEVERSO}`
-install $INSTLIBS $RPM_BUILD_ROOT%{_libdir}
-
-# TAO libraries
-INSTLIBS=`ls ${ACE_ROOT}/lib/libTAO*.so.%{TAOVERSO}`
-install $INSTLIBS $RPM_BUILD_ROOT%{_libdir}
-
-# Create un-versioned symbolic links for libraries
-(cd $RPM_BUILD_ROOT%{_libdir} && \
- ls *.so.* | awk 'BEGIN{FS="."}{print "ln -sf " $0 " " $1 "." $2;}' | sh)
-
-# install binaries
-install -d $RPM_BUILD_ROOT%{_sbindir}
-
-# Rename the service binaries:
-
-install ${ACE_ROOT}/TAO/orbsvcs/Naming_Service/Naming_Service \
- $RPM_BUILD_ROOT%{_sbindir}/tao-cosnaming
-
-install ${ACE_ROOT}/TAO/orbsvcs/CosEvent_Service/CosEvent_Service \
- $RPM_BUILD_ROOT%{_sbindir}/tao-cosevent
-
-install ${ACE_ROOT}/TAO/orbsvcs/Notify_Service/Notify_Service \
- $RPM_BUILD_ROOT%{_sbindir}/tao-cosnotification
-
-install ${ACE_ROOT}/TAO/orbsvcs/Trading_Service/Trading_Service \
- $RPM_BUILD_ROOT%{_sbindir}/tao-costrading
-
-install ${ACE_ROOT}/TAO/orbsvcs/Event_Service/Event_Service \
- $RPM_BUILD_ROOT%{_sbindir}/tao-rtevent
-
-install ${ACE_ROOT}/TAO/orbsvcs/Concurrency_Service/Concurrency_Service \
- $RPM_BUILD_ROOT%{_sbindir}/tao-cosconcurrency
-
-# Create the tao cache directory.
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/tao
-
-# Create data files which will be ghosted.
-touch $RPM_BUILD_ROOT%{_localstatedir}/cache/tao/tao-cosnaming.dat
-
-# Create the tao log directory.
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/tao
-
-# Create data files which will be ghosted.
-touch $RPM_BUILD_ROOT%{_localstatedir}/log/tao/tao-cosnaming.log
-touch $RPM_BUILD_ROOT%{_localstatedir}/log/tao/tao-cosconcurrency.log
-touch $RPM_BUILD_ROOT%{_localstatedir}/log/tao/tao-cosevent.log
-touch $RPM_BUILD_ROOT%{_localstatedir}/log/tao/tao-cosnotification.log
-touch $RPM_BUILD_ROOT%{_localstatedir}/log/tao/tao-costrading.log
-touch $RPM_BUILD_ROOT%{_localstatedir}/log/tao/tao-rtevent.log
-
-# ---------------- Development Components ----------------
-
-# INSTHDR="cp --preserve=timestamps"
-INSTHDR="install -m 0644 -p"
-
-# install headers
-install -d $RPM_BUILD_ROOT%{_includedir}
-( set +x
-echo "Building list of headers..."
-
-# Generate raw dependency output
-BASEHDR=`find \
- ace \
- ACEXML/common \
- ACEXML/parser/parser \
- Kokyu \
- TAO/tao \
- TAO/orbsvcs/orbsvcs \
- -name '*.h' -not -name 'config-*'`
-for j in $BASEHDR; do
- echo $j >> rawhdrs.log
- echo '#include <'$j'>' | \
- g++ -I . \
- -I protocols \
- -I TAO \
- -I TAO/orbsvcs \
- -I TAO/orbsvcs/orbsvcs \
- -x c++ - -MM -MF mmout 2>> rawhdrs.log && cat mmout || true;
-done > mmraw.list
-
-# Append IDL headers to the raw list.
-find \
- TAO/tao \
- TAO/orbsvcs/orbsvcs \
- -regex '.*\.p?idl$' >> mmraw.list
-
-# Cleanup dependency output:
-# remove '-:' sequences
-# change all sequences of whitespace into \n
-# remove leading './'
-# cannonicalize up to two levels of '/../../'
-# remove duplicates
-cat mmraw.list |\
- sed -e 's/^-://g' -e 's/\\//g' | \
- tr -s [:space:] "\n" | \
- sed -e 's#^./##g' | \
- sed -e 's#/[^/]\+/\.\./#/#g' -e 's#/[^/]\+/\.\./#/#g' | \
- sort -u > allhdrs.list
-
-# Add missing headers.
-echo ace/QtReactor/QtReactor.h >> allhdrs.list
-echo TAO/tao/QtResource/QtResource_Factory.h >> allhdrs.list
-echo TAO/tao/QtResource/QtResource_Loader.h >> allhdrs.list
-
-# Install headers and create header lists
-rm -f ace-headers.tmp
-rm -f acexml-headers.tmp
-rm -f kokyu-headers.tmp
-rm -f tao-headers.tmp
-
-for i in `cat allhdrs.list`; do
- case "$i" in
- protocols/ace/*)
- mkdir -p `dirname $RPM_BUILD_ROOT%{_includedir}/${i/protocols\/}`
- $INSTHDR $i $RPM_BUILD_ROOT%{_includedir}/${i/protocols/}
- echo '%dir %{_includedir}/'`dirname ${i/protocols/}` >> ace-headers.tmp
- echo '%{_includedir}/'${i/protocols/} >> ace-headers.tmp
- ;;
- ace/*)
- mkdir -p `dirname $RPM_BUILD_ROOT%{_includedir}/$i`
- $INSTHDR $i $RPM_BUILD_ROOT%{_includedir}/$i
- echo '%dir %{_includedir}/'`dirname $i` >> ace-headers.tmp
- echo '%{_includedir}/'$i >> ace-headers.tmp
- ;;
- ACEXML/*)
- mkdir -p `dirname $RPM_BUILD_ROOT%{_includedir}/$i`
- $INSTHDR $i $RPM_BUILD_ROOT%{_includedir}/$i
- echo '%dir %{_includedir}/'`dirname $i` >> acexml-headers.tmp
- echo '%{_includedir}/'$i >> acexml-headers.tmp
- ;;
- Kokyu/*)
- mkdir -p `dirname $RPM_BUILD_ROOT%{_includedir}/$i`
- $INSTHDR $i $RPM_BUILD_ROOT%{_includedir}/$i
- echo '%dir %{_includedir}/'`dirname $i` >> kokyu-headers.tmp
- echo '%{_includedir}/'$i >> kokyu-headers.tmp
- ;;
- TAO/tao/*)
- mkdir -p `dirname $RPM_BUILD_ROOT%{_includedir}/${i/TAO\/}`
- $INSTHDR $i $RPM_BUILD_ROOT%{_includedir}/${i/TAO\/}
- echo '%dir %{_includedir}/'`dirname ${i/TAO\/}` >> tao-headers.tmp
- echo '%{_includedir}/'${i/TAO\/} >> tao-headers.tmp
- ;;
- TAO/orbsvcs/orbsvcs/*)
- mkdir -p `dirname $RPM_BUILD_ROOT%{_includedir}/${i/TAO\/orbsvcs\/}`
- $INSTHDR $i $RPM_BUILD_ROOT%{_includedir}/${i/TAO\/orbsvcs\/}
- echo '%dir %{_includedir}/'`dirname ${i/TAO\/orbsvcs\/}` >> tao-headers.tmp
- echo '%{_includedir}/'${i/TAO\/orbsvcs\/} >> tao-headers.tmp
- ;;
- *)
- # mkdir -p `dirname $RPM_BUILD_ROOT%{_includedir}/$i`
- # $INSTHDR $i $RPM_BUILD_ROOT%{_includedir}/$i
- echo $i
- ;;
- esac
-done
-
-echo '%defattr(-,root,root,-)' > ace-headers.list
-sort -u < ace-headers.tmp >> ace-headers.list
-rm -f ace-headers.tmp
-
-echo '%defattr(-,root,root,-)' > acexml-headers.list
-sort -u < acexml-headers.tmp >> acexml-headers.list
-rm -f acexml-headers.tmp
-
-echo '%defattr(-,root,root,-)' > kokyu-headers.list
-sort -u < kokyu-headers.tmp >> kokyu-headers.list
-rm -f kokyu-headers.tmp
-
-echo '%defattr(-,root,root,-)' > tao-headers.list
-sort -u < tao-headers.tmp >> tao-headers.list
-rm -f tao-headers.tmp
-)
-
-# install the TAO_IDL compiler
-install -d $RPM_BUILD_ROOT%{_libdir}
-
-# NOTE - it appears that when TAO's build copies the files to the
-# ACE_ROOT/ace directory they get versioned with ACE's version number
-# rather then TAO's. Use the ACEVERSO macro for now ...
-install \
- ${ACE_ROOT}/lib/libTAO_IDL_BE.so.%{ACEVERSO} \
- ${ACE_ROOT}/lib/libTAO_IDL_FE.so.%{ACEVERSO} \
- $RPM_BUILD_ROOT%{_libdir}
-
-(cd $RPM_BUILD_ROOT%{_libdir} && ln -sf libTAO_IDL_BE.so.%{ACEVERSO} libTAO_IDL_BE.so)
-(cd $RPM_BUILD_ROOT%{_libdir} && ln -sf libTAO_IDL_FE.so.%{ACEVERSO} libTAO_IDL_FE.so)
-
-install -d $RPM_BUILD_ROOT%{_bindir}
-install ${ACE_ROOT}/bin/ace_gperf $RPM_BUILD_ROOT%{_bindir}
-install ${ACE_ROOT}/bin/tao_idl $RPM_BUILD_ROOT%{_bindir}
-install ${ACE_ROOT}/bin/tao_imr $RPM_BUILD_ROOT%{_bindir}
-install ${ACE_ROOT}/bin/tao_ifr $RPM_BUILD_ROOT%{_bindir}
-install ${ACE_ROOT}/bin/tao_catior $RPM_BUILD_ROOT%{_bindir}
-install ${ACE_ROOT}/bin/tao_nsadd $RPM_BUILD_ROOT%{_bindir}
-install ${ACE_ROOT}/bin/tao_nsdel $RPM_BUILD_ROOT%{_bindir}
-install ${ACE_ROOT}/bin/tao_nslist $RPM_BUILD_ROOT%{_bindir}
-
-# ================================================================
-# Config & Options
-# ================================================================
-
-install -d $RPM_BUILD_ROOT%{_sysconfdir}
-tar -xzvf ${ACE_ROOT}/rpmbuild/ace-tao-etc.tar.gz \
- -C $RPM_BUILD_ROOT%{_sysconfdir}
-
-## # FIXME - namespace issues need to be resolved
-##
-## # ================================================================
-## # Makefiles
-## # ================================================================
-##
-## install -d $RPM_BUILD_ROOT%{_includedir}/makeinclude
-##
-## for mk_macros in \
-## all_in_one.GNU \
-## component_check.GNU \
-## macros.GNU \
-## platform_g++_common.GNU \
-## platform_linux.GNU \
-## platform_macros.GNU \
-## rules.bin.GNU \
-## rules.common.GNU \
-## rules.lib.GNU \
-## rules.local.GNU \
-## rules.nested.GNU \
-## rules.nolocal.GNU \
-## rules.nonested.GNU \
-## wrapper_macros.GNU; do (
-## install ${ACE_ROOT}/include/makeinclude/$mk_macros $RPM_BUILD_ROOT%{_includedir}/makeinclude
-## ); done
-##
-## install ${TAO_ROOT}/rules.tao.GNU $RPM_BUILD_ROOT%{_includedir}/makeinclude
-##
-## install -d $RPM_BUILD_ROOT%{_datadir}
-## install -d $RPM_BUILD_ROOT%{_datadir}/ace
-## install -d $RPM_BUILD_ROOT%{_datadir}/ace/MPC
-## cp -a ${ACE_ROOT}/MPC $RPM_BUILD_ROOT%{_datadir}/ace/
-##
-## install -d $RPM_BUILD_ROOT%{_datadir}/ace/bin
-## cp -a ${ACE_ROOT}/bin/DependencyGenerator $RPM_BUILD_ROOT%{_datadir}/ace/bin
-## cp -a ${ACE_ROOT}/bin/MakeProjectCreator $RPM_BUILD_ROOT%{_datadir}/ace/bin
-## install -d $RPM_BUILD_ROOT%{_datadir}/ace/bin/PerlACE
-## install ${ACE_ROOT}/bin/PerlACE/{ConfigList,Process,Process_Unix}.pm $RPM_BUILD_ROOT%{_datadir}/ace/bin/PerlACE
-## install ${ACE_ROOT}/bin/mpc.pl $RPM_BUILD_ROOT%{_datadir}/ace/bin
-## install ${ACE_ROOT}/bin/mwc.pl $RPM_BUILD_ROOT%{_datadir}/ace/bin
-## install ${ACE_ROOT}/bin/g++dep $RPM_BUILD_ROOT%{_datadir}/ace/bin
-## install ${ACE_ROOT}/bin/depgen.pl $RPM_BUILD_ROOT%{_datadir}/ace/bin
-## install ${ACE_ROOT}/bin/generate_export_file.pl $RPM_BUILD_ROOT%{_datadir}/ace/bin
-## install ${ACE_ROOT}/bin/{ACEutils,Process,Process_Unix,Uniqueid}.pm $RPM_BUILD_ROOT%{_datadir}/ace/bin
-
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/profile.d
-
-# ================================================================
-# Manuals
-# ================================================================
-install -d $RPM_BUILD_ROOT%{_mandir}
-install -d $RPM_BUILD_ROOT%{_mandir}/man1
-install ${TAO_ROOT}/TAO_IDL/tao_idl.1 $RPM_BUILD_ROOT%{_mandir}/man1
-install ${ACE_ROOT}/apps/gperf/ace_gperf.1 $RPM_BUILD_ROOT%{_mandir}/man1
-install -d $RPM_BUILD_ROOT%{_infodir}
-install ${ACE_ROOT}/apps/gperf/ace_gperf.info $RPM_BUILD_ROOT%{_infodir}
-
-# ================================================================
-# Create lists of symlinked so's. We need two lists because we need
-# the unversioned symlinks in the runtime package for so's that can
-# be loaded in the svc.conf.
-# ================================================================
-
-# Make a list of all shared objects.
-(cd $RPM_BUILD_ROOT/%{_libdir} && ls *.so | \
- awk '{ print "%{_libdir}/"$1; }' | \
- sort) > all-so.list
-
-# Make a list of likely svc.conf targets.
-(cd $RPM_BUILD_ROOT/%{_libdir} && ls *.so | \
- nm --print-file-name *.so | \
- grep _make_ | \
- awk 'BEGIN { FS=":"} /^[^:]+:/ { print "%{_libdir}/"$1; }' | \
- sort -u) > rough-svc-so.list
-
-# Remove false positives (IMPORTANT keep this list sorted!)
-cat > falsepos-svc-so.list <<EOF
-%{_libdir}/libACE.so
-%{_libdir}/libTAO.so
-EOF
-comm -2 -3 rough-svc-so.list falsepos-svc-so.list > svc-so.list
-
-# Find the list of non-sv.conf target files.
-comm -2 -3 all-so.list svc-so.list > nonsvc-so.list
-
-# Generate file lists.
-grep libACE svc-so.list > ace-svc-so.list
-grep libACE nonsvc-so.list > ace-nonsvc-so.list
-grep libTAO svc-so.list > tao-svc-so.list
-grep libTAO nonsvc-so.list > tao-nonsvc-so.list
-
-# Concatenate file lists as neccessary
-cat tao-headers.list tao-nonsvc-so.list > tao-devel-files.list
-
-# ================================================================
-# clean
-# ================================================================
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-# ================================================================
-# pre install
-# ================================================================
-
-# ---------------- tao-cosnaming ----------------
-
-%pre -n tao-cosnaming
-
-getent group tao >/dev/null || /usr/sbin/groupadd -r tao
-getent passwd tao >/dev/null || \
-/usr/sbin/useradd -r -g tao -d %{_sysconfdir}/tao -s /sbin/nologin \
- -c "TAO Services" tao
-exit 0
-
-# ---------------- tao-cosevent ----------------
-
-%pre -n tao-cosevent
-
-getent group tao >/dev/null || /usr/sbin/groupadd -r tao
-getent passwd tao >/dev/null || \
-/usr/sbin/useradd -r -g tao -d %{_sysconfdir}/tao -s /sbin/nologin \
- -c "TAO Services" tao
-exit 0
-
-# ---------------- tao-cosnotification ----------------
-
-%pre -n tao-cosnotification
-
-getent group tao >/dev/null || /usr/sbin/groupadd -r tao
-getent passwd tao >/dev/null || \
-/usr/sbin/useradd -r -g tao -d %{_sysconfdir}/tao -s /sbin/nologin \
- -c "TAO Services" tao
-exit 0
-
-# ---------------- tao-costrading ----------------
-
-%pre -n tao-costrading
-
-getent group tao >/dev/null || /usr/sbin/groupadd -r tao
-getent passwd tao >/dev/null || \
-/usr/sbin/useradd -r -g tao -d %{_sysconfdir}/tao -s /sbin/nologin \
- -c "TAO Services" tao
-exit 0
-
-# ---------------- tao-rtevent ----------------
-
-%pre -n tao-rtevent
-
-getent group tao >/dev/null || /usr/sbin/groupadd -r tao
-getent passwd tao >/dev/null || \
-/usr/sbin/useradd -r -g tao -d %{_sysconfdir}/tao -s /sbin/nologin \
- -c "TAO Services" tao
-exit 0
-
-# ---------------- tao-cosconcurrency ----------------
-
-%pre -n tao-cosconcurrency
-
-getent group tao >/dev/null || /usr/sbin/groupadd -r tao
-getent passwd tao >/dev/null || \
-/usr/sbin/useradd -r -g tao -d %{_sysconfdir}/tao -s /sbin/nologin \
- -c "TAO Services" tao
-exit 0
-
-# ================================================================
-# post install
-# ================================================================
-
-# ---------------- ace ----------------
-
-%post -n ace
-
-/sbin/ldconfig
-
-# ---------------- ace-devel ----------------
-
-%post -n ace-devel
-
-/sbin/install-info %{_infodir}/ace_gperf.info%{_extension} %{_infodir}/dir
-
-# ---------------- ace-xml ----------------
-
-%post -n ace-xml
-
-/sbin/ldconfig
-
-# ---------------- ace-kokyu ----------------
-
-%post -n ace-kokyu
-
-/sbin/ldconfig
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-# ---------------- ace-flreactor ----------------
-
-%post -n ace-flreactor
-
-/sbin/ldconfig
-
-# ---------------- ace-qtreactor ----------------
-
-%post -n ace-qtreactor
-
-/sbin/ldconfig
-
-# ---------------- ace-tkreactor ----------------
-
-%post -n ace-tkreactor
-
-/sbin/ldconfig
-
-# ---------------- ace-xtreactor ----------------
-
-%post -n ace-xtreactor
-
-/sbin/ldconfig
-%endif
-
-# ---------------- tao ----------------
-
-%post -n tao
-
-/sbin/ldconfig
-
-# ---------------- tao-devel ----------------
-
-%post -n tao-devel
-
-/sbin/ldconfig
-
-# ---------------- tao-cosnaming ----------------
-
-%post -n tao-cosnaming
-
-/sbin/chkconfig --add tao-cosnaming
-
-# ---------------- tao-cosevent ----------------
-
-%post -n tao-cosevent
-
-/sbin/chkconfig --add tao-cosevent
-
-# ---------------- tao-cosnotification ----------------
-
-%post -n tao-cosnotification
-
-/sbin/chkconfig --add tao-cosnotification
-
-# ---------------- tao-costrading ----------------
-
-%post -n tao-costrading
-
-/sbin/chkconfig --add tao-costrading
-
-# ---------------- tao-rtevent ----------------
-
-%post -n tao-rtevent
-
-/sbin/chkconfig --add tao-rtevent
-
-# ---------------- tao-cosconcurrency ----------------
-
-%post -n tao-cosconcurrency
-
-/sbin/chkconfig --add tao-cosconcurrency
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-# ---------------- tao-flresource ----------------
-
-%post -n tao-flresource
-
-/sbin/ldconfig
-
-# ---------------- tao-qtresource ----------------
-
-%post -n tao-qtresource
-
-/sbin/ldconfig
-
-# ---------------- tao-tkresource ----------------
-
-%post -n tao-tkresource
-
-/sbin/ldconfig
-
-# ---------------- tao-xtresource ----------------
-
-%post -n tao-xtresource
-
-/sbin/ldconfig
-%endif
-
-# ================================================================
-# pre uninstall
-# ================================================================
-
-# ---------------- ace-devel ----------------
-
-%preun -n ace-devel
-
-if [ $1 = 0 ]; then
- /sbin/install-info --delete %{_infodir}/ace_gperf.info.gz %{_infodir}/dir
-fi
-
-# ---------------- tao-cosnaming ----------------
-
-%preun -n tao-cosnaming
-
-if [ $1 = 0 ]; then
- /sbin/service tao-cosnaming stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-cosnaming
-fi
-
-# ---------------- tao-cosevent ----------------
-
-%preun -n tao-cosevent
-
-if [ $1 = 0 ]; then
- /sbin/service tao-cosevent stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-cosevent
-fi
-
-# ---------------- tao-cosnotification ----------------
-
-%preun -n tao-cosnotification
-
-if [ $1 = 0 ]; then
- /sbin/service tao-cosnotification stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-cosnotification
-fi
-
-# ---------------- tao-costrading ----------------
-
-%preun -n tao-costrading
-
-if [ $1 = 0 ]; then
- /sbin/service tao-costrading stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-costrading
-fi
-
-# ---------------- tao-rtevent ----------------
-
-%preun -n tao-rtevent
-
-if [ $1 = 0 ]; then
- /sbin/service tao-rtevent stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-rtevent
-fi
-
-# ---------------- tao-cosconcurrency ----------------
-
-%preun -n tao-cosconcurrency
-
-if [ $1 = 0 ]; then
- /sbin/service tao-cosconcurrency stop > /dev/null 2>&1
- /sbin/chkconfig --del tao-cosconcurrency
-fi
-
-# ================================================================
-# post uninstall
-# ================================================================
-
-# ---------------- ace ----------------
-
-%postun -n ace
-
-/sbin/ldconfig
-
-# ---------------- ace-xml ----------------
-
-%postun -n ace-xml
-
-/sbin/ldconfig
-
-# ---------------- ace-kokyu ----------------
-
-%postun -n ace-kokyu
-
-/sbin/ldconfig
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-# ---------------- ace-flreactor ----------------
-
-%postun -n ace-flreactor
-
-/sbin/ldconfig
-
-# ---------------- ace-qtreactor ----------------
-
-%postun -n ace-qtreactor
-
-/sbin/ldconfig
-
-# ---------------- ace-tkreactor ----------------
-
-%postun -n ace-tkreactor
-
-/sbin/ldconfig
-
-# ---------------- ace-xtreactor ----------------
-
-%postun -n ace-xtreactor
-
-/sbin/ldconfig
-%endif
-
-# ---------------- tao ----------------
-
-%postun -n tao
-
-/sbin/ldconfig
-
-# ---------------- tao-devel ----------------
-
-%postun -n tao-devel
-
-/sbin/ldconfig
-
-# ---------------- tao-cosnaming ----------------
-
-%postun -n tao-cosnaming
-
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-cosnaming condrestart > /dev/null 2>&1
-fi
-
-# ---------------- tao-cosevent ----------------
-
-%postun -n tao-cosevent
-
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-cosevent condrestart > /dev/null 2>&1
-fi
-
-# ---------------- tao-cosnotification ----------------
-
-%postun -n tao-cosnotification
-
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-cosnotification condrestart > /dev/null 2>&1
-fi
-
-# ---------------- tao-costrading ----------------
-
-%postun -n tao-costrading
-
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-costrading condrestart > /dev/null 2>&1
-fi
-
-# ---------------- tao-rtevent ----------------
-
-%postun -n tao-rtevent
-
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-rtevent condrestart > /dev/null 2>&1
-fi
-
-# ---------------- tao-cosconcurrency ----------------
-
-%postun -n tao-cosconcurrency
-
-if [ "$1" -ge "1" ]; then
- /sbin/service tao-cosconcurrency condrestart > /dev/null 2>&1
-fi
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-# ---------------- tao-flresource ----------------
-
-%postun -n tao-flresource
-
-/sbin/ldconfig
-
-# ---------------- tao-qtresource ----------------
-
-%postun -n tao-qtresource
-
-/sbin/ldconfig
-
-# ---------------- tao-tkresource ----------------
-
-%postun -n tao-tkresource
-
-/sbin/ldconfig
-
-# ---------------- tao-xtresource ----------------
-
-%postun -n tao-xtresource
-
-/sbin/ldconfig
-%endif
-
-# ================================================================
-# files
-# ================================================================
-
-# ---------------- ace ----------------
-
-%files -n ace
-%defattr(-,root,root,-)
-%{_libdir}/libACE.so.%{ACEVERSO}
-%{_libdir}/libACE_ETCL_Parser.so.%{ACEVERSO}
-%{_libdir}/libACE_ETCL.so.%{ACEVERSO}
-%{_libdir}/libACE_HTBP.so.%{ACEVERSO}
-%{_libdir}/libACE_Monitor_Control.so.%{ACEVERSO}
-%{_libdir}/libACE_RMCast.so.%{ACEVERSO}
-%{_libdir}/libACE_SSL.so.%{ACEVERSO}
-%{_libdir}/libACE_TMCast.so.%{ACEVERSO}
-
-%doc ACE-INSTALL.html
-%doc AUTHORS
-%doc COPYING
-%doc FAQ
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc THANKS
-%doc VERSION
-
-# ---------------- ace-devel ----------------
-
-%files -n ace-devel -f ace-headers.list
-%defattr(-,root,root,-)
-%{_bindir}/ace_gperf
-%{_libdir}/libACE.so
-%{_libdir}/libACE_ETCL_Parser.so
-%{_libdir}/libACE_ETCL.so
-%{_libdir}/libACE_HTBP.so
-%{_libdir}/libACE_Monitor_Control.so
-%{_libdir}/libACE_RMCast.so
-%{_libdir}/libACE_SSL.so
-%{_libdir}/libACE_TMCast.so
-%attr(0644,root,root) %{_mandir}/man1/ace_gperf.1%{_extension}
-%attr(0644,root,root) %{_infodir}/ace_gperf.info%{_extension}
-
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-%exclude %{_includedir}/ace/FlReactor/FlReactor.h
-%exclude %{_includedir}/ace/FlReactor/ACE_FlReactor_export.h
-%exclude %{_includedir}/ace/QtReactor/QtReactor.h
-%exclude %{_includedir}/ace/QtReactor/ACE_QtReactor_export.h
-%exclude %{_includedir}/ace/TkReactor/TkReactor.h
-%exclude %{_includedir}/ace/TkReactor/ACE_TkReactor_export.h
-%exclude %{_includedir}/ace/XtReactor/XtReactor.h
-%exclude %{_includedir}/ace/XtReactor/ACE_XtReactor_export.h
-%endif
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-# ---------------- ace-xml ----------------
-
-%files -n ace-xml
-%defattr(-,root,root,-)
-%{_libdir}/libACEXML*.so.%{ACEVERSO}
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-# ---------------- ace-xml-devel ----------------
-
-%files -n ace-xml-devel -f acexml-headers.list
-%defattr(-,root,root,-)
-%{_libdir}/libACEXML*.so
-
-# These get missed by the automatic list generator because they
-# contain no immediate files.
-%dir %{_includedir}/ACEXML/parser
-%dir %{_includedir}/ACEXML
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-# ---------------- ace-kokyu ----------------
-
-%files -n ace-kokyu
-%defattr(-,root,root,-)
-%{_libdir}/libKokyu.so.%{ACEVERSO}
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-# ---------------- ace-kokyu-devel ----------------
-
-%files -n ace-kokyu-devel -f kokyu-headers.list
-%defattr(-,root,root,-)
-%{_libdir}/libKokyu.so
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-# ---------------- ace-flreactor ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n ace-flreactor
-%defattr(-,root,root,-)
-%{_libdir}/libACE_FlReactor.so.%{ACEVERSO}
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-
-# ---------------- ace-flreactor-devel ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n ace-flreactor-devel
-%defattr(-,root,root,-)
-%dir %{_includedir}/ace/FlReactor
-%{_libdir}/libACE_FlReactor.so
-%{_includedir}/ace/FlReactor/FlReactor.h
-%{_includedir}/ace/FlReactor/ACE_FlReactor_export.h
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-
-# ---------------- ace-qtreactor ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n ace-qtreactor
-%defattr(-,root,root,-)
-%{_libdir}/libACE_QtReactor.so.%{ACEVERSO}
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-
-# ---------------- ace-qtreactor-devel ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n ace-qtreactor-devel
-%defattr(-,root,root,-)
-%{_libdir}/libACE_QtReactor.so
-%dir %{_includedir}/ace/QtReactor
-%{_includedir}/ace/QtReactor/QtReactor.h
-%{_includedir}/ace/QtReactor/ACE_QtReactor_export.h
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-
-# ---------------- ace-tkreactor ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n ace-tkreactor
-%defattr(-,root,root,-)
-%{_libdir}/libACE_TkReactor.so.%{ACEVERSO}
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-
-# ---------------- ace-tkreactor-devel ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n ace-tkreactor-devel
-%defattr(-,root,root,-)
-%{_libdir}/libACE_TkReactor.so
-%dir %{_includedir}/ace/TkReactor
-%{_includedir}/ace/TkReactor/TkReactor.h
-%{_includedir}/ace/TkReactor/ACE_TkReactor_export.h
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-
-# ---------------- ace-xtreactor ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n ace-xtreactor
-%defattr(-,root,root,-)
-%{_libdir}/libACE_XtReactor.so.%{ACEVERSO}
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-
-# ---------------- ace-xtreactor-devel ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n ace-xtreactor-devel
-%defattr(-,root,root,-)
-%{_libdir}/libACE_XtReactor.so
-%dir %{_includedir}/ace/XtReactor
-%{_includedir}/ace/XtReactor/XtReactor.h
-%{_includedir}/ace/XtReactor/ACE_XtReactor_export.h
-
-%doc AUTHORS
-%doc COPYING
-%doc PROBLEM-REPORT-FORM
-%doc README
-%doc VERSION
-
-%endif
-
-# ---------------- tao ----------------
-
-# NOTE - Some of the TAO service modules need to be found by dlopen at
-# runtime. Currently this means these specific .so files need to be
-# shipped in the runtime package instead of the devel package.
-
-%files -n tao -f tao-svc-so.list
-%defattr(-,root,root,-)
-
-%{_libdir}/libTAO*.so.%{TAOVERSO}
-
-# The libTAO_IFR_BE needs the IDL front-end
-%{_libdir}/libTAO_IDL_FE.so.%{ACEVERSO}
-
-%exclude %{_libdir}/libTAO_IDL_BE*
-
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-%exclude %{_libdir}/libTAO_FlResource.so*
-%exclude %{_libdir}/libTAO_QtResource.so*
-%exclude %{_libdir}/libTAO_TkResource.so*
-%exclude %{_libdir}/libTAO_XtResource.so*
-%endif
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/TAO-INSTALL.html
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-devel ----------------
-
-# NOTE - Some of the TAO service modules need to be found by dlopen at
-# runtime. Currently this means these specific .so files need to be
-# shipped in the runtime package instead of the devel package.
-
-%files -n tao-devel -f tao-devel-files.list
-%defattr(-,root,root,-)
-
-%{_libdir}/libTAO_IDL_BE.so.%{ACEVERSO}
-
-%{_bindir}/tao_idl
-%{_bindir}/tao_imr
-%{_bindir}/tao_ifr
-%{_bindir}/tao_catior
-%{_bindir}/tao_nsadd
-%{_bindir}/tao_nsdel
-%{_bindir}/tao_nslist
-%attr(0644,root,root) %{_mandir}/man1/tao_idl.1%{_extension}
-
-# These get missed by the automatic list generator because they
-# contain no immediate files.
-%dir %{_includedir}/orbsvcs/FtRtEvent
-
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-%exclude %{_includedir}/tao/FlResource/FlResource_Factory.h
-%exclude %{_includedir}/tao/FlResource/FlResource_Loader.h
-%exclude %{_includedir}/tao/FlResource/TAO_FlResource_Export.h
-%exclude %{_includedir}/tao/QtResource/QtResource_Factory.h
-%exclude %{_includedir}/tao/QtResource/QtResource_Loader.h
-%exclude %{_includedir}/tao/QtResource/TAO_QtResource_Export.h
-%exclude %{_includedir}/tao/TkResource/TkResource_Factory.h
-%exclude %{_includedir}/tao/TkResource/TkResource_Loader.h
-%exclude %{_includedir}/tao/TkResource/TAO_TkResource_Export.h
-%exclude %{_includedir}/tao/XtResource/XtResource_Factory.h
-%exclude %{_includedir}/tao/XtResource/XtResource_Loader.h
-%exclude %{_includedir}/tao/XtResource/TAO_XtResource_Export.h
-%exclude %{_libdir}/libTAO_FlResource.so
-%exclude %{_libdir}/libTAO_QtResource.so
-%exclude %{_libdir}/libTAO_TkResource.so
-%exclude %{_libdir}/libTAO_XtResource.so
-%endif
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-cosnaming ----------------
-
-%files -n tao-cosnaming
-%defattr(-,root,root,-)
-
-%{_sbindir}/tao-cosnaming
-%{_sysconfdir}/rc.d/init.d/tao-cosnaming
-%dir %{_sysconfdir}/tao
-%config(noreplace) %{_sysconfdir}/tao/tao-cosnaming.opt
-%config(noreplace) %{_sysconfdir}/tao/tao-cosnaming.conf
-%config(noreplace) %{_sysconfdir}/logrotate.d/tao-cosnaming
-%attr(-,tao,tao) %dir %{_localstatedir}/cache/tao
-%attr(0644,tao,tao) %ghost %{_localstatedir}/cache/tao/tao-cosnaming.dat
-%attr(-,tao,tao) %dir %{_localstatedir}/log/tao
-%attr(0644,tao,tao) %ghost %{_localstatedir}/log/tao/tao-cosnaming.log
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-cosevent ----------------
-
-%files -n tao-cosevent
-%defattr(-,root,root,-)
-
-%{_sbindir}/tao-cosevent
-%{_sysconfdir}/rc.d/init.d/tao-cosevent
-%dir %{_sysconfdir}/tao
-%config(noreplace) %{_sysconfdir}/tao/tao-cosevent.opt
-%config(noreplace) %{_sysconfdir}/tao/tao-cosevent.conf
-%config(noreplace) %{_sysconfdir}/logrotate.d/tao-cosevent
-%attr(-,tao,tao) %dir %{_localstatedir}/log/tao
-%attr(0644,tao,tao) %ghost %{_localstatedir}/log/tao/tao-cosevent.log
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-cosnotification ----------------
-
-%files -n tao-cosnotification
-%defattr(-,root,root,-)
-
-%{_sbindir}/tao-cosnotification
-%{_sysconfdir}/rc.d/init.d/tao-cosnotification
-%dir %{_sysconfdir}/tao
-%config(noreplace) %{_sysconfdir}/tao/tao-cosnotification.opt
-%config(noreplace) %{_sysconfdir}/tao/tao-cosnotification.conf
-%config(noreplace) %{_sysconfdir}/logrotate.d/tao-cosnotification
-%attr(-,tao,tao) %dir %{_localstatedir}/log/tao
-%attr(0644,tao,tao) %ghost %{_localstatedir}/log/tao/tao-cosnotification.log
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-costrading ----------------
-
-%files -n tao-costrading
-%defattr(-,root,root,-)
-
-%{_sbindir}/tao-costrading
-%{_sysconfdir}/rc.d/init.d/tao-costrading
-%dir %{_sysconfdir}/tao
-%config(noreplace) %{_sysconfdir}/tao/tao-costrading.opt
-%config(noreplace) %{_sysconfdir}/tao/tao-costrading.conf
-%config(noreplace) %{_sysconfdir}/logrotate.d/tao-costrading
-%attr(-,tao,tao) %dir %{_localstatedir}/log/tao
-%attr(0644,tao,tao) %ghost %{_localstatedir}/log/tao/tao-costrading.log
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-rtevent ----------------
-
-%files -n tao-rtevent
-%defattr(-,root,root,-)
-
-%{_sbindir}/tao-rtevent
-%{_sysconfdir}/rc.d/init.d/tao-rtevent
-%dir %{_sysconfdir}/tao
-%config(noreplace) %{_sysconfdir}/tao/tao-rtevent.opt
-%config(noreplace) %{_sysconfdir}/tao/tao-rtevent.conf
-%config(noreplace) %{_sysconfdir}/logrotate.d/tao-rtevent
-%attr(-,tao,tao) %dir %{_localstatedir}/log/tao
-%attr(0644,tao,tao) %ghost %{_localstatedir}/log/tao/tao-rtevent.log
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-cosconcurrency ----------------
-
-%files -n tao-cosconcurrency
-%defattr(-,root,root,-)
-
-%{_sbindir}/tao-cosconcurrency
-%{_sysconfdir}/rc.d/init.d/tao-cosconcurrency
-%dir %{_sysconfdir}/tao
-%config(noreplace) %{_sysconfdir}/tao/tao-cosconcurrency.opt
-%config(noreplace) %{_sysconfdir}/tao/tao-cosconcurrency.conf
-%config(noreplace) %{_sysconfdir}/logrotate.d/tao-cosconcurrency
-%attr(-,tao,tao) %dir %{_localstatedir}/log/tao
-%attr(0644,tao,tao) %ghost %{_localstatedir}/log/tao/tao-cosconcurrency.log
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-# ---------------- tao-flresource ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n tao-flresource
-%defattr(-,root,root,-)
-%{_libdir}/libTAO_FlResource.so.%{TAOVERSO}
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-%endif
-
-# ---------------- tao-flresource-devel ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n tao-flresource-devel
-%defattr(-,root,root,-)
-%{_libdir}/libTAO_FlResource.so
-%dir %{_includedir}/tao
-%{_includedir}/tao/FlResource/FlResource_Factory.h
-%{_includedir}/tao/FlResource/FlResource_Loader.h
-%{_includedir}/tao/FlResource/TAO_FlResource_Export.h
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-%endif
-
-# ---------------- tao-qtresource ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n tao-qtresource
-%defattr(-,root,root,-)
-%{_libdir}/libTAO_QtResource.so.%{TAOVERSO}
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-%endif
-
-# ---------------- tao-qtresource-devel ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n tao-qtresource-devel
-%defattr(-,root,root,-)
-%{_libdir}/libTAO_QtResource.so
-%dir %{_includedir}/tao
-%{_includedir}/tao/QtResource/QtResource_Factory.h
-%{_includedir}/tao/QtResource/QtResource_Loader.h
-%{_includedir}/tao/QtResource/TAO_QtResource_Export.h
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-%endif
-
-# ---------------- tao-tkresource ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n tao-tkresource
-%defattr(-,root,root,-)
-%{_libdir}/libTAO_TkResource.so.%{TAOVERSO}
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-%endif
-
-# ---------------- tao-tkresource-devel ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n tao-tkresource-devel
-%defattr(-,root,root,-)
-%{_libdir}/libTAO_TkResource.so
-%dir %{_includedir}/tao
-%{_includedir}/tao/TkResource/TkResource_Factory.h
-%{_includedir}/tao/TkResource/TkResource_Loader.h
-%{_includedir}/tao/TkResource/TAO_TkResource_Export.h
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-%endif
-
-# ---------------- tao-xtresource ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n tao-xtresource
-%defattr(-,root,root,-)
-%{_libdir}/libTAO_XtResource.so.%{TAOVERSO}
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-%endif
-
-# ---------------- tao-xtresource-devel ----------------
-
-# Read: true if _with_guilibs is defined, false if not defined.
-%if %{?_with_guilibs:1}%{!?_with_guilibs:0}
-
-%files -n tao-xtresource-devel
-%defattr(-,root,root,-)
-%{_libdir}/libTAO_XtResource.so
-%dir %{_includedir}/tao
-%{_includedir}/tao/XtResource/XtResource_Factory.h
-%{_includedir}/tao/XtResource/XtResource_Loader.h
-%{_includedir}/tao/XtResource/TAO_XtResource_Export.h
-
-%doc TAO/COPYING
-%doc TAO/PROBLEM-REPORT-FORM
-%doc TAO/VERSION
-%doc TAO/README
-
-%endif
-
-# ================================================================
-# changelog
-# ================================================================
-
-%changelog
-* Sun Nov 23 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.7-1
-- Updated for tao_ prefixed catior, nsadd, nsdel and nslist.
-
-* Thu Jul 31 2008 Johnny Willemsen <jwillemsen@remedy.nl> - 5.6.6-2
-- Removed ace-tao-unusedarg.patch (related to bug #3270).
-
-* Sat Jul 5 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.6-1
-- Updated for latest DOC Group release (x.6.6).
-- Tracked libACE_Monitor_Control name change.
-- Added idl and pidl include files to tao-devel package.
-
-* Wed Jun 25 2008 Johnny Willemsen <jwillemsen@remedy.nl> - 5.6.5-6
-- Removed gperf to gperf_ace rename, ACE ships now ace_gperf by default
-- Removed ace-tao-strrecvfd.patch
-- Removed gperf macro from ace-tao-config.patch
-- Removed gperf.info patch
-
-* Mon Jun 2 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.5-5
-- Added ace-tao-strrecvfd.patch (related to bug #3291).
-- Changed make loop construct to abort when subcomponent fails.
-- Removed PSS from TAO build list.
-- Added ace-tao-unusedarg.patch (related to bug #3270).
-- Made qt3 BuildRequires conditional on Fedora version.
-
-* Wed May 28 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.5-4
-- Added ace-tao-orbsvcs-daemon.patch.
-- Fixed tao-cosconcurrency command line arguments.
-
-* Sat May 24 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.5-3
-- Removed obstack patch, no longer needed.
-- Converted ace-tao-config-ipv6.patch into conditional rpm script.
-- Converted ace-tao-rnq.patch into conditional rpm script.
-- Converted ace-tao-config-tmplvis.patch and ace-tao-hasicmp.patch
- into rpm script.
-
-* Thu May 22 2008 Johnny Willemsen <jwillemsen@remedy.nl> - 5.6.5-3
-- Removed codeset patch, merged into the distribution
-
-* Wed May 21 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.5-2
-- Fixed without opt processing.
-
-* Mon May 19 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.5-1
-- Updated to latest DOC Group release (x.6.5).
-- Updated ace-tao-codeset.patch.
-- Removed ace-tao-x86_64.patch (fixed in repository.)
-- Added libACE_ETCL, libACE_ETCL_Parser and libACE_MonitorControl.
-
-* Sun May 18 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.4-4
-- Fixed tao-cosnaming.dat path bug.
-
-* Sun May 18 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.4-3
-- Improved to use _localstatedir where appropriate.
-- Made adjustments to file/dir permissions for services.
-- Added service logrotate scripts.
-
-* Wed May 14 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.4-2
-- Renamed tao services again per Fedora service spec.
-
-* Thu May 1 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.4-1
-- Updated to latest DOC Group release (x.6.4).
-
-* Thu May 1 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.3-3
-- Install service binaries in /usr/sbin instead of /usr/bin.
-
-* Sun Mar 30 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.3-2
-- Added dist macro to Release tag.
-- Miscellaneous rpmlint fixes.
-- Renamed service executables.
-
-* Sat Feb 23 2008 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.3-1
-- Updated to latest DOC group release (x.6.3).
-- Removed ace-tao-conf-epoll patch, no longer needed.
-
-* Sat Dec 15 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.2-1
-- Updated to latest DOC group release (x.6.2).
-
-* Sat Dec 15 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.1-3
-- Added service modules back into runtime packages.
-
-* Mon Dec 3 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.1-2
-- Added QtResource_Loader to explicit headers.
-
-* Sun Oct 28 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.1-2
-- Applied Tom Callaway's Fedora fixes.
-
-* Sat Sep 22 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6.1-1
-- Updated to latest DOC group release (x.6.1).
-
-* Mon Sep 3 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.6-1
-- Updated to latest DOC group release (x.6).
-- Combined 64bit patches into ace-tao-x86_64.patch.
-
-* Wed Aug 1 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.10-1
-- Updated to latest DOC group release (x.5.10).
-
-* Sun Jul 1 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.9-1
-- Updated to latest DOC group release (x.5.9).
-
-* Sat May 5 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.8-1
-- Updated to latest DOC group release (x.5.8).
-- Added ACE_GCC_HAS_TEMPLATE_INSTANTIATION_VISIBILITY_ATTRS.
-
-* Sat Mar 24 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.7-1
-- Updated to latest DOC group release (x.5.7).
-
-* Mon Feb 19 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.6-2
-- Added SSLIOP refcount patch (DOC BUG 1506).
-
-* Fri Feb 2 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.6-1
-- Updated to latest DOC group release (x.5.6).
-
-* Thu Jan 25 2007 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.5-1
-- Updated to latest DOC group release (x.5.5).
-- Adjusted paths to {Fl,Qt,Tk,Xt}Reactor headers.
-
-* Sat Dec 16 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.4-2
-- Defined ACE_HAS_EVENT_POLL config parameter.
-
-* Wed Nov 29 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.4-1
-- Updated to latest DOC group release (x.5.4).
-
-* Mon Nov 20 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.3-3
-- Improved obstack patch per Johnny Willemsen.
-
-* Sat Nov 18 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.3-2
-- Added obstack workaround for FC6 builds.
-- Fixed IPV6 configuration patch.
-
-* Tue Oct 10 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.3-1
-- Updated to latest DOC group release (x.5.3).
-
-* Tue Sep 5 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.2-2
-- Added ACE_HAS_ICMP_SUPPORT to config.h
-- Added patch to re-enable setting ssl verify mode.
-
-* Wed Jul 12 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.2-1
-- Updated to latest DOC group release (x.5.2).
-
-* Sat Jun 24 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.1-4
-- Added IPv6 support by default.
-
-* Wed Jun 14 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.1-3
-- Added x86_64 patch back in (required for GUI builds).
-
-* Sun May 21 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.1-2
-- Added aio64 patch for librt.so detection.
-
-* Wed Apr 19 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5.1-1
-- Updated to latest DOC group release (x.5.1).
-- Added conditional (on by default) addition of
- ACE_HAS_REACTOR_NOTIFICATION_QUEUE to config.h.
-
-* Sat Mar 25 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5-2
-- Added Doug Schmidt's patches for gcc 4.1.0 type-punned warnings.
-- Removed X11 build dependencies due to xorg package renaming.
-
-* Tue Mar 7 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.5-1
-- Updated to latest DOC group release (x.5)
-
-* Wed Feb 22 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.10-1
-- Updated to latest DOC group release (x.4.10)
-
-* Sat Feb 11 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.9-2
-- Created unversioned symlinks for svc.conf loadable shared objects
- in runtime packages.
-- Now run mwc during rpmbuild even if _with_guilibs is not defined.
-- Removed patch for fixed namespace bugs.
-
-* Thu Feb 9 2006 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.9-1
-- Updated to latest DOC group release (x.4.9)
-
-* Fri Dec 23 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.8-1
-- Added ace-tao-idl-preproc patch for IDL include path bug.
-
-* Thu Dec 22 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.8-0
-- Updated to the latest DOC group release (5.4.8)
-
-* Fri Dec 9 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.7-1
-- Added buildbits=64 macro for 64 bit archs.
-
-* Mon Aug 8 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.7-0
-- Updated to latest DOC group release (5.4.7)
-
-* Fri Jun 10 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.6-0
-- Updated to latest DOC group release (5.4.6)
-
-* Sun May 15 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.5-0
-- Updated to latest DOC group release (5.4.5)
-- Removed TSS Cleanup patch (bug fixed in release).
-
-* Sat Mar 5 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-5
-- Fixed include directory uninstall cleanup for GUI reactor packages.
-- Fixed installation to preserve header timestamps.
-
-* Wed Mar 2 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-4
-- Integrated Marek Brudka's GUI library additions.
-
-* Thu Feb 24 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-3
-- Changed name of spec, source rpm and patches to remove '+'.
-
-* Sat Feb 19 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-2
-- Fixed installed doc, header and debug source file permissions.
-
-* Fri Feb 18 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-2
-- Updated spec tags per Fedora PackagingHints wiki document.
-
-* Thu Feb 17 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-1
-- Added patch to rename gperf info menu entry to gperf-ace.
-- Replaced TSS-Cleanup patch with candidate fixes from Dale Wilson.
-
-* Wed Feb 16 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-1
-- Macroed some absolute paths in the files section.
-- Added post and preun calls to install-info.
-
-* Mon Feb 14 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-1
-- Fixed BuildRequires entries.
-
-* Sun Feb 13 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-1
-- Added Giovanni Ferro's _extension macro for info and man pages.
-
-* Thu Feb 10 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.4-0
-- Updated to latest DOC group release (5.4.4).
-- Removed idl-rootinc patch (fixed in distro).
-- Removed orbdaemon patch (fixed in distro).
-- Added libTAO_TMCast.so to ace package.
-
-* Mon Feb 7 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.3-5
-- Added /usr/include/ACEXML to explicit directory list.
-
-* Sun Feb 6 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.3-4
-- Fixed unfulfilled dependency in tao package for libTAO_IDL_FE.so
-- Removed bidir-noassert patch, not needed.
-
-* Mon Jan 31 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.3-4
-- Added TSS Cleanup fixes patch (DOC bugzilla #2044)
-
-* Mon Jan 17 2005 Andrew L. Shwaika <als@solvo.ru> - 5.4.3-3
-- Add CORBA services
-
-* Sat Jan 15 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.3-2
-- Used ACE_GPERF to change name of installed gperf to gperf-ace.
-
-* Mon Jan 10 2005 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.3-1
-- Added bidir-noassert2 patch.
-
-* Sat Dec 18 2004 Ken Sedgwick <ken+5a4@bonsai.com> - 5.4.2-0
-- Initial build.
diff --git a/ACE/rpmbuild/logrotate.d/tao-cosconcurrency b/ACE/rpmbuild/logrotate.d/tao-cosconcurrency
new file mode 100644
index 00000000000..d256e1a8331
--- /dev/null
+++ b/ACE/rpmbuild/logrotate.d/tao-cosconcurrency
@@ -0,0 +1,6 @@
+/var/log/tao/tao-cosconcurrency.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/logrotate.d/tao-cosevent b/ACE/rpmbuild/logrotate.d/tao-cosevent
new file mode 100644
index 00000000000..f49bbd21995
--- /dev/null
+++ b/ACE/rpmbuild/logrotate.d/tao-cosevent
@@ -0,0 +1,6 @@
+/var/log/tao/tao-cosevent.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/logrotate.d/tao-cosnaming b/ACE/rpmbuild/logrotate.d/tao-cosnaming
new file mode 100644
index 00000000000..c9458cd01bb
--- /dev/null
+++ b/ACE/rpmbuild/logrotate.d/tao-cosnaming
@@ -0,0 +1,6 @@
+/var/log/tao/tao-cosnaming.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/logrotate.d/tao-cosnotification b/ACE/rpmbuild/logrotate.d/tao-cosnotification
new file mode 100644
index 00000000000..bccc92eef2c
--- /dev/null
+++ b/ACE/rpmbuild/logrotate.d/tao-cosnotification
@@ -0,0 +1,6 @@
+/var/log/tao/tao-cosnotification.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/logrotate.d/tao-costrading b/ACE/rpmbuild/logrotate.d/tao-costrading
new file mode 100644
index 00000000000..6eb6b78c695
--- /dev/null
+++ b/ACE/rpmbuild/logrotate.d/tao-costrading
@@ -0,0 +1,6 @@
+/var/log/tao/tao-costrading.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/logrotate.d/tao-rtevent b/ACE/rpmbuild/logrotate.d/tao-rtevent
new file mode 100644
index 00000000000..80d2e7b6736
--- /dev/null
+++ b/ACE/rpmbuild/logrotate.d/tao-rtevent
@@ -0,0 +1,6 @@
+/var/log/tao/tao-rtevent.log {
+ copytruncate
+ missingok
+ size 1M
+ endscript
+}
diff --git a/ACE/rpmbuild/tao/tao-cosconcurrency.conf b/ACE/rpmbuild/tao/tao-cosconcurrency.conf
new file mode 100644
index 00000000000..1123ad5fa6a
--- /dev/null
+++ b/ACE/rpmbuild/tao/tao-cosconcurrency.conf
@@ -0,0 +1,3 @@
+#
+# Service Configuration for tao-cosconcurrency.
+#
diff --git a/ACE/rpmbuild/tao/tao-cosevent.conf b/ACE/rpmbuild/tao/tao-cosevent.conf
new file mode 100644
index 00000000000..9a678b5e043
--- /dev/null
+++ b/ACE/rpmbuild/tao/tao-cosevent.conf
@@ -0,0 +1,3 @@
+#
+# Service Configuration for tao-cosevent.
+#
diff --git a/ACE/rpmbuild/tao/tao-cosnaming.conf b/ACE/rpmbuild/tao/tao-cosnaming.conf
new file mode 100644
index 00000000000..d35fc531867
--- /dev/null
+++ b/ACE/rpmbuild/tao/tao-cosnaming.conf
@@ -0,0 +1,3 @@
+#
+# Service Configuration for tao-cosnaming.
+#
diff --git a/ACE/rpmbuild/tao/tao-cosnotification.conf b/ACE/rpmbuild/tao/tao-cosnotification.conf
new file mode 100644
index 00000000000..4851348eca4
--- /dev/null
+++ b/ACE/rpmbuild/tao/tao-cosnotification.conf
@@ -0,0 +1,3 @@
+#
+# Service Configuration for tao-cosnotification.
+#
diff --git a/ACE/rpmbuild/tao/tao-costrading.conf b/ACE/rpmbuild/tao/tao-costrading.conf
new file mode 100644
index 00000000000..88a9e38bcf1
--- /dev/null
+++ b/ACE/rpmbuild/tao/tao-costrading.conf
@@ -0,0 +1,3 @@
+#
+# Service Configuration for tao-costrading.
+#
diff --git a/ACE/rpmbuild/tao/tao-rtevent.conf b/ACE/rpmbuild/tao/tao-rtevent.conf
new file mode 100644
index 00000000000..4690a83235d
--- /dev/null
+++ b/ACE/rpmbuild/tao/tao-rtevent.conf
@@ -0,0 +1,3 @@
+#
+# Service Configuration for tao-rtevent.
+#
diff --git a/ACE/tests/ACE_Init_Test.cpp b/ACE/tests/ACE_Init_Test.cpp
index 89373bc32ba..355b70b5349 100644
--- a/ACE/tests/ACE_Init_Test.cpp
+++ b/ACE/tests/ACE_Init_Test.cpp
@@ -25,7 +25,7 @@ run_main (int, ACE_TCHAR *[])
{
ACE_START_TEST (ACE_TEXT ("ACE_Init_Test"));
ACE_ERROR ((LM_INFO,
- ACE_TEXT ("This is not a Win32 platform, test skipped\n")));
+ ACE_TEXT ("This is not a Win32 platform with MFC support, test skipped\n")));
ACE_END_TEST;
return 0;
}
diff --git a/ACE/tests/Based_Pointer_Test.cpp b/ACE/tests/Based_Pointer_Test.cpp
index 046cb38770f..90f72f4d3db 100644
--- a/ACE/tests/Based_Pointer_Test.cpp
+++ b/ACE/tests/Based_Pointer_Test.cpp
@@ -137,7 +137,7 @@ int singleton_test (void)
{
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("ACE_Based_Pointer_Repository is not a ")
- ACE_TEXT ("singleton in DLL %@ %@\n"),
+ ACE_TEXT ("singleton in DLL <%@> <%@>\n"),
baddr_dll,
baddr1),
-1);
diff --git a/ACE/tests/Bug_1890_Regression_Test.cpp b/ACE/tests/Bug_1890_Regression_Test.cpp
index 3f489c5bad2..2d2cf98a3c8 100644
--- a/ACE/tests/Bug_1890_Regression_Test.cpp
+++ b/ACE/tests/Bug_1890_Regression_Test.cpp
@@ -16,6 +16,7 @@
#include "ace/Event_Handler.h"
#include "ace/Reactor.h"
#include "ace/Select_Reactor.h"
+#include "ace/Auto_Ptr.h"
ACE_RCSID (tests,
Bug_1890_Regression_Test,
@@ -105,8 +106,11 @@ run_main (int, ACE_TCHAR *[])
// Bug 1890 is all about ACE_Select_Reactor, so run it on that reactor
// regardless of platform.
- ACE_Select_Reactor select_reactor;
- ACE_Reactor reactor (&select_reactor);
+ ACE_Select_Reactor *impl_ptr = 0;
+ ACE_NEW_RETURN (impl_ptr, ACE_Select_Reactor, -1);
+ auto_ptr<ACE_Select_Reactor> auto_impl (impl_ptr);
+
+ ACE_Reactor reactor (impl_ptr);
// Create the timer, this is the main driver for the test
Timer * timer = new Timer;
diff --git a/ACE/tests/Bug_2540_Regression_Test.cpp b/ACE/tests/Bug_2540_Regression_Test.cpp
index 66f1f4f4ddb..2a05b97cb6d 100644
--- a/ACE/tests/Bug_2540_Regression_Test.cpp
+++ b/ACE/tests/Bug_2540_Regression_Test.cpp
@@ -16,6 +16,7 @@
#include "ace/Event_Handler.h"
#include "ace/Reactor.h"
#include "ace/Select_Reactor.h"
+#include "ace/Auto_Ptr.h"
ACE_RCSID (tests,
Bug_2540_Regression_Test,
@@ -70,7 +71,7 @@ private:
* in a repeating interval. On the first @c initial_iterations the Timer
* writes data through all of its handlers. On iteration @c initial_iteration
* it triggers bug 2540 by removing two handlers from the reactor.
- *
+ *
*/
class Timer : public ACE_Event_Handler
{
@@ -109,8 +110,11 @@ run_main (int, ACE_TCHAR *[])
// regardless of platform. In particular, this test relies on a handler
// that doesn't consume ready-to-read data being called back - this won't
// happen with ACE_WFMO_Reactor.
- ACE_Select_Reactor select_reactor;
- ACE_Reactor reactor (&select_reactor);
+ ACE_Select_Reactor *impl_ptr = 0;
+ ACE_NEW_RETURN (impl_ptr, ACE_Select_Reactor, -1);
+ auto_ptr<ACE_Select_Reactor> auto_impl (impl_ptr);
+
+ ACE_Reactor reactor (impl_ptr);
// Create the timer, this is the main driver for the test
Timer * timer = new Timer;
diff --git a/ACE/tests/Bug_2740_Regression_Test.cpp b/ACE/tests/Bug_2740_Regression_Test.cpp
new file mode 100644
index 00000000000..8c31bfda748
--- /dev/null
+++ b/ACE/tests/Bug_2740_Regression_Test.cpp
@@ -0,0 +1,364 @@
+/**
+ * @file Bug_2740_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * Reproduces the problems reported in bug 2740
+ * http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2740
+ *
+ * @author paolo.volpi@tvblob.com
+ */
+
+#include "test_config.h"
+
+ACE_RCSID (tests,
+ Bug_2740_Regression_Test,
+ "$Id$")
+
+#if defined (ACE_HAS_DEV_POLL) || defined (ACE_HAS_EVENT_POLL)
+
+#include "ace/Atomic_Op.h"
+#include "ace/Reactor.h"
+#include "ace/Dev_Poll_Reactor.h"
+#include "ace/Connector.h"
+#include "ace/SOCK_Connector.h"
+#include "ace/Acceptor.h"
+#include "ace/SOCK_Acceptor.h"
+#include "ace/Svc_Handler.h"
+#include "ace/Signal.h"
+#include "ace/Time_Value.h"
+#include "ace/OS_NS_string.h"
+
+const ACE_Time_Value MAX_CLIENT_TIMEOUT(30); // 30 secs
+
+// The number of clients we'll run. When the ClientsLeft gets back to 0 (it's
+// decremented when a ClientSvcHandler is deleted) the event loop can stop.
+const long NrClients = 10;
+static ACE_Atomic_Op<ACE_Thread_Mutex, long> ClientsLeft (10);
+
+
+class ClientSvcHandler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+{
+public:
+ // Default ctor needed to satisfy ACE_Connector template, but not used.
+ ClientSvcHandler ()
+ { ACE_ERROR((LM_ERROR, ACE_TEXT ("%t: Wrong ClientSvcHandler ctor!!\n"))); }
+
+ // Each client will send/recv 'echo_cnt' times, close/reopen the socket,
+ // then echo, etc. for ACE_MAX_ITERATIONS times.
+ ClientSvcHandler (const ACE_INET_Addr &addr, int echo_cnt);
+ ~ClientSvcHandler ();
+
+ int open (void* factory);
+ int handle_input (ACE_HANDLE handle = ACE_INVALID_HANDLE);
+ int handle_timeout (const ACE_Time_Value &now, const void *act = 0);
+ int handle_close (ACE_HANDLE handle = ACE_INVALID_HANDLE,
+ ACE_Reactor_Mask mask = 0);
+
+protected:
+ static const char *send_str;
+
+ ACE_INET_Addr server_addr_;
+ // Know when we've received 'echo_cnt' echoes of the data. Don't want to
+ // get into record-marking, short-reads/writes, etc. so just count the number
+ // of bytes it takes to echo the data. Don't care about verifying the
+ // content - this is mostly a stress test for multithreaded reactor.
+ size_t echo_cnt_;
+ size_t iter_;
+ unsigned long timer_;
+};
+
+const char *ClientSvcHandler::send_str =
+ "1234567890123456789012345678901234567890";
+
+class ServerSvcHandler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
+{
+public:
+ int open (void* factory);
+ int handle_input (ACE_HANDLE handle = ACE_INVALID_HANDLE);
+ int handle_close (ACE_HANDLE handle = ACE_INVALID_HANDLE,
+ ACE_Reactor_Mask mask = 0);
+};
+
+
+ClientSvcHandler::ClientSvcHandler (const ACE_INET_Addr &addr, int echo_cnt)
+ : ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>(),
+ server_addr_ (addr),
+ echo_cnt_ (ACE_OS::strlen (ClientSvcHandler::send_str) * echo_cnt),
+ iter_ (0)
+{
+}
+
+ClientSvcHandler::~ClientSvcHandler ()
+{
+ if (--ClientsLeft == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%t: No more clients; ending reactor loop\n")));
+ this->reactor ()->end_reactor_event_loop ();
+ }
+}
+
+int
+ClientSvcHandler::open (void* factory)
+{
+ ++iter_;
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%t: client h %d, open for iteration %B\n"),
+ this->peer ().get_handle (), this->iter_));
+
+ if (ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::open (factory) == 0)
+ {
+ this->timer_ = this->reactor ()->schedule_timer (this,
+ 0,
+ MAX_CLIENT_TIMEOUT);
+
+ size_t send_len = ACE_OS::strlen (ClientSvcHandler::send_str);
+ if (-1 == this->peer().send_n (ClientSvcHandler::send_str, send_len))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%t: client h %d, %p\n"),
+ this->peer ().get_handle(),
+ ACE_TEXT ("send")),
+ -1);
+ return 0;
+ }
+
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%t: %p\n"),
+ ACE_TEXT ("Client open")),
+ -1);
+}
+
+int
+ClientSvcHandler::handle_input (ACE_HANDLE handle)
+{
+ // Get socket data
+ char buffer[ACE_DEFAULT_MAX_SOCKET_BUFSIZ];
+ ssize_t bc;
+ bc = this->peer ().recv (buffer, sizeof (buffer));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%t: client h %d recv %b bytes\n"),
+ handle,
+ bc));
+ if (bc > 0)
+ {
+ // Reset Client timeout timer
+ this->reactor ()->cancel_timer (this->timer_);
+
+ // Reduce the echo count by what was received; if not there, send
+ // more data and await more echo.
+ size_t ubc = (size_t)bc;
+ if (ubc <= this->echo_cnt_)
+ this->echo_cnt_ -= ubc;
+ if (this->echo_cnt_ == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%t: client h %d end of echo\n"),
+ handle));
+ return -1;
+ }
+
+ // Not done yet; send more data and resched timer.
+ size_t send_len = ACE_OS::strlen (ClientSvcHandler::send_str);
+ if (-1 == this->peer().send_n (ClientSvcHandler::send_str, send_len))
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%t: client h %d: %p\n"),
+ ACE_TEXT ("resending")),
+ -1);
+ this->timer_ = reactor ()->schedule_timer (this, 0, MAX_CLIENT_TIMEOUT);
+ }
+ else if (bc == 0) // Socket was closed by server
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%t: client h %d: closed by server\n"),
+ handle),
+ -1);
+ }
+ else if (errno == EWOULDBLOCK) // no data ready on socket
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ ACE_TEXT ("%t: client h %d: recv no data\n"),
+ handle),
+ 0);
+ }
+ else
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%t: client h %d: %p\n"),
+ handle,
+ ACE_TEXT ("send")),
+ -1);
+
+ return 0;
+}
+
+int
+ClientSvcHandler::handle_timeout (const ACE_Time_Value &, const void*)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%t: client h %d: timeout\n"),
+ this->peer ().get_handle ()));
+ reactor()->remove_handler (this, ACE_Event_Handler::ALL_EVENTS_MASK);
+ return 0;
+}
+
+int
+ClientSvcHandler::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask mask)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%t: client h %d handle_close\n"),
+ handle));
+
+ // If not done iterating, just close the socket and reopen the connection.
+ // Else shut down and delete.
+ if (this->iter_ >= ACE_MAX_ITERATIONS)
+ return ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::handle_close(handle,
+ mask);
+ this->shutdown ();
+ ClientSvcHandler *p = const_cast<ClientSvcHandler *>(this);
+ ACE_Connector<ClientSvcHandler, ACE_SOCK_CONNECTOR>
+ connector (this->reactor (), ACE_NONBLOCK);
+ connector.connect (p, this->server_addr_);
+ return 0;
+}
+
+int
+ServerSvcHandler::open (void* factory)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%t: server h %d open\n"),
+ this->peer ().get_handle ()));
+
+ return ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::open (factory);
+}
+
+int
+ServerSvcHandler::handle_input (ACE_HANDLE handle)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%t: server h %d input\n"), handle));
+
+ // Receive whatever is here and send it back.
+ char buffer[ACE_DEFAULT_MAX_SOCKET_BUFSIZ];
+ ssize_t bc;
+ bc = this->peer ().recv (buffer, sizeof (buffer));
+ if (bc > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%t: server h %d recv %b bytes\n"),
+ handle,
+ bc));
+ if (-1 == this->peer ().send_n (buffer, bc))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%t: server h %d: %p\n"),
+ handle, ACE_TEXT ("send")),
+ -1);
+ }
+ else if (bc == 0 || errno == ECONNRESET) // Socket was closed by client
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ ACE_TEXT ("%t: server h %d: closed by client\n"),
+ handle),
+ -1);
+ }
+ else if (errno == EWOULDBLOCK) // no data ready on socket
+ {
+ // The reactor shouldn't call back for input if there's no data, so
+ // log an error, but keep running.
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%t: server h %d: recv no data\n"),
+ handle),
+ 0);
+ }
+ else
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%t: server h %d: %p\n"),
+ handle,
+ ACE_TEXT ("recv")),
+ -1);
+
+ return 0;
+}
+
+int
+ServerSvcHandler::handle_close(ACE_HANDLE handle, ACE_Reactor_Mask mask)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%t: server h %d: handle_close\n"), handle));
+ return ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::handle_close (handle,
+ mask);
+}
+
+
+ACE_THR_FUNC_RETURN
+event_loop(void *arg)
+{
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%t: Starting reactor event loop\n")));
+
+ ACE_Reactor *reactor = static_cast<ACE_Reactor*>(arg);
+ int s = reactor->run_reactor_event_loop();
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%t: reactor loop done; status %d\n"), s));
+ return 0;
+}
+
+
+int run_main(int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_2740_Regression_Test"));
+
+ // Make sure we ignore SIGPIPE
+ sigset_t sigsetNew[1];
+ sigset_t sigsetOld[1];
+ ACE_OS::sigemptyset (sigsetNew);
+ ACE_OS::sigaddset (sigsetNew, SIGPIPE);
+ ACE_OS::sigprocmask (SIG_BLOCK, sigsetNew, sigsetOld);
+
+ ACE_Dev_Poll_Reactor dp_reactor;
+ dp_reactor.restart (1); // Restart on EINTR
+ ACE_Reactor reactor (&dp_reactor);
+
+ // Bind acceptor to any port and then find out what the port was.
+ ACE_Acceptor<ServerSvcHandler, ACE_SOCK_Acceptor> acceptor (&reactor,
+ ACE_NONBLOCK);
+ ACE_SOCK_Acceptor::PEER_ADDR server_addr;
+ if (acceptor.open (ACE_sap_any_cast (const ACE_INET_Addr &), &reactor) == -1
+ || acceptor.acceptor ().get_local_addr (server_addr) == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) %p\n"),
+ ACE_TEXT ("acceptor open")),
+ 1);
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) starting server at port %d\n"),
+ server_addr.get_port_number ()));
+
+ ACE_Thread_Manager::instance ()->spawn_n (ACE_MAX_THREADS,
+ event_loop,
+ &reactor);
+
+ ACE_Connector<ClientSvcHandler, ACE_SOCK_CONNECTOR> connector (&reactor,
+ ACE_NONBLOCK);
+ // Spin up clients to connect and iterate
+ long i;
+ for (i = 0; i < NrClients; ++i)
+ {
+ ClientSvcHandler *c = new ClientSvcHandler (server_addr, i % 4);
+ connector.connect(c, server_addr);
+ }
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d clients connected\n"), (int)i));
+ ACE_Thread_Manager::instance ()->wait ();
+ ACE_END_TEST;
+ return 0;
+}
+
+#else
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_2740_Regression_Test"));
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("Dev Poll and Event Poll are not supported ")
+ ACE_TEXT ("on this platform\n")));
+ ACE_END_TEST;
+ return 0;
+}
+
+#endif /* ACE_HAS_DEV_POLL || ACE_HAS_EVENT_POLL */
diff --git a/ACE/tests/Bug_3673_Regression_Test.cpp b/ACE/tests/Bug_3673_Regression_Test.cpp
new file mode 100644
index 00000000000..c074edbd1c9
--- /dev/null
+++ b/ACE/tests/Bug_3673_Regression_Test.cpp
@@ -0,0 +1,97 @@
+/**
+ * @file Bug_3673_Regression_Test.cpp
+ *
+ * $Id$
+ *
+ * Reproduces the problems reported in bug 3673
+ * http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=3673
+ */
+
+#include "test_config.h"
+#include "ace/ACE.h"
+#include "ace/OS_NS_stdio.h"
+
+ACE_RCSID (tests,
+ Bug_3673_Regression_Test,
+ "$Id$")
+
+#if defined (ACE_HAS_EXCEPTIONS)
+static bool construct_alpha = false;
+static bool destruct_alpha = false;
+static bool construct_beta = false;
+static bool destruct_beta = false;
+
+template <typename T>
+struct Alpha
+{
+ Alpha() { ACE_DEBUG ((LM_DEBUG, ACE_TEXT("construct alpha\n"))); construct_alpha = true;}
+ ~Alpha() { ACE_DEBUG ((LM_DEBUG, ACE_TEXT("destruct alpha\n"))); destruct_alpha = true;}
+};
+
+struct Beta
+{
+ Beta() { ACE_DEBUG ((LM_DEBUG, ACE_TEXT("construct beta\n"))); construct_beta = true;}
+ ~Beta() { ACE_DEBUG ((LM_DEBUG, ACE_TEXT("destruct bepha\n"))); destruct_beta = true;}
+};
+
+struct Test
+{
+ Alpha<int> a;
+ Beta b;
+
+ Test() { ACE_DEBUG ((LM_DEBUG, ACE_TEXT("throw oops\n"))); throw "oops"; }
+};
+#endif
+
+int
+run_main (int, ACE_TCHAR *[])
+{
+ ACE_START_TEST (ACE_TEXT ("Bug_3673_Regression_Test"));
+ int result = 0;
+
+#if defined (ACE_HAS_EXCEPTIONS)
+ bool caught_excep = false;
+ try
+ {
+ Test test;
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Caugt exception!\n")));
+ caught_excep = true;
+ }
+
+ if (!caught_excep)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Not caugt exception\n")));
+ ++result;
+ }
+ if (!construct_alpha)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Constructor alpha not called\n")));
+ ++result;
+ }
+ if (!construct_beta)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Constructor beta not called\n")));
+ ++result;
+ }
+ if (!destruct_alpha)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Destructor alpha not called\n")));
+ ++result;
+ }
+ if (!destruct_beta)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("Destructor beta not called\n")));
+ ++result;
+ }
+#else
+ ACE_ERROR ((LM_INFO,
+ ACE_TEXT ("C++ exception support not enabled on this platform\n")));
+#endif /* ACE_HAS_EXCEPTIONS */
+
+ ACE_END_TEST;
+
+ return result;
+}
diff --git a/ACE/tests/Config_Test.cpp b/ACE/tests/Config_Test.cpp
index b2cfdc760f8..b80827885df 100644
--- a/ACE/tests/Config_Test.cpp
+++ b/ACE/tests/Config_Test.cpp
@@ -560,7 +560,7 @@ run_tests (void)
ACE_Configuration_Win32Registry RegConfig (root);
{
- int result = test (&RegConfig);
+ int const result = test (&RegConfig);
if (result)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("Win32 registry test root failed (%d)\n"),
diff --git a/ACE/tests/DLL_Test.cpp b/ACE/tests/DLL_Test.cpp
index ccca35e9416..4729dbb7d38 100644
--- a/ACE/tests/DLL_Test.cpp
+++ b/ACE/tests/DLL_Test.cpp
@@ -71,7 +71,8 @@ int basic_test (ACE_DLL &dll)
{
ACE_TCHAR *dll_error = dll.error ();
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("Error in DLL Open: %s\n"),
+ ACE_TEXT ("Error in DLL Open of <%s>: %s\n"),
+ OBJ_PREFIX ACE_TEXT ("DLL_Test_Lib") OBJ_SUFFIX,
dll_error ? dll_error : ACE_TEXT ("unknown error")),
-1);
}
@@ -79,9 +80,7 @@ int basic_test (ACE_DLL &dll)
// Just because the ANSI C++ spec says you can no longer cast a
// void* to a function pointer. Doesn't allow:
// TC f = (Hello_Factory) dll.symbol ("get_hello");
- void *foo;
-
- foo = dll.symbol (ACE_TEXT ("get_hello"));
+ void *foo = dll.symbol (ACE_TEXT ("get_hello"));
// Cast the void* to long first.
ptrdiff_t tmp = reinterpret_cast<ptrdiff_t> (foo);
diff --git a/ACE/tests/Dirent_Test.cpp b/ACE/tests/Dirent_Test.cpp
index df756c8d4c2..4e6d871f34f 100644
--- a/ACE/tests/Dirent_Test.cpp
+++ b/ACE/tests/Dirent_Test.cpp
@@ -180,7 +180,7 @@ dirent_test (void)
ACE_ERROR_RETURN
((LM_ERROR, ACE_TEXT ("open of dir %s failed\n"), TestDir.c_str()), -1);
- for (ACE_DIRENT *directory;
+ for (ACE_DIRENT *directory = 0;
(directory = dir.read ()) != 0;
entrycount++)
{
@@ -249,6 +249,8 @@ dirent_count (const ACE_TCHAR *dir_path,
dir_path),
-1);
# endif
+#else
+ ACE_UNUSED_ARG (dir_path);
#endif /* !ACE_LACKS_CHDIR */
ACE_Dirent dir;
diff --git a/ACE/tests/INET_Addr_Test_IPV6.cpp b/ACE/tests/INET_Addr_Test_IPV6.cpp
index 0290edfd837..64292a9189f 100644
--- a/ACE/tests/INET_Addr_Test_IPV6.cpp
+++ b/ACE/tests/INET_Addr_Test_IPV6.cpp
@@ -54,11 +54,8 @@ int check_type_consistency (const ACE_INET_Addr &addr)
}
-int run_main (int argc, ACE_TCHAR *argv[])
+int run_main (int, ACE_TCHAR *[])
{
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
ACE_START_TEST (ACE_TEXT ("INET_Addr_Test_IPV6"));
int status = 0; // Innocent until proven guilty
diff --git a/ACE/tests/MT_Reactor_Timer_Test.cpp b/ACE/tests/MT_Reactor_Timer_Test.cpp
index 5a714be719b..da2f07d4d0a 100644
--- a/ACE/tests/MT_Reactor_Timer_Test.cpp
+++ b/ACE/tests/MT_Reactor_Timer_Test.cpp
@@ -356,7 +356,7 @@ run_main (int, ACE_TCHAR *[])
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("%p, errno is %d\n"),
"wait ()",
- errno));
+ ACE_ERRNO_GET));
ACE_ASSERT (status != -1);
}
diff --git a/ACE/tests/MT_Reactor_Upcall_Test.cpp b/ACE/tests/MT_Reactor_Upcall_Test.cpp
index e446707dbdc..f5d15c24458 100644
--- a/ACE/tests/MT_Reactor_Upcall_Test.cpp
+++ b/ACE/tests/MT_Reactor_Upcall_Test.cpp
@@ -352,6 +352,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Testing Dev Poll Reactor\n")));
ACE_Dev_Poll_Reactor dev_poll_reactor_impl;
+ dev_poll_reactor_impl.restart (true);
ACE_Reactor dev_poll_reactor (&dev_poll_reactor_impl);
test_reactor_upcall (dev_poll_reactor);
diff --git a/ACE/tests/MT_SOCK_Test.cpp b/ACE/tests/MT_SOCK_Test.cpp
index 2b2b72b77b2..ea12c5f310b 100644
--- a/ACE/tests/MT_SOCK_Test.cpp
+++ b/ACE/tests/MT_SOCK_Test.cpp
@@ -115,7 +115,7 @@ client (void *arg)
}
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("(%P|%t) (errno %d) %p\n"), errno,
+ ACE_TEXT ("(%P|%t) (errno %d) %p\n"), ACE_ERRNO_GET,
ACE_TEXT ("client: send_n")));
ACE_ERROR ((LM_ERROR, "client: Closing stream.\n"));
cli_stream.close();
diff --git a/ACE/tests/Malloc_Test.cpp b/ACE/tests/Malloc_Test.cpp
index 1e26005590c..c20194e0e55 100644
--- a/ACE/tests/Malloc_Test.cpp
+++ b/ACE/tests/Malloc_Test.cpp
@@ -100,6 +100,7 @@ myallocator (const void *base_addr = 0)
#if defined (ACE_HAS_WINCE) || defined (ACE_OPENVMS)
// WinCE cannot do fixed base, ever.
+ ACE_UNUSED_ARG (base_addr);
ACE_MMAP_Memory_Pool_Options options
(0,
ACE_MMAP_Memory_Pool_Options::NEVER_FIXED);
@@ -126,6 +127,7 @@ init_test (const void *base_addr = 0)
// file from the previous crash.
#if defined (ACE_HAS_WINCE) || defined (ACE_OPENVMS)
// WinCE cannot do fixed base, ever.
+ ACE_UNUSED_ARG (base_addr);
ACE_MMAP_Memory_Pool_Options options
(0,
ACE_MMAP_Memory_Pool_Options::NEVER_FIXED);
diff --git a/ACE/tests/Map_Manager_Test.cpp b/ACE/tests/Map_Manager_Test.cpp
index c220e285a06..27e222beb02 100644
--- a/ACE/tests/Map_Manager_Test.cpp
+++ b/ACE/tests/Map_Manager_Test.cpp
@@ -77,7 +77,7 @@ typedef ACE_Cache_Map_Manager<TYPE, TYPE, CACHE_MAP_IMPL, CACHE_ITER_IMPL, CACHE
typedef ACE_Hash_Cache_Map_Manager<TYPE, TYPE, HASH_KEY, COMPARE_KEYS, NULL_CACHING_STRATEGY, ATTR>
HASH_CACHE_MAP_MANAGER;
-static void
+static int
test_cache_map_manager (size_t table_size,
size_t iterations,
int test_iterators)
@@ -90,7 +90,7 @@ test_cache_map_manager (size_t table_size,
ssize_t k;
for (i = 0; i < iterations; i++)
- ACE_ASSERT (map.bind (i, i) != -1);
+ ACE_TEST_ASSERT (map.bind (i, i) != -1);
if (test_iterators)
{
@@ -113,7 +113,7 @@ test_cache_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
@@ -136,7 +136,7 @@ test_cache_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
@@ -159,7 +159,7 @@ test_cache_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
@@ -182,7 +182,7 @@ test_cache_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
@@ -190,21 +190,22 @@ test_cache_map_manager (size_t table_size,
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.find (i, j) != -1);
- ACE_ASSERT (i == j);
+ ACE_TEST_ASSERT (map.find (i, j) != -1);
+ ACE_TEST_ASSERT (i == j);
}
size_t remaining_entries = iterations;
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.unbind (i) != -1);
+ ACE_TEST_ASSERT (map.unbind (i) != -1);
--remaining_entries;
- ACE_ASSERT (map.current_size () == remaining_entries);
+ ACE_TEST_ASSERT (map.current_size () == remaining_entries);
}
+ return 0;
}
-static void
+static int
test_hash_cache_map_manager (size_t table_size,
size_t iterations,
int test_iterators)
@@ -217,7 +218,7 @@ test_hash_cache_map_manager (size_t table_size,
ssize_t k;
for (i = 0; i < iterations; i++)
- ACE_ASSERT (map.bind (i, i) != -1);
+ ACE_TEST_ASSERT (map.bind (i, i) != -1);
if (test_iterators)
{
@@ -240,7 +241,7 @@ test_hash_cache_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
@@ -263,7 +264,7 @@ test_hash_cache_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
@@ -286,7 +287,7 @@ test_hash_cache_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
@@ -309,7 +310,7 @@ test_hash_cache_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
@@ -317,21 +318,22 @@ test_hash_cache_map_manager (size_t table_size,
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.find (i, j) != -1);
- ACE_ASSERT (i == j);
+ ACE_TEST_ASSERT (map.find (i, j) != -1);
+ ACE_TEST_ASSERT (i == j);
}
size_t remaining_entries = iterations;
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.unbind (i) != -1);
+ ACE_TEST_ASSERT (map.unbind (i) != -1);
--remaining_entries;
- ACE_ASSERT (map.current_size () == remaining_entries);
+ ACE_TEST_ASSERT (map.current_size () == remaining_entries);
}
+ return 0;
}
-static void
+static int
test_active_map_manager (size_t table_size,
size_t iterations,
int test_iterators)
@@ -343,13 +345,14 @@ test_active_map_manager (size_t table_size,
ACTIVE_MAP_MANAGER::key_type *active_keys;
- ACE_NEW (active_keys,
- ACTIVE_MAP_MANAGER::key_type[iterations]);
+ ACE_NEW_RETURN (active_keys,
+ ACTIVE_MAP_MANAGER::key_type[iterations],
+ 1);
for (i = 0;
i < iterations;
i++)
- ACE_ASSERT (map.bind (i, active_keys[i]) != -1);
+ ACE_TEST_ASSERT (map.bind (i, active_keys[i]) != -1);
if (test_iterators)
{
@@ -374,7 +377,7 @@ test_active_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -399,28 +402,30 @@ test_active_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
}
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.find (active_keys[i], j) != -1);
- ACE_ASSERT (i == j);
+ ACE_TEST_ASSERT (map.find (active_keys[i], j) != -1);
+ ACE_TEST_ASSERT (i == j);
}
size_t remaining_entries = iterations;
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.unbind (active_keys[i]) != -1);
+ ACE_TEST_ASSERT (map.unbind (active_keys[i]) != -1);
--remaining_entries;
- ACE_ASSERT (map.current_size () == remaining_entries);
+ ACE_TEST_ASSERT (map.current_size () == remaining_entries);
}
delete [] active_keys;
+
+ return 0;
}
-static void
+static int
test_hash_map_manager (size_t table_size,
size_t iterations,
int test_iterators)
@@ -431,7 +436,7 @@ test_hash_map_manager (size_t table_size,
ssize_t k;
for (i = 0; i < iterations; i++)
- ACE_ASSERT (map.bind (i, i) != -1);
+ ACE_TEST_ASSERT (map.bind (i, i) != -1);
if (test_iterators)
{
@@ -454,7 +459,7 @@ test_hash_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -475,7 +480,7 @@ test_hash_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -497,7 +502,7 @@ test_hash_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
{
@@ -518,7 +523,7 @@ test_hash_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
{
@@ -540,7 +545,7 @@ test_hash_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -561,7 +566,7 @@ test_hash_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -583,7 +588,7 @@ test_hash_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
{
@@ -604,26 +609,28 @@ test_hash_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
}
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.find (i, j) != -1);
- ACE_ASSERT (i == j);
+ ACE_TEST_ASSERT (map.find (i, j) != -1);
+ ACE_TEST_ASSERT (i == j);
}
size_t remaining_entries = iterations;
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.unbind (i) != -1);
+ ACE_TEST_ASSERT (map.unbind (i) != -1);
--remaining_entries;
- ACE_ASSERT (map.current_size () == remaining_entries);
+ ACE_TEST_ASSERT (map.current_size () == remaining_entries);
}
+
+ return 0;
}
-static void
+static int
test_map_manager (size_t table_size,
size_t iterations,
int test_iterators)
@@ -634,7 +641,7 @@ test_map_manager (size_t table_size,
ssize_t k;
for (i = 0; i < iterations; ++i)
- ACE_ASSERT (map.bind (i, i) != -1);
+ ACE_TEST_ASSERT (map.bind (i, i) != -1);
if (test_iterators)
{
@@ -657,7 +664,7 @@ test_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -678,7 +685,7 @@ test_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -700,7 +707,7 @@ test_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
{
@@ -721,7 +728,7 @@ test_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
{
@@ -743,7 +750,7 @@ test_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -764,7 +771,7 @@ test_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (i == iterations);
+ ACE_TEST_ASSERT (i == iterations);
}
{
@@ -786,7 +793,7 @@ test_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
{
@@ -807,36 +814,36 @@ test_map_manager (size_t table_size,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("\n")));
- ACE_ASSERT (k == -1);
+ ACE_TEST_ASSERT (k == -1);
}
}
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.find (i, j) != -1);
- ACE_ASSERT (i == j);
+ ACE_TEST_ASSERT (map.find (i, j) != -1);
+ ACE_TEST_ASSERT (i == j);
}
size_t remaining_entries = iterations;
for (i = 0; i < iterations; ++i)
{
- ACE_ASSERT (map.unbind (i) != -1);
+ ACE_TEST_ASSERT (map.unbind (i) != -1);
--remaining_entries;
- ACE_ASSERT (map.current_size () == remaining_entries);
+ ACE_TEST_ASSERT (map.current_size () == remaining_entries);
}
//
// This is extra for the map manager.
//
for (i = 0; i < iterations; ++i)
- ACE_ASSERT (map.bind (i, i) != -1);
+ ACE_TEST_ASSERT (map.bind (i, i) != -1);
// Unbind in one swoop.
map.unbind_all ();
- ACE_ASSERT (map.current_size () == 0);
+ ACE_TEST_ASSERT (map.current_size () == 0);
for (i = 0; i < iterations; ++i)
- ACE_ASSERT (map.bind (i, i) != -1);
+ ACE_TEST_ASSERT (map.bind (i, i) != -1);
// Unbind one at a time.
MAP_MANAGER::iterator end = map.end ();
@@ -845,14 +852,16 @@ test_map_manager (size_t table_size,
MAP_MANAGER::iterator iter = map.begin ();
if (iter == end)
break;
- ACE_ASSERT (map.unbind ((*iter).ext_id_) != -1);
+ ACE_TEST_ASSERT (map.unbind ((*iter).ext_id_) != -1);
}
- ACE_ASSERT (map.current_size () == 0);
+ ACE_TEST_ASSERT (map.current_size () == 0);
+
+ return 0;
}
-static void
-run_test (void (*ptf) (size_t, size_t, int),
+static int
+run_test (int (*ptf) (size_t, size_t, int),
size_t table_size,
size_t iterations,
int test_iterators,
@@ -894,6 +903,8 @@ run_test (void (*ptf) (size_t, size_t, int),
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("time per call = %f usecs\n"),
(et.real_time / ACE_timer_t (iterations)) * 1000000));
+
+ return 0;
}
int
@@ -901,7 +912,7 @@ run_main (int argc, ACE_TCHAR *argv[])
{
ACE_START_TEST (ACE_TEXT ("Map_Manager_Test"));
ACE_LOG_MSG->clr_flags (ACE_Log_Msg::VERBOSE_LITE);
-
+ int result = 0;
size_t table_size = ACE_MAX_ITERATIONS / 2;
size_t iterations = ACE_MAX_ITERATIONS;
int test_iterators = 1;
@@ -915,42 +926,50 @@ run_main (int argc, ACE_TCHAR *argv[])
if (argc > 3)
test_iterators = ACE_OS::atoi (argv[3]);
- // Test the <ACE_Map_Manager>.
- run_test (&test_map_manager,
- table_size,
- iterations,
- test_iterators,
- ACE_TEXT ("Map_Manager"));
-
- // Test the <ACE_Hash_Map_Manager>.
- run_test (&test_hash_map_manager,
- table_size,
- iterations,
- test_iterators,
- ACE_TEXT ("Hash_Map_Manager"));
-
- // Test the <ACE_Hash_Map_Manager>.
- run_test (&test_active_map_manager,
- table_size,
- iterations,
- test_iterators,
- ACE_TEXT ("Active_Map_Manager"));
-
- // Test the <ACE_Cache_Map_Manager>.
- run_test (&test_cache_map_manager,
- table_size,
- iterations,
- test_iterators,
- ACE_TEXT ("Cache_Map_Manager"));
-
- // Test the <ACE_Hash_Cache_Map_Manager>.
- run_test (&test_hash_cache_map_manager,
- table_size,
- iterations,
- test_iterators,
- ACE_TEXT ("Hash_Cache_Map_Manager"));
+ if (table_size == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "LM_ERROR@Table size is 0\n"));
+ ++result;
+ }
+ else
+ {
+ // Test the <ACE_Map_Manager>.
+ result += run_test (&test_map_manager,
+ table_size,
+ iterations,
+ test_iterators,
+ ACE_TEXT ("Map_Manager"));
+
+ // Test the <ACE_Hash_Map_Manager>.
+ result += run_test (&test_hash_map_manager,
+ table_size,
+ iterations,
+ test_iterators,
+ ACE_TEXT ("Hash_Map_Manager"));
+
+ // Test the <ACE_Hash_Map_Manager>.
+ result += run_test (&test_active_map_manager,
+ table_size,
+ iterations,
+ test_iterators,
+ ACE_TEXT ("Active_Map_Manager"));
+
+ // Test the <ACE_Cache_Map_Manager>.
+ result += run_test (&test_cache_map_manager,
+ table_size,
+ iterations,
+ test_iterators,
+ ACE_TEXT ("Cache_Map_Manager"));
+
+ // Test the <ACE_Hash_Cache_Map_Manager>.
+ result += run_test (&test_hash_cache_map_manager,
+ table_size,
+ iterations,
+ test_iterators,
+ ACE_TEXT ("Hash_Cache_Map_Manager"));
+ }
ACE_LOG_MSG->set_flags (ACE_Log_Msg::VERBOSE_LITE);
ACE_END_TEST;
- return 0;
+ return result;
}
diff --git a/ACE/tests/Mem_Map_Test.cpp b/ACE/tests/Mem_Map_Test.cpp
index 207f5a1eb15..31afdb02152 100644
--- a/ACE/tests/Mem_Map_Test.cpp
+++ b/ACE/tests/Mem_Map_Test.cpp
@@ -71,7 +71,7 @@ create_test_file (ACE_TCHAR *filename, int line_length, int num_lines)
ACE_NEW_RETURN (mybuf, char[line_length + 1], -1);
const char *c = ACE_ALPHABET;
const char *d = c;
-#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640))
+#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670))
// For NTO has to applied to open the file, as Mem_Map can map only shared memory
ACE_Mem_Map mmap_4_open;
mmap_4_open.open (filename, O_RDWR | O_CREAT | O_TRUNC, ACE_DEFAULT_FILE_PERMS);
@@ -108,7 +108,7 @@ create_test_file (ACE_TCHAR *filename, int line_length, int num_lines)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("%p (%d) <%s>\n"),
ACE_TEXT ("Write to file failed:"),
- errno,
+ ACE_ERRNO_GET,
filename),
-1);
}
@@ -122,7 +122,7 @@ create_test_file (ACE_TCHAR *filename, int line_length, int num_lines)
-1);
}
}
-#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640))
+#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670))
mmap_4_open.close();
#else
ACE_OS::close (file_handle);
@@ -141,7 +141,7 @@ run_main (int, ACE_TCHAR *[])
#if !defined (ACE_LACKS_MMAP)
-#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640))
+#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670))
ACE_ERROR ((LM_INFO,
ACE_TEXT ("mmap on QNX Neutrino/VxWorks can map only shared memory files\n")));
#endif
@@ -187,7 +187,7 @@ run_main (int, ACE_TCHAR *[])
-1);
// Now create a temporary file for intermediate processing
-#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640))
+#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670))
ACE_Mem_Map mmap_4_open;
mmap_4_open.open(temp_file1,
O_RDWR | O_TRUNC | O_CREAT,
@@ -209,7 +209,7 @@ run_main (int, ACE_TCHAR *[])
reverse_file (temp_file_handle,
(char *) mmap.addr (),
mmap.size ());
-#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640))
+#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670))
mmap_4_open.close();
#else
ACE_OS::close (temp_file_handle);
@@ -224,7 +224,7 @@ run_main (int, ACE_TCHAR *[])
ACE_TEXT ("mmap"),
temp_file1),
-1);
-#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640))
+#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670))
mmap_4_open.open(temp_file2,
O_RDWR | O_TRUNC | O_CREAT,
ACE_DEFAULT_FILE_PERMS);
@@ -243,7 +243,7 @@ run_main (int, ACE_TCHAR *[])
reverse_file (temp_file_handle,
(char *) temp_mmap.addr (),
temp_mmap.size ());
-#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x640))
+#if defined (__QNXNTO__) || (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x670))
mmap_4_open.close();
#else
ACE_OS::close (temp_file_handle);
diff --git a/ACE/tests/Message_Queue_Notifications_Test.cpp b/ACE/tests/Message_Queue_Notifications_Test.cpp
index 75a3abbfcbb..8b2ce103d6a 100644
--- a/ACE/tests/Message_Queue_Notifications_Test.cpp
+++ b/ACE/tests/Message_Queue_Notifications_Test.cpp
@@ -155,7 +155,7 @@ Message_Handler::handle_exception (ACE_HANDLE fd)
int
Message_Handler::process_message (void)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
if (this->getq (mb,
(ACE_Time_Value *) &ACE_Time_Value::zero) == -1)
@@ -180,7 +180,7 @@ Message_Handler::make_message (void)
{
if (--iterations > 0)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW (mb,
ACE_Message_Block ((char *) ACE_TEXT ("hello")));
@@ -265,7 +265,7 @@ Watermark_Test::consumer (void)
int
Watermark_Test::get_message (void)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
if (this->getq (mb) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
@@ -288,7 +288,7 @@ Watermark_Test::get_message (void)
int
Watermark_Test::put_message (ACE_Time_Value *timeout)
{
- ACE_Message_Block *mb;
+ ACE_Message_Block *mb = 0;
ACE_NEW_RETURN (mb,
ACE_Message_Block (default_message,
diff --git a/ACE/tests/Message_Queue_Test.cpp b/ACE/tests/Message_Queue_Test.cpp
index 6f639acde4b..a0192186797 100644
--- a/ACE/tests/Message_Queue_Test.cpp
+++ b/ACE/tests/Message_Queue_Test.cpp
@@ -51,6 +51,11 @@ typedef ACE_Message_Queue<ACE_NULL_SYNCH> QUEUE;
typedef ACE_Message_Queue_Iterator<ACE_NULL_SYNCH> ITERATOR;
typedef ACE_Message_Queue_Reverse_Iterator<ACE_NULL_SYNCH> REVERSE_ITERATOR;
+#if defined (ACE_HAS_WINCE)
+static const int MESSAGE_FACTOR = 10000;
+#else
+static const int MESSAGE_FACTOR = 100000;
+#endif
static const int MAX_MESSAGES = 10000;
static const int MAX_MESSAGE_SIZE = 32;
static const char test_message[] = "ACE_Message_Queue Test Message";
@@ -124,7 +129,7 @@ Counting_Test_Producer::svc (void)
// The delay usually causes the test to time out in the automated
// regression testing. I just left it here in case it's needed someday.
delay_ms = 0;
- long count = 100000 * (multiple ? multiple : 1);
+ long count = MESSAGE_FACTOR * (multiple ? multiple : 1);
long produced = 0;
// Some of the threads enqueue single blocks, others sequences.
long lsequence = ++(this->sequence_);
@@ -136,7 +141,7 @@ Counting_Test_Producer::svc (void)
seq,
delay_ms));
- ACE_Message_Block *first, *prev, *b;
+ ACE_Message_Block *first = 0, *prev = 0, *b = 0;
ACE_Time_Value delay (0, delay_ms);
ACE_Time_Value timeout (10);
while (produced < count)
@@ -214,7 +219,7 @@ Counting_Test_Consumer::svc (void)
// The delay usually causes the test to time out in the automated
// regression testing. I just left it here in case it's needed someday.
delay_ms = 0;
- long count = 100000 * (multiple ? multiple : 1);
+ long count = MESSAGE_FACTOR * (multiple ? multiple : 1);
long consumed = 0;
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%t) Consumer will dequeue %B blocks, ")
@@ -313,7 +318,6 @@ counting_test (void)
#endif /* ACE_HAS_THREADS */
-#if !defined (VXWORKS)
static int
iterator_test (void)
{
@@ -338,7 +342,7 @@ iterator_test (void)
ACE_TEXT ("%d"),
i + 1);
- ACE_Message_Block *entry;
+ ACE_Message_Block *entry = 0;
ACE_NEW_RETURN (entry,
ACE_Message_Block ((char *) buffer[i],
sizeof buffer[i]),
@@ -410,7 +414,6 @@ iterator_test (void)
return 0;
}
-#endif /* ! VXWORKS */
#if defined (ACE_HAS_THREADS)
@@ -522,7 +525,7 @@ single_thread_performance_test (int queue_type = 0)
ACE_NEW_RETURN (msgq,
QUEUE,
-1);
-#if defined (VXWORKS)
+#if defined (ACE_VXWORKS)
else
{
ACE_NEW_RETURN (msgq,
@@ -539,7 +542,7 @@ single_thread_performance_test (int queue_type = 0)
-1);
message = ACE_TEXT ("ACE_Message_Queue_NT, single thread test");
}
-#endif /* VXWORKS */
+#endif /* ACE_VXWORKS */
// Create the messages. Allocate off the heap in case messages
// is large relative to the amount of stack space available.
@@ -559,11 +562,11 @@ single_thread_performance_test (int queue_type = 0)
ACE_Message_Block *[max_messages],
-1);
-#if defined (VXWORKS)
+#if defined (ACE_VXWORKS)
// Set up blocks to receive the messages. Allocate these off the
// heap in case messages is large relative to the amount of
// stack space available.
- ACE_Message_Block *receive_block;
+ ACE_Message_Block *receive_block = 0;
ACE_NEW_RETURN (receive_block,
ACE_Message_Block[max_messages],
-1);
@@ -576,7 +579,7 @@ single_thread_performance_test (int queue_type = 0)
// assigned. It will be used by dequeue_head ().
receive_block_p[i] = &receive_block[i];
}
-#endif /* VXWORKS */
+#endif /* ACE_VXWORKS */
timer->start ();
@@ -609,9 +612,9 @@ single_thread_performance_test (int queue_type = 0)
timer->reset ();
delete [] receive_block_p;
-#if defined (VXWORKS)
+#if defined (ACE_VXWORKS)
delete [] receive_block;
-#endif /* VXWORKS */
+#endif /* ACE_VXWORKS */
for (i = 0; i < max_messages; ++i)
delete send_block[i];
@@ -633,7 +636,7 @@ receiver (void *arg)
ACE_Message_Block *[max_messages],
(void *) -1);
-#if defined (VXWORKS)
+#if defined (ACE_VXWORKS)
// Set up blocks to receive the messages. Allocate these off the
// heap in case messages is large relative to the amount of stack
// space available.
@@ -650,7 +653,7 @@ receiver (void *arg)
// assigned. It will be used by <dequeue_head>.
receive_block_p[i] = &receive_block[i];
}
-#endif /* VXWORKS */
+#endif /* ACE_VXWORKS */
for (i = 0; i < max_messages; ++i)
if (queue_wrapper->q_->dequeue_head (receive_block_p[i]) == -1)
@@ -661,9 +664,9 @@ receiver (void *arg)
timer->stop ();
delete [] receive_block_p;
-#if defined (VXWORKS)
+#if defined (ACE_VXWORKS)
delete [] receive_block;
-#endif /* VXWORKS */
+#endif /* ACE_VXWORKS */
return 0;
}
@@ -718,7 +721,7 @@ performance_test (int queue_type = 0)
ACE_NEW_RETURN (queue_wrapper.q_,
SYNCH_QUEUE,
-1);
-#if defined (VXWORKS)
+#if defined (ACE_VXWORKS)
else
{
ACE_NEW_RETURN (queue_wrapper.q_,
@@ -735,7 +738,7 @@ performance_test (int queue_type = 0)
-1);
message = ACE_TEXT ("ACE_Message_Queue_NT");
}
-#endif /* VXWORKS */
+#endif /* ACE_VXWORKS */
if (ACE_Thread_Manager::instance ()->spawn ((ACE_THR_FUNC) sender,
&queue_wrapper,
@@ -865,7 +868,7 @@ close_test (void)
QUEUE mq1;
flushed_messages = mq1.close ();
- if (flushed_messages != 0)
+ if (flushed_messages != 0)
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("Closing queue should flush 0 messages, close() reports - %d\n"),
@@ -886,7 +889,7 @@ close_test (void)
mq2.enqueue_head (pMB2);
flushed_messages = mq2.close ();
- if (flushed_messages != 2)
+ if (flushed_messages != 2)
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("Closing queue should flush 2 messages, close() reports - %d\n"),
@@ -918,12 +921,10 @@ run_main (int argc, ACE_TCHAR *argv[])
int status = prio_test ();
-#if !defined (VXWORKS)
// The iterator test occasionally causes a page fault or a hang on
// VxWorks.
if (status == 0)
status = iterator_test ();
-#endif /* ! VXWORKS */
ACE_NEW_RETURN (timer,
ACE_High_Res_Timer,
@@ -942,20 +943,20 @@ run_main (int argc, ACE_TCHAR *argv[])
if (status == 0)
status = single_thread_performance_test ();
-# if defined (VXWORKS) || defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+# if defined (ACE_VXWORKS) || defined (ACE_HAS_WIN32_OVERLAPPED_IO)
// Test ACE_Message_Queue_Vx. or ACE_Message_Queue_NT
if (status == 0)
status = single_thread_performance_test (1);
-# endif /* VXWORKS */
+# endif /* ACE_VXWORKS */
if (status == 0)
status = performance_test ();
-# if defined (VXWORKS) || defined (ACE_HAS_WIN32_OVERLAPPED_IO)
+# if defined (ACE_VXWORKS) || defined (ACE_HAS_WIN32_OVERLAPPED_IO)
// Test ACE_Message_Queue_Vx or ACE_Message_Queue_NT
if (status == 0)
status = performance_test (1);
-# endif /* VXWORKS */
+# endif /* ACE_VXWORKS */
if (counting_test () != 0)
status = -1;
@@ -968,7 +969,7 @@ run_main (int argc, ACE_TCHAR *argv[])
delete timer;
timer = 0;
-
+
ACE_END_TEST;
return status;
diff --git a/ACE/tests/Multicast_Test.cpp b/ACE/tests/Multicast_Test.cpp
index 251f2eb655d..b3c22a41c11 100644
--- a/ACE/tests/Multicast_Test.cpp
+++ b/ACE/tests/Multicast_Test.cpp
@@ -548,7 +548,7 @@ MCT_Event_Handler::join (const ACE_INET_Addr &mcast_addr,
-1);
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Joined %C\n"), buf));
- ACE_CString *str;
+ ACE_CString *str = 0;
ACE_NEW_RETURN (str, ACE_CString (buf), -1);
this->address_vec_.push_back (str);
return 0;
diff --git a/ACE/tests/Network_Adapters_Test.cpp b/ACE/tests/Network_Adapters_Test.cpp
index d1488160643..d58f93b9abe 100644
--- a/ACE/tests/Network_Adapters_Test.cpp
+++ b/ACE/tests/Network_Adapters_Test.cpp
@@ -564,25 +564,29 @@ int
Stop_Handler::open (void)
{
// Register the signal handler object to catch the signals.
+#if (SIGINT != 0)
if (this->reactor ()->register_handler (SIGINT, this) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%P|%t) Stop_Handler::open: %p\n"),
- ACE_TEXT ("register_handler for SIGINT")),
+ ACE_TEXT ("(%P|%t) Stop_Handler::open: %p <%d>\n"),
+ ACE_TEXT ("register_handler for SIGINT"), SIGINT),
-1);
+#endif /* SIGINT != 0 */
+#if (SIGTERM != 0)
if (this->reactor ()->register_handler (SIGTERM, this) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%P|%t) Stop_Handler::open: %p\n"),
- ACE_TEXT ("register_handler for SIGTERM")),
+ ACE_TEXT ("(%P|%t) Stop_Handler::open: %p <%d>\n"),
+ ACE_TEXT ("register_handler for SIGTERM"), SIGTERM),
-1);
+#endif /* SIGTERM != 0 */
-#if ! defined (ACE_WIN32)
+#if (SIGQUIT != 0)
if (this->reactor ()->register_handler (SIGQUIT, this) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%P|%t) Stop_Handler::open: %p\n"),
- ACE_TEXT ("register_handler for SIGQUIT")),
+ ACE_TEXT ("(%P|%t) Stop_Handler::open: %p <%d>\n"),
+ ACE_TEXT ("register_handler for SIGQUIT"), SIGQUIT),
-1);
-#endif /* #if ! defined (ACE_WIN32) */
+#endif /* SIGQUIT != 0 */
return 0;
}
diff --git a/ACE/tests/Network_Adapters_Test.h b/ACE/tests/Network_Adapters_Test.h
index 0d9c03b7430..a726b1212b6 100644
--- a/ACE/tests/Network_Adapters_Test.h
+++ b/ACE/tests/Network_Adapters_Test.h
@@ -171,7 +171,11 @@ private:
class Stop_Handler : public ACE_Event_Handler
{
public:
+#ifdef ACE_HAS_THREADS
typedef ACE_Atomic_Op<ACE_Mutex, long> counter_sig;
+#else
+ typedef long counter_sig;
+#endif
// Constructor.
Stop_Handler (ACE_Reactor * const reactor = ACE_Reactor::instance ());
diff --git a/ACE/tests/New_Fail_Test.cpp b/ACE/tests/New_Fail_Test.cpp
index 8b8581dd136..b57f2c02cc6 100644
--- a/ACE/tests/New_Fail_Test.cpp
+++ b/ACE/tests/New_Fail_Test.cpp
@@ -128,7 +128,7 @@ run_main (int, ACE_TCHAR *[])
ACE_TEXT ("expected ENOMEM, %p (%d)\n"),
i,
ACE_TEXT ("got"),
- errno));
+ ACE_ERRNO_GET));
}
// Free the memory to try ACE_NEW_RETURN
@@ -163,7 +163,7 @@ run_main (int, ACE_TCHAR *[])
ACE_TEXT ("expected ENOMEM, %p (%d)\n"),
i,
ACE_TEXT ("got"),
- errno));
+ ACE_ERRNO_GET));
}
while (i >= 0)
delete [] blocks[i--];
@@ -196,7 +196,7 @@ run_main (int, ACE_TCHAR *[])
ACE_TEXT ("expected ENOMEM, %p (%d)\n"),
i,
ACE_TEXT ("got"),
- errno));
+ ACE_ERRNO_GET));
}
while (i >= 0)
delete [] blocks[i--];
diff --git a/ACE/tests/Priority_Task_Test.cpp b/ACE/tests/Priority_Task_Test.cpp
index 45f9f41e6ae..74f2fa9858d 100644
--- a/ACE/tests/Priority_Task_Test.cpp
+++ b/ACE/tests/Priority_Task_Test.cpp
@@ -102,7 +102,7 @@ Priority_Task::open (void *arg)
flags,
fallback_priority,
THR_NEW_LWP,
- errno,
+ ACE_ERRNO_GET,
ACE_TEXT ("")));
flags = THR_NEW_LWP;
diff --git a/ACE/tests/Process_Manager_Test.cpp b/ACE/tests/Process_Manager_Test.cpp
index 339daa3d8eb..51f587cf68b 100644
--- a/ACE/tests/Process_Manager_Test.cpp
+++ b/ACE/tests/Process_Manager_Test.cpp
@@ -86,7 +86,9 @@ spawn_child (const ACE_TCHAR *argv0,
int my_process_id)
{
-#if defined (ACE_WIN32)
+#if defined (ACE_HAS_WINCE)
+const ACE_TCHAR *cmdline_format = ACE_TEXT("%s %d");
+#elif defined (ACE_WIN32)
const ACE_TCHAR *cmdline_format = ACE_TEXT("\"%s\" %s %d");
#elif !defined (ACE_USES_WCHAR)
const ACE_TCHAR *cmdline_format = ACE_TEXT (".") ACE_DIRECTORY_SEPARATOR_STR ACE_TEXT("%s %s %d");
@@ -140,11 +142,18 @@ const ACE_TCHAR *cmdline_format = ACE_TEXT (".") ACE_DIRECTORY_SEPARATOR_STR ACE
prio[0] = ACE_TEXT ('\0');
#endif
+ opts.process_name (argv0);
opts.command_line (cmdline_format,
+#if !defined (ACE_HAS_WINCE)
argv0,
+#endif /* !ACE_HAS_WINCE */
cmd,
sleep_time);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Spawning <%s> <%s>\n"),
+ opts.process_name(),
+ opts.command_line_buf ()));
+
pid_t result = mgr.spawn (opts);
if (result != ACE_INVALID_PID)
@@ -177,7 +186,7 @@ public:
{
char tmp[10];
order += ACE_OS::itoa (sleep_time_, tmp, 10);
- running_tasks++;
+ ++running_tasks;
activate ();
return 0;
}
@@ -216,7 +225,7 @@ public:
int close (u_long)
// FUZZ: enable check_for_lack_ACE_OS
{
- running_tasks--;
+ --running_tasks;
return 0;
}
@@ -296,11 +305,11 @@ run_main (int argc, ACE_TCHAR *argv[])
{
// child process: sleep & exit
ACE_TCHAR lognm[MAXPATHLEN];
- int mypid (ACE_OS::getpid ());
+ int const mypid (ACE_OS::getpid ());
ACE_OS::sprintf(lognm, ACE_TEXT ("Process_Manager_Test-child-%d"), mypid);
ACE_START_TEST (lognm);
- int secs = ACE_OS::atoi (argv[get_opt.opt_ind ()]);
+ int const secs = ACE_OS::atoi (argv[get_opt.opt_ind ()]);
ACE_OS::sleep (secs ? secs : 1);
ACE_TCHAR prio[64];
@@ -533,6 +542,7 @@ run_main (int argc, ACE_TCHAR *argv[])
}
}
+#ifdef ACE_HAS_THREADS
Process_Task task1 (argc > 0 ? argv[0] : ACE_TEXT ("Process_Manager_Test"), mgr, 3);
Process_Task task2 (argc > 0 ? argv[0] : ACE_TEXT ("Process_Manager_Test"), mgr, 2);
Process_Task task3 (argc > 0 ? argv[0] : ACE_TEXT ("Process_Manager_Test"), mgr, 1);
@@ -557,6 +567,7 @@ run_main (int argc, ACE_TCHAR *argv[])
order.c_str ()));
test_status = 1;
}
+#endif /* ACE_HAS_THREADS */
#if !defined (ACE_OPENVMS)
// --------------------------------------------------
@@ -583,7 +594,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P) Reactor loop done!\n") ));
- size_t nr_procs = mgr.managed ();
+ size_t const nr_procs = mgr.managed ();
if (nr_procs != 0)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P) %d processes left in manager\n"),
diff --git a/ACE/tests/Reactor_Dispatch_Order_Test.cpp b/ACE/tests/Reactor_Dispatch_Order_Test.cpp
index eb6e9595b68..41102ebe831 100644
--- a/ACE/tests/Reactor_Dispatch_Order_Test.cpp
+++ b/ACE/tests/Reactor_Dispatch_Order_Test.cpp
@@ -78,7 +78,7 @@ Handler::Handler (ACE_Reactor &reactor)
if (0 != this->reactor ()->register_handler
(this->pipe_.read_handle (),
this,
- ACE_Event_Handler::ALL_EVENTS_MASK))
+ ACE_Event_Handler::READ_MASK | ACE_Event_Handler::WRITE_MASK))
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("register")));
else
this->ok_ = true;
diff --git a/ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp b/ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp
index f852d3c2ffe..5c9c28dbd2c 100644
--- a/ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp
+++ b/ACE/tests/Reactor_Dispatch_Order_Test_Dev_Poll.cpp
@@ -80,7 +80,7 @@ Handler::Handler (ACE_Reactor &reactor)
if (0 != this->reactor ()->register_handler
(this->pipe_.read_handle (),
this,
- ACE_Event_Handler::ALL_EVENTS_MASK))
+ ACE_Event_Handler::READ_MASK | ACE_Event_Handler::WRITE_MASK))
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("register")));
else
this->ok_ = true;
@@ -126,13 +126,10 @@ Handler::handle_output (ACE_HANDLE)
else
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Handler::handle_output\n")));
-#if defined (__OpenBSD__) || defined (ACE_VXWORKS) || defined (__Lynx__)
- // All that we need written has been written, so don't
- // call handle_output again.
+ // Don't want to continually see writeable; only verify its relative order.
this->reactor ()->mask_ops (this->pipe_.read_handle (),
ACE_Event_Handler::WRITE_MASK,
ACE_Reactor::CLR_MASK);
-#endif /* __OpenBSD__ || ACE_VXWORKS || __Lynx__ */
return 0;
}
diff --git a/ACE/tests/Reactor_Notify_Test.cpp b/ACE/tests/Reactor_Notify_Test.cpp
index 15adcd8eab6..80166255558 100644
--- a/ACE/tests/Reactor_Notify_Test.cpp
+++ b/ACE/tests/Reactor_Notify_Test.cpp
@@ -256,7 +256,7 @@ Supplier_Task::perform_notifications (int notifications)
{
iterations *= (iterations * iterations * 2);
#if defined (ACE_VXWORKS)
- // scale down otherwise the test won'y finish in time
+ // scale down otherwise the test won't finish in time
iterations /= 4;
#endif
}
diff --git a/ACE/tests/Reactor_Performance_Test.cpp b/ACE/tests/Reactor_Performance_Test.cpp
index 215fef181f3..bdb4e51cbac 100644
--- a/ACE/tests/Reactor_Performance_Test.cpp
+++ b/ACE/tests/Reactor_Performance_Test.cpp
@@ -108,7 +108,7 @@ Read_Handler::handle_input (ACE_HANDLE handle)
else
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("handle_input: %p (errno: %d)\n"),
- ACE_TEXT ("recv"), errno));
+ ACE_TEXT ("recv"), ACE_ERRNO_GET));
// This will cause handle_close to get called.
return -1;
diff --git a/ACE/tests/Recursive_Mutex_Test.cpp b/ACE/tests/Recursive_Mutex_Test.cpp
index fafe771551a..6d37316f314 100644
--- a/ACE/tests/Recursive_Mutex_Test.cpp
+++ b/ACE/tests/Recursive_Mutex_Test.cpp
@@ -54,7 +54,9 @@ static size_t n_threads = ACE_MAX_THREADS;
// ACE_Recursive_Thread_Mutex::get_nesting_level() will return a
// meaningful value.
+#if !defined (ACE_HAS_WTHREADS)
static bool nesting_level_supported = false;
+#endif
static void
test_recursion_depth (int nesting_level,
@@ -94,7 +96,7 @@ test_recursion_depth (int nesting_level,
test_recursion_depth (nesting_level + 1,
rm);
-#if !defined (ACE_HAS_WTHREADS)
+#if !defined (ACE_HAS_WTHREADS)
if (nesting_level_supported
&& (nesting_level + 1) != rm->get_nesting_level ())
{
@@ -364,7 +366,7 @@ run_main (int argc, ACE_TCHAR *argv[])
#if !defined (ACE_HAS_WTHREADS)
// This will work for Windows, too, if ACE_TEST_MUTEX is
// ACE_Recursive_Thread_Mutex instead of ACE_Process_Mutex.
- nesting_level_supported =
+ nesting_level_supported =
(rm.get_nesting_level () != -1 || errno != ENOTSUP);
#endif /* !ACE_HAS_WTHREADS */
diff --git a/ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp b/ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp
index d6005b67c36..bf308ea2063 100644
--- a/ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp
+++ b/ACE/tests/Refcounted_Event_Handler_Test_DevPoll.cpp
@@ -80,7 +80,7 @@ Handler::Handler (ACE_Reactor &reactor)
if (0 != this->reactor ()->register_handler
(this->pipe_.read_handle (),
this,
- ACE_Event_Handler::ALL_EVENTS_MASK))
+ ACE_Event_Handler::READ_MASK | ACE_Event_Handler::WRITE_MASK))
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("register")));
else
this->ok_ = true;
@@ -126,13 +126,10 @@ Handler::handle_output (ACE_HANDLE)
else
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Handler::handle_output\n")));
-#if defined (__OpenBSD__) || defined (ACE_VXWORKS) || defined (__Lynx__)
- // All that we need written has been written, so don't
- // call handle_output again.
+ // Don't want to continually see writeable; only verify its relative order.
this->reactor ()->mask_ops (this->pipe_.read_handle (),
ACE_Event_Handler::WRITE_MASK,
ACE_Reactor::CLR_MASK);
-#endif /* __OpenBSD__ || ACE_VXWORKS || __Lynx__ */
return 0;
}
diff --git a/ACE/tests/SOCK_Connector_Test.cpp b/ACE/tests/SOCK_Connector_Test.cpp
index 4bced6df444..a0fc7c1fbe3 100644
--- a/ACE/tests/SOCK_Connector_Test.cpp
+++ b/ACE/tests/SOCK_Connector_Test.cpp
@@ -209,7 +209,7 @@ fail_no_listener_nonblocking (void)
ACE_DEBUG ((LM_WARNING,
ACE_TEXT ("Test not executed fully; ")
ACE_TEXT ("expected EWOULDBLOCK, %p (%d)\n"),
- ACE_TEXT ("not"), errno));
+ ACE_TEXT ("not"), ACE_ERRNO_GET));
status = -1;
}
@@ -269,7 +269,9 @@ succeed_nonblocking (void)
else
{
if (sock.get_handle () != ACE_INVALID_HANDLE)
- status = con.complete (sock);
+ {
+ status = con.complete (sock);
+ }
if (status == -1)
{
@@ -284,7 +286,8 @@ succeed_nonblocking (void)
else
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT("%p\n"),
+ ACE_TEXT("Errno <%d>: %p\n"),
+ ACE_ERRNO_GET,
ACE_TEXT("connect should succeed, but")));
}
}
diff --git a/ACE/tests/Signal_Test.cpp b/ACE/tests/Signal_Test.cpp
index 74251025f0a..9fdf4114183 100644
--- a/ACE/tests/Signal_Test.cpp
+++ b/ACE/tests/Signal_Test.cpp
@@ -473,6 +473,7 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) **** test 1: handle signals synchronously in a separate thread\n")));
+#ifdef ACE_HAS_THREADS
++test_number;
// Run the parent logic for the signal test, first by handling
// signals synchronously in a separate thread.
@@ -487,6 +488,9 @@ run_main (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) **** test 3: handle signals asynchronously in this thread\n")));
+#else
+ test_number += 2;
+#endif /* ACE_HAS_THREADS */
++test_number;
// And finally by handling asynchronously signals in this thread.
diff --git a/ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp b/ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp
index a2cbb5569d7..682acd32172 100644
--- a/ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp
+++ b/ACE/tests/Thread_Pool_Reactor_Resume_Test.cpp
@@ -196,8 +196,8 @@ Request_Handler::handle_input (ACE_HANDLE fd)
else
{
ACE_DEBUG ((LM_DEBUG,
- "(%t) Errno is %d and result is %d\n",
- errno, result));
+ "(%t) Errno is %d and result is %d\n",
+ ACE_ERRNO_GET, result));
ACE_DEBUG ((LM_DEBUG,
"(%t) Request_Handler: 0x%x peer closed (0x%x)\n",
this, fd));
diff --git a/ACE/tests/Thread_Pool_Reactor_Test.cpp b/ACE/tests/Thread_Pool_Reactor_Test.cpp
index 61febd32f80..e9ddd6fadce 100644
--- a/ACE/tests/Thread_Pool_Reactor_Test.cpp
+++ b/ACE/tests/Thread_Pool_Reactor_Test.cpp
@@ -48,7 +48,7 @@
#include "ace/Thread_Manager.h"
#include "ace/TP_Reactor.h"
-ACE_RCSID(tests, Atomic_Op_Test, "$Id$")
+ACE_RCSID(tests, Thread_Pool_Reactor_Test, "$Id$")
#if defined (ACE_HAS_THREADS)
diff --git a/ACE/tests/UUID_Test.cpp b/ACE/tests/UUID_Test.cpp
index 7f8cf15bc74..2c753475ebf 100644
--- a/ACE/tests/UUID_Test.cpp
+++ b/ACE/tests/UUID_Test.cpp
@@ -23,19 +23,9 @@
class Tester
{
public:
- int init (void);
int test (void);
};
-
-int
-Tester::init (void)
-{
- ///Initialise the UUID Generator
- ACE_Utils::UUID_GENERATOR::instance ()->init ();
- return 0;
-}
-
int
Tester::test (void)
{
@@ -45,81 +35,94 @@ Tester::test (void)
auto_ptr <ACE_Utils::UUID> uuid (ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID ());
ACE_CString uuid_str (uuid->to_string ()->c_str ());
ACE_DEBUG ((LM_DEBUG,
- "Generated UUID\n %s\n",
+ ACE_TEXT ("Generated UUID\n %s\n"),
uuid_str.c_str ()));
// Construct UUID from string
ACE_Utils::UUID new_uuid (uuid_str);
+
ACE_DEBUG ((LM_DEBUG,
- "UUID Constructed from above Generated UUID\n %s\n",
+ ACE_TEXT ("UUID Constructed from above Generated UUID\n %s\n"),
new_uuid.to_string ()->c_str ()));
// Construct UUID from string by assigning it
ACE_Utils::UUID new_uuid_assign;
new_uuid_assign.from_string (new_uuid.to_string ()->c_str ());
ACE_DEBUG ((LM_DEBUG,
- "UUID Constructed from above Generated UUID with assign\n %s\n",
+ ACE_TEXT ("UUID Constructed from above Generated UUID ")
+ ACE_TEXT ("with assign\n %s\n"),
new_uuid_assign.to_string ()->c_str ()));
if (new_uuid != new_uuid_assign)
- {
- ACE_ERROR ((LM_ERROR, "Error: UUIDs are not the same\n"));
- retval = -1;
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: UUIDs are not the same\n")),
+ -1);
+
+ // Check the hash value of the 2 UUIDs
+
+ if (new_uuid.hash () != new_uuid_assign.hash ())
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: hash value of UUIDs are ")
+ ACE_TEXT ("not the same")),
+ -1);
// Construct UUID using the copy constructor
ACE_Utils::UUID new_uuid_copy (new_uuid);
ACE_DEBUG ((LM_DEBUG,
- "UUID Constructed from above Generated UUID with copy\n %s\n",
+ ACE_TEXT ("UUID constructed from above Generated UUID")
+ ACE_TEXT (" with copy\n %s\n"),
new_uuid_copy.to_string ()->c_str ()));
if (new_uuid != new_uuid_copy)
- {
- ACE_ERROR ((LM_ERROR, "Error: UUIDs are not the same with copy\n"));
- retval = -1;
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: UUIDs are not the same ")
+ ACE_TEXT ("with copy\n")),
+ -1);
ACE_Utils::UUID nil_uuid (*ACE_Utils::UUID::NIL_UUID.to_string ());
ACE_DEBUG ((LM_DEBUG,
- "UUID Constructed from NIL_UUID with string copy\n %s\n",
+ ACE_TEXT ("UUID Constructed from NIL_UUID with ")
+ ACE_TEXT ("string copy\n %s\n"),
nil_uuid.to_string ()->c_str ()));
if (nil_uuid != ACE_Utils::UUID::NIL_UUID)
- {
- ACE_ERROR ((LM_ERROR, "Error: UUIDs are not the same with NIL_UUID string copy\n"));
- retval = -1;
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: UUIDs are not the same with ")
+ ACE_TEXT ("NIL_UUID string copy\n")),
+ -1);
- // Construct UUID using the assignment constructor
+ // Construct UUID using the assignment constructor
ACE_Utils::UUID new_uuid_assigment;
new_uuid_assigment = new_uuid;
ACE_DEBUG ((LM_DEBUG,
- "UUID Constructed from above Generated UUID with assignment\n %s\n",
+ ACE_TEXT ("UUID Constructed from above Generated UUID ")
+ ACE_TEXT ("with assignment\n %s\n"),
new_uuid_assigment.to_string ()->c_str ()));
if (new_uuid != new_uuid_assigment)
- {
- ACE_ERROR ((LM_ERROR, "Error: UUIDs are not the same with assignment\n"));
- retval = -1;
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: UUIDs are not the same "
+ ACE_TEXT ("with assignment\n"))),
+ -1);
// Generate UUID with process and thread ids.
- auto_ptr <ACE_Utils::UUID> uuid_with_tp_id (ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID (0x0001,
- 0xc0));
+ auto_ptr <ACE_Utils::UUID>
+ uuid_with_tp_id (ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID (0x0001, 0xc0));
+
ACE_DEBUG ((LM_DEBUG,
- "UUID with Thread and Process ID\n %s\n",
+ ACE_TEXT ("UUID with Thread and Process ID\n %s\n"),
uuid_with_tp_id->to_string ()->c_str ()));
if (new_uuid == *uuid_with_tp_id)
- {
- ACE_ERROR ((LM_ERROR, "Error: UUIDs are the same\n"));
- retval = -1;
- }
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Error: UUIDs are the same\n")),
+ -1);
// Construct UUID from string
ACE_Utils::UUID new_uuid_with_tp_id (uuid_with_tp_id->to_string ()->c_str ());
ACE_DEBUG ((LM_DEBUG,
- "UUID with Thread and Process ID reconstructed from above UUID \n %s\n",
+ ACE_TEXT ("UUID with Thread and Process ID reconstructed ")
+ ACE_TEXT ("from above UUID \n %s\n"),
new_uuid_with_tp_id.to_string ()->c_str ()));
return retval;
@@ -131,21 +134,14 @@ int run_main(int, ACE_TCHAR* [])
Tester tester;
- if (tester.init () == -1)
- {
- ACE_DEBUG((LM_DEBUG,
- "UUIDTest: Tester::init failed\n"));
- return -1;
- }
-
int result = tester.test();
if (result == 0)
ACE_DEBUG((LM_DEBUG,
- "UUID_Test succeeded\n"));
+ ACE_TEXT ("UUID_Test succeeded\n")));
else
ACE_ERROR((LM_ERROR,
- "UUID_Test failed\n"));
+ ACE_TEXT ("UUID_Test failed\n")));
ACE_END_TEST;
diff --git a/ACE/tests/run_test.lst b/ACE/tests/run_test.lst
index 5e729f7ac02..f75e9bb5e98 100644
--- a/ACE/tests/run_test.lst
+++ b/ACE/tests/run_test.lst
@@ -38,6 +38,7 @@ Bug_2540_Regression_Test
#Bug_2610_Regression_Test: !ST !ACE_FOR_TAO
Bug_2659_Regression_Test: !ST !VxWorks64 !VxWorks65
Bug_2653_Regression_Test: !ST
+Bug_2740_Regression_Test: !ST
Bug_2772_Regression_Test: !ST !FIXED_BUGS_ONLY
Bug_2815_Regression_Test
Bug_2820_Regression_Test
@@ -49,6 +50,7 @@ Bug_3500_Regression_Test
Bug_3532_Regression_Test
Bug_3541_Regression_Test
Bug_3505_Regression_Test
+Bug_3673_Regression_Test
CDR_Array_Test: !ACE_FOR_TAO
CDR_File_Test: !ACE_FOR_TAO
CDR_Test
@@ -64,7 +66,7 @@ Conn_Test: !ACE_FOR_TAO
DLL_Test: !Unicos !STATIC !KCC_Linux
DLList_Test: !ACE_FOR_TAO
Date_Time_Test: !ACE_FOR_TAO
-Dev_Poll_Reactor_Test: !nsk
+Dev_Poll_Reactor_Test: !nsk !ST
Dirent_Test: !VxWorks_RTP !LabVIEW_RT
Dynamic_Priority_Test
Dynamic_Test
@@ -129,7 +131,7 @@ Proactor_Test: !VxWorks !LynxOS !nsk !ACE_FOR_TAO !BAD_AIO
Proactor_Timer_Test: !VxWorks !nsk !ACE_FOR_TAO
Proactor_UDP_Test: !VxWorks !LynxOS !nsk !ACE_FOR_TAO !BAD_AIO
Process_Env_Test: !VxWorks !PHARLAP
-Process_Test: !VxWorks !ACE_FOR_TAO !PHARLAP !Win32 !FIXED_BUGS_ONLY
+Process_Test: !VxWorks !ACE_FOR_TAO !PHARLAP !Win32
Process_Manager_Test: !VxWorks !ACE_FOR_TAO !PHARLAP
Process_Manual_Event_Test: !HPUX !VxWorks !ACE_FOR_TAO !PHARLAP
Process_Mutex_Test: !VxWorks !ACE_FOR_TAO !PHARLAP
@@ -137,14 +139,14 @@ Process_Semaphore_Test: !VxWorks !ACE_FOR_TAO !PHARLAP
RB_Tree_Test
Bug_3332_Regression_Test
Reactor_Dispatch_Order_Test
-Reactor_Dispatch_Order_Test_Dev_Poll: !FIXED_BUGS_ONLY
+Reactor_Dispatch_Order_Test_Dev_Poll:
Reactor_Exceptions_Test
Reactor_Notify_Test: !ST !ACE_FOR_TAO
Reactor_Notification_Queue_Test
Reactor_Performance_Test: !ACE_FOR_TAO
Reactor_Registration_Test
Reactor_Remove_Resume_Test
-Reactor_Remove_Resume_Test_Dev_Poll: !FIXED_BUGS_ONLY
+Reactor_Remove_Resume_Test_Dev_Poll:
Reactor_Timer_Test: !ACE_FOR_TAO
Reactors_Test
Reader_Writer_Test
@@ -152,7 +154,7 @@ Recursive_Condition_Test: !ST
Recursive_Mutex_Test: !ST
Refcounted_Auto_Ptr_Test: !ACE_FOR_TAO
Reference_Counted_Event_Handler_Test -d 0
-Refcounted_Event_Handler_Test_DevPoll: !FIXED_BUGS_ONLY
+Refcounted_Event_Handler_Test_DevPoll:
Reverse_Lock_Test
RW_Process_Mutex_Test: !VxWorks !ACE_FOR_TAO !PHARLAP
Sendfile_Test: !QNX !NO_NETWORK !VxWorks !LabVIEW_RT
diff --git a/ACE/tests/test_config.h b/ACE/tests/test_config.h
index 71923ea293c..c939cb148bd 100644
--- a/ACE/tests/test_config.h
+++ b/ACE/tests/test_config.h
@@ -77,7 +77,8 @@ size_t const ACE_MAX_THREADS = 4;
#ifndef ACE_START_TEST
#define ACE_START_TEST(NAME) \
const ACE_TCHAR *program = NAME; \
- ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM | ACE_Log_Msg::VERBOSE_LITE); \
+ if (ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM | ACE_Log_Msg::VERBOSE_LITE) != 0) \
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("open log_msg failed")), -1); \
if (ace_file_stream::instance()->set_output (program) != 0) \
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("set_output failed")), -1); \
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Starting %s test at %D\n"), program))
@@ -93,7 +94,8 @@ size_t const ACE_MAX_THREADS = 4;
#define ACE_APPEND_LOG(NAME) \
const ACE_TCHAR *program = NAME; \
- ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM | ACE_Log_Msg::VERBOSE_LITE); \
+ if (ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM | ACE_Log_Msg::VERBOSE_LITE) != 0) \
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("open log_msg failed")), -1); \
if (ace_file_stream::instance()->set_output (program, 1) != 0) \
ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("set_output failed")), -1); \
ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Starting %s test at %D\n"), program));
@@ -125,11 +127,6 @@ size_t const ACE_MAX_THREADS = 4;
ACE_OS::unlink (temp); \
}
-#if defined (ghs)
-# // Rename main to ace_main for compatibility with run_tests.vxworks.
-# undef ACE_MAIN
-# define ACE_MAIN ace_main
-#endif /* ghs */
#else /* ! VXWORKS */
# if !defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
# define ACE_INIT_LOG_FMT ACE_TEXT ("%ls%ls%ls")
diff --git a/ACE/tests/tests.mpc b/ACE/tests/tests.mpc
index 7f1f4b5347f..8ee5cef9ce8 100644
--- a/ACE/tests/tests.mpc
+++ b/ACE/tests/tests.mpc
@@ -250,6 +250,13 @@ project(Bug_2653_Regression_Test) : acetest {
}
}
+project(Bug_2740_Regression_Test) : acetest, threads {
+ exename = Bug_2740_Regression_Test
+ Source_Files {
+ Bug_2740_Regression_Test.cpp
+ }
+}
+
project(Bug_2772_Regression_Test) : acetest, threads {
exename = Bug_2772_Regression_Test
Source_Files {
@@ -353,6 +360,13 @@ project(Bug_3541_Regression_Test) : acetest {
}
}
+project(Bug_3673_Regression_Test) : acetest {
+ exename = Bug_3673_Regression_Test
+ Source_Files {
+ Bug_3673_Regression_Test.cpp
+ }
+}
+
project(Cache Map Manager Test) : acetest {
exename = Cache_Map_Manager_Test
Source_Files {
diff --git a/CIAO/CIAO-INSTALL.html b/CIAO/CIAO-INSTALL.html
index 6927f341a47..799328ea00a 100644
--- a/CIAO/CIAO-INSTALL.html
+++ b/CIAO/CIAO-INSTALL.html
@@ -4,10 +4,13 @@
<LINK rev="made" href="mailto:schmidt@cs.wustl.edu"></head>
<body text="#000000" vLink="#ff0f0f" link="#000fff" bgColor="#ffffff">
<hr>
- <h3>Building and Installing CIAO
- </h3>
+ <h3>Building and Installing CIAO</h3>
<p>The first thing you should do to install CIAO is to set the environment
- variable <code>CIAO_ROOT</code> to be <code>$TAO_ROOT/CIAO</code>. Please refer
+ variable <code>CIAO_ROOT</code> to
+ be <code>$TAO_ROOT/CIAO</code>, or whereever you have installed
+ the CIAO sources. The <code>DANCE_ROOT</code> environment
+ variable should also be set to <code>$CIAO_ROOT/DAnCE</code>, or
+ wherever you have installed the DAnCE sources. Please refer
to the <A href="../../ACE-INSTALL.html">ACE installation notes</A> and <A href="../TAO-INSTALL.html">
TAO installation notes</A> for instructions on setting <code>$ACE_ROOT</code>
and <code>$TAO_ROOT</code>, respectively. They are needed since CIAO sits on
@@ -34,13 +37,11 @@
</li>
</ol>
<hr>
- <h3>Supported Platforms for CIAO
- </h3>
+ <h3>Supported Platforms for CIAO</h3>
<p>CIAO should be usable on all platforms that TAO runs on. Please see <A href="../TAO-INSTALL.html">
TAO's installation</A> pages for details
</p>
- <h3>Supported Platforms for CIDLC
- </h3>
+ <h3>Supported Platforms for CIDLC</h3>
<p>CIDLC is supported only on a small subset of platforms. Please refer to <A href="CCF/Documentation/Build.html">
this</A> for details on how to build CIDLC.
</p>
@@ -74,9 +75,8 @@
version of ACE and TAO because CIAO tracks changes to ACE and TAO very closely.
</p>
<hr>
- <h3>Install CIDL Compiler
- </h3>
- <p>We suggest you download the prebuilt binary <code>cidlc(exe)</code> from <strong>
+ <h3>Install CIDL Compiler</h3>
+ <p>We suggest you download the prebuilt binary <code>cidlc(.exe)</code> from <strong>
<a href="http://www.dre.vanderbilt.edu/cidlc/">here</a></strong> or, if you
are using Windows or Linux, you can build it by yourself.
</p>
@@ -125,9 +125,9 @@
<code>ACE_ROOT</code>
- [path&nbsp;ending with&nbsp;ACE_wrappers directory] (this should already be
set if you're using CIAO)
- <li>
+<!-- <li>
<code>BOOST_CFG</code> - <code>_vc7_mdsd</code>
- <li>
+ <li> -->
<code>BOOST_ROOT</code>
- [path ending with Boost directory]
<li>
@@ -144,16 +144,14 @@
</li>
</ul>
<hr>
- <h3>Obtaining and Installing Xerces-C
- </h3>
+ <h3>Obtaining and Installing Xerces-C</h3>
<p>The Xerces-C XML parsing library is a necessary component to build parts of
DAnCE that need to process XML based descriptor files, which include the <b>Plan
Launcher</b> and the <b>Repository Manager</b>. Currently, the only Xerces-C
- version supported by the DOC group is version 2.6 or later.
+ versions supported by the DOC group is version 2.6 or later or 3.0 or later.
Earlier versions of the Xerces-C library may work.
</p>
- <h4>Building Xerces-C
- </h4>
+ <h4>Building Xerces-C</h4>
<p>You may check <a href="http://www.dre.vanderbilt.edu/~wotte/xerces/">here</a> to
see if there is a prebuilt binary available for your platform. Otherwise, you
will have to obtain the source from the <a href="http://xml.apache.org/xerces-c/download.cgi">
@@ -168,8 +166,7 @@
build tool will expect these libraries to be named xerces-c for non debug
versions, and xerces-cd for debug versions.
</ul>
- <h4>Xerces-C Environment Settings
- </h4>
+ <h4>Xerces-C Environment Settings</h4>
<p>If the Xerces includes and libraries are in your system include and library
paths, respectively, then you need not set up any environment and may proceed
to the next step. If not, you will need to set an environment variable named
@@ -179,8 +176,7 @@
for dynamically linked libraries.
</p>
<hr>
- <h3>Install CIAO core/tools/examples
- </h3>
+ <h3>Install CIAO core/tools/examples</h3>
<p>Most of the GNUmakefiles/project files/solution files required to build CIAO
are available in the release. If you don't like the configurations used, please
feel free to regenerate them using MPC. Please see <A href="../../MPC/README">this</A>
diff --git a/CIAO/CIDLC/ExecImplHeaderGenerator.cpp b/CIAO/CIDLC/ExecImplHeaderGenerator.cpp
index ba5498e5140..b68ad4190ea 100644
--- a/CIAO/CIDLC/ExecImplHeaderGenerator.cpp
+++ b/CIAO/CIDLC/ExecImplHeaderGenerator.cpp
@@ -689,6 +689,13 @@ ExecImplHeaderEmitter::pre (TranslationUnit&)
}
os << "#include \"tao/LocalObject.h\"" << endl << endl;
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "using namespace " << enclosing << ";" << endl;
+ }
}
void
diff --git a/CIAO/CIDLC/ExecutorMappingGenerator.cpp b/CIAO/CIDLC/ExecutorMappingGenerator.cpp
index e5aa0a8b445..6ba0203a5af 100644
--- a/CIAO/CIDLC/ExecutorMappingGenerator.cpp
+++ b/CIAO/CIDLC/ExecutorMappingGenerator.cpp
@@ -471,13 +471,14 @@ namespace
//
struct MonolithEmitter : ComponentEmitter
{
- MonolithEmitter (Context& c, ostream& os)
+ MonolithEmitter (Context& c, ostream& os, CommandLine const& cl)
: ComponentEmitter (c, os),
monolith_name_emitter (c, os, "CCM_"),
attribute (c, os),
consumer (c, os),
- provider (c, os),
- type_name_emitter (c, os)
+ provider (c, os, cl),
+ type_name_emitter (c, os),
+ cl_ (cl)
{
edge_traverser (inherits);
edge_traverser (defines);
@@ -592,9 +593,21 @@ namespace
struct Provider : Traversal::ProviderGet, Emitter
{
- Provider (Context& c, ostream& os)
- : Emitter (c, os)
+ Provider (Context& c, ostream& os, CommandLine const& cl)
+ : Emitter (c, os),
+ cl_ (cl)
+ {
+ }
+
+ virtual void
+ pre (Type& c)
{
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
}
virtual void
@@ -620,6 +633,9 @@ namespace
{
os << ";";
}
+
+ private:
+ CommandLine const& cl_;
};
Traversal::Inherits inherits;
@@ -635,6 +651,7 @@ namespace
Traversal::Belongs provider_belongs;
FullTypeNameEmitter type_name_emitter;
+ CommandLine const& cl_;
};
@@ -1101,8 +1118,9 @@ namespace
struct HomeExplicitEmitter : HomeEmitter
{
- HomeExplicitEmitter (Context& c, ostream& os)
- : HomeEmitter (c, os), name_emitter (c, os, "CCM_", "Explicit")
+ HomeExplicitEmitter (Context& c, ostream& os, CommandLine const& cl)
+ : HomeEmitter (c, os), name_emitter (c, os, "CCM_", "Explicit"),
+ cl_ (cl)
{
edge_traverser (inherits);
inherits.node_traverser (name_emitter);
@@ -1124,6 +1142,13 @@ namespace
inherits_pre (Type&)
{
os << " : ";
+/*
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }*/
}
virtual void
@@ -1165,6 +1190,7 @@ namespace
private:
Traversal::Inherits inherits;
NameMangler name_emitter;
+ CommandLine const& cl_;
};
@@ -1433,7 +1459,7 @@ namespace
virtual void
inherits (Type& i)
{
- os << " : " << i.name ();
+ os << " : " << i.scoped_name ();
}
virtual void
@@ -1509,9 +1535,10 @@ namespace
struct ComponentContextEmitter : Traversal::ComponentExecutor, Emitter
{
- ComponentContextEmitter (Context& c, ostream& os)
+ ComponentContextEmitter (Context& c, ostream& os, CommandLine const& cl)
: Emitter (c, os),
- name_emitter_ (c, os, "CCM_", "_Context")
+ name_emitter_ (c, os, "CCM_", "_Context"),
+ cl_ (cl)
{
implements_traverser_.node_traverser (name_emitter_);
}
@@ -1524,6 +1551,14 @@ namespace
//
// os << "local interface ";
os << "typedef ";
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
+
Traversal::ComponentExecutor::implements (i, implements_traverser_);
}
@@ -1555,14 +1590,16 @@ namespace
private:
NameMangler name_emitter_;
Traversal::Implements implements_traverser_;
+ CommandLine const& cl_;
};
struct ComponentExecutorEmitter : Traversal::ComponentExecutor, Emitter
{
- ComponentExecutorEmitter (Context& c, ostream& os)
+ ComponentExecutorEmitter (Context& c, ostream& os, CommandLine const& cl)
: Emitter (c, os),
- name_emitter_ (c, os, "CCM_")
+ name_emitter_ (c, os, "CCM_"),
+ cl_ (cl)
{
implements_traverser_.node_traverser (name_emitter_);
}
@@ -1583,6 +1620,13 @@ namespace
implements (Type& i)
{
os << " : ";
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
Traversal::ComponentExecutor::implements (i, implements_traverser_);
@@ -1599,14 +1643,16 @@ namespace
private:
NameMangler name_emitter_;
Traversal::Implements implements_traverser_;
+ CommandLine const& cl_;
};
struct HomeExecutorEmitter : Traversal::HomeExecutor, Emitter
{
- HomeExecutorEmitter (Context& c, ostream& os)
+ HomeExecutorEmitter (Context& c, ostream& os, CommandLine const& cl)
: Emitter (c, os),
- name_emitter_ (c, os, "CCM_")
+ name_emitter_ (c, os, "CCM_"),
+ cl_ (cl)
{
implements_traverser_.node_traverser (name_emitter_);
}
@@ -1628,6 +1674,13 @@ namespace
{
os << " : ";
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "::" << enclosing;
+ }
+
Traversal::HomeExecutor::implements (i, implements_traverser_);
}
@@ -1640,6 +1693,7 @@ namespace
private:
NameMangler name_emitter_;
Traversal::Implements implements_traverser_;
+ CommandLine const& cl_;
};
//
@@ -1649,8 +1703,9 @@ namespace
Traversal::BracketIncludes,
Emitter
{
- IncludesEmitter (Context& c, ostream& os)
- : Emitter (c, os)
+ IncludesEmitter (Context& c, ostream& os, CommandLine const& cl)
+ : Emitter (c, os),
+ cl_ (cl)
{
}
@@ -1658,6 +1713,14 @@ namespace
traverse (SemanticGraph::QuoteIncludes& qi)
{
os << "#include \"" << qi.file ().string () << "\"" << endl;
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << endl << "module " << enclosing << endl
+ << "{";
+ }
}
virtual void
@@ -1665,6 +1728,9 @@ namespace
{
os << "#include <" << bi.file ().string () << ">" << endl;
}
+
+ private:
+ CommandLine const& cl_;
};
}
@@ -1693,6 +1759,14 @@ options (CL::Description& d)
"Use provided regular expression when constructing "
"name of local executor mapping file.",
CL::OptionType::value));
+
+ d.add_option (CL::OptionDescription (
+ "lem-enclosing-module",
+ "name",
+ "Adds an enclosing module to the entire IDL file "
+ "to disambiguate repeated code generation of "
+ "inherited facets.",
+ CL::OptionType::value));
}
@@ -1942,7 +2016,7 @@ generate (CommandLine const& cl,
{
os << "#include <ciao/Contexts/Swapping/CIAO_UpgradeableContext.idl>" << endl;
}
-
+
Traversal::TranslationUnit unit;
// Layer 1
@@ -1968,7 +2042,7 @@ generate (CommandLine const& cl,
Traversal::ContainsRoot contains_root;
Traversal::QuoteIncludes quote_includes;
Traversal::BracketIncludes bracket_includes;
- IncludesEmitter includes_emitter (ctx, os);
+ IncludesEmitter includes_emitter (ctx, os, cl);
principal_region.edge_traverser (includes_emitter);
@@ -2004,11 +2078,11 @@ generate (CommandLine const& cl,
InterfaceEmitter interface_ (ctx, os);
InterfaceFwdEmitter interface_fwd (ctx, os);
- MonolithEmitter component_monolith (ctx, os);
+ MonolithEmitter component_monolith (ctx, os, cl);
ContextEmitter component_context (ctx, os, cl);
HomeImplicitEmitter home_implicit (ctx, os);
- HomeExplicitEmitter home_explicit (ctx, os);
+ HomeExplicitEmitter home_explicit (ctx, os, cl);
HomeMainEmitter home_main (ctx, os);
defines.node_traverser (module);
@@ -2050,9 +2124,9 @@ generate (CommandLine const& cl,
//--
FullTypeNameEmitter type (ctx, os);
- ComponentContextEmitter session_component_context (ctx, os);
- ComponentExecutorEmitter session_component_executor (ctx, os);
- HomeExecutorEmitter session_home_executor (ctx, os);
+ ComponentContextEmitter session_component_context (ctx, os, cl);
+ ComponentExecutorEmitter session_component_executor (ctx, os, cl);
+ HomeExecutorEmitter session_home_executor (ctx, os, cl);
ContextPortEmitter port_context (ctx, os);
ExplicitPortEmitter port_explicit (ctx, os);
@@ -2095,5 +2169,13 @@ generate (CommandLine const& cl,
// end
unit.traverse (tu);
+
+ string enclosing = cl.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << endl
+ << "};" << endl;
+ }
}
}
diff --git a/CIAO/CIDLC/ServantHeaderGenerator.cpp b/CIAO/CIDLC/ServantHeaderGenerator.cpp
index 127463aeb33..75d5601457d 100644
--- a/CIAO/CIDLC/ServantHeaderGenerator.cpp
+++ b/CIAO/CIDLC/ServantHeaderGenerator.cpp
@@ -32,8 +32,9 @@ namespace
struct FacetEmitter : Traversal::UnconstrainedInterface,
EmitterBase
{
- FacetEmitter (Context& c)
- : EmitterBase (c)
+ FacetEmitter (Context& c, CommandLine const &cl)
+ : EmitterBase (c),
+ cl_ (cl)
{
}
@@ -58,14 +59,17 @@ namespace
/// Open a namespace made from the interface scope's name.
os << "namespace " << STRS[FACET_PREFIX] << name
<< "{";
-
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+
os << "template <typename T>" << endl
<< "class " << i.name () << "_Servant_T" << endl
<< ": public virtual POA_" << stripped << endl
<< "{"
<< "public:" << endl
<< i.name () << "_Servant_T (" << endl
- << i.scoped_name ().scope_name () << "::CCM_" << i.name ()
+ << enclosing << i.scoped_name ().scope_name () << "::CCM_" << i.name ()
<< "_ptr executor," << endl
<< "::Components::CCMContext_ptr ctx);" << endl
<< "virtual ~" << i.name () << "_Servant_T (void);" << endl;
@@ -117,13 +121,15 @@ namespace
inherits (i, inherits_);
names (i, defines_);
}
+
+ //string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << "// Get component implementation." << endl
<< "virtual CORBA::Object_ptr" << endl
<< "_get_component ();" << endl
<< "protected:" << endl
<< "// Facet executor." << endl
- << i.scoped_name ().scope_name ()<< "::CCM_" << i.name ()
+ << enclosing << i.scoped_name ().scope_name ()<< "::CCM_" << i.name ()
<< "_var executor_;" << endl
<< "// Context object." << endl
<< "::Components::CCMContext_var ctx_;" << endl
@@ -137,6 +143,8 @@ namespace
i.context ().set ("facet_hdr_gen", true);
}
+
+ CommandLine const &cl_;
};
struct ContextEmitter : Traversal::Component, EmitterBase
@@ -413,10 +421,11 @@ namespace
string swap_option = cl_.get_value ("custom-container", "");
bool swapping = (swap_option == "upgradeable");
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
ostringstream base_type;
base_type << "::CIAO::" << (swapping ? "Upgradeable_" : "")
- << "Context_Impl < " << t.scoped_name ().scope_name ()
+ << "Context_Impl < " << enclosing << t.scoped_name ().scope_name ()
<< "::CCM_" << t.name () << "_Context, " << t.name () << "_Servant, "
<< t.scoped_name () << ">";
@@ -539,8 +548,9 @@ namespace
struct ServantEmitter : Traversal::Component, EmitterBase
{
- ServantEmitter (Context& c)
- : EmitterBase (c)
+ ServantEmitter (Context& c, CommandLine const &cl)
+ : EmitterBase (c),
+ cl_ (cl)
{}
// Nested classes used by this emitter.
@@ -553,11 +563,12 @@ namespace
Traversal::ProviderData,
EmitterBase
{
- PortsEmitterPublic (Context& c)
+ PortsEmitterPublic (Context& c, CommandLine const &cl)
: EmitterBase (c),
type_name_emitter_ (c),
simple_type_name_emitter_ (c),
- stripped_type_name_emitter_ (c)
+ stripped_type_name_emitter_ (c),
+ cl_ (cl)
{
belongs_.node_traverser (type_name_emitter_);
simple_belongs_.node_traverser (simple_type_name_emitter_);
@@ -643,13 +654,14 @@ namespace
<< "{"
<< "public:" << endl;
- Traversal::ConsumerData::belongs (c, simple_belongs_);
+ Traversal::ConsumerData::belongs (c, simple_belongs_);
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << "Consumer_" << c.name () << "_Servant (" << endl
- << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
+ << enclosing << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
<< c.scoped_name ().scope_name ().simple_name () << "_ptr executor,"
<< endl
- << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
+ << enclosing << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
<< c.scoped_name ().scope_name ().simple_name ()
<< "_Context_ptr c);" << endl;
@@ -691,14 +703,16 @@ namespace
os << "// Get component implementation." << endl
<< "virtual CORBA::Object_ptr" << endl
<< "_get_component ();" << endl;
+
+ // string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << "protected:" << endl
- << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
+ << enclosing << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
<< c.scoped_name ().scope_name ().simple_name ()
<< "_var" << endl
<< "executor_;" << endl;
- os << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
+ os << enclosing << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
<< c.scoped_name ().scope_name ().simple_name ()
<< "_Context_var" << endl
<< "ctx_;" << endl;
@@ -762,6 +776,7 @@ namespace
Traversal::Belongs belongs_;
Traversal::Belongs simple_belongs_;
Traversal::Belongs stripped_belongs_;
+ CommandLine const &cl_;
};
struct PortsEmitterProtected : Traversal::ConsumerData,
@@ -866,23 +881,25 @@ namespace
{
ScopedName scoped (t.scoped_name ());
Name stripped (scoped.begin () + 1, scoped.end ());
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << "class " << ctx.export_macro () << " " << t.name ()
<< "_Servant" << endl
<< " : public virtual CIAO::Servant_Impl<" << endl
<< " POA_" << stripped << "," << endl
- << " " << t.scoped_name ().scope_name () << "::CCM_"
+ << " " << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "," << endl
<< " " << t.name () << "_Context" << endl
<< " >" << endl
<< "{"
<< "public:" << endl << endl;
- os << "typedef " << t.scoped_name ().scope_name () << "::CCM_"
+ os << "typedef " << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << " _exec_type;" << endl;
os << t.name () << "_Servant (" << endl
- << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
+ << enclosing << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
<< "_ptr executor," << endl
<< "::Components::CCMHome_ptr h," << endl
<< "const char *ins_name," << endl
@@ -972,7 +989,7 @@ namespace
component_emitter.edge_traverser (component_inherits);
component_emitter.edge_traverser (defines);
- PortsEmitterPublic ports_emitter (ctx);
+ PortsEmitterPublic ports_emitter (ctx, cl_);
defines.node_traverser (ports_emitter);
component_emitter.traverse (t);
@@ -1105,7 +1122,10 @@ namespace
<< "CIAO::Container_ptr c," << endl
<< "const char *ins_name);" << endl;
}
+
+ CommandLine const &cl_;
};
+
struct HomeEmitter : Traversal::Home, EmitterBase
{
@@ -1133,10 +1153,12 @@ namespace
ScopedName scoped (t.scoped_name ());
Name stripped (scoped.begin () + 1, scoped.end ());
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << (swapping ? "Swapping_" : "") << "Home_Servant_Impl<" << endl
<< " ::POA_" << stripped << "," << endl
- << " " << t.scoped_name ().scope_name () << "::CCM_"
+ << " " << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "," << endl
<< " ";
@@ -1147,7 +1169,7 @@ namespace
<< "{"
<< "public:" << endl << endl;
os << t.name () << "_Servant (" << endl
- << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
+ << enclosing << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
<< "_ptr exe," << endl
<< "const char *ins_name," << endl
<< "::CIAO::Container_ptr c);" << endl;
@@ -1481,7 +1503,7 @@ ServantHeaderEmitter::generate (TranslationUnit& u)
//--
ContextEmitter context_emitter (c, cl_);
- ServantEmitter servant_emitter (c);
+ ServantEmitter servant_emitter (c, cl_);
HomeEmitter home_emitter (c, cl_);
implements.node_traverser (context_emitter);
implements.node_traverser (servant_emitter);
@@ -1568,6 +1590,13 @@ ServantHeaderEmitter::pre (TranslationUnit&)
<< (swapping ? "Swapping/Swapping_Servant_Home_Impl_T.h"
: "Home_Servant_Impl_T.h")
<< "\"" << endl << endl;
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
+ if (enclosing != "")
+ {
+ os << "using namespace " << enclosing << ";" << endl << endl;
+ }
}
void
@@ -1650,7 +1679,7 @@ ServantHeaderEmitter::generate_facets (TranslationUnit& u, Context& c)
Traversal::Belongs belongs;
provider.edge_traverser (belongs);
- FacetEmitter facet_emitter (c);
+ FacetEmitter facet_emitter (c, cl_);
belongs.node_traverser (facet_emitter);
unit.traverse (u);
diff --git a/CIAO/CIDLC/ServantSourceGenerator.cpp b/CIAO/CIDLC/ServantSourceGenerator.cpp
index 47338bd9fc1..c9bceefadf7 100644
--- a/CIAO/CIDLC/ServantSourceGenerator.cpp
+++ b/CIAO/CIDLC/ServantSourceGenerator.cpp
@@ -259,8 +259,9 @@ namespace
struct FacetEmitter : Traversal::UnconstrainedInterface,
EmitterBase
{
- FacetEmitter (Context& c)
- : EmitterBase (c)
+ FacetEmitter (Context& c, CommandLine const &cl)
+ : EmitterBase (c),
+ cl_ (cl)
{
}
@@ -388,6 +389,7 @@ namespace
os << scope_.name () << "_Servant_T<T>::"
<< a.name () << " ()" << endl;
}
+
};
virtual void
@@ -409,14 +411,15 @@ namespace
/// Open a namespace made from the interface scope's name.
os << "namespace " << STRS[FACET_PREFIX] << name
<< "{";
-
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << "template <typename T>" << endl
<< i.name () << "_Servant_T<T>::" << i.name ()
<< "_Servant_T (" << endl
- << i.scoped_name ().scope_name () << "::CCM_" << i.name ()
+ << enclosing << i.scoped_name ().scope_name () << "::CCM_" << i.name ()
<< "_ptr executor," << endl
<< "::Components::CCMContext_ptr c)" << endl
- << " : executor_ ( " << i.scoped_name ().scope_name () << "::CCM_"
+ << " : executor_ ( " << enclosing << i.scoped_name ().scope_name () << "::CCM_"
<< i.name () << "::_duplicate (executor))," << endl
<< " ctx_ ( ::Components::CCMContext::_duplicate (c))" << endl
<< "{"
@@ -501,12 +504,15 @@ namespace
i.context ().set ("facet_src_gen", true);
}
+
+ CommandLine const &cl_;
};
struct ContextEmitter : Traversal::Component, EmitterBase
{
- ContextEmitter (Context& c)
- : EmitterBase (c)
+ ContextEmitter (Context& c, CommandLine const& cl)
+ : EmitterBase (c),
+ cl_ (cl)
{}
// Nested classes used by ContextEmitter.
@@ -1173,6 +1179,8 @@ namespace
virtual void
pre (Type& t)
{
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
os << t.name () << "_Context::"
<< t.name () << "_Context (" << endl
<< "::Components::CCMHome_ptr h," << endl
@@ -1180,7 +1188,7 @@ namespace
<< t.name () << "_Servant *sv)" << endl
<< " : ::CIAO::Context_Impl_Base (h, c), " << endl
<< " ::CIAO::Context_Impl<" << endl
- << " " << t.scoped_name ().scope_name () << "::CCM_"
+ << " " << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_Context," << endl
<< " " << t.name () << "_Servant," << endl
<< " " << t.scoped_name () << endl
@@ -1193,7 +1201,7 @@ namespace
{
os << "," << endl
<< " ::CIAO::Upgradeable_Context_Impl<" << endl
- << " " << t.scoped_name ().scope_name () << "::CCM_"
+ << " " << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_Context," << endl
<< " " << t.name () << "_Servant," << endl
<< " " << t.scoped_name () << endl
@@ -1291,12 +1299,15 @@ namespace
<< endl
<< "}";
}
+
+ CommandLine const &cl_;
};
struct ServantEmitter : Traversal::Component, EmitterBase
{
- ServantEmitter (Context& c)
- : EmitterBase (c)
+ ServantEmitter (Context& c, CommandLine const &cl)
+ : EmitterBase (c),
+ cl_ (cl)
{}
// Nested classes used by ServantEmitter.
@@ -1829,7 +1840,8 @@ namespace
EmitterBase
{
FacetProvidesEmitter (Context& c,
- SemanticGraph::Component& scope)
+ SemanticGraph::Component& scope,
+ CommandLine const &cl)
: EmitterBase (c),
type_name_emitter_ (c),
simple_type_name_emitter_ (c),
@@ -1837,7 +1849,8 @@ namespace
enclosing_type_name_emitter_ (c),
facet_enclosing_type_name_emitter_ (c),
repo_id_emitter_ (c),
- scope_ (scope)
+ scope_ (scope),
+ cl_ (cl)
{
belongs_.node_traverser (type_name_emitter_);
simple_belongs_.node_traverser (simple_type_name_emitter_);
@@ -1927,9 +1940,9 @@ namespace
os << "::";
Traversal::ProviderData::belongs (p, servant_belongs_);
-
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << "," << endl
- << " ";
+ << " " << enclosing;
Traversal::ProviderData::belongs (p, enclosing_belongs_);
@@ -2000,17 +2013,20 @@ namespace
Traversal::Belongs facet_enclosing_belongs_;
Traversal::Belongs repo_id_belongs_;
SemanticGraph::Component& scope_;
+ CommandLine const &cl_;
+
};
struct ConsumesEmitter : Traversal::ConsumerData,
EmitterBase
{
- ConsumesEmitter (Context& c, SemanticGraph::Component& scope)
+ ConsumesEmitter (Context& c, SemanticGraph::Component& scope, CommandLine const &cl)
: EmitterBase (c),
type_name_emitter_ (c),
simple_type_name_emitter_ (c),
repo_id_emitter_ (c),
- scope_ (scope)
+ scope_ (scope),
+ cl_ (cl)
{
belongs_.node_traverser (type_name_emitter_);
simple_belongs_.node_traverser (simple_type_name_emitter_);
@@ -2028,20 +2044,21 @@ namespace
<< "_Servant::";
Traversal::ConsumerData::belongs (c, simple_belongs_);
-
+
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << "Consumer_" << c.name ()
<< "_Servant (" << endl
- << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
+ << enclosing << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
<< c.scoped_name ().scope_name ().simple_name ()
<< "_ptr executor,"
<< endl
- << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
+ << enclosing << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
<< c.scoped_name ().scope_name ().simple_name ()
<< "_Context_ptr c)" << endl
- << " : executor_ ( " << c.scoped_name ().scope_name ().scope_name ()
+ << " : executor_ ( " << enclosing << c.scoped_name ().scope_name ().scope_name ()
<< "::CCM_" << c.scoped_name ().scope_name ().simple_name ()
<< "::_duplicate (executor))," << endl
- << " ctx_ ( " << c.scoped_name ().scope_name ().scope_name ()
+ << " ctx_ ( " << enclosing << c.scoped_name ().scope_name ().scope_name ()
<< "::CCM_" << c.scoped_name ().scope_name ().simple_name ()
<< "_Context::_duplicate (c))" << endl
<< "{"
@@ -2241,12 +2258,12 @@ namespace
os << scope_.name () << "_Servant::";
Traversal::ConsumerData::belongs (c, simple_belongs_);
-
+
os << "Consumer_" << c.name () << "_Servant," << endl
- << " " << c.scoped_name ().scope_name ().scope_name ()
+ << " " << enclosing << c.scoped_name ().scope_name ().scope_name ()
<< "::CCM_" << c.scoped_name ().scope_name ().simple_name ()
<< "," << endl
- << " " << c.scoped_name ().scope_name ().scope_name ()
+ << " " << enclosing << c.scoped_name ().scope_name ().scope_name ()
<< "::CCM_" << c.scoped_name ().scope_name ().simple_name ()
<< "_Context," << endl
<< " " << scope_.name () << "_Servant>" << endl
@@ -2307,6 +2324,7 @@ namespace
Traversal::Belongs simple_belongs_;
Traversal::Belongs repo_id_belongs_;
SemanticGraph::Component& scope_;
+ CommandLine const &cl_;
};
struct OperationExistsEmitter;
@@ -2802,18 +2820,21 @@ namespace
Traversal::Belongs repo_id_belongs_;
unsigned long slot_;
};
-
+
public:
+
virtual void
pre (Type& t)
{
ScopedName scoped (t.scoped_name ());
Name stripped (scoped.begin () + 1, scoped.end ());
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
// Servant Constructor
os << t.name () << "_Servant::"
<< t.name () << "_Servant (" << endl
- << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
+ << enclosing << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
<< "_ptr exe," << endl
<< "::Components::CCMHome_ptr h," << endl
<< "const char *ins_name," << endl
@@ -2823,7 +2844,7 @@ namespace
<< "(h, hs, c)," << endl
<< " ::CIAO::Servant_Impl<" << endl
<< " ::POA_" << stripped << "," << endl
- << " " << t.scoped_name ().scope_name () << "::CCM_"
+ << " " << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "," << endl
<< " " << t.name () << "_Context" << endl
<< " > (exe, h, hs, c)," << endl
@@ -2934,7 +2955,7 @@ namespace
component_emitter.edge_traverser (defines);
component_emitter.edge_traverser (inherits);
- FacetProvidesEmitter provides_emitter (ctx, t);
+ FacetProvidesEmitter provides_emitter (ctx, t, cl_);
defines.node_traverser (provides_emitter);
component_emitter.traverse (t);
@@ -2968,7 +2989,7 @@ namespace
component_emitter.edge_traverser (defines);
component_emitter.edge_traverser (inherits);
- ConsumesEmitter consumes_emitter (ctx, t);
+ ConsumesEmitter consumes_emitter (ctx, t, cl_);
defines.node_traverser (consumes_emitter);
component_emitter.traverse (t);
@@ -3549,6 +3570,8 @@ namespace
name = regex::perl_s (ostr.str (), "/::/_/");
}
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
+
os << "extern \"C\" " << ctx.export_macro ()
<< " ::PortableServer::Servant"
<< endl
@@ -3557,9 +3580,9 @@ namespace
<< "::CIAO::Container_ptr c," << endl
<< "const char *ins_name)" << endl
<< "{"
- << t.scoped_name ().scope_name () << "::CCM_"
+ << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_var x =" << endl
- << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
+ << enclosing << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
<< "::_narrow (p);" << endl
<< "if (::CORBA::is_nil (x.in ()))" << endl
<< "{"
@@ -3574,6 +3597,8 @@ namespace
<< "return retval;" << endl
<< "}";
}
+
+ CommandLine const &cl_;
};
struct HomeEmitter : Traversal::Home, EmitterBase
@@ -3625,7 +3650,7 @@ namespace
{}
// Overriden to do nothing since we don't want to generate
- // component swapping related code for facet operations.
+ // component swapping related code for home operations.
virtual void
gen_swap_related (SemanticGraph::Operation&)
{
@@ -3853,9 +3878,10 @@ namespace
virtual void
pre (Type& t)
{
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << t.name () << "_Servant::"
<< t.name () << "_Servant (" << endl
- << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
+ << enclosing << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
<< "_ptr exe," << endl
<< "const char *ins_name," << endl
<< "::CIAO::Container_ptr c)" << endl
@@ -3870,7 +3896,7 @@ namespace
os << (swapping ? "Swapping_" : "") << "Home_Servant_Impl<" << endl
<< " ::POA_" << stripped << "," << endl
- << " " << t.scoped_name ().scope_name () << "::CCM_"
+ << " " << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "," << endl
<< " ";
@@ -4086,6 +4112,7 @@ namespace
name = regex::perl_s (ostr.str (), "/::/_/");
}
+ string enclosing = cl_.get_value ("lem-enclosing-module", "");
os << "extern \"C\" " << ctx.export_macro ()
<< " ::PortableServer::Servant"
<< endl
@@ -4094,9 +4121,9 @@ namespace
<< "::CIAO::Container_ptr c," << endl
<< "const char *ins_name)" << endl
<< "{"
- << t.scoped_name ().scope_name () << "::CCM_"
+ << enclosing << t.scoped_name ().scope_name () << "::CCM_"
<< t.name () << "_var x =" << endl
- << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
+ << enclosing << t.scoped_name ().scope_name () << "::CCM_" << t.name ()
<< "::_narrow (p);" << endl
<< "if (::CORBA::is_nil (x.in ()))" << endl
<< "{"
@@ -4197,8 +4224,8 @@ ServantSourceEmitter::generate (TranslationUnit& u)
home_executor.edge_traverser (implements);
//--
- ContextEmitter context_emitter (c);
- ServantEmitter servant_emitter (c);
+ ContextEmitter context_emitter (c, cl_);
+ ServantEmitter servant_emitter (c, cl_);
HomeEmitter home_emitter (c, cl_);
implements.node_traverser (context_emitter);
implements.node_traverser (servant_emitter);
@@ -4318,7 +4345,7 @@ ServantSourceEmitter::generate_facets (TranslationUnit& u, Context& c)
Traversal::Belongs belongs;
provider.edge_traverser (belongs);
- FacetEmitter facet_emitter (c);
+ FacetEmitter facet_emitter (c, cl_);
belongs.node_traverser (facet_emitter);
unit.traverse (u);
diff --git a/CIAO/CIDLC/cidlc.cpp b/CIAO/CIDLC/cidlc.cpp
index c105e80d8a7..cb33707e8a2 100644
--- a/CIAO/CIDLC/cidlc.cpp
+++ b/CIAO/CIDLC/cidlc.cpp
@@ -138,9 +138,16 @@ main (int argc, char* argv[])
"Run preprocessor only and output result to stdout.",
CL::OptionType::flag));
+ cld.add_option (CL::OptionDescription ("suppress-lem",
+ "Suppress generation of local executor mapping",
+ CL::OptionType::flag));
+
+ cld.add_option (CL::OptionDescription ("suppress-svnt",
+ "Suppress generation of servant code",
+ CL::OptionType::flag));
+
cld.add_argument ("cidl file");
-
CommandLine cl;
if (!parse (argc, argv, cld, cl))
@@ -330,6 +337,7 @@ main (int argc, char* argv[])
// Generate executor mapping.
+ if (!cl.get_value ("suppress-lem", false))
{
ExecutorMappingGenerator lem_gen;
lem_gen.generate (cl, tu, file_path);
@@ -349,6 +357,7 @@ main (int argc, char* argv[])
}
// Generate servant code.
+ if (!cl.get_value ("suppress-svnt", false))
{
ServantGenerator svnt_gen (cl);
svnt_gen.generate (tu, file_path);
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index a3424b7b46b..5cee97a3761 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,18 +1,422 @@
-Tue Apr 14 09:48:27 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+Mon Jun 22 09:33:40 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
* CIAO version 0.7 released.
+Thu Jun 18 23:03:06 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tools/Config_Handlers/IRDD_Handler.h:
+ * tools/XML/XML_Schema_Resolver.cpp:
+
+ There is a curious order-of-inclusion problem on macosx-leopoard
+ builds whereby including a non-ACE header before something that
+ includes ace/config.h causes a compiler error in
+ OS_NS_stdlib.inl. It seems that on that platform, the signature
+ of ::unsetenv() varies. I think this should be looked into in
+ greater depth after releasing x.7.0.
+
+Tue Jun 16 00:55:21 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/dance_plan_generator.mpc:
+ * MPC/config/dance_plan_launcher_base.mpc:
+
+ Linking fixes for RACE.
+
+Mon Jun 15 02:22:01 UTC 2009 William R. Otte <wotte@william-r-ottes-macbook-pro-2.local>
+
+ * CIAO-INSTALL.html:
+ * NEWS:
+ Minor updates.
+
+Sun Jun 14 06:58:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ Updated for CB2009 Update 3
+
+Thu Jun 11 19:32:56 UTC 2009 Steven Stallion <stallions@ociweb.com>
+
+ * PROBLEM-REPORT-FORM:
+
+ Added additional PRF question about build method (commit performed
+ on behalf of Chris Cleeland).
+
+Mon Jun 8 09:45:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
+ * ciao/Logger/File_Logger_Backend.cpp
+ * ciao/Server_init.cpp
+ * ciao/Server_init.h
+ * DAnCE/Deployment/Module_Main.h
+ * DAnCE/DomainApplication/Domain_Application_Impl.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * DAnCE/DomainApplicationManager/Node_Locator.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp
+ * DAnCE/ExecutionManager/ExecutionManager_Module.h
+ * DAnCE/Logger/Log_Macros.h
+ * DAnCE/Logger/Logger_Service.cpp
+ * DAnCE/NodeApplication/ComponentAttributesSetter.cpp
+ * DAnCE/NodeApplication/Name_Utilities.cpp
+ * DAnCE/NodeApplication/NodeApplication_Impl.cpp
+ * DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.h
+ * DAnCE/NodeManager/NodeManager_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
+ * DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
+ * DAnCE/RedirectionService/NameServiceRedirection.cpp
+ * DAnCE/RedirectionService/RedirectionService.cpp
+ * DAnCE/RepositoryManager/Repository_Manager_Module.cpp
+ * DAnCE/RepositoryManager/Repository_Manager_Module.h
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+ * DAnCE/RepositoryManager/RepositoryManager_Impl.h
+ * DAnCE/RepositoryManager/RMadmin.cpp
+ * DAnCE/RepositoryManager/URL_Parser.cpp
+ * DAnCE/RepositoryManager/URL_Parser.h
+ * DAnCE/RepositoryManager/ZIP_Wrapper.cpp
+ * DAnCE/Starter/Starter.cpp
+ * DAnCE/TargetManager/CmpClient.cpp
+ * DAnCE/TargetManager/DomainDataManager.cpp
+ Unicode changes
+
+Sun Jun 7 17:58:05 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/Server_init.cpp
+ * DAnCE/NodeApplication/Name_Utilities.cpp
+ Added include of Tokenizer_T.h
+
+Fri Jun 5 18:17:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ciao/ComponentServer/CIAO_ComponentServer.cpp
+ * ciao/ComponentServer/CIAO_ComponentServer.h
+ * ciao/Logger/File_Logger_Backend.cpp
+ * ciao/Server_init.cpp
+ * DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+ * tools/XML/XML_Schema_Resolver.h
+ Unicode fixes
+
+Thu Jun 4 19:12:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/ExecutionManager/ExecutionManager_Module.cpp
+ * DAnCE/NodeManager/Node_Manager_Module.cpp
+ * DAnCE/Plan_Generator/Plan_Generator_Impl.cpp
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+ * tests/CIAO_ComponentServer/SimpleComponent/client.cpp
+ Unicode fixes
+
+Thu Jun 4 14:06:06 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ News updates for next release.
+
+Mon Jun 1 20:29:12 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/cidlc.cpp:
+ * MPC/config/ciaocidldefaults.mpb:
+
+ Added two options: --suppress-lem and --suppress-svnt, which will
+ suppress generation of the local executor mapping and servant code,
+ respectively.
+
+Fri May 29 00:48:01 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * CIDLC/ServantHeaderGenerator.cpp:
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Some tweaks to the generated _svnt files to properly compile with
+ the changes introduced in the previous commit .
+
+Thu May 28 19:07:27 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ More tweaks to the application of the command line option
+ added in
+
+ Thu May 28 14:01:45 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+Thu May 28 18:52:27 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+
+ Applied check for the command line option added in
+
+ Thu May 28 14:01:45 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ in several places needed for correct generation of
+ the executor IDL file.
+
+Thu May 28 14:01:45 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Fixed cut/paste error in comment.
+
+ * CIDLC/ExecutorMappingGenerator.cpp:
+ * CIDLC/ExecImplHeaderGenerator.cpp:
+ * CIDLC/ServantHeaderGenerator.cpp:
+
+ Added command line option to generate an IDL module that
+ encloses the entire executor IDL file, and
+ corresponding 'using namespace' declarations in the
+ servant and executor impl header files. This change is
+ a temporary fix for build errors occurring when facet
+ executor IDL generation is duplicated across IDL files
+ for components which have an inheritance relationship
+ but are located in separate translation units. Thanks
+ to Will Otte <wotte@dre.vanderbilt.edu> for reporting
+ the problem and suggesting the fix.
+
+Wed May 27 23:58:23 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/Plan_Generator/Plan_Generator.mpc:
+ * DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h:
+ * MPC/config/ciao_plan_generator.mpb:
+
+ Updates for RACE.
+
+Fri May 22 12:58:33 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+
+ Warning fixes.
+
+Thu May 21 01:13:28 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tools/Config_Handlers/ERE_Handler.h:
+
+ fix fuzz.
+
+Wed May 20 01:41:39 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * DAnCE/TargetManager/TargetManager.mpc:
+ * DAnCE/TargetManager/TargetManagerExt.idl:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/ERE_Handler.h:
+ * tools/Config_Handlers/Utils/Functors.h:
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+ * tools/IDL3_to_XMI/Literals.h:
+ * tools/XML/XML_Schema_Resolver.tpp:
+ * tools/XML/XercesString.h:
+
+ Updates for borland.
+
+Thu May 14 19:12:56 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * MPC/config/cidlc.mpb:
+
+ Replaced: specific(nmake, vc71, vc8, vc9, vc10)
+ With: specific(prop:microsoft)
+
+Tue May 12 19:04:31 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+
+ Compile fix.
+
+Fri May 8 16:30:19 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/CCD_Handler.cpp:
+ * tools/Config_Handlers/CEPE_Handler.cpp:
+ * tools/Config_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/CRDD_Handler.cpp:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/DP_Handler.cpp:
+ * tools/Config_Handlers/Deployment.hpp:
+ * tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp:
+ * tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp:
+ * tools/Config_Handlers/ERE_Handler.cpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/IRDD_Handler.cpp:
+ * tools/Config_Handlers/MDD_Handler.cpp:
+ * tools/Config_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/PSPE_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/SID_Handler.cpp:
+ * tools/Config_Handlers/RDD_Handler.cpp:
+ * tools/Config_Handlers/Req_Handler.cpp:
+ * tools/Config_Handlers/Utils/Functors.h:
+ * tools/Config_Handlers/XMI.hpp:
+ * tools/Config_Handlers/XMLSchema/Types.hpp:
+ * tools/Config_Handlers/XSCRT/Elements.hpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/ccd.hpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdd.hpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/iad.hpp:
+ * tools/Config_Handlers/pcd.hpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/Config_Handlers/toplevel.cpp:
+
+ New version of XSC generated code, and necessary porting in the handlers
+ as a potential fix for BCB2009 compilation issues.
+
+Mon May 4 15:52:14 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+
+ Fuzz fix.
+
+Wed Apr 29 02:27:23 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * MPC/config/xscdefaults.mpb:
+ * docs/schema/Basic_Deployment_Data.xsd:
+ * docs/schema/cid.xsd:
+ * docs/schema/pcd.xsd:
+ * docs/schema/toplevel.xsd:
+ * tools/Config_Handlers/ADD_Handler.cpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.hpp:
+ * tools/Config_Handlers/Basic_Deployment_Data.cpp:
+ * tools/Config_Handlers/DD_Handler.cpp:
+ * tools/Config_Handlers/Deployment.cpp:
+ * tools/Config_Handlers/Deployment.hpp:
+ * tools/Config_Handlers/IDD_Handler.cpp:
+ * tools/Config_Handlers/MDD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CID_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp:
+ * tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp:
+ * tools/Config_Handlers/XMI.cpp:
+ * tools/Config_Handlers/XMI.hpp:
+ * tools/Config_Handlers/XML_File_Intf.cpp:
+ * tools/Config_Handlers/ccd.cpp:
+ * tools/Config_Handlers/ccd.hpp:
+ * tools/Config_Handlers/cdd.cpp:
+ * tools/Config_Handlers/cdd.hpp:
+ * tools/Config_Handlers/cdp.hpp:
+ * tools/Config_Handlers/cdp.cpp:
+ * tools/Config_Handlers/cid.hpp:
+ * tools/Config_Handlers/cid.cpp:
+ * tools/Config_Handlers/cpd.cpp:
+ * tools/Config_Handlers/cpd.hpp:
+ * tools/Config_Handlers/iad.cpp:
+ * tools/Config_Handlers/iad.hpp:
+ * tools/Config_Handlers/pcd.hpp:
+ * tools/Config_Handlers/pcd.cpp:
+ * tools/Config_Handlers/toplevel.hpp:
+ * tools/Config_Handlers/toplevel.cpp:
+
+ Updates to work with SVN Head version of XSC.
+
+Fri Apr 24 09:18:44 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl:
+
+ Extended a bit error reporting so that errors are not
+ missed in the final log.
+
+Thu Apr 23 11:07:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * DAnCE/TargetManager/CmpClient.cpp
+ * docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
+ * docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
+ Removed not needed unicode to ascii conversions
+
+Thu Apr 23 08:06:25 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * bin/ciao_tests.lst:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp:
+ * tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl:
+
+ Added and enabled a test for bug#3616. It's marked as
+ unfixed since currently there is a problem with XML
+ generation for anonymous types.
+
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+
+ Fixed a compilation error for bug#3607.
+
+Wed Apr 22 14:56:08 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/IDL3_to_XMI/XMI_For_Array/test.idl:
+ * tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Array/run_test.pl:
+ * tests/IDL3_to_XMI/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/test.idl:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd:
+ * tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl:
+ * tests/IDL3_to_XMI/Bug_3607_Regression/test.idl:
+ * tests/IDL3_to_XMI/Bug_3607_Regression/XMI.dtd:
+ * tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl:
+
+ Extended and updated the tests. Now they share XMI.dtd which
+ is the same for all of them.
+
+Wed Apr 22 14:34:02 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h:
+ * tools/IDL3_to_XMI/be_global.cpp:
+ * tools/IDL3_to_XMI/Literals.cpp:
+ * tools/IDL3_to_XMI/Literals.h:
+ * tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp:
+
+ Fixed bug#3607. This also fixes a number of other things. In
+ particular XML generation for module reopening and forward
+ declared types. Proper xmi.id generation in a number of places.
+ XML generation for native types. Proper generation of associations
+ for arrays and sequences. Fixed several typos and beautified the
+ code.
+
+Tue Apr 21 06:50:32 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/fm/*:
+ Added FrameMaker 8 files for the CIAO pdf file. When making changes
+ make sure track changes is enabled.
+
+ This documentation is based on original work contributed by
+ Object Computing, Inc. (OCI), St. Louis, MO, USA,
+ http://www.ociweb.com.
+
+Thu Apr 16 16:13:22 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+
+ Added new section anticipating version 0.7.
+
+Tue Apr 14 10:06:19 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * CIAO version 0.6.9 released.
+
Tue Apr 14 13:57:16 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
* NEWS:
-
+
Reworded entries to be consistent with release note.
Mon Apr 13 15:03:24 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
* DAnCE/tests/ObjectLocatorTest/ObjectLocatorTest.mpc:
- Scoreboard clean-up to avoid minimum corba builds for this test.
+ Scoreboard clean-up to avoid minimum corba builds for this test.
Sun Apr 12 18:55:13 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
diff --git a/CIAO/DAnCE/Deployment/Module_Main.h b/CIAO/DAnCE/Deployment/Module_Main.h
index cba4ba4d5e3..a732954605f 100644
--- a/CIAO/DAnCE/Deployment/Module_Main.h
+++ b/CIAO/DAnCE/Deployment/Module_Main.h
@@ -48,7 +48,7 @@ ACE_TMAIN (int argc, ACE_TCHAR **argv)
dlf->init (argc, argv);
DANCE_DEBUG ((LM_TRACE, DLINFO
- "Module_main.h - initializing ORB\n"));
+ ACE_TEXT("Module_main.h - initializing ORB\n")));
CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
@@ -64,7 +64,7 @@ ACE_TMAIN (int argc, ACE_TCHAR **argv)
}
DANCE_DEBUG ((LM_TRACE, DLINFO
- "Module_Main.h - initializing module instance"));
+ ACE_TEXT("Module_Main.h - initializing module instance")));
DANCE_MODULE_MAIN_CLASS_NAME module_instance;
CORBA::Object_var obj = module_instance.create_object (orb.in (),
@@ -74,11 +74,11 @@ ACE_TMAIN (int argc, ACE_TCHAR **argv)
if (!CORBA::is_nil (obj.in ()))
orb->run ();
else
- DANCE_ERROR ((LM_ERROR, DLINFO "Module_Main.h - "
- "Got nil object reference from Module\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Module_Main.h - ")
+ ACE_TEXT("Got nil object reference from Module\n")));
DANCE_DEBUG ((LM_TRACE, DLINFO
- "Module_Main.h - ORB event loop finished, exiting.\n"));
+ ACE_TEXT("Module_Main.h - ORB event loop finished, exiting.\n")));
orb->destroy ();
#endif
diff --git a/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp b/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp
index b9adc2da088..0c65dfef0d3 100644
--- a/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp
+++ b/CIAO/DAnCE/DomainApplication/Domain_Application_Impl.cpp
@@ -36,14 +36,14 @@ namespace DAnCE
catch (CORBA::Exception &e)
{
DANCE_ERROR((LM_ERROR, DLINFO
- "DomainApplication_Impl::~DomainApplication_Impl - "
- "caught a CORBA exception %C(%C) \"%C\"\n",
+ ACE_TEXT("DomainApplication_Impl::~DomainApplication_Impl - ")
+ ACE_TEXT("caught a CORBA exception %C(%C) \"%C\"\n"),
e._name(), e._rep_id(), e._info().c_str()));
}
catch(...)
{
- DANCE_ERROR((LM_ERROR, DLINFO "DomainApplication_Impl::~DomainApplication_Impl - "
- "caught an unknown exception.\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("DomainApplication_Impl::~DomainApplication_Impl - ")
+ ACE_TEXT("caught an unknown exception.\n")));
}
}
@@ -52,8 +52,8 @@ namespace DAnCE
CORBA::Boolean start)
{
DANCE_TRACE ("DomainApplication_Impl::finishLaunch");
- DANCE_DEBUG ((LM_DEBUG, DLINFO "DomainApplication_impl::finishLaunch - "
- "connections length is %d\n", connections.length()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplication_impl::finishLaunch - ")
+ ACE_TEXT("connections length is %d\n"), connections.length()));
for (TApp2Mgr::iterator iter = this->node_applications_.begin();
iter != this->node_applications_.end();
++iter)
@@ -83,20 +83,20 @@ namespace DAnCE
iter != this->nams_.end();
++iter)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DomainApplication_Impl::startLaunch - "
- "Invoking startLaunch on an application\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("Invoking startLaunch on an application\n")));
::Deployment::Connections_var conn;
Deployment::Application_ptr na = (*iter).ext_id_->startLaunch (configProperty, conn.out());
//Deployment::NodeApplication_ptr na = Deployment::NodeApplication::_narrow (a);
if (CORBA::is_nil (na))
{
DANCE_ERROR ((LM_ERROR, DLINFO
- "DomainApplication_Impl::startLaunch -"
- "Received nil object reference from startLaunch on node managers.\n"));
+ ACE_TEXT("DomainApplication_Impl::startLaunch -")
+ ACE_TEXT("Received nil object reference from startLaunch on node managers.\n")));
throw Deployment::StartError();
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "DomainApplication_Impl::startLaunch - "
- "Application startLaunch succeeded, received %u connections\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("Application startLaunch succeeded, received %u connections\n"),
conn->length ()));
this->node_applications_.bind (na, (*iter).ext_id_);
@@ -109,8 +109,8 @@ namespace DAnCE
}
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "DomainApplication_Impl::startLaunch - "
- "Received %u connections from applications\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplication_Impl::startLaunch - ")
+ ACE_TEXT("Received %u connections from applications\n"),
this->connections_.length ()));
}
diff --git a/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp b/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
index b9956127f84..ac0a2c7660d 100644
--- a/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+++ b/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
@@ -15,35 +15,35 @@ DomainApplicationManager_Impl::DomainApplicationManager_Impl (CORBA::ORB_ptr orb
, plan_ (plan)
, nodes_ (nodes)
{
- DANCE_TRACE(DLINFO "DomainApplicationManager_Impl::DomainApplicationManager_Impl");
+ DANCE_TRACE( "DomainApplicationManager_Impl::DomainApplicationManager_Impl");
this->preparePlan();
- DANCE_DEBUG((LM_DEBUG, DLINFO "DomainApplicationManager_Impl::DomainApplicationManager_Impl - "
- "Successfully prepared plan : %C\n", this->plan_.UUID.in()));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::DomainApplicationManager_Impl - ")
+ ACE_TEXT("Successfully prepared plan : %C\n"), this->plan_.UUID.in()));
}
DomainApplicationManager_Impl::~DomainApplicationManager_Impl()
{
DANCE_TRACE( "DomainApplicationManager_Impl::~DomainApplicationManager_Impl()");
- DANCE_DEBUG ((LM_DEBUG, DLINFO "DomainApplicationManager_Impl::~DomainApplicationManager_Impl - "
- "Destroying %u applications\n", this->running_app_.size()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::~DomainApplicationManager_Impl - ")
+ ACE_TEXT("Destroying %u applications\n"), this->running_app_.size()));
while (0 < this->running_app_.size())
{
DomainApplication_Impl* p = this->running_app_[this->running_app_.size()-1];
Deployment::DomainApplication_var app =
Deployment::DomainApplication::_narrow (this->poa_->servant_to_reference (p));
PortableServer::ObjectId_var id = this->poa_->reference_to_id (app);
- DANCE_DEBUG((LM_TRACE, DLINFO "DomainApplicationManager_impl::~DomainApplicationManager_impl - "
- "deactivating DomainApplication object...\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_impl::~DomainApplicationManager_impl - ")
+ ACE_TEXT("deactivating DomainApplication object...\n")));
this->poa_->deactivate_object (id);
- DANCE_DEBUG((LM_DEBUG, DLINFO "DomainApplicationManager_impl::~DomainApplicationManager_impl - "
- "deleting DomainApplication.\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::~DomainApplicationManager_impl - ")
+ ACE_TEXT("deleting DomainApplication.\n")));
this->running_app_.pop_back();
delete p;
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "DomainApplicationManager_Impl::~DomainApplicationManager_Impl - "
- "Destroying %u managers\n", this->sub_app_mgr_.current_size()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::~DomainApplicationManager_Impl - ")
+ ACE_TEXT("Destroying %u managers\n"), this->sub_app_mgr_.current_size()));
for (DomainApplication_Impl::TNam2Nm::iterator iter = this->sub_app_mgr_.begin();
iter != this->sub_app_mgr_.end();
++iter)
@@ -100,11 +100,11 @@ DomainApplicationManager_Impl::destroyApplication (Deployment::Application_ptr a
if (application->_is_equivalent (app.in()))
{
PortableServer::ObjectId_var id = this->poa_->reference_to_id (application);
- DANCE_DEBUG((LM_TRACE, DLINFO "DomainApplicationManager_impl::destroyApplication - "
- "deactivating application object\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("deactivating application object\n")));
this->poa_->deactivate_object (id);
- DANCE_DEBUG((LM_TRACE, DLINFO "DomainApplicationManager_impl::destroyApplication - "
- "deleting application object\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("deleting application object\n")));
delete p;
for (size_t j = i + 1; j < this->running_app_.size(); ++j)
{
@@ -117,19 +117,19 @@ DomainApplicationManager_Impl::destroyApplication (Deployment::Application_ptr a
}
catch (const Deployment::StopError &e)
{
- ACE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_impl::destroyApplication - "
- "Propagating a received StopError exception\n"));
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Propagating a received StopError exception\n")));
throw e;
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_impl::destroyApplication - "
- "Caught unknown exception."));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Caught unknown exception.")));
throw Deployment::StopError();
}
- ACE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_impl::destroyApplication - "
- "Provided application reference unknown\n"));
+ ACE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_impl::destroyApplication - ")
+ ACE_TEXT("Provided application reference unknown\n")));
throw Deployment::StopError();
}
@@ -151,8 +151,8 @@ DomainApplicationManager_Impl::getApplications ()
Deployment::DomainApplication::_narrow (ref.in ());
}
- DANCE_DEBUG((LM_DEBUG, DLINFO "DomainApplicationManager_impl::getApplications - "
- "Returning %u running applications\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::getApplications - ")
+ ACE_TEXT("Returning %u running applications\n"),
running_app->length ()));
return running_app;
}
@@ -160,7 +160,7 @@ DomainApplicationManager_Impl::getApplications ()
::Deployment::DeploymentPlan *
DomainApplicationManager_Impl::getPlan ()
{
- DANCE_TRACE ( DLINFO "DomainApplicationManager_Impl::getPlan ()");
+ DANCE_TRACE ("DomainApplicationManager_Impl::getPlan ()");
Deployment::DeploymentPlan* plan = 0;
@@ -177,7 +177,7 @@ void
DomainApplicationManager_Impl::
dump_connections (const ::Deployment::Connections & /*connections*/) const
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "DomainApplicationManager_impl::dump_connections - started\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::dump_connections - started\n")));
// CIAO_TRACE("CIAO::DomainApplicationManager_Impl::dump_connections");
// const CORBA::ULong conn_len = connections.length ();
@@ -233,7 +233,7 @@ dump_connections (const ::Deployment::Connections & /*connections*/) const
// DANCE_DEBUG((LM_DEBUG, "[%M] ---------------------\n"));
// }
- DANCE_DEBUG((LM_DEBUG, DLINFO "DomainApplicationManager_impl::dump_connections - finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_impl::dump_connections - finished\n")));
}
void
@@ -242,8 +242,8 @@ DomainApplicationManager_Impl::split_plan (const Deployment::DeploymentPlan & pl
{
DANCE_TRACE ( "DomainApplicationManager_Impl::split_plan");
- DANCE_DEBUG ((LM_TRACE, "DomainApplicationManager_Impl::split_plan - "
- "Creating sub-plans\n"));
+ DANCE_DEBUG ((LM_TRACE, ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Creating sub-plans\n")));
// Create empty sub-plans
for (CORBA::ULong i = 0; i < plan.instance.length(); ++i)
{
@@ -274,13 +274,13 @@ DomainApplicationManager_Impl::split_plan (const Deployment::DeploymentPlan & pl
sub_plans.bind (node, tmp_plan);
- DANCE_DEBUG ((LM_TRACE, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "Created sub-plan for node %C with UUID %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Created sub-plan for node %C with UUID %C\n"),
node.c_str (), child_uuid.c_str ()));
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "First phase produced %u child plans, proceeding to second\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("First phase produced %u child plans, proceeding to second\n")));
// (1) Iterate over the <instance> field of the global DeploymentPlan
// structure.
@@ -288,8 +288,8 @@ DomainApplicationManager_Impl::split_plan (const Deployment::DeploymentPlan & pl
// plans one by one.
for (CORBA::ULong i = 0; i < plan.instance.length (); ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "Processing instance : %C\n", plan.instance[i].name.in()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Processing instance : %C\n"), plan.instance[i].name.in()));
// @@TODO Fill in the child deployment plan in the map.
// If the component instance already exists in the child plan,
// then we overwrite the existing instance, since the new instance
@@ -303,8 +303,8 @@ DomainApplicationManager_Impl::split_plan (const Deployment::DeploymentPlan & pl
if (0 != sub_plans.find (ACE_CString (my_instance.node.in()), child_plan))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "ERROR: Unable to find sub-plan for instance %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("ERROR: Unable to find sub-plan for instance %C\n"),
my_instance.node.in ()));
}
@@ -361,17 +361,17 @@ DomainApplicationManager_Impl::split_plan (const Deployment::DeploymentPlan & pl
// duplicate <implementation> for the optimization.
child_plan.instance[index_ins-1].implementationRef = index_imp - 1;
- DANCE_DEBUG ((LM_TRACE, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "Processing connections.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Processing connections.\n")));
// Copy connections
for (CORBA::ULong j = 0; j < plan.connection.length(); ++j)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "For connection : %C\n", plan.connection[j].name.in()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("For connection : %C\n"), plan.connection[j].name.in()));
for (CORBA::ULong k = 0; k < plan.connection[j].internalEndpoint.length(); ++k)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "For endpoint : %C(%C)\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("For endpoint : %C(%C)\n"),
plan.connection[j].internalEndpoint[k].portName.in(),
plan.connection[j].internalEndpoint[k].provider ? "provider" : "client"));
if (i == plan.connection[j].internalEndpoint[k].instanceRef) // the instance (i) is referenced by the connection
@@ -408,8 +408,8 @@ DomainApplicationManager_Impl::split_plan (const Deployment::DeploymentPlan & pl
}
//Debug
- DANCE_DEBUG ((LM_DEBUG, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "Original plan connection count : %u\n", plan.connection.length()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Original plan connection count : %u\n"), plan.connection.length()));
CORBA::ULong cnt = 0;
for (TNodePlans::iterator it = sub_plans.begin(); it != sub_plans.end(); ++it)
{
@@ -417,8 +417,8 @@ DomainApplicationManager_Impl::split_plan (const Deployment::DeploymentPlan & pl
// DANCE_DEBUG((LM_DEBUG, "[%M] Dumping deployment plan #%C:\n", (*it).ext_id_.c_str()));
// Deployment::DnC_Dump::dump((*it).int_id_);
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "DomainApplicationManager_Impl::split_plan - "
- "Child plans connection count : %u\n", cnt));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DomainApplicationManager_Impl::split_plan - ")
+ ACE_TEXT("Child plans connection count : %u\n"), cnt));
}
void
@@ -432,7 +432,7 @@ DomainApplicationManager_Impl::preparePlan()
TNodePlans sub_plans;
// Splitting deployment plan on sub plans for each node
DomainApplicationManager_Impl::split_plan (this->plan_, sub_plans);
- DANCE_DEBUG((LM_TRACE, DLINFO "DomainApplicationManager_Impl::preparePlan - Plan successfully split\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - Plan successfully split\n")));
// Executing preparePlan on each NodeManager described in DeploymentPlan
for (TNodePlans::iterator iter_plans = sub_plans.begin();
iter_plans != sub_plans.end();
@@ -443,15 +443,15 @@ DomainApplicationManager_Impl::preparePlan()
// If NodeManager not found throw StartError exception
if (CORBA::is_nil (nm.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_Impl::preparePlan - "
- "Deployment::StartError exception. NodeManager %C cannot be found\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Deployment::StartError exception. NodeManager %C cannot be found\n"),
(*iter_plans).ext_id_.c_str()));
throw Deployment::StartError ( (*iter_plans).ext_id_.c_str(), "NodeManager not found");
}
// Calling preparePlan for node, specified in current sub plan
- DANCE_DEBUG((LM_TRACE, DLINFO "DomainApplicationManager_Impl::preparePlan - "
- "Calling preparePlan on node %C\n",
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Calling preparePlan on node %C\n"),
(*iter_plans).ext_id_.c_str()));
Deployment::NodeApplicationManager_ptr nam
@@ -460,37 +460,37 @@ DomainApplicationManager_Impl::preparePlan()
if (CORBA::is_nil (nam))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_Impl::preparePlan - "
- "PreparePlan failed for node %C, returning a nill "
- "NodeApplicationManager poiniter.\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("PreparePlan failed for node %C, returning a nill ")
+ ACE_TEXT("NodeApplicationManager pointer.\n"),
(*iter_plans).ext_id_.c_str()));
throw ::Deployment::StartError();
}
// We save NAM reference ptr in TNodes vector were it places to var variable
this->sub_app_mgr_.bind (nam, nm);
- DANCE_DEBUG ((LM_INFO, DLINFO "DomainApplicationManager_Impl::preparePlan - "
- "Sucessfully prepared node %C for deployment\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Sucessfully prepared node %C for deployment\n"),
(*iter_plans).ext_id_.c_str()));
}
}
catch (Deployment::StartError &e)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_Impl::preparePlan - "
- "Propagating StartError exception caught here\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Propagating StartError exception caught here\n")));
throw e;
}
catch (CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_Impl::preparePlan - "
- "Caught a CORBA exception, propagating StartError: %s\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Caught a CORBA exception, propagating StartError: %C\n"),
ex._info ().c_str ()));
throw ::Deployment::StartError ();
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DomainApplicationManager_Impl::preparePlan - "
- "Caught unknown exception. Propagating StartError\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DomainApplicationManager_Impl::preparePlan - ")
+ ACE_TEXT("Caught unknown exception. Propagating StartError\n")));
throw ::Deployment::StartError ();
}
}
diff --git a/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp b/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp
index 12db00a8530..412f00ec159 100644
--- a/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp
+++ b/CIAO/DAnCE/DomainApplicationManager/Node_Locator.cpp
@@ -17,7 +17,7 @@ namespace DAnCE
::Deployment::NodeManager_ptr
Node_Locator::locate_node (const ACE_TCHAR *name)
{
- ACE_CString ior;
+ ACE_TString ior;
if (this->nodes_.find (name, ior) == 0)
{
@@ -36,8 +36,8 @@ namespace DAnCE
if (filename == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Locator::process_node_map - "
- "Error: Provided with nil filename\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::process_node_map - ")
+ ACE_TEXT("Error: Provided with nil filename\n")));
return false;
}
@@ -45,8 +45,8 @@ namespace DAnCE
if (inf == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Locator::process_node_map - "
- "Fail to open node manager map data file: <%s>\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::process_node_map - ")
+ ACE_TEXT("Fail to open node manager map data file: <%s>\n"),
filename));
return false;
}
@@ -70,8 +70,8 @@ namespace DAnCE
ACE_CString ior (ior_start + 1, ACE_OS::strlen (ior_start + 1));
reader.alloc ()->free (string);
- DANCE_DEBUG ((LM_INFO, DLINFO "Node_Locator::process_node_map - "
- "Storing IOR %C for destination %C\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("Node_Locator::process_node_map - ")
+ ACE_TEXT("Storing IOR %C for destination %C\n"),
ior.c_str (), destination.c_str ()));
this->nodes_.bind (destination, ior);
}
@@ -84,17 +84,17 @@ namespace DAnCE
{
DANCE_TRACE ("Node_Locator::resolve_ior");
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Locator::resolve_ior - "
- "Resolving ior %s for destination %s\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Locator::resolve_ior - ")
+ ACE_TEXT("Resolving ior %s for destination %s\n"),
ior, name));
CORBA::Object_var obj = this->orb_->string_to_object (ior);
if (CORBA::is_nil (obj.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Locator::resolve_ior - "
- "Error: Unable to resolve object reference for destination "
- "%s and ior %s\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::resolve_ior - ")
+ ACE_TEXT("Error: Unable to resolve object reference for destination ")
+ ACE_TEXT("%s and ior %s\n"),
name, ior));
return false;
}
@@ -103,9 +103,9 @@ namespace DAnCE
if (CORBA::is_nil (nm.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Locator::resolve_ior - "
- "Error: Unable to narrow reference for destination "
- "%s and ior %s\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::resolve_ior - ")
+ ACE_TEXT("Error: Unable to narrow reference for destination ")
+ ACE_TEXT("%s and ior %s\n"),
name, ior));
return false;
}
@@ -127,8 +127,8 @@ namespace DAnCE
if (CORBA::is_nil (this->nc_.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Locator::ns_lookup - "
- "Nameservice lookup of %s failed because there is no naming service.\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Nameservice lookup of %s failed because there is no naming service.\n"),
nodename));
return ::Deployment::NodeManager::_nil ();
}
@@ -146,8 +146,8 @@ namespace DAnCE
if (CORBA::is_nil (nm.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Locator::ns_lookup - "
- "Unable to narrow provided reference for node %s\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Unable to narrow provided reference for node %s\n"),
nodename));
return ::Deployment::NodeManager::_nil ();
}
@@ -156,8 +156,8 @@ namespace DAnCE
}
catch (const CORBA::Exception &e)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Locator::ns_lookup - "
- "Caught CORBA exception while looking up name %s:%C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Locator::ns_lookup - ")
+ ACE_TEXT("Caught CORBA exception while looking up name %s:%C\n"),
nodename, e._info ().c_str ()));
}
catch (...)
diff --git a/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp b/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
index 7dd4ba032cb..c1569439406 100644
--- a/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
+++ b/CIAO/DAnCE/ExecutionManager/ExecutionManager_Impl.cpp
@@ -26,17 +26,17 @@ ExecutionManager_Impl::~ExecutionManager_Impl()
iter != this->managers_.end();
++iter)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "ExecutionManager_Impl::~ExecutionManager_Impl - "
- "deactivating DAM \"%C\"\n", (*iter).ext_id_.c_str()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("deactivating DAM \"%C\"\n"), (*iter).ext_id_.c_str()));
PortableServer::ObjectId_var id = this->poa_->servant_to_id ( (*iter).int_id_);
- DANCE_DEBUG ((LM_TRACE, DLINFO "ExecutionManager_Impl::~ExecutionManager_Impl - "
- "before deactivate_object...\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("before deactivate_object...\n")));
this->poa_->deactivate_object (id.in());
- DANCE_DEBUG ((LM_TRACE, DLINFO "ExecutionManager_Impl::~ExecutionManager_Impl - "
- "deleting DomainApplicationManager\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("deleting DomainApplicationManager\n")));
delete (*iter).int_id_;
- DANCE_DEBUG ((LM_TRACE, DLINFO "ExecutionManager_Impl::~ExecutionManager_Impl - "
- "DomainApplicationManager deleted\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::~ExecutionManager_Impl - ")
+ ACE_TEXT("DomainApplicationManager deleted\n")));
}
}
@@ -50,8 +50,8 @@ ExecutionManager_Impl::preparePlan (const ::Deployment::DeploymentPlan & plan,
DomainApplicationManager_Impl * dam = 0;
if (0 == this->managers_.find (plan.UUID.in(), dam))
{
- DANCE_DEBUG((LM_NOTICE, DLINFO "ExecutionManager_Impl::preparePlan - "
- "DomainApplicationManager with specified UUID already exists\n"));
+ DANCE_DEBUG((LM_NOTICE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("DomainApplicationManager with specified UUID already exists\n")));
// Should we return on this situation reference on existed DomainApplicationManager or
// we should throw PlanError exception?
CORBA::Object_var ref = this->poa_->servant_to_reference (dam);
@@ -66,13 +66,13 @@ ExecutionManager_Impl::preparePlan (const ::Deployment::DeploymentPlan & plan,
this->locator_),
CORBA::NO_MEMORY ());
this->managers_.rebind (plan.UUID.in(), dam_servant);
- DANCE_DEBUG((LM_TRACE, DLINFO "ExecutionManager_Impl::preparePlan - "
- "Domain Application Manager was successfully created.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("Domain Application Manager was successfully created.\n")));
PortableServer::ObjectId_var id = this->poa_->activate_object (dam_servant);
- DANCE_DEBUG((LM_NOTICE, DLINFO "ExecutionManager_Impl::preparePlan - "
- "Plan with UUID %C was successfully prepared.\n"));
+ DANCE_DEBUG((LM_NOTICE, DLINFO ACE_TEXT("ExecutionManager_Impl::preparePlan - ")
+ ACE_TEXT("Plan with UUID %C was successfully prepared.\n")));
CORBA::Object_var ref = this->poa_->id_to_reference (id.in());
return Deployment::DomainApplicationManager::_narrow (ref.in ());
}
@@ -105,7 +105,7 @@ ExecutionManager_Impl::getManagers ()
void
ExecutionManager_Impl::destroyManager (::Deployment::DomainApplicationManager_ptr appManager)
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "ExecutionManager_Impl::destroyManager - started\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - started\n")));
for (TDomainManagers::iterator iter = this->managers_.begin();
iter != this->managers_.end();
@@ -117,17 +117,17 @@ ExecutionManager_Impl::destroyManager (::Deployment::DomainApplicationManager_pt
this->managers_.unbind ( (*iter).ext_id_);
PortableServer::ObjectId_var id = this->poa_->reference_to_id (appManager);
this->poa_->deactivate_object (id.in());
- DANCE_DEBUG((LM_INFO, DLINFO "ExecutionManager_Impl::destroyManager - deleting DomainApplicationManager\n"));
+ DANCE_DEBUG((LM_INFO, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - deleting DomainApplicationManager\n")));
delete (*iter).int_id_;
(*iter).int_id_ = 0;
- DANCE_DEBUG((LM_INFO, DLINFO "ExecutionManager_Impl::destroyManager - DomainApplicationManager deleted\n"));
+ DANCE_DEBUG((LM_INFO, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - DomainApplicationManager deleted\n")));
//this->managers_.unbind ( (*iter).ext_id_);
- DANCE_DEBUG((LM_INFO, DLINFO "ExecutionManager_Impl::destroyManager - finished\n"));
+ DANCE_DEBUG((LM_INFO, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - finished\n")));
return;
}
}
- DANCE_ERROR ((LM_ERROR, DLINFO "ExecutionManager_Impl::destroyManager - "
- "corresponding DomainApplicationManager cannot be found\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("ExecutionManager_Impl::destroyManager - ")
+ ACE_TEXT("corresponding DomainApplicationManager cannot be found\n")));
throw ::Deployment::StopError();
}
diff --git a/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp b/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp
index 7d27710e0db..0aa41520170 100644
--- a/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp
+++ b/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.cpp
@@ -25,10 +25,10 @@ namespace DAnCE
namespace ExecutionManager
{
bool
- write_IOR (const char * ior_file_name, const char* ior)
+ write_IOR (const ACE_TCHAR * ior_file_name, const char* ior)
{
FILE* ior_output_file_ =
- ACE_OS::fopen (ior_file_name, "w");
+ ACE_OS::fopen (ior_file_name, ACE_TEXT("w"));
if (ior_output_file_)
{
@@ -36,14 +36,14 @@ namespace DAnCE
"%s",
ior);
ACE_OS::fclose (ior_output_file_);
- DANCE_DEBUG ( (LM_TRACE, DLINFO "ExectionManager::write_IOR - EM's ior was written into file \"%C\"\n", ior_file_name));
+ DANCE_DEBUG ( (LM_TRACE, DLINFO ACE_TEXT("ExectionManager::write_IOR - EM's ior was written into file \"%C\"\n"), ior_file_name));
return true;
}
else
{
DANCE_ERROR ( (LM_ERROR,
- "[%M] DAnCE_ExecutionManager::write_ior-file - "
- "Unable to open ExecutionManager IOR output file %C : %m\n",
+ ACE_TEXT("[%M] DAnCE_ExecutionManager::write_ior-file - ")
+ ACE_TEXT("Unable to open ExecutionManager IOR output file %C : %m\n"),
ior_file_name));
return false;
}
@@ -63,7 +63,7 @@ DAnCE_ExecutionManager_Module::~DAnCE_ExecutionManager_Module (void)
}
bool
-DAnCE_ExecutionManager_Module::parse_args (int argc, char *argv[])
+DAnCE_ExecutionManager_Module::parse_args (int argc, ACE_TCHAR *argv[])
{
DANCE_TRACE ("DAnCE_ExecutionManager_Module::parse_args");
@@ -93,66 +93,66 @@ DAnCE_ExecutionManager_Module::parse_args (int argc, char *argv[])
switch (c)
{
case 'e':
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::parse_args - "
- "Output filename is %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("Output filename is %s\n"),
get_opts.opt_arg ()));
this->options_.exec_mgr_file_ = get_opts.opt_arg ();
break;
case 'n':
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::parse_args - "
- "--node-mgr option was parsed out for EM\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--node-mgr option was parsed out for EM\n")));
this->options_.node_managers_.push_back (get_opts.opt_arg ());
break;
case 'p':
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::parse_args - "
- "--process-ns enabled for EM\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--process-ns enabled for EM\n")));
this->options_.process_ns_ = true;
this->options_.process_ns_file_ = get_opts.opt_arg ();
break;
case 'c':
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::parse_args - "
- "--create-plan-ns enabled for EM\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--create-plan-ns enabled for EM\n")));
this->options_.create_plan_ns_ = true;
this->options_.create_plan_ns_ior_ = get_opts.opt_arg ();
break;
case 'r':
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::parse_args - "
- "--rebind-plan-ns enabled for EM\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--rebind-plan-ns enabled for EM\n")));
this->options_.rebind_plan_ns_ = true;
this->options_.rebind_plan_ns_ior_ = get_opts.opt_arg ();
break;
case 'i':
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::parse_args - "
- "--port-indirection enabled for EM\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--port-indirection enabled for EM\n")));
this->options_.port_indirection_ = true;
break;
case 'f':
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::parse_args - "
- "--ignore-failure enabled for EM\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::parse_args - ")
+ ACE_TEXT("--ignore-failure enabled for EM\n")));
this->options_.ignore_failure_ = true;
break;
case 0:
if (ACE_OS::strcmp (get_opts.long_option (),
- "node-map") == 0)
+ ACE_TEXT("node-map")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Found Node map filename %C.\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Found Node map filename %s.\n"),
get_opts.opt_arg ()));
this->options_.node_map_ = get_opts.opt_arg ();
break;
}
else if (ACE_OS::strcmp (get_opts.long_option (),
- "domain-nc") == 0)
+ ACE_TEXT("domain-nc")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Binding to domain naming context %C.\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Binding to domain naming context %s.\n"),
get_opts.opt_arg ()));
this->options_.domain_nc_ = get_opts.opt_arg ();
break;
@@ -162,7 +162,7 @@ DAnCE_ExecutionManager_Module::parse_args (int argc, char *argv[])
//case '?': // Display help for use of the server.
//default:
DANCE_ERROR_RETURN ((LM_ERROR,
- "usage: %C\n"
+ "usage: %s\n"
"\t--exec-mgr,-e [execution manager ior file name]\n"
"\t--node-mgr,-n <node name>[=node manager ior file name]\n"
"\t--node-map <file name> \t\tFile containing a node manager map\n"
@@ -191,26 +191,26 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
if (this->em_impl_ != 0)
{
DANCE_ERROR ( (LM_ERROR,
- DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "Error: ExecutionManager already exists.\n"));
+ DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("Error: ExecutionManager already exists.\n")));
return CORBA::Object::_nil ();
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "before parsing arguments.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before parsing arguments.\n")));
if (!this->parse_args (argc, argv))
return CORBA::Object::_nil ();
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "before creating value factory.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before creating value factory.\n")));
CORBA::ValueFactory_var vf = new Components::Cookie_init();
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "before registering value factory.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before registering value factory.\n")));
vf = orb->register_value_factory ("IDL:omg.org/Components/Cookie:1.0", vf.in());
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "after creating value factory.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("after creating value factory.\n")));
// Get reference to Root POA.
CORBA::Object_var poa_obj
= orb->resolve_initial_references ("RootPOA");
@@ -225,8 +225,8 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
policies.length (2);
try
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "before creating the \"Managers\" POA.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before creating the \"Managers\" POA.\n")));
policies[0] = poa->create_id_assignment_policy (PortableServer::USER_ID);
policies[1] = poa->create_lifespan_policy (PortableServer::PERSISTENT);
@@ -246,8 +246,8 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
{
if (this->options_.domain_nc_)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "before resolving \"DomainNC\".\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before resolving \"DomainNC\".\n")));
CORBA::Object_var domain_obj = orb->string_to_object (this->options_.domain_nc_);
if (!CORBA::is_nil (domain_obj.in ()))
{
@@ -255,7 +255,7 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
if (CORBA::is_nil (domain_nc.in ()))
{
DANCE_ERROR ( (LM_ERROR,
- DLINFO "Narrow to NamingContext return nil for DomainNC.\n"));
+ DLINFO ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
return CORBA::Object::_nil ();
}
}
@@ -264,7 +264,7 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
catch (CORBA::Exception&)
{
DANCE_DEBUG ((LM_DEBUG,
- DLINFO "DomainNC context not found!\n"));
+ DLINFO ACE_TEXT("DomainNC context not found!\n")));
}
// Initialize IOR table
@@ -277,12 +277,12 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
if (CORBA::is_nil (adapter.in ()))
{
DANCE_ERROR ( (LM_ERROR,
- DLINFO "Nil IORTable\n"));
+ DLINFO ACE_TEXT("Nil IORTable\n")));
return CORBA::Object::_nil ();
}
// Create and install the DAnCE Daemon servant on child POA
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - before creating EM servant.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - before creating EM servant.\n")));
ACE_NEW_RETURN (this->em_impl_,
DAnCE::ExecutionManager_Impl (orb,
poa.in (),
@@ -312,7 +312,7 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
// Binding execution manager to name service
if (!CORBA::is_nil (domain_nc.in ()))
{
- DANCE_DEBUG((LM_TRACE, DLINFO "Registering EM in NC.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Registering EM in NC.\n")));
CosNaming::Name name (1);
name.length (1);
name[0].id = CORBA::string_dup ("ExecutionManager");
@@ -322,8 +322,8 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
// End ExecutionManager initialization part
// Initializing NodeManagers
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "before processing --node-mgr options(%u).\n", this->options_.node_managers_.size()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("before processing --node-mgr options(%u).\n"), this->options_.node_managers_.size()));
for (size_t i = 0; i < this->options_.node_managers_.size(); ++i)
{
size_t pos = this->options_.node_managers_[i].find ('=');
@@ -332,8 +332,8 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
if (ACE_CString::npos == pos)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "Execution manager received --node-mgr without IOR\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("Execution manager received --node-mgr without IOR\n")));
continue;
}
@@ -352,14 +352,14 @@ DAnCE_ExecutionManager_Module::create_object (CORBA::ORB_ptr orb,
continue;
}
*/
- DANCE_DEBUG ((LM_TRACE, DLINFO "Placing node \"%C\" to EM's map.\n", node_name.c_str()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Placing node \"%C\" to EM's map.\n"), node_name.c_str()));
this->em_impl_->add_node_manager (node_name.c_str(), nm_ior.c_str ());
}
if (this->options_.node_map_ != 0)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_ExecutionManager_Module::create_object - "
- "Parsing node map %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_ExecutionManager_Module::create_object - ")
+ ACE_TEXT("Parsing node map %C\n"),
this->options_.node_map_));
this->em_impl_->load_node_map (this->options_.node_map_);
}
diff --git a/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h b/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h
index 869c2b093d4..0f4488fdfea 100644
--- a/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h
+++ b/CIAO/DAnCE/ExecutionManager/ExecutionManager_Module.h
@@ -46,15 +46,15 @@ class DAnCE_ExecutionManager_Module_Export DAnCE_ExecutionManager_Module
public:
struct SOptions
{
- const char* exec_mgr_file_;
+ const ACE_TCHAR* exec_mgr_file_;
bool process_ns_;
- const char* process_ns_file_;
+ const ACE_TCHAR* process_ns_file_;
bool create_plan_ns_;
- const char* create_plan_ns_ior_;
+ const ACE_TCHAR* create_plan_ns_ior_;
bool rebind_plan_ns_;
- const char* rebind_plan_ns_ior_;
+ const ACE_TCHAR* rebind_plan_ns_ior_;
bool port_indirection_;
- ACE_Vector<ACE_CString> node_managers_;
+ ACE_Vector<ACE_TString> node_managers_;
bool ignore_failure_;
const char *node_map_;
const char *domain_nc_;
diff --git a/CIAO/DAnCE/Logger/Log_Macros.h b/CIAO/DAnCE/Logger/Log_Macros.h
index 828ebe6c9f4..1df68a0c970 100644
--- a/CIAO/DAnCE/Logger/Log_Macros.h
+++ b/CIAO/DAnCE/Logger/Log_Macros.h
@@ -19,7 +19,7 @@
# endif
#endif DANCE_NTRACE
*/
-#define DLINFO "(%P|%t) [%M] - %T - "
+#define DLINFO ACE_TEXT("(%P|%t) [%M] - %T - ")
#if (DANCE_NTRACE == 1)
# if !defined (ACE_NTRACE)
diff --git a/CIAO/DAnCE/Logger/Logger_Service.cpp b/CIAO/DAnCE/Logger/Logger_Service.cpp
index d8e9d2b5097..8766f7a060b 100644
--- a/CIAO/DAnCE/Logger/Logger_Service.cpp
+++ b/CIAO/DAnCE/Logger/Logger_Service.cpp
@@ -135,7 +135,7 @@ namespace DAnCE
}
ACE_Log_Msg::instance()->priority_mask(new_mask, ACE_Log_Msg::PROCESS);
- DANCE_DEBUG ( (LM_TRACE, DLINFO "Logging level is set to %i\n", this->log_level_));
+ DANCE_DEBUG ( (LM_TRACE, DLINFO ACE_TEXT("Logging level is set to %i\n"), this->log_level_));
}
ACE_Log_Msg_Backend *
diff --git a/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp b/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp
index a93cbeff4f1..7914df106f1 100644
--- a/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp
+++ b/CIAO/DAnCE/NodeApplication/ComponentAttributesSetter.cpp
@@ -57,8 +57,8 @@ ComponentAttributesSetter::SetComponentAttributes (ACE_CString /*componentName*/
continue;
}
DANCE_DEBUG ((LM_DEBUG, DLINFO
- "ComponentAttributesSetter::SetComponentAttributes - "
- "Populating attribute name %C\n", name.c_str()));
+ ACE_TEXT("ComponentAttributesSetter::SetComponentAttributes - ")
+ ACE_TEXT("Populating attribute name %C\n"), name.c_str()));
ACE_CString method = "_set_";
method += prop[i].name.in();
@@ -74,8 +74,8 @@ ComponentAttributesSetter::SetComponentAttributes (ACE_CString /*componentName*/
catch (const CORBA::BAD_OPERATION &)
{
DANCE_ERROR ((LM_WARNING, DLINFO
- "ComponentAttributesSetter::SetComponentAttributes - "
- "Caught BAD_OPERATION while trying to set attribute %C\n",
+ ACE_TEXT("ComponentAttributesSetter::SetComponentAttributes - ")
+ ACE_TEXT("Caught BAD_OPERATION while trying to set attribute %C\n"),
name.c_str ()));
}
catch (const CORBA::Exception &e)
diff --git a/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp b/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp
index 2134f278d55..9b4d8c92c18 100644
--- a/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp
+++ b/CIAO/DAnCE/NodeApplication/Name_Utilities.cpp
@@ -4,6 +4,7 @@
#include "ace/Auto_Ptr.h"
#include "ace/SString.h"
+#include "ace/Tokenizer_T.h"
#include "Logger/Log_Macros.h"
namespace DAnCE
@@ -23,7 +24,7 @@ namespace DAnCE
}
return false;
}
-
+
bool
Name_Utilities::bind_object (const char *name,
CORBA::Object_ptr obj,
@@ -33,146 +34,146 @@ namespace DAnCE
if (CORBA::is_nil (ctx))
{
- DANCE_ERROR ((LM_WARNING, DLINFO "Name_Utilities::bind_object - "
- "Provided naming context is nil, component %s will not be registered.",
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("Provided naming context is nil, component %C will not be registered."),
name));
return false;
}
-
+
try
{
CosNaming::Name nm;
-
+
Name_Utilities::build_name (name, nm);
-
+
if (nm.length () == 0)
{
- DANCE_ERROR ((LM_WARNING, DLINFO "Name_Utilities::bind_object - "
- "build_name resulted in an invalid name for string %C\n",
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("build_name resulted in an invalid name for string %C\n"),
name));
return false;
}
-
+
Name_Utilities::bind_context (nm, ctx);
-
+
try
{
ctx->bind (nm, obj);
}
catch (const CosNaming::NamingContext::AlreadyBound &)
{
- DANCE_ERROR ((LM_WARNING, DLINFO "Name_Utilities::bind_object - "
- "Name %C already bound, rebinding....\n",
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("Name %C already bound, rebinding....\n"),
name));
ctx->rebind (nm, obj);
}
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Name_Utilities::bind_object - "
- "Caught CORBA exception while attempting to bind name %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("Caught CORBA exception while attempting to bind name %C: %C\n"),
name, ex._info ().c_str ()));
return false;
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Name_Utilities::bind_object - "
- "Caught unknown C++ exception while attemptint to bind name %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Name_Utilities::bind_object - ")
+ ACE_TEXT("Caught unknown C++ exception while attemptint to bind name %C\n"),
name));
return false;
}
-
+
return true;
}
-
+
void
Name_Utilities::bind_context (CosNaming::Name &nm,
CosNaming::NamingContext_ptr ctx)
{
DANCE_TRACE ("Name_Utilities::bind_context");
-
+
if (CORBA::is_nil (ctx))
{
- DANCE_ERROR ((LM_WARNING, DLINFO "Name_Utilities::bind_context - "
- "Provided naming context is nil, the naming context will not be bound."));
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::bind_context - ")
+ ACE_TEXT("Provided naming context is nil, the naming context will not be bound.")));
}
CosNaming::Name newname (nm.length ());
-
+
for (CORBA::ULong i = 0;
i < (nm.length () - 1); ++i)
{
newname.length (i + 1);
newname[i] = nm[i];
-
+
try
{
ctx->bind_new_context (newname);
- DANCE_DEBUG ((LM_TRACE, DLINFO "Name_Utilities::bind_context - "
- "Bound new context %C\n", newname[i].id.in ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Name_Utilities::bind_context - ")
+ ACE_TEXT("Bound new context %C\n"), newname[i].id.in ()));
}
- catch (CosNaming::NamingContext::AlreadyBound &)
+ catch (CosNaming::NamingContext::AlreadyBound &)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "Name_Utilities::bind_context - "
- "Context %C already bound.\n", newname[i].id.in ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Name_Utilities::bind_context - ")
+ ACE_TEXT("Context %C already bound.\n"), newname[i].id.in ()));
}
}
}
-
+
bool
- Name_Utilities::unbind_object (const char *name,
+ Name_Utilities::unbind_object (const char *name,
CosNaming::NamingContext_ptr ctx)
{
DANCE_TRACE ("Name_Utilities::unbind_object");
if (CORBA::is_nil (ctx))
{
- DANCE_ERROR ((LM_WARNING, DLINFO "Name_Utilities::unbind_object - "
- "Provided naming context is nil, instance %s will not be unbound\n",
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("Name_Utilities::unbind_object - ")
+ ACE_TEXT("Provided naming context is nil, instance %C will not be unbound\n"),
name));
}
-
+
CosNaming::Name nm;
Name_Utilities::build_name (name, nm);
-
+
try
{
ctx->unbind (nm);
}
catch (CORBA::Exception &e)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Name_Utilities::unbind_object - "
- "Caught CORBA exception whilst unbinding name %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Name_Utilities::unbind_object - ")
+ ACE_TEXT("Caught CORBA exception whilst unbinding name %C: %C\n"),
name, e._info ().c_str ()));
return false;
}
return true;
}
-
+
void
Name_Utilities::build_name (const char *name,
CosNaming::Name &nm)
{
DANCE_TRACE ("Name_Utilities::build_name");
-
- /*ACE_Auto_Basic_Array_Ptr<ACE_TCHAR>*/ ACE_TCHAR *safe_array (new char[ACE_OS::strlen (name) + 1]);
-
- ACE_Tokenizer parser (ACE_OS::strcpy (safe_array/*.get ()*/, name));
+
+ /*ACE_Auto_Basic_Array_Ptr<ACE_TCHAR>*/ char *safe_array (new char[ACE_OS::strlen (name) + 1]);
+
+ ACE_Tokenizer_T<char> parser (ACE_OS::strcpy (safe_array/*.get ()*/, name));
parser.delimiter ('/');
-
- ACE_TCHAR *next (0);
-
+
+ char *next (0);
+
while ((next = parser.next ()) != 0)
{
CORBA::ULong i = nm.length ();
nm.length (i + 1);
-
- DANCE_DEBUG ((LM_TRACE, DLINFO "Name_Utilities::build_name - "
- "Found name component %C\n",
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Name_Utilities::build_name - ")
+ ACE_TEXT("Found name component %C\n"),
next));
-
+
nm[i].id = CORBA::string_dup (next);
}
}
-
+
}
diff --git a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
index b242c1a24af..fc57b6631ed 100644
--- a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
+++ b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp
@@ -38,8 +38,8 @@ namespace
DANCE_TRACE ("NodeApplicion::<anonymous>::get_property_value<T>");
CORBA::Any any;
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Finding property value for name '%C'\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
name));
if (properties.find (name, any) == 0)
@@ -50,14 +50,14 @@ namespace
}
else
{
- DANCE_ERROR ((LM_WARNING, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Failed to extract property value for %C\n", name));
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
return false;
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Property value for name '%C' has no value\n", name));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Property value for name '%C' has no value\n"), name));
return false;
}
@@ -68,8 +68,8 @@ namespace
DANCE_TRACE ("NodeApplicion::<anonymous>::get_property_value<bool>");
CORBA::Any any;
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<bool> - "
- "Finding property value for name '%C'\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<bool> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
name));
if (properties.find (name, any) == 0)
@@ -80,14 +80,14 @@ namespace
}
else
{
- DANCE_ERROR ((LM_WARNING, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Failed to extract property value for %C\n", name));
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
return false;
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<bool> - "
- "Property value for name '%C' has no value\n", name));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<bool> - ")
+ ACE_TEXT("Property value for name '%C' has no value\n"), name));
return false;
}
@@ -98,8 +98,8 @@ namespace
DANCE_TRACE ("NodeApplicion::<anonymous>::get_property_value<const char *>");
CORBA::Any any;
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<bool> - "
- "Finding property value for name '%C'\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<bool> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
name));
if (properties.find (name, any) == 0)
@@ -110,14 +110,14 @@ namespace
}
else
{
- DANCE_ERROR ((LM_WARNING, DLINFO "NodeApplicion::<anonymous>::get_property_value<const char *> - "
- "Failed to extract property value for %C\n", name));
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<const char *> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
return false;
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<bool> - "
- "Property value for name '%C' has no value\n", name));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<bool> - ")
+ ACE_TEXT("Property value for name '%C' has no value\n"), name));
return false;
}
@@ -127,30 +127,30 @@ namespace
{
DANCE_TRACE ("NodeApplicion::<anonymous>::get_property_value<T>");
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Finding property value for name '%C'\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
name));
for (CORBA::ULong i = 0; i < properties.length (); ++i)
{
if (ACE_OS::strcmp (properties[i].name.in (), name) == 0)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Found property '%C'\n", name));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Found property '%C'\n"), name));
if (properties[i].value >>= val)
return true;
else
{
- DANCE_ERROR ((LM_WARNING, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Failed to extract property value for %C\n", name));
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
return false;
}
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Property value for name '%C' has no value\n", name));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Property value for name '%C' has no value\n"), name));
return false;
}
@@ -160,34 +160,35 @@ namespace
{
DANCE_TRACE ("NodeApplicion::<anonymous>::get_property_value<const char *>");
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Finding property value for name '%C'\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Finding property value for name '%C'\n"),
name));
for (CORBA::ULong i = 0; i < properties.length (); ++i)
{
if (ACE_OS::strcmp (properties[i].name.in (), name) == 0)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Found property '%C'\n", name));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Found property '%C'\n"), name));
if (properties[i].value >>= CORBA::Any::to_string (val, 0))
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Value is %C\n", val));
+ DANCE_DEBUG ((LM_TRACE,
+ DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Value is %C\n"), val));
return true;
}
else
{
- DANCE_ERROR ((LM_WARNING, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Failed to extract property value for %C\n", name));
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Failed to extract property value for %C\n"), name));
return false;
}
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicion::<anonymous>::get_property_value<T> - "
- "Unable to find property named %C\n", name));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicion::<anonymous>::get_property_value<T> - ")
+ ACE_TEXT("Unable to find property named %C\n"), name));
return false;
}
@@ -205,18 +206,18 @@ namespace
exception.reason = reason;
}
}
-
- const char * get_artifact_location (const char * name,
+
+ const char * get_artifact_location (const char * name,
const ::Deployment::ArtifactDeploymentDescriptions &art)
{
DANCE_TRACE ("NodeApplication::<anonymous>::get_artifact_location");
-
+
for (CORBA::ULong i = 0; i < art.length (); ++i)
{
if (ACE_OS::strcmp (name, art[0].name.in ()) == 0)
return art[0].location[0].in ();
}
-
+
return 0;
}
}
@@ -240,8 +241,8 @@ NodeApplication_Impl::NodeApplication_Impl (CORBA::ORB_ptr orb,
PROPERTY_MAP::const_iterator i = properties.begin ();
while (!i.done ())
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::NodeApplication_Impl - "
- "Binding value for property '%C'\n", i->key ().c_str ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::NodeApplication_Impl - ")
+ ACE_TEXT("Binding value for property '%C'\n"), i->key ().c_str ()));
this->properties_.bind (i->key (), i->item ());
i.advance ();
}
@@ -263,45 +264,45 @@ NodeApplication_Impl::~NodeApplication_Impl()
{
/* TODO: This is highly suspect. I believe we should be using get_component_server,
not calling create_container. */
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "Deactivating %u ComponentServers\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Deactivating %u ComponentServers\n"),
this->servers_.size ()));
for (size_t i = 0; i < this->servers_.size (); ++i)
{
ComponentServer &server = this->servers_[i];
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "In ComponentServer %u, deactivating %u containers\n", i, server.containers.size ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("In ComponentServer %u, deactivating %u containers\n"), i, server.containers.size ()));
for (size_t j = 0; j < server.containers.size (); ++j)
{
Container &container = server.containers[j];
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "In container %u hosted in server %u\n", j, i));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("In container %u hosted in server %u\n"), j, i));
try
{
if (!CORBA::is_nil (container.ref))
server.ref->remove_container (container.ref.in ());
-
+
container.ref = CIAO::Deployment::Container::_nil ();
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "Caught CORBA exception while removing container %u on server %u: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught CORBA exception while removing container %u on server %u: %C\n"),
j, i, ex._info ().c_str ()));
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "Caught unknown C++ exception while removing container %u on server %u.\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught unknown C++ exception while removing container %u on server %u.\n"),
j, i));
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "Removing component server %u\n", i));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Removing component server %u\n"), i));
try
{
@@ -310,19 +311,19 @@ NodeApplication_Impl::~NodeApplication_Impl()
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "Caught CORBA exception while removing server %u: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught CORBA exception while removing server %u: %C\n"),
i, ex._info ().c_str ()));
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "Caught unknown C++ exception while removing server %u.\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Caught unknown C++ exception while removing server %u.\n"),
i));
}
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::~NodeApplication_Impl - "
- "Successfully removed container %u on node %C.\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::~NodeApplication_Impl - ")
+ ACE_TEXT("Successfully removed container %u on node %C.\n"),
i, this->node_name_.c_str ()));
}
}
@@ -344,37 +345,37 @@ NodeApplication_Impl::init()
CORBA::Boolean multithread = false;
get_property_value (CIAO::Deployment::SERVER_EXECUTABLE, this->properties_, cs_path);
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::init - "
- "Component server path: %C\n", cs_path));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Component server path: %C\n"), cs_path));
get_property_value (CIAO::Deployment::SERVER_ARGUMENTS, this->properties_, cs_args);
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::init - "
- "Component server arguments: %C\n", cs_args));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Component server arguments: %C\n"), cs_args));
get_property_value (CIAO::Deployment::SERVER_TIMEOUT, this->properties_, spawn);
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::init - "
- "Spawn delay: %u\n", spawn));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Spawn delay: %u\n"), spawn));
get_property_value (CIAO::Deployment::SERVER_MULTITHREAD, this->properties_, multithread);
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::init - "
- "Threading: %C\n", multithread ? "Multi" : "Single"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Threading: %C\n"), multithread ? "Multi" : "Single"));
+
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::init - ")
+ ACE_TEXT("Spawning server activator\n")));
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::init - "
- "Spawning server activator\n"));
-
CIAO::Deployment::ComponentInstallation_Impl *tmp_ci;
- ACE_NEW_THROW_EX (tmp_ci,
+ ACE_NEW_THROW_EX (tmp_ci,
CIAO::Deployment::ComponentInstallation_Impl (),
CORBA::NO_MEMORY ());
-
+
PortableServer::ServantBase_var safe_servant = tmp_ci;
-
+
this->poa_->activate_object (tmp_ci);
-
+
for (CORBA::ULong i = 0; i < this->plan_.artifact.length (); ++i)
{
tmp_ci->install (this->plan_.artifact[i].name,
this->plan_.artifact[i].location[0]);
}
-
+
CIAO::Deployment::CIAO_ServerActivator_i *tmp_act;
ACE_NEW_THROW_EX (tmp_act,
CIAO::Deployment::CIAO_ServerActivator_i (spawn,
@@ -386,13 +387,13 @@ NodeApplication_Impl::init()
this->poa_.in()),
CORBA::NO_MEMORY ());
this->activator_.reset (tmp_act);
-
+
PortableServer::ObjectId_var sa_id =
this->poa_->activate_object (this->activator_.get ());
- DANCE_DEBUG((LM_TRACE, DLINFO "NodeApplication_impl::init - ServerActivator object created\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_impl::init - ServerActivator object created\n")));
- const ACE_TCHAR *ior;
+ const ACE_TCHAR *ior = 0;
if (get_property_value (DAnCE::INSTANCE_NC, this->properties_, ior) ||
get_property_value (DAnCE::DOMAIN_NC, this->properties_, ior))
@@ -404,15 +405,15 @@ NodeApplication_Impl::init()
}
catch (const CORBA::Exception &e)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_impl::init - "
- "Unable to resolve the instance naming context:%C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::init - ")
+ ACE_TEXT("Unable to resolve the instance naming context:%C\n"),
e._info ().c_str ()));
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_impl::init - "
- "Successfully resolved the instance naming context.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::init - ")
+ ACE_TEXT("Successfully resolved the instance naming context.\n")));
}
- else DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_impl::init - "
- "No instance NC was provided\n"));
+ else DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::init - ")
+ ACE_TEXT("No instance NC was provided\n")));
}
void
@@ -430,8 +431,8 @@ NodeApplication_Impl::configuration_complete_components ()
continue;
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::configuration_complete_components - "
- "Invoking configuration_complete on component instance %C on node %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Invoking configuration_complete on component instance %C on node %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
this->node_name_.c_str ()));
@@ -441,8 +442,8 @@ NodeApplication_Impl::configuration_complete_components ()
Components::CCMObject::_narrow (this->instances_[k]->ref.in ());
if (CORBA::is_nil (this->instances_[k]->ref))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::configuration_complete_components - "
- "Failed to narrow object reference for component instance %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Failed to narrow object reference for component instance %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
continue;
}
@@ -463,14 +464,14 @@ NodeApplication_Impl::configuration_complete_components ()
}
}
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::configuration_complete_components - "
- "Component %C successfully configured.\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Component %C successfully configured.\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::configuration_complete_components - "
- "Caught CORBA exception from ccm_activate on component %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Caught CORBA exception from ccm_activate on component %C: %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
ex._info ().c_str ()));
if (!error)
@@ -482,8 +483,8 @@ NodeApplication_Impl::configuration_complete_components ()
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::configuration_complete_components - "
- "Caught unknown C++ exception from ccm_activate on component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::configuration_complete_components - ")
+ ACE_TEXT("Caught unknown C++ exception from ccm_activate on component %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
if (!error)
{
@@ -513,8 +514,8 @@ NodeApplication_Impl::start ()
continue;
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::start - "
- "Invoking start on component instance %C on node %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Invoking start on component instance %C on node %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
this->node_name_.c_str ()));
@@ -525,9 +526,9 @@ NodeApplication_Impl::start ()
if (CORBA::is_nil (this->instances_[k]->container->ref.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::start - "
- "Failed to narrow object reference for container managing "
- "component instance %C to a CIAO container reference\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Failed to narrow object reference for container managing ")
+ ACE_TEXT("component instance %C to a CIAO container reference\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
test_and_set_exception (error, exception,
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
@@ -552,14 +553,14 @@ NodeApplication_Impl::start ()
}
}
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::start - "
- "Component %C successfully activated.\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Component %C successfully activated.\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::start - "
- "Caught CORBA exception from ccm_activate on component %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Caught CORBA exception from ccm_activate on component %C: %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
ex._info ().c_str ()));
if (!error)
@@ -571,8 +572,8 @@ NodeApplication_Impl::start ()
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::start - "
- "Caught unknown C++ exception from ccm_activate on component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Caught unknown C++ exception from ccm_activate on component %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
if (!error)
{
@@ -595,8 +596,8 @@ NodeApplication_Impl::install_home (Container &cont, Instance &inst)
const ::Deployment::MonolithicDeploymentDescription &mdd = this->plan_.implementation[inst.mdd_idx];
const ::Deployment::InstanceDeploymentDescription &idd = this->plan_.instance[inst.idd_idx];
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::install_home - "
- "Starting installation of home %C on node %C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Starting installation of home %C on node %C\n"),
idd.name.in (), idd.node.in ()));
this->instances_[inst.idd_idx] = &inst;
@@ -604,11 +605,11 @@ NodeApplication_Impl::install_home (Container &cont, Instance &inst)
// need to get significant property values
const char *entrypt = 0;
get_property_value (DAnCE::HOME_FACTORY, mdd.execParameter, entrypt);
-
+
if (entrypt == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_home - "
- "Unable to find home factory property on home %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Unable to find home factory property on home %C\n"),
idd.name.in ()));
throw ::Deployment::InvalidComponentExecParameter (mdd.name.in (),
"No 'home factory' property present on MDD\n");
@@ -621,25 +622,25 @@ NodeApplication_Impl::install_home (Container &cont, Instance &inst)
for (CORBA::ULong i = 0; i < mdd.execParameter.length (); ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_home - "
- "Inserting value for execParameter %C\n", mdd.execParameter[i].name.in ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Inserting value for execParameter %C\n"), mdd.execParameter[i].name.in ()));
config[pos++] = new CIAO::ConfigValue_impl (mdd.execParameter[i].name.in (),
mdd.execParameter[i].value);
}
for (CORBA::ULong i = 0; i < idd.configProperty.length (); ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_home - "
- "Inserting value for configProperty %C\n", idd.configProperty[i].name.in ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Inserting value for configProperty %C\n"), idd.configProperty[i].name.in ()));
config[pos++] = new CIAO::ConfigValue_impl (idd.configProperty[i].name.in (),
idd.configProperty[i].value);
}
try
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::install_home - "
- "Calling install_home on container. Home id '%C', entrypt '%C', "
- "length of config values is %u\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Calling install_home on container. Home id '%C', entrypt '%C', ")
+ ACE_TEXT("length of config values is %u\n"),
idd.name.in (), entrypt, config.length ()));
::Components::CCMHome_var home = cont.ref->install_home (idd.name.in (),
@@ -648,22 +649,22 @@ NodeApplication_Impl::install_home (Container &cont, Instance &inst)
if (CORBA::is_nil (home))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_home - "
- "Got nil object reference from container while installing home %C on node %C,"
- "throwing PlanError\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Got nil object reference from container while installing home %C on node %C,")
+ ACE_TEXT("throwing PlanError\n"),
idd.name.in (), idd.node.in ()));
throw ::Deployment::PlanError (idd.name.in (),
"Nil object reference returned from conainer");
}
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::install_home - "
- "Home '%C' on node '%C' successfully installed\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Home '%C' on node '%C' successfully installed\n"),
idd.name.in (), idd.node.in ()));
inst.ref = CORBA::Object::_narrow (home);
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_home - "
- "Populating attributes for home %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Populating attributes for home %C\n"),
idd.name.in ()));
@@ -676,16 +677,16 @@ NodeApplication_Impl::install_home (Container &cont, Instance &inst)
}
catch (const Components::InvalidConfiguration &)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_home - "
- "Error creating home %C on node %C, caught InvalidConfiguration. Throwing exception\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Error creating home %C on node %C, caught InvalidConfiguration. Throwing exception\n"),
idd.name.in (), idd.node.in ()));
throw ::Deployment::InvalidProperty (idd.name.in (),
"Invalid configuration exception from container");
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_home - "
- "Caught CORBA exception while installing home %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Caught CORBA exception while installing home %C: %C\n"),
idd.name.in (),
ex._info ().c_str ()));
throw ::Deployment::StartError (idd.name.in (),
@@ -693,8 +694,8 @@ NodeApplication_Impl::install_home (Container &cont, Instance &inst)
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_home - "
- "Caught unknown C++ exception while installing home %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Caught unknown C++ exception while installing home %C\n"),
idd.name.in ()));
throw ::Deployment::StartError (idd.name.in (),
"Unknown C++ exception");
@@ -709,8 +710,8 @@ NodeApplication_Impl::install_component (Container &cont, Instance &inst)
const ::Deployment::MonolithicDeploymentDescription &mdd = this->plan_.implementation[inst.mdd_idx];
const ::Deployment::InstanceDeploymentDescription &idd = this->plan_.instance[inst.idd_idx];
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::install_home - "
- "Starting installation of home %C on node %C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Starting installation of home %C on node %C\n"),
idd.name.in (), idd.node.in ()));
this->instances_[inst.idd_idx] = &inst;
@@ -720,8 +721,8 @@ NodeApplication_Impl::install_component (Container &cont, Instance &inst)
if (entrypt == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_component - "
- "Unable to find component factory property on component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Unable to find component factory property on component %C\n"),
idd.name.in ()));
throw ::Deployment::InvalidComponentExecParameter (mdd.name.in (),
"No 'component factory' property present on MDD\n");
@@ -734,16 +735,16 @@ NodeApplication_Impl::install_component (Container &cont, Instance &inst)
for (CORBA::ULong i = 0; i < mdd.execParameter.length (); ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_component - "
- "Inserting value for execParameter %C\n", mdd.execParameter[i].name.in ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Inserting value for execParameter %C\n"), mdd.execParameter[i].name.in ()));
config[pos++] = new CIAO::ConfigValue_impl (mdd.execParameter[i].name.in (),
mdd.execParameter[i].value);
}
for (CORBA::ULong i = 0; i < idd.configProperty.length (); ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_component - "
- "Inserting value for configProperty %C\n", idd.configProperty[i].name.in ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Inserting value for configProperty %C\n"), idd.configProperty[i].name.in ()));
config[pos++] = new CIAO::ConfigValue_impl (idd.configProperty[i].name.in (),
idd.configProperty[i].value);
}
@@ -752,18 +753,18 @@ NodeApplication_Impl::install_component (Container &cont, Instance &inst)
if (CORBA::is_nil (ciao_cont.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_component - "
- "Unable to narrow container assigned for component instance %C to one that supports "
- "un-homed components.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Unable to narrow container assigned for component instance %C to one that supports ")
+ ACE_TEXT("un-homed components.\n")));
throw ::Deployment::PlanError (idd.name.in (),
"Hosting container does not support unhomed components.\n");
}
try
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::install_component - "
- "Calling install_component on container. Component id '%C', entrypt '%C', "
- "length of config values is %u\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Calling install_component on container. Component id '%C', entrypt '%C', ")
+ ACE_TEXT("length of config values is %u\n"),
idd.name.in (), entrypt, config.length ()));
::Components::CCMObject_var comp = ciao_cont->install_component (idd.name.in (),
@@ -772,22 +773,22 @@ NodeApplication_Impl::install_component (Container &cont, Instance &inst)
if (CORBA::is_nil (comp))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_component - "
- "Got nil object reference from container while installing component %C on node %C,"
- "throwing PlanError\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Got nil object reference from container while installing component %C on node %C,")
+ ACE_TEXT("throwing PlanError\n"),
idd.name.in (), idd.node.in ()));
throw ::Deployment::PlanError (idd.name.in (),
"Nil object reference returned from install_component on conainer");
}
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::install_component - "
- "Component '%C' on node '%C' successfully installed\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Component '%C' on node '%C' successfully installed\n"),
idd.name.in (), idd.node.in ()));
inst.ref = CORBA::Object::_narrow (comp);
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_component - "
- "Populating attributes for home %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Populating attributes for home %C\n"),
idd.name.in ()));
@@ -800,16 +801,16 @@ NodeApplication_Impl::install_component (Container &cont, Instance &inst)
}
catch (const Components::InvalidConfiguration &)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_component - "
- "Error creating component %C on node %C, caught InvalidConfiguration. Throwing exception\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Error creating component %C on node %C, caught InvalidConfiguration. Throwing exception\n"),
idd.name.in (), idd.node.in ()));
throw ::Deployment::InvalidProperty (idd.name.in (),
"Invalid configuration exception from container");
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_component - "
- "Caught CORBA exception while installing component %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Caught CORBA exception while installing component %C: %C\n"),
idd.name.in (),
ex._info ().c_str ()));
throw ::Deployment::StartError (idd.name.in (),
@@ -817,8 +818,8 @@ NodeApplication_Impl::install_component (Container &cont, Instance &inst)
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_component - "
- "Caught unknown C++ exception while installing component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_component - ")
+ ACE_TEXT("Caught unknown C++ exception while installing component %C\n"),
idd.name.in ()));
throw ::Deployment::StartError (idd.name.in (),
"Unknown C++ exception");
@@ -834,30 +835,30 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
const ::Deployment::InstanceDeploymentDescription &idd = this->plan_.instance[inst.idd_idx];
this->instances_[inst.idd_idx] = &inst;
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Starting installation of homed component %C on node %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Starting installation of homed component %C on node %C\n"),
idd.name.in (),
idd.node.in ()));
const char *home_id = 0;
get_property_value (DAnCE::EXPLICIT_HOME, idd.configProperty, home_id);
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Property %C has value %C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Property %C has value %C\n"),
DAnCE::EXPLICIT_HOME, home_id));
if (home_id == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Nodeapplication_Impl::install_homed_component - "
- "Apparent homed component %C lacks a %C configProperty, aborting installation\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Nodeapplication_Impl::install_homed_component - ")
+ ACE_TEXT("Apparent homed component %C lacks a %C configProperty, aborting installation\n"),
idd.name.in (), DAnCE::EXPLICIT_HOME));
throw ::Deployment::PlanError (idd.name.in (),
"No explicit home property on component requiring explicit home.");
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Found explicit home property '%C' for component '%C'\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Found explicit home property '%C' for component '%C'\n"),
home_id,
idd.name.in ()));
@@ -868,8 +869,8 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
if (ACE_OS::strcmp (home_id,
this->plan_.instance[cont.homes[i].idd_idx].name.in ()) == 0)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Found home designated for component '%C'\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Found home designated for component '%C'\n"),
idd.name.in ()));
home_inst = &cont.homes[i];
break;
@@ -878,8 +879,8 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
if (home_inst == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Unable to find home instance matching %C allocated to same container as component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Unable to find home instance matching %C allocated to same container as component %C\n"),
home_id,
idd.name.in ()));
throw Deployment::InvalidProperty (idd.name.in (),
@@ -891,8 +892,8 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
if (CORBA::is_nil (home.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Object reference for home '%C' for homed component '%C' is nil\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Object reference for home '%C' for homed component '%C' is nil\n"),
home_id,
idd.name.in ()));
throw Deployment::PlanError (idd.name.in (),
@@ -902,8 +903,8 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
try
{
inst.home = home_inst;
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Invoking create_component on home %C for component %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Invoking create_component on home %C for component %C\n"),
home_id,
idd.name.in ()));
@@ -911,22 +912,22 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
if (CORBA::is_nil (ccm_obj))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Received nil component reference from create_component on home %C "
- " while creating component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Received nil component reference from create_component on home %C ")
+ ACE_TEXT(" while creating component %C\n"),
home_id, idd.name.in ()));
throw Deployment::StartError (idd.name.in (),
"Home for explicitly homed component returned nil");
}
inst.ref = CORBA::Object::_narrow (ccm_obj.in ());
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Component %C successfully installed in home %C\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Component %C successfully installed in home %C\n"),
idd.name.in (),
home_id));
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::install_home - "
- "Populating attributes for component %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::install_home - ")
+ ACE_TEXT("Populating attributes for component %C\n"),
idd.name.in ()));
ComponentAttributesSetter::SetComponentAttributes (idd.name.in (),
inst.ref.in (),
@@ -936,8 +937,8 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
}
catch (const Components::CreateFailure &)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Caught CreateFailure exception from home '%C' while installing component '%C'\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Caught CreateFailure exception from home '%C' while installing component '%C'\n"),
home_inst,
idd.name.in ()));
throw Deployment::StartError (idd.name.in (),
@@ -945,8 +946,8 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Caught CORBA exception while installing component %C in home %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Caught CORBA exception while installing component %C in home %C: %C\n"),
idd.name.in (),
home_id,
ex._info ().c_str ()));
@@ -955,8 +956,8 @@ NodeApplication_Impl::install_homed_component (Container &cont, Instance &inst)
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::install_homed_component - "
- "Caught unknown C++ exception while installing component %C in home %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::install_homed_component - ")
+ ACE_TEXT("Caught unknown C++ exception while installing component %C in home %C\n"),
idd.name.in (),
home_id));
throw ::Deployment::StartError (idd.name.in (),
@@ -973,26 +974,26 @@ NodeApplication_Impl::create_component_server (size_t index)
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::create_component_Server - "
- "creating component server %u\n", index));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::create_component_Server - ")
+ ACE_TEXT("creating component server %u\n"), index));
::Components::ConfigValues config_values;
server.ref = this->activator_->create_component_server (config_values);
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::create_component_server - "
- "component server created\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::create_component_server - ")
+ ACE_TEXT("component server created\n")));
}
catch (const ::Components::CreateFailure& )
{
- DANCE_ERROR((LM_ERROR, DLINFO "NodeApplication_impl::create_container - "
- "Components::Deployment::ServerActivator_var::create_component_server() "
- "returned ::Components::CreateFailure exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::create_container - ")
+ ACE_TEXT("Components::Deployment::ServerActivator_var::create_component_server() ")
+ ACE_TEXT("returned ::Components::CreateFailure exception\n")));
throw ::Deployment::StartError("",
"Received a ::Components::CreateFailure exception while creating component server.");
}
catch (const ::Components::Deployment::InvalidConfiguration& )
{
- DANCE_ERROR((LM_ERROR, DLINFO "NodeApplication_impl::create_container - "
- "Components::Deployment::ServerActivator_var::create_component_server() "
- "returned ::Components::Deployment::InvalidConfiguration exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::create_container - ")
+ ACE_TEXT("Components::Deployment::ServerActivator_var::create_component_server() ")
+ ACE_TEXT("returned ::Components::Deployment::InvalidConfiguration exception\n")));
throw ::Deployment::InvalidProperty("",
"::Components::Deployment::InvalidConfiguration exception caught while creating server");
}
@@ -1006,8 +1007,8 @@ NodeApplication_Impl::create_component_server (size_t index)
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_impl::create_container - "
- "Caught exception whilst creating container; re-throwing.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::create_container - ")
+ ACE_TEXT("Caught exception whilst creating container; re-throwing.\n")));
throw;
}
}
@@ -1023,8 +1024,8 @@ NodeApplication_Impl::store_instance_ior (Instance &inst)
this->plan_.instance[inst.idd_idx].configProperty,
name))
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_impl::store_instance_ior - "
- "Storing instance '%C' object reference in Naming Service as %C",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::store_instance_ior - ")
+ ACE_TEXT("Storing instance '%C' object reference in Naming Service as %C"),
this->plan_.instance[inst.idd_idx].name.in (),
name));
@@ -1047,15 +1048,15 @@ NodeApplication_Impl::create_container (size_t server, size_t cont_idx)
Container &container = this->servers_[server].containers[cont_idx];
- DANCE_DEBUG ((LM_TRACE, "NodeApplication_impl::create_container - "
- "Creating container\n"));
+ DANCE_DEBUG ((LM_TRACE, ACE_TEXT("NodeApplication_impl::create_container - ")
+ ACE_TEXT("Creating container\n")));
// TODO: Need to create configvalues
Components::ConfigValues cvs;
container.ref = this->servers_[server].ref->create_container (cvs);
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_impl::create_container - "
- "Configuring %u homes on container %u on server %u\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_impl::create_container - ")
+ ACE_TEXT("Configuring %u homes on container %u on server %u\n"),
container.homes.size (),
server, cont_idx));
@@ -1066,8 +1067,8 @@ NodeApplication_Impl::create_container (size_t server, size_t cont_idx)
this->store_instance_ior (container.homes[i]);
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_impl::create_container - "
- "Configuring %u components on container %u on server %u\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_impl::create_container - ")
+ ACE_TEXT("Configuring %u components on container %u on server %u\n"),
container.components.size (),
server, cont_idx));
@@ -1142,8 +1143,8 @@ NodeApplication_Impl::init_components()
DANCE_TRACE ("NodeApplication_impl::init_components");
Components::ConfigValues config_values;
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::init_components - "
- "Configuring %u component/home instances\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::init_components - ")
+ ACE_TEXT("Configuring %u component/home instances\n"),
this->plan_.instance.length()));
// @@TODO: For the moment, we are only going to support a single component server and container.
@@ -1171,8 +1172,8 @@ NodeApplication_Impl::init_components()
{
case eHome:
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_impl::init_components - "
- "Allocating instance %C as a home\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::init_components - ")
+ ACE_TEXT("Allocating instance %C as a home\n"),
this->plan_.instance[i].name.in ()));
size_t pos = this->servers_[0].containers[0].homes.size ();
@@ -1186,8 +1187,8 @@ NodeApplication_Impl::init_components()
}
case eComponent:
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_impl::init_components - "
- "Allocating instance %C as a standalone component\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::init_components - ")
+ ACE_TEXT("Allocating instance %C as a standalone component\n"),
this->plan_.instance[i].name.in ()));
size_t pos = this->servers_[0].containers[0].homes.size ();
this->servers_[0].containers[0].components.size (pos + 1);
@@ -1200,8 +1201,8 @@ NodeApplication_Impl::init_components()
}
case eHomedComponent:
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_impl::init_components - "
- "Allocating instance %C as a home managed component\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::init_components - ")
+ ACE_TEXT("Allocating instance %C as a home managed component\n"),
this->plan_.instance[i].name.in ()));
size_t pos = this->servers_[0].containers[0].components.size ();
this->servers_[0].containers[0].components.size (pos + 1);
@@ -1214,30 +1215,30 @@ NodeApplication_Impl::init_components()
}
default:
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::init_components - "
- "get_instance_type function returned invalid instance type\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::init_components - ")
+ ACE_TEXT("get_instance_type function returned invalid instance type\n")));
throw ::Deployment::InvalidProperty (this->plan_.instance[i].name.in (),
"Unable to affirmatively determine instance type");
}
} // switch
} catch (...)
{
- DANCE_ERROR((LM_ERROR, DLINFO "Exception was thrown while sorting instance \"%C\".\n", this->plan_.instance[i].name.in()));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("Exception was thrown while sorting instance \"%C\".\n"), this->plan_.instance[i].name.in()));
throw;
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_impl::init_components - "
- "Creating component servers and installing components.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_impl::init_components - ")
+ ACE_TEXT("Creating component servers and installing components.\n")));
for (size_t i = 0; i < this->servers_.size (); ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_impl::init_components - "
- "Creating component server with index %u\n", i));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_impl::init_components - ")
+ ACE_TEXT("Creating component server with index %u\n"), i));
this->create_component_server (i);
}
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::init_components - finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::init_components - finished\n")));
}
void
@@ -1262,9 +1263,9 @@ NodeApplication_Impl::passivate_components()
if (CORBA::is_nil (this->instances_[k]->container->ref.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::start - "
- "Failed to narrow object reference for container managing "
- "component instance %C to a CIAO container reference\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Failed to narrow object reference for container managing ")
+ ACE_TEXT("component instance %C to a CIAO container reference\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
test_and_set_exception (error, exception,
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
@@ -1280,8 +1281,8 @@ NodeApplication_Impl::passivate_components()
}
else
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::start - "
- "Attempting to passivate non-active component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::start - ")
+ ACE_TEXT("Attempting to passivate non-active component %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
test_and_set_exception (error, exception,
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
@@ -1289,14 +1290,14 @@ NodeApplication_Impl::passivate_components()
continue;
}
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::passivate_components - "
- "Component %C successfully passivated.\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ")
+ ACE_TEXT("Component %C successfully passivated.\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::passivate_components - "
- "Caught CORBA exception from ccm_passivate on component %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ")
+ ACE_TEXT("Caught CORBA exception from ccm_passivate on component %C: %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
ex._info ().c_str ()));
if (!error)
@@ -1308,8 +1309,8 @@ NodeApplication_Impl::passivate_components()
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::passivate_components - "
- "Caught unknown C++ exception from ccm_passivate on component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::passivate_components - ")
+ ACE_TEXT("Caught unknown C++ exception from ccm_passivate on component %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
if (!error)
{
@@ -1342,15 +1343,15 @@ NodeApplication_Impl::remove_components()
continue;
if (this->instances_[k]->state != ePassive)
- DANCE_DEBUG ((LM_WARNING, DLINFO "NodeApplication_Impl::remove_components - "
- "Attempting to remove component that is not passive.\n"));
+ DANCE_DEBUG ((LM_WARNING, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Attempting to remove component that is not passive.\n")));
if (this->instances_[k]->type == eComponent)
{
if (this->instances_[k]->container == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::remove_components - "
- "Container element in component data structure for '%C' is nill\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Container element in component data structure for '%C' is nill\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()
));
@@ -1367,8 +1368,8 @@ NodeApplication_Impl::remove_components()
if (CORBA::is_nil (ciao_container.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::remove_components - "
- "Attempted to remove un-homed component from unsupported container\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Attempted to remove un-homed component from unsupported container\n")));
test_and_set_exception (error, exception,
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
@@ -1386,8 +1387,8 @@ NodeApplication_Impl::remove_components()
if (CORBA::is_nil (home))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::remove_components - "
- "Object reference for home %C, managing component %C is nil.\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Object reference for home %C, managing component %C is nil.\n"),
this->plan_.instance[this->instances_[k]->home->idd_idx].name.in (),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
test_and_set_exception (error,
@@ -1404,15 +1405,15 @@ NodeApplication_Impl::remove_components()
this->instances_[k]->state = eRemoved;
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::remove_components - "
- "Component %C successfully removed.\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Component %C successfully removed.\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::remove_components - "
- "Caught CORBA exception removing on component %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Caught CORBA exception removing on component %C: %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
ex._info ().c_str ()));
test_and_set_exception (error,
@@ -1422,8 +1423,8 @@ NodeApplication_Impl::remove_components()
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::remove_components - "
- "Caught unknown C++ exception from ccm_remove on component %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Caught unknown C++ exception from ccm_remove on component %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
test_and_set_exception (error,
exception,
@@ -1439,15 +1440,15 @@ NodeApplication_Impl::remove_components()
if (this->instances_[k]->type != eHome)
continue;
- DANCE_ERROR ((LM_TRACE, DLINFO "NodeApplication_Impl::remove_components - "
- "Removing home %C\n",
+ DANCE_ERROR ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Removing home %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
if (this->instances_[k]->container == 0 ||
CORBA::is_nil (this->instances_[k]->container->ref.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::remove_components - "
- "Home %C lacks an associated container reference\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Home %C lacks an associated container reference\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
test_and_set_exception (error,
exception,
@@ -1459,14 +1460,14 @@ NodeApplication_Impl::remove_components()
Components::CCMHome_var home = Components::CCMHome::_narrow (this->instances_[k]->ref.in ());
this->instances_[k]->container->ref->remove_home (home.in ());
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeApplication_Impl::remove_components - "
- "Successfully uninstalled home %C\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Successfully uninstalled home %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
}
catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::remove_components - "
- "Caught CORBA exception removing home %C: %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Caught CORBA exception removing home %C: %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in (),
ex._info ().c_str ()));
test_and_set_exception (error,
@@ -1476,8 +1477,8 @@ NodeApplication_Impl::remove_components()
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::remove_components - "
- "Caught unknown C++ exception from while removing home %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::remove_components - ")
+ ACE_TEXT("Caught unknown C++ exception from while removing home %C\n"),
this->plan_.instance[this->instances_[k]->idd_idx].name.in ()));
test_and_set_exception (error,
exception,
@@ -1497,35 +1498,35 @@ NodeApplication_Impl::get_instance_type (const Deployment::Properties& prop) con
for (CORBA::ULong i = 0; i < prop.length (); ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::get_instance_type - "
- "Checking property %C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Checking property %C\n"),
prop[i].name.in ()));
if (ACE_OS::strcmp (prop[i].name.in (),
DAnCE::HOME_FACTORY) == 0)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::get_instance_type - "
- "Found Home type\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Found Home type\n")));
return eHome;
}
if (ACE_OS::strcmp (prop[i].name.in (),
DAnCE::COMPONENT_FACTORY) == 0)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::get_instance_type - "
- "Found unmanaged component type.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Found unmanaged component type.\n")));
return eComponent;
}
if (ACE_OS::strcmp (prop[i].name.in (),
DAnCE::EXPLICIT_HOME) == 0)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_Impl::get_instance_type - "
- "Found explicit home component type.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Found explicit home component type.\n")));
return eHomedComponent;
}
}
- DANCE_ERROR ((LM_INFO, DLINFO "NodeApplication_Impl::get_instance_type - "
- "Unable to determine instance type\n"));
+ DANCE_ERROR ((LM_INFO, DLINFO ACE_TEXT("NodeApplication_Impl::get_instance_type - ")
+ ACE_TEXT("Unable to determine instance type\n")));
return eInvalid;
}
@@ -1555,9 +1556,9 @@ NodeApplication_Impl::create_config_values (const Deployment::Properties& /*prop
}
default:
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::create_config_values - "
- "request is not a know type: eCreateComponentServer, eCreateContainer, "
- "eInstallHome, eCreateComponentWithConfigValues\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::create_config_values - ")
+ ACE_TEXT("request is not a know type: eCreateComponentServer, eCreateContainer, ")
+ ACE_TEXT("eInstallHome, eCreateComponentWithConfigValues\n")));
throw ::Deployment::InvalidProperty("",
"Invalid creation type for filling in config values");
}
@@ -1567,7 +1568,7 @@ NodeApplication_Impl::create_config_values (const Deployment::Properties& /*prop
Deployment::Connections*
NodeApplication_Impl::getAllConnections()
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::getAllConnections - started\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - started\n")));
Deployment::Connections_var conn;
ACE_NEW_THROW_EX (conn,
@@ -1601,8 +1602,8 @@ NodeApplication_Impl::getAllConnections()
ACE_CString inst_name =
this->plan_.instance[this->plan_.connection[i].internalEndpoint[j].instanceRef].name.in();
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplication_Impl::getAllConnections() - "
- "Found provider '%C' for connection '%C'\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_Impl::getAllConnections() - ")
+ ACE_TEXT("Found provider '%C' for connection '%C'\n"),
this->plan_.connection[i].name.in (),
inst_name.c_str ()));
@@ -1622,21 +1623,21 @@ NodeApplication_Impl::getAllConnections()
ACE_CString name = this->plan_.connection[i].internalEndpoint[j].portName.in();
if (name.compare ("supports") != 0)
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::getAllConnections - "
- "provide_facet for connection %C endpoint %C started\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("provide_facet for connection %C endpoint %C started\n"),
this->plan_.connection[i].name.in(),
this->plan_.connection[i].internalEndpoint[j].portName.in()));
CORBA::String_var facet_name = CORBA::string_dup (name.c_str());
(*conn) [index].endpoint[0] = obj->provide_facet (facet_name.in());
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::getAllConnections - "
- "provide_facet for connection %C endpoint %C finished\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("provide_facet for connection %C endpoint %C finished\n"),
this->plan_.connection[i].name.in(),
this->plan_.connection[i].internalEndpoint[j].portName.in()));
}
else
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::getAllConnections - "
- "provide_facet for connection %C endpoint %C started\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("provide_facet for connection %C endpoint %C started\n"),
this->plan_.connection[i].name.in(),
this->plan_.connection[i].internalEndpoint[j].portName.in()));
(*conn) [index].endpoint[0] = CORBA::Object::_duplicate (obj.in());
@@ -1647,13 +1648,13 @@ NodeApplication_Impl::getAllConnections()
name,
(*conn) [index].endpoint[0].in());*/
//app_node.addChild(path.c_str(), obj->provide_facet(facet_name));
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::getAllConnections - provide_facet finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - provide_facet finished\n")));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::getAllConnections - "
- "Components::CCMObject_var::provide_facet() returned "
- "::Components::InvalidName exception for connection %C and port %C\n",
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("Components::CCMObject_var::provide_facet() returned ")
+ ACE_TEXT("::Components::InvalidName exception for connection %C and port %C\n"),
this->plan_.connection[i].name.in (),
this->plan_.connection[i].internalEndpoint[j].portName.in ()));
throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (),
@@ -1665,8 +1666,8 @@ NodeApplication_Impl::getAllConnections()
{
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::getAllConnections - "
- "get_consumer for connection %C endpoint %C started\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("get_consumer for connection %C endpoint %C started\n"),
this->plan_.connection[i].name.in(),
this->plan_.connection[i].internalEndpoint[j].portName.in()));
(*conn) [index].endpoint[0] = obj->get_consumer (this->plan_.connection[i].internalEndpoint[j].portName.in());
@@ -1677,14 +1678,14 @@ NodeApplication_Impl::getAllConnections()
(*conn) [index].endpoint[0].in());*/
//app_node.addChild(path.c_str(), obj->get_consumer(this->plan_.connection[i].internalEndpoint[j].portName));
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::getAllConnections - "
- "get_consumer finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("get_consumer finished\n")));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::getAllConnections - "
- "Components::CCMObject_var::get_consumer() returned "
- "::Components::InvalidName exception for connection %C and port %C\n",
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("Components::CCMObject_var::get_consumer() returned ")
+ ACE_TEXT("::Components::InvalidName exception for connection %C and port %C\n"),
this->plan_.connection[i].name.in (),
this->plan_.connection[i].internalEndpoint[j].portName.in ()));
throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (),
@@ -1694,9 +1695,9 @@ NodeApplication_Impl::getAllConnections()
}
default:
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::getAllConnections - "
- "Connection.InternalEndPoint.Kind is not a "
- "Deployment::Facet or Deployment::EventConsumer\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::getAllConnections - ")
+ ACE_TEXT("Connection.InternalEndPoint.Kind is not a ")
+ ACE_TEXT("Deployment::Facet or Deployment::EventConsumer\n")));
throw ::Deployment::InvalidProperty(this->plan_.connection[i].name.in (),
"Invalid connection type, should be Facet or EventConsumer");
}
@@ -1707,7 +1708,7 @@ NodeApplication_Impl::getAllConnections()
}
/*this->redirection_.registration_finish (this->node_name_, this->plan_.UUID.in());*/
//this->node_.registerObjects(this->plan_.UUID.in(), app_node);
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::getAllConnections - finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::getAllConnections - finished\n")));
return conn._retn();
}
@@ -1717,8 +1718,8 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
{
DANCE_TRACE ("NodeApplication_Impl::finishLaunch");
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - "
- "started for connections sequence with length: %d\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("started for connections sequence with length: %d\n"),
providedReference.length()));
#ifdef GEN_OSTREAM_OPS
@@ -1734,8 +1735,8 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
{
CORBA::ULong inst (this->plan_.connection[j].internalEndpoint[0].instanceRef);
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplication_impl::finishLaunch - "
- "Connection %C, instance %u\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Connection %C, instance %u\n"),
this->plan_.connection[j].name.in (),
inst));
@@ -1753,8 +1754,8 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
if (CORBA::is_nil (obj.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_impl::finishLaunch - "
- "Unable to narrow apparent component instance reference to CCMObject for instance '%C'\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Unable to narrow apparent component instance reference to CCMObject for instance '%C'\n"),
this->plan_.instance[inst].name.in ()));
throw Deployment::InvalidConnection (this->plan_.instance[inst].name.in (),
"Unable to narrow apparent component instance reference to CCMObject\n");
@@ -1779,8 +1780,8 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
{
case Deployment::Facet:
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - "
- "set for facet %C\n", name.c_str ()));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("set for facet %C\n"), name.c_str ()));
Components::CCMObject_var ext_inst;
try
{
@@ -1812,8 +1813,8 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
ext_inst = Components::CCMObject::_narrow (tmp);
if (CORBA::is_nil (ext_inst.in()))
{
- DANCE_ERROR((LM_ERROR, DLINFO "NodeApplication_impl::finishLaunch - "
- "facet for %C can't be narrowed\n", name.c_str ()));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("facet for %C can't be narrowed\n"), name.c_str ()));
break;
}
this->connect_receptacle_ext (ext_inst,
@@ -1835,7 +1836,7 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
}
case Deployment::EventConsumer:
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - set for consumer\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - set for consumer\n")));
Components::CCMObject_var ext_inst;
try
{
@@ -1848,8 +1849,8 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
ext_inst = Components::CCMObject::_narrow (tmp);
if (CORBA::is_nil (ext_inst.in()))
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "reference for %C can't be narrowed\n", name.c_str ()));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("reference for %C can't be narrowed\n"), name.c_str ()));
throw ::Deployment::InvalidConnection(conn.name.in (),
"Couldn't narrow reference for external reference");
break;
@@ -1883,7 +1884,7 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
case Deployment::SimplexReceptacle:
{
// What we should do with Cookie, returned from connect call???
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - set for receptacle\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - set for receptacle\n")));
this->connect_receptacle (obj.in(),
conn.internalEndpoint[0].portName.in(),
providedReference[i].endpoint[0].in());
@@ -1891,7 +1892,7 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
}
case Deployment::EventEmitter:
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - set for emitter\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - set for emitter\n")));
this->connect_emitter (obj.in(),
conn.internalEndpoint[0].portName.in(),
providedReference[i].endpoint[0].in());
@@ -1899,7 +1900,7 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
}
case Deployment::EventPublisher:
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - set for publisher\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - set for publisher\n")));
this->connect_publisher (obj.in(),
conn.internalEndpoint[0].portName.in(),
providedReference[i].endpoint[0].in());
@@ -1907,9 +1908,9 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
}
default:
{
- DANCE_ERROR((LM_ERROR, DLINFO "NodeApplication_impl::finishLaunch - currect Connection.InternalEndPoint.Kind "
- "is not a Deployment::SimplexReceptacle, Deployment::EventEmitter, Deployment::EventPublisher "
- "(Connection:%C Kind:%i PortName:%C)\n",
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - currect Connection.InternalEndPoint.Kind ")
+ ACE_TEXT("is not a Deployment::SimplexReceptacle, Deployment::EventEmitter, Deployment::EventPublisher ")
+ ACE_TEXT("(Connection:%C Kind:%i PortName:%C)\n"),
conn.name.in(),
conn.internalEndpoint[0].kind,
conn.internalEndpoint[0].portName.in()
@@ -1921,16 +1922,16 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
}
catch (::Deployment::StartError &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_impl::finishLaunch - "
- "Intercepted StartError exception while configuring %C conneciton, rethrowing\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Intercepted StartError exception while configuring %C conneciton, rethrowing\n"),
name.c_str ()));
ex.name = name.c_str ();
throw;
}
catch (::Deployment::InvalidConnection &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_impl::finishLaunch - "
- "Intercepted InvalidConnection exception while configuring %C conneciton, rethrowing\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Intercepted InvalidConnection exception while configuring %C conneciton, rethrowing\n"),
name.c_str ()));
ex.name = name.c_str ();
throw;
@@ -1946,7 +1947,7 @@ NodeApplication_Impl::finishLaunch (const Deployment::Connections & providedRefe
this->start();
}
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - finished\n")));
}
Components::Cookie*
@@ -1957,36 +1958,36 @@ NodeApplication_Impl::connect_receptacle (Components::CCMObject_ptr inst,
Components::Cookie* res = 0;
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - "
- "connect SimplexReceptacle for %C started\n", port_name.c_str()));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect SimplexReceptacle for %C started\n"), port_name.c_str()));
res = inst->connect (port_name.c_str(), facet);
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - connect finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - connect finished\n")));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n")));
throw ::Deployment::StartError("",
"Received InvalidName exception while connecting receptacle.");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("",
"InvalidConnection caught while connecting receptacle.");
}
catch (const ::Components::AlreadyConnected& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught AlredyConnected exception while connecting receptacle");
}
catch (const ::Components::ExceededConnectionLimit& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught ExceededConnectionLimit exception while connecting receptacle.");
}
@@ -2001,36 +2002,36 @@ NodeApplication_Impl::connect_receptacle_ext (Components::CCMObject_ptr inst,
Components::Cookie* res = 0;
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - "
- "connect SimplexReceptacle for %C started\n", port_name.c_str()));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect SimplexReceptacle for %C started\n"), port_name.c_str()));
res = inst->connect (port_name.c_str(), facet);
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - connect finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - connect finished\n")));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidName exception\n")));
throw ::Deployment::StartError("",
"Caught InvalidName exception while connecting external receptacle.");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught InvalidConnection exception while connecting external receptacle.");
}
catch (const ::Components::AlreadyConnected& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::AlreadyConnected exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught AlreadyConnected exception while connecting external receptacle.");
}
catch (const ::Components::ExceededConnectionLimit& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect() returned ::Components::ExceededConnectionLimit exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught ExceededConnectionLimit while connecting external receptacle.");
}
@@ -2045,30 +2046,30 @@ NodeApplication_Impl::connect_emitter (Components::CCMObject_ptr inst,
Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer);
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - "
- "connect_consumer for %C started\n", port_name.c_str()));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect_consumer for %C started\n"), port_name.c_str()));
inst->connect_consumer (port_name.c_str(), event);
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - "
- "connect_consumer finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect_consumer finished\n")));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect_consumer() returned ::Components::InvalidName exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" ACE_TEXT(NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidName exception\n")));
throw ::Deployment::StartError("",
"Caught InvalidName while connecting emitter.");
}
catch (const ::Components::AlreadyConnected& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught AlreadyConnected exception while connecting emitter");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught InvalidConnection while connecting emitter.");
}
@@ -2082,22 +2083,22 @@ NodeApplication_Impl::connect_emitter_ext (Components::CCMObject_ptr inst,
Components::EventConsumerBase_var event = Components::EventConsumerBase::_unchecked_narrow (consumer);
try
{
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - "
- "connect_emitter_ext for %C started\n", port_name.c_str()));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("connect_emitter_ext for %C started\n"), port_name.c_str()));
inst->connect_consumer (port_name.c_str(), event);
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - connect_emitter_ext finished\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - connect_emitter_ext finished\n")));
}
catch (const ::Components::AlreadyConnected& )
{
- DANCE_DEBUG ( (LM_WARNING, "NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n"));
+ DANCE_DEBUG ( (LM_WARNING, ACE_TEXT("NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::AlreadyConnected exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught AlreadyConnected exception while connecting external emitter.");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::connect_consumer() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("",
"Caught InvalidConnection exception while connecting external emitter.");
}
@@ -2112,8 +2113,8 @@ NodeApplication_Impl::connect_publisher (Components::CCMObject_ptr inst,
if (CORBA::is_nil (inst))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeApplication_Impl::connect_publisher - "
- "Provided a nil CCMObject reference while connecting port %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeApplication_Impl::connect_publisher - ")
+ ACE_TEXT("Provided a nil CCMObject reference while connecting port %C\n"),
port_name.c_str ()));
throw ::Deployment::InvalidConnection ();
}
@@ -2122,25 +2123,25 @@ NodeApplication_Impl::connect_publisher (Components::CCMObject_ptr inst,
try
{
res = inst->subscribe (port_name.c_str(), event);
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplication_impl::finishLaunch - successfully subscribed %C\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplication_impl::finishLaunch - successfully subscribed %C\n"),
port_name.c_str ()));
}
catch (const ::Components::InvalidName& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::subscribe() returned ::Components::InvalidName exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::InvalidName exception\n")));
throw ::Deployment::StartError("", "Caught InvalidName exception while connecting publisher");
}
catch (const ::Components::InvalidConnection& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::subscribe() returned ::Components::InvalidConnection exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::InvalidConnection exception\n")));
throw ::Deployment::InvalidConnection("", "Caught InvalidConnection exception while connecting publisher.");
}
catch (const ::Components::ExceededConnectionLimit& )
{
- DANCE_ERROR((LM_ERROR, DLINFO " NodeApplication_impl::finishLaunch - "
- "Components::CCMObject_var::subscribe() returned ::Components::ExceededCOnnectionLimit exception\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT(" NodeApplication_impl::finishLaunch - ")
+ ACE_TEXT("Components::CCMObject_var::subscribe() returned ::Components::ExceededCOnnectionLimit exception\n")));
throw ::Deployment::InvalidConnection("", "Caught ExceededConnectionLimit exception while connecting publisher.");
}
return res;
diff --git a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
index 664355b300b..c6768f0c6a3 100644
--- a/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
+++ b/CIAO/DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
@@ -25,10 +25,10 @@ NodeApplicationManager_Impl::NodeApplicationManager_Impl (CORBA::ORB_ptr orb,
node_name_ (node_name),
properties_ ()
{
- DANCE_TRACE (DLINFO "NodeApplicationManager_Impl::NodeApplicationManager_Impl");
+ DANCE_TRACE ("NodeApplicationManager_Impl::NodeApplicationManager_Impl");
- DANCE_DEBUG((LM_DEBUG, DLINFO " NodeApplicationManager_Impl::NodeApplicationManager_Impl - "
- "Initializing for node '%s' and plan '%s' starting...\n",
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT(" NodeApplicationManager_Impl::NodeApplicationManager_Impl - ")
+ ACE_TEXT("Initializing for node '%C' and plan '%C' starting...\n"),
node_name.c_str(),
plan_.UUID.in()));
this->register_plan();
@@ -36,8 +36,8 @@ NodeApplicationManager_Impl::NodeApplicationManager_Impl (CORBA::ORB_ptr orb,
PROPERTY_MAP::const_iterator i = properties.begin ();
while (!i.done ())
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplicationManager_Impl::NodeApplicationManager_Impl - "
- "Binding value for property %s\n", i->key ().c_str ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplicationManager_Impl::NodeApplicationManager_Impl - ")
+ ACE_TEXT("Binding value for property %s\n"), i->key ().c_str ()));
this->properties_.bind (i->key (), i->item ());
i.advance ();
}
@@ -45,7 +45,7 @@ NodeApplicationManager_Impl::NodeApplicationManager_Impl (CORBA::ORB_ptr orb,
NodeApplicationManager_Impl::~NodeApplicationManager_Impl()
{
- DANCE_TRACE (DLINFO "NodeApplicationManager_Impl::~NodeApplicationManager_Impl");
+ DANCE_TRACE ("NodeApplicationManager_Impl::~NodeApplicationManager_Impl");
try
{
@@ -61,8 +61,8 @@ NodeApplicationManager_Impl::~NodeApplicationManager_Impl()
}
catch (...)
{
- DANCE_ERROR ((LM_WARNING, DLINFO "NodeApplicationManager_Impl::~NodeApplicationManager_Impl - "
- "Caught exception in NodeApplicationManager destructor\n"));
+ DANCE_ERROR ((LM_WARNING, DLINFO ACE_TEXT("NodeApplicationManager_Impl::~NodeApplicationManager_Impl - ")
+ ACE_TEXT("Caught exception in NodeApplicationManager destructor\n")));
}
}
@@ -70,11 +70,11 @@ Deployment::Application_ptr
NodeApplicationManager_Impl::startLaunch (const Deployment::Properties &,
Deployment::Connections_out providedReference)
{
- DANCE_TRACE (DLINFO "NodeApplicationManager_Impl::startLaunch");
+ DANCE_TRACE ("NodeApplicationManager_Impl::startLaunch");
// Creating NodeApplication object
- DANCE_DEBUG((LM_TRACE, DLINFO "NodeApplicationManager_impl::startLaunch - "
- "Initializing NodeApplication\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Initializing NodeApplication\n")));
ACE_NEW_THROW_EX (this->application_,
NodeApplication_Impl (this->orb_.in(),
this->poa_.in(),
@@ -84,17 +84,17 @@ NodeApplicationManager_Impl::startLaunch (const Deployment::Properties &,
this->properties_),
CORBA::NO_MEMORY ());
- DANCE_DEBUG((LM_TRACE, DLINFO "NodeApplicationManager_impl::startLaunch - "
- "Instructing NodeApplication to initialize components.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Instructing NodeApplication to initialize components.\n")));
this->application_->init_components();
- DANCE_DEBUG((LM_TRACE, DLINFO "NodeApplicationManager_impl::startLaunch - "
- "Collecting connection references\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Collecting connection references\n")));
providedReference = this->application_->getAllConnections();
//this->parent_.registerConnections(this->plan_.UUID.in(), *providedReference);
- DANCE_DEBUG((LM_DEBUG, DLINFO "NodeApplicationManager_impl::startLaunch - "
- "Activating NodeApplication servant\n"));
+ DANCE_DEBUG((LM_DEBUG, DLINFO ACE_TEXT("NodeApplicationManager_impl::startLaunch - ")
+ ACE_TEXT("Activating NodeApplication servant\n")));
PortableServer::ObjectId_var as_id =
this->poa_->activate_object (this->application_);
@@ -107,14 +107,14 @@ NodeApplicationManager_Impl::startLaunch (const Deployment::Properties &,
void
NodeApplicationManager_Impl::destroyApplication (Deployment::Application_ptr application)
{
- DANCE_TRACE (DLINFO "NodeApplicationManager_Impl::destroyApplication");
+ DANCE_TRACE ("NodeApplicationManager_Impl::destroyApplication");
try
{
if (!application->_is_equivalent (this->poa_->servant_to_reference (this->application_)))
{
- DANCE_ERROR((LM_ERROR, DLINFO "NodeApplicationManager_Impl::destroyApplication - "
- "application is equivalent to current application\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication - ")
+ ACE_TEXT("application is equivalent to current application\n")));
throw ::Deployment::StopError();
}
this->redirection_.unregister (this->node_name_, this->plan_.UUID.in());
@@ -124,16 +124,16 @@ NodeApplicationManager_Impl::destroyApplication (Deployment::Application_ptr app
if (this->properties_.find (DAnCE::STANDALONE_NM,
val) == 0)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicationManager_Impl::destroyApplication - "
- "Found STANDALONE_NM property\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication - ")
+ ACE_TEXT("Found STANDALONE_NM property\n")));
CORBA::Boolean standalone (false);
val >>= CORBA::Any::to_boolean (standalone);
if (standalone)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeApplicationManager_Impl::destroyApplication - "
- "Acting as a standalone NM, passivating and removing installed components\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication - ")
+ ACE_TEXT("Acting as a standalone NM, passivating and removing installed components\n")));
this->application_->passivate_components ();
this->application_->remove_components ();
@@ -147,23 +147,23 @@ NodeApplicationManager_Impl::destroyApplication (Deployment::Application_ptr app
delete this->application_;
this->application_ = 0;
}
- catch (CORBA::SystemException &)
+ catch (const CORBA::SystemException &)
{
throw;
}
- catch (Deployment::StopError &)
+ catch (const Deployment::StopError &)
{
throw;
}
- catch (CORBA::UserException &e)
+ catch (const CORBA::UserException &e)
{
- DANCE_ERROR((LM_ERROR, DLINFO "NodeApplicationManager_Impl::destroyApplication failed with UserException %s(%s) \"%s\"\n",
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication failed with UserException %C(%C) \"%C\"\n"),
e._name(), e._rep_id(), e._info().c_str()));
throw Deployment::StopError(e._name(), e._info().c_str());
}
catch (...)
{
- DANCE_ERROR((LM_ERROR, DLINFO "NodeApplicationManager_Impl::destroyApplication failed with unknown exception.\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("NodeApplicationManager_Impl::destroyApplication failed with unknown exception.\n")));
throw Deployment::StopError();
}
}
@@ -171,10 +171,10 @@ NodeApplicationManager_Impl::destroyApplication (Deployment::Application_ptr app
void
NodeApplicationManager_Impl::register_plan(void)
{
- DANCE_TRACE(DLINFO "NodeApplicationManager_Impl::register_plan()");
+ DANCE_TRACE("NodeApplicationManager_Impl::register_plan()");
this->redirection_.registration_start (this->node_name_, this->plan_.UUID.in());
- DANCE_DEBUG((LM_TRACE, DLINFO "NodeApplicationManager_Impl::register_plan - registering objects...\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::register_plan - registering objects...\n")));
for (unsigned int i = 0; i < this->plan_.instance.length(); i++)
{
this->redirection_.registration (this->node_name_,
@@ -183,15 +183,15 @@ NodeApplicationManager_Impl::register_plan(void)
CORBA::Object::_nil());
}
- DANCE_DEBUG((LM_TRACE, DLINFO "NodeApplicationManager_Impl::register_plan - registering endpoints...\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::register_plan - registering endpoints...\n")));
for (unsigned int i = 0; i < this->plan_.connection.length(); i++)
{
for (unsigned int j = 0; j < this->plan_.connection[i].internalEndpoint.length(); j++)
{
if (this->plan_.connection[i].internalEndpoint[j].provider)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicationManager_Impl::register_plan - ",
- "Registering Port '%s' on instance '%s' on node '%s'\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::register_plan - "),
+ ACE_TEXT("Registering Port '%s' on instance '%s' on node '%s'\n"),
this->plan_.connection[i].internalEndpoint[j].portName.in(),
this->plan_.instance[this->plan_.connection[i].internalEndpoint[j].instanceRef].name.in(),
this->node_name_.c_str ()));
@@ -203,7 +203,7 @@ NodeApplicationManager_Impl::register_plan(void)
}
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeApplicationManager_Impl::register_plan - "
- "Finishing registration\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeApplicationManager_Impl::register_plan - ")
+ ACE_TEXT("Finishing registration\n")));
this->redirection_.registration_finish (this->node_name_, this->plan_.UUID.in());
}
diff --git a/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp b/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp
index 2c84c84ceb9..0a5a908781e 100644
--- a/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp
+++ b/CIAO/DAnCE/NodeManager/NodeManager_Impl.cpp
@@ -29,13 +29,13 @@ namespace DAnCE
{
DANCE_TRACE ( "NodeManager_Impl::NodeManager_Impl");
redirection.add_node (name);
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeManager_impl::NodeManager_impl has been created\n"));
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeManager_impl::NodeManager_impl has been created\n")));
PROPERTY_MAP::const_iterator i = properties.begin ();
while (!i.done ())
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeManager_Impl::NodeManager_Impl - "
- "Binding property %s provided by caller.\n", i->key ().c_str ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_Impl::NodeManager_Impl - ")
+ ACE_TEXT("Binding property %s provided by caller.\n"), i->key ().c_str ()));
this->properties_.bind (i->key (), i->item ());
i.advance ();
}
@@ -52,20 +52,20 @@ namespace DAnCE
{
PortableServer::ObjectId_var id = this->poa_->servant_to_id ( (*iter).int_id_);
DANCE_DEBUG ((LM_TRACE, DLINFO
- "NodeManager_impl::~NodeManager_impl - Deactivating NodeApplicationManager %s\n",
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - Deactivating NodeApplicationManager %s\n"),
(*iter).ext_id_.c_str ()));
this->poa_->deactivate_object (id.in());
DANCE_DEBUG ((LM_TRACE, DLINFO
- "NodeManager_impl::~NodeManager_impl - deleting NodeApplicationManager\n"));
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - deleting NodeApplicationManager\n")));
delete (*iter).int_id_;
DANCE_DEBUG ((LM_DEBUG, DLINFO
- "NodeManager_impl::~NodeManager_impl - NodeApplicationManager deleted\n"));
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - NodeApplicationManager deleted\n")));
}
catch (...)
{
DANCE_ERROR ((LM_WARNING, DLINFO
- "NodeManager_impl::~NodeManager_impl - Caught exception while removing "
- "NodeApplicationManager %s\n", (*iter).ext_id_.c_str ()));
+ ACE_TEXT("NodeManager_impl::~NodeManager_impl - Caught exception while removing ")
+ ACE_TEXT("NodeApplicationManager %s\n"), (*iter).ext_id_.c_str ()));
}
}
}
@@ -77,8 +77,8 @@ namespace DAnCE
::CORBA::Long /*updateInterval*/)
{
DANCE_TRACE ( "NodeManager_Impl::joinDomain");
- ACE_DEBUG ((LM_ERROR, DLINFO "NodeManager_Impl::joinDomain - "
- "joinDomain not implemented\n"));
+ ACE_DEBUG ((LM_ERROR, DLINFO ACE_TEXT("NodeManager_Impl::joinDomain - ")
+ ACE_TEXT("joinDomain not implemented\n")));
throw CORBA::NO_IMPLEMENT ();
}
@@ -86,8 +86,8 @@ namespace DAnCE
NodeManager_Impl::leaveDomain ()
{
DANCE_TRACE ( "NodeManager_Impl::leaveDomain");
- ACE_DEBUG ((LM_ERROR, DLINFO "NodeManager_Impl::leaveDomain - "
- "leave not implemented\n"));
+ ACE_DEBUG ((LM_ERROR, DLINFO ACE_TEXT("NodeManager_Impl::leaveDomain - ")
+ ACE_TEXT("leave not implemented\n")));
throw CORBA::NO_IMPLEMENT ();
}
@@ -97,8 +97,8 @@ namespace DAnCE
{
DANCE_TRACE ( "NodeManager_Impl::preparePlan");
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NodeManager_impl::preparePlan - "
- "started for node %s and plan %s\n", this->name_.c_str(), plan.UUID.in()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - ")
+ ACE_TEXT("started for node %C and plan %C\n"), this->name_.c_str(), plan.UUID.in()));
#ifdef GEN_OSTREAM_OPS
{
@@ -115,13 +115,13 @@ namespace DAnCE
// What should we do here if we already have application for this plan?
// Probably it is mistake because we should previously call destroyApplication
// before performe relaunching of application
- DANCE_ERROR ((LM_ERROR, DLINFO "NodeManager_impl::preparePlan - "
- "ApplicationManager for UUID %s already exists\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - ")
+ ACE_TEXT("ApplicationManager for UUID %C already exists\n"),
plan.UUID.in ()));
throw ::Deployment::PlanError();
}
- ACE_DEBUG ((LM_DEBUG, "*** size of properties_:%u\n", properties_.current_size ()));
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeManager_impl::preparePlan - creating NodeApplicationManager...\n"));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("*** size of properties_:%u\n"), properties_.current_size ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - creating NodeApplicationManager...\n")));
NodeApplicationManager_Impl* manager = 0;
ACE_NEW_THROW_EX (manager,
NodeApplicationManager_Impl (this->orb_.in(),
@@ -131,14 +131,14 @@ namespace DAnCE
this->name_,
this->properties_),
CORBA::NO_MEMORY());
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeManager_impl::preparePlan - activating NodeApplicationManager...\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - activating NodeApplicationManager...\n")));
PortableServer::ObjectId_var id = this->poa_->activate_object (manager);
CORBA::Object_var nam = this->poa_->id_to_reference (id.in());
//there is an idea to check if plan.UUID really exists
this->managers_.bind (plan.UUID.in(), manager);
// narrow should return a nil reference if it fails.
- DANCE_DEBUG ((LM_INFO, DLINFO "NodeManager_impl::preparePlan - NodeApplicationManager for plan %s completed\n",
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("NodeManager_impl::preparePlan - NodeApplicationManager for plan %C completed\n"),
plan.UUID.in ()));
return Deployment::NodeApplicationManager::_narrow (nam.in ());
}
@@ -156,17 +156,17 @@ namespace DAnCE
{
PortableServer::ObjectId_var id = this->poa_->reference_to_id (appManager);
this->poa_->deactivate_object (id.in());
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeManager_impl::destroyManager - deleting NodeApplicationManager\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - deleting NodeApplicationManager\n")));
delete (*iter).int_id_;
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeManager_impl::destroyManager - NodeApplicationManager deleted\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - NodeApplicationManager deleted\n")));
this->managers_.unbind ( (*iter).ext_id_);
- DANCE_DEBUG ((LM_TRACE, DLINFO "NodeManager_impl::destroyManager - finished\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - finished\n")));
return;
}
}
- DANCE_ERROR((LM_ERROR, DLINFO "NodeManager_impl::destroyManager - "
- "correponding NodeApplicationManager cannot be found\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("NodeManager_impl::destroyManager - ")
+ ACE_TEXT("correponding NodeApplicationManager cannot be found\n")));
throw ::Deployment::InvalidReference();
}
@@ -174,8 +174,8 @@ namespace DAnCE
NodeManager_Impl::getDynamicResources ()
{
DANCE_TRACE ( "NodeManager_Impl::getDynamicResources ()");
- ACE_DEBUG ((LM_ERROR, DLINFO "NodeManager_Impl::getDynamicResources - "
- "getDynamicResources not implemented\n"));
+ ACE_DEBUG ((LM_ERROR, DLINFO ACE_TEXT("NodeManager_Impl::getDynamicResources - ")
+ ACE_TEXT("getDynamicResources not implemented\n")));
throw CORBA::NO_IMPLEMENT ();
return 0;
}
diff --git a/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp b/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp
index 839afe1f808..def1dea1eba 100644
--- a/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp
+++ b/CIAO/DAnCE/NodeManager/Node_Manager_Module.cpp
@@ -120,65 +120,65 @@ DAnCE_NodeManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
switch (c)
{
case 'n':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Provided Node Manager name: %C\n", get_opts.opt_arg ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Provided Node Manager name: %s\n"), get_opts.opt_arg ()));
this->options_.node_managers_.push_back (get_opts.opt_arg ());
break;
case 'p':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Instructed to create process ns with file %C\n", get_opts.opt_arg ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to create process ns with file %s\n"), get_opts.opt_arg ()));
this->options_.process_ns_ = true;
this->options_.process_ns_file_ = get_opts.opt_arg ();
break;
case 'c':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Instructed to create plan NS in context: %C\n", get_opts.opt_arg ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to create plan NS in context: %s\n"), get_opts.opt_arg ()));
this->options_.create_plan_ns_ = true;
this->options_.create_plan_ns_ior_ = get_opts.opt_arg ();
break;
case 'r':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Instructed to rebind plan NS in context: %C\n", get_opts.opt_arg ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to rebind plan NS in context: %s\n"), get_opts.opt_arg ()));
this->options_.rebind_plan_ns_ = true;
this->options_.rebind_plan_ns_ior_ = get_opts.opt_arg ();
break;
case 'i':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Instructed to create port indirection service\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to create port indirection service\n")));
this->options_.port_indirection_ = true;
break;
case 'f':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Instructed to ignore deployment errors\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instructed to ignore deployment errors\n")));
this->options_.ignore_failure_ = true;
break;
case 's':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Using provided component server executable:%C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Using provided component server executable:%s\n"),
get_opts.opt_arg ()));
this->options_.cs_path_ = get_opts.opt_arg ();
break;
case 't':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Using provided component server spawn timeout:%C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Using provided component server spawn timeout:%s\n"),
get_opts.opt_arg ()));
this->options_.timeout_ = ACE_OS::atoi (get_opts.opt_arg ());
break;
-
+
case 'd':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Binding to provided Domain Naming Context: '%s'\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Binding to provided Domain Naming Context: '%s'\n"),
get_opts.opt_arg ()));
this->options_.domain_nc_ = get_opts.opt_arg ();
break;
-
+
case 'h':
//case '?': // Display help for use of the server.
//default:
@@ -191,52 +191,52 @@ DAnCE_NodeManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
case 0:
if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("standalone-nm")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Found option directing NodeManager to run as standalone entity.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Found option directing NodeManager to run as standalone entity.\n")));
this->options_.standalone_ = true;
}
else if (ACE_OS::strcmp (get_opts.long_option (),
ACE_TEXT("server-args")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Using provided compoent server arguments: '%C'\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Using provided compoent server arguments: '%s'\n"),
get_opts.opt_arg ()));
this->options_.server_args_ = get_opts.opt_arg ();
}
else if (ACE_OS::strcmp (get_opts.long_option (),
- "instance-nc") == 0)
+ ACE_TEXT("instance-nc")) == 0)
{
if (get_opts.opt_arg () == 0)
{
if (this->options_.domain_nc_ == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Manager_Module::parse_args - "
- "ERROR: instance-nc provided no argument, but domain-nc did not appear before.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("ERROR: instance-nc provided no argument, but domain-nc did not appear before.\n")));
DANCE_ERROR_RETURN ((LM_ERROR, this->usage (), argv[0], c), false);
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Instance NC defaulting to Domain NC\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Instance NC defaulting to Domain NC\n")));
this->options_.instance_nc_ = this->options_.domain_nc_;
}
else
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Node_Manager_Module::parse_args - "
- "Using provided instance NC: %C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("Using provided instance NC: %s\n"),
get_opts.opt_arg ()));
this->options_.instance_nc_ = get_opts.opt_arg ();
}
}
else
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Node_Manager_Module::parse_args - "
- "ERROR: unknown long option %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ")
+ ACE_TEXT("ERROR: unknown long option %s\n"),
get_opts.long_option ()));
}
break;
default:
- DANCE_DEBUG ((LM_TRACE, DLINFO "Node_Manager_Module::parse_args - ignoring unknown option %i\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Node_Manager_Module::parse_args - ignoring unknown option %i\n"),
c));
}
}
@@ -252,29 +252,29 @@ DAnCE_NodeManager_Module::create_object (CORBA::ORB_ptr orb,
{
if (CORBA::is_nil(orb))
{
- DANCE_ERROR((LM_ERROR, DLINFO "DAnCE_NodeManager_Module::create_object - "
- "Attempted to create Node Manager with a nil orb.\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("Attempted to create Node Manager with a nil orb.\n")));
return CORBA::Object::_nil();
}
if (CORBA::is_nil(this->orb_.in()))
{
- DANCE_DEBUG((LM_TRACE, DLINFO "DAnCE_NodeManager_Module::create_object - "
- "NM's orb is nil.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("NM's orb is nil.\n")));
this->orb_ = CORBA::ORB::_duplicate (orb);
}
else if (ACE_OS::strcmp(orb->id(), this->orb_->id()) != 0)
{
- DANCE_DEBUG((LM_TRACE, DLINFO "DAnCE_NodeManager_Module::create_object - "
- "Resetting NM's orb.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("Resetting NM's orb.\n")));
this->orb_ = CORBA::ORB::_duplicate (orb);
this->domain_nc_ = CosNaming::NamingContext::_nil();
}
if (!this->parse_args (argc, argv))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_NodeManager_Module::create_object - "
- "Failed to parse command line arguments, exiting\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("Failed to parse command line arguments, exiting\n")));
return CORBA::Object::_nil ();
}
@@ -320,29 +320,29 @@ DAnCE_NodeManager_Module::create_object (CORBA::ORB_ptr orb,
{
try
{
- DANCE_DEBUG((LM_TRACE, DLINFO "DAnCE_NodeManager_Module::create_object - "
- "Resolving DomainNC.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("Resolving DomainNC.\n")));
CORBA::Object_var domain_obj = this->orb_->string_to_object (this->options_.domain_nc_);
if (!CORBA::is_nil (domain_obj.in ()))
{
this->domain_nc_ = CosNaming::NamingContext::_narrow (domain_obj.in());
if (CORBA::is_nil (this->domain_nc_.in ()))
{
- DANCE_ERROR ((LM_ERROR,DLINFO "DAnCE_NodeManager_Module::create_object - "
- "Narrow to NamingContext return nil for DomainNC.\n"));
+ DANCE_ERROR ((LM_ERROR,DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
return CORBA::Object::_nil ();
}
}
}
- catch (CORBA::Exception&)
+ catch (const CORBA::Exception&)
{
- DANCE_DEBUG ((LM_WARNING, DLINFO "DAnCE_NodeManager_Module::create_object - "
- "DomainNC context not found!\n"));
+ DANCE_DEBUG ((LM_WARNING, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("DomainNC context not found!\n")));
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_NodeManager_Module::create_object - "
- "Resolving plan NS naming context.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_NodeManager_Module::create_object - ")
+ ACE_TEXT("Resolving plan NS naming context.\n")));
CosNaming::NamingContext_var rebind_nc;
if (this->options_.rebind_plan_ns_)
{
@@ -542,7 +542,7 @@ DAnCE_NodeManager_Module::create_object (CORBA::ORB_ptr orb,
"Error: Unable to write IOR to file %C\n",
node_file.c_str ()));
}
-
+
// Activate POA manager
PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
mgr->activate ();
@@ -550,7 +550,7 @@ DAnCE_NodeManager_Module::create_object (CORBA::ORB_ptr orb,
// Finishing Deployment part
DANCE_DEBUG ((LM_NOTICE, DLINFO "DAnCE_NodeManager_Module::create_object - "
"DAnCE_NodeManager is running...\n"));
-
+
DANCE_DEBUG ((LM_DEBUG, DLINFO "DAnCE_NodeManager_Module::create_object - "
"NodeManager IOR: %s\n", ior.in ()));
diff --git a/CIAO/DAnCE/NodeManager/Node_Manager_Module.h b/CIAO/DAnCE/NodeManager/Node_Manager_Module.h
index 97487f15328..b54fee919ab 100644
--- a/CIAO/DAnCE/NodeManager/Node_Manager_Module.h
+++ b/CIAO/DAnCE/NodeManager/Node_Manager_Module.h
@@ -56,20 +56,20 @@ class DAnCE_NodeManager_Module_Export DAnCE_NodeManager_Module
struct SOptions
{
bool process_ns_;
- const char* process_ns_file_;
+ const ACE_TCHAR* process_ns_file_;
bool create_plan_ns_;
- const char* create_plan_ns_ior_;
+ const ACE_TCHAR* create_plan_ns_ior_;
bool rebind_plan_ns_;
- const char* rebind_plan_ns_ior_;
+ const ACE_TCHAR* rebind_plan_ns_ior_;
bool port_indirection_;
- ACE_Vector<ACE_CString> node_managers_;
+ ACE_Vector<ACE_TString> node_managers_;
bool ignore_failure_;
- const char * cs_path_;
+ const ACE_TCHAR * cs_path_;
unsigned int timeout_;
CORBA::Boolean standalone_;
- const char * server_args_;
- const char * domain_nc_;
- const char * instance_nc_;
+ const ACE_TCHAR * server_args_;
+ const ACE_TCHAR * domain_nc_;
+ const ACE_TCHAR * instance_nc_;
SOptions()
: process_ns_ (false),
diff --git a/CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc b/CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc
index 64772ddd011..eb1de40723f 100644
--- a/CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc
+++ b/CIAO/DAnCE/Plan_Generator/Plan_Generator.mpc
@@ -1,7 +1,7 @@
// -*- MPC -*-
//$Id$
-project (Plan_Generator) : dance_deployment_stub, naming {
+project (Plan_Generator) : dance_deployment_stub, naming, dance_lib {
sharedname = DAnCE_Plan_Generator
after += RepositoryManager
diff --git a/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp b/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp
index 6c96e2a9e04..8fbe32eb696 100644
--- a/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp
+++ b/CIAO/DAnCE/Plan_Generator/Plan_Generator_Impl.cpp
@@ -84,7 +84,7 @@ namespace CIAO
::Deployment::PackageConfiguration_var pc;
- ACE_TCHAR package[PACKAGE_NAME_LEN];
+ char package[PACKAGE_NAME_LEN];
size_t length = ACE_OS::strlen (package_uri);
size_t pos1 = 0;
@@ -133,12 +133,11 @@ namespace CIAO
return false;
}
- ::Deployment::PackageConfiguration_var pc;
-
CORBA::StringSeq_var seq = rm_->findNamesByType (specific_type);
for (CORBA::ULong i = 0; i < seq->length (); ++i)
{
- pc = rm_->findPackageByName (seq[i]);
+ ::Deployment::PackageConfiguration_var pc =
+ rm_->findPackageByName (seq[i]);
PCVisitor pcv (plan, *pc, false);
index = pcv.Visit ();
diff --git a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
index cf775f8f1f2..6ef623535c9 100644
--- a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
+++ b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.cpp
@@ -23,13 +23,13 @@ Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl(CORBA::ORB_ptr orb, int argc,
DANCE_TRACE ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl");
if (CORBA::is_nil (this->orb_))
{
- DANCE_DEBUG ((LM_INFO, DLINFO "Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
- "Creating internal ORB.\n"));
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("Creating internal ORB.\n")));
this->orb_ = CORBA::ORB_init (argc, argv);
}
this->parse_args(argc, argv);
- DANCE_DEBUG ((LM_TRACE, DLINFO "Plan_Launcher_i::init - em_ior = \"%s\"\n"
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_i::init - em_ior = \"%C\"\n")
, is_empty (this->em_ior_) ? "NULL" : this->em_ior_.c_str()));
if (this->mode_ & (MODE_START_PLAN | MODE_STOP_PLAN))
@@ -40,8 +40,8 @@ Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl(CORBA::ORB_ptr orb, int argc,
obj = this->orb_->string_to_object(this->em_ior_.c_str());
if (CORBA::is_nil(obj))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
- "Failed to retrieve EM object from \"%s\"\n", this->em_ior_.c_str()));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("Failed to retrieve EM object from \"%C\"\n"), this->em_ior_.c_str()));
throw Deployment_Failure ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
"failed to retrieve EM object");
}
@@ -52,22 +52,22 @@ Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl(CORBA::ORB_ptr orb, int argc,
}
catch(CORBA::Exception&)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
- "Failed to retrieve EM object from \"%s\"\n", this->em_ior_.c_str()));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("Failed to retrieve EM object from \"%C\"\n"), this->em_ior_.c_str()));
throw Deployment_Failure ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
"failed to retrieve EM object");
}
if (CORBA::is_nil (this->em_.in()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
- "failed to get an execution manager.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("failed to get an execution manager.\n")));
throw Deployment_Failure ("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
"failed to get an execution manager");
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - "
- "Obtained Execution Manager ref\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::Plan_Launcher_Base_Impl - ")
+ ACE_TEXT("Obtained Execution Manager ref\n")));
}
Plan_Launcher_Base_Impl::~Plan_Launcher_Base_Impl()
@@ -83,8 +83,8 @@ void Plan_Launcher_Base_Impl::execute()
size_t sz = this->cdr_plan_urls_.size();
for (size_t i= 0; i < sz; ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "Plan_Launcher_Base_Impl::execute - "
- "launching plan \"%s\"...\n", this->cdr_plan_urls_[i].c_str()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::execute - ")
+ ACE_TEXT("launching plan \"%s\"...\n"), this->cdr_plan_urls_[i].c_str()));
::Deployment::DeploymentPlan_var plan = this->read_cdr_plan_file(this->cdr_plan_urls_[i].c_str());
try
{
@@ -94,8 +94,8 @@ void Plan_Launcher_Base_Impl::execute()
throw Deployment_Failure ("Plan_Launcher_Base_Impl::execute - "
"Error launching plan\n");
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::execute - "
- "returned plan UUID is \"%s\"\n", uuid.in ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::execute - ")
+ ACE_TEXT("returned plan UUID is \"%C\"\n"), uuid.in ()));
}
catch (...)
{
@@ -117,7 +117,7 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
try
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - Starting...\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - Starting...\n")));
if (CORBA::is_nil (this->em_.in ()))
{
DANCE_ERROR ( (LM_ERROR, DLINFO ACE_TEXT ("Plan_Launcher_Base_Impl::launch_plan - ")
@@ -136,8 +136,8 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
}
catch(...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "An exception was thrown during EM->preparePlan.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("An exception was thrown during EM->preparePlan.\n")));
throw;
}
@@ -147,29 +147,29 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
if (CORBA::is_nil (dam.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "CIAO_PlanLauncher:preparePlan call failed: "
- "nil DomainApplicationManager reference\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("CIAO_PlanLauncher:preparePlan call failed: ")
+ ACE_TEXT("nil DomainApplicationManager reference\n")));
return 0;
}
else
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "DAM was received from preparePlan.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("DAM was received from preparePlan.\n")));
}
this->write_dam_ior (dam.in());
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "Obtained DAM ref\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("Obtained DAM ref\n")));
::Deployment::Properties_var properties;
ACE_NEW_RETURN (properties,
Deployment::Properties,
0);
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "before startLaunch...\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("before startLaunch...\n")));
::Deployment::Connections_var conns;
Deployment::Application_var da;
@@ -179,22 +179,22 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
}
catch(...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "An exception was thrown during DAM->startLaunch.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("An exception was thrown during DAM->startLaunch.\n")));
throw;
}
//Deployment::DomainApplication_var da = Deployment::DomainApplication::_narrow(obj)
if (CORBA::is_nil (da.in()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "CIAO_PlanLauncher:startLaunch call failed: "
- "nil DomainApplication reference\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("CIAO_PlanLauncher:startLaunch call failed: ")
+ ACE_TEXT("nil DomainApplication reference\n")));
return 0;
}
else
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "DomainApplication was received from startLaunch\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("DomainApplication was received from startLaunch\n")));
}
//this is temporal workaround while cdmw checks object type in connect call
/*
@@ -204,25 +204,25 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
this->create_external_connections (plan, conns.inout());
// Call finish Launch to complete the connections
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "before finishLaunch\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("before finishLaunch\n")));
try
{
da->finishLaunch (conns.in(), false); // is_ReDAC by default is <false>
}
catch(...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "An exception was thrown during DA->finishLaunch.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("An exception was thrown during DA->finishLaunch.\n")));
throw;
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "after finishLaunch\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("after finishLaunch\n")));
// Call start to activate components
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "before start activating components...\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("before start activating components...\n")));
try
{
@@ -230,12 +230,12 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
}
catch(...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::launch_plan - "
- "An exception was thrown during DA->start.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - ")
+ ACE_TEXT("An exception was thrown during DA->start.\n")));
throw;
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::launch_plan - [success]\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::launch_plan - [success]\n")));
DANCE_DEBUG ( (LM_DEBUG, DLINFO
ACE_TEXT ("[%M] Plan_Launcher_Base_Impl::launch_plan - ")
ACE_TEXT ("Application Deployed successfully\n")));
@@ -254,7 +254,7 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
ex.propertyName.in (),
ex.elementName.in (),
ex.resourceName.in ());
- DANCE_ERROR ((LM_ERROR, DLINFO "%s", buf));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
throw Deployment_Failure (buf);
}
catch (const Deployment::StartError& ex)
@@ -263,7 +263,7 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: StartError exception caught: %s, %s\n",
ex.name.in (),
ex.reason.in ());
- DANCE_ERROR ((LM_ERROR, DLINFO "%s", buf));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
throw Deployment_Failure (buf);
}
catch (const Deployment::InvalidProperty& ex)
@@ -272,7 +272,7 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: InvalidProperty exception caught: %s, %s\n",
ex.name.in (),
ex.reason.in ());
- DANCE_ERROR ((LM_ERROR, DLINFO "%s", buf));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
throw Deployment_Failure (buf);
}
catch (const Deployment::InvalidConnection& ex)
@@ -281,7 +281,7 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: InvalidConnection exception caught: %s, %s\n",
ex.name.in (),
ex.reason.in ());
- DANCE_ERROR ((LM_ERROR, DLINFO "%s", buf));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
throw Deployment_Failure (buf);
}
catch (const CORBA::Exception& ex)
@@ -289,14 +289,14 @@ Plan_Launcher_Base_Impl::launch_plan(const ::Deployment::DeploymentPlan &plan)
char buf[1024];
ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - CORBA EXCEPTION: %s\n",
ex._info().fast_rep());
- DANCE_ERROR ((LM_ERROR, DLINFO "%s", buf));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
throw Deployment_Failure (buf);
}
catch (...)
{
char buf[1024];
ACE_OS::sprintf (buf, "Plan_Launcher_Base_Impl::launch_plan - EXCEPTION: non-CORBA exception\n");
- DANCE_ERROR ((LM_ERROR, DLINFO "%s", buf));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("%C"), buf));
throw Deployment_Failure (buf);
}
@@ -309,14 +309,14 @@ bool Plan_Launcher_Base_Impl::teardown_plan(const char *uuid)
try
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::teardown_plan - looking for uuid=\"%s\"\n", uuid));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - looking for uuid=\"%C\"\n"), uuid));
::Deployment::DomainApplicationManagers_var mgrs = this->em_->getManagers();
::Deployment::DomainApplicationManager_var dapp_mgr;
for (size_t i = 0; i < mgrs->length(); ++i)
{
ACE_CString s = (*mgrs) [i]->getPlan()->UUID.in();
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::teardown_plan - "
- "comparing with existing uuid=\"%s\"\n", s.c_str()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - ")
+ ACE_TEXT("comparing with existing uuid=\"%C\"\n"), s.c_str()));
if (s == uuid)
{
dapp_mgr = ::Deployment::DomainApplicationManager::_duplicate ( (*mgrs) [i].in());
@@ -337,9 +337,9 @@ bool Plan_Launcher_Base_Impl::teardown_plan(const char *uuid)
{
// @todo the destroy_dam_by_plan could give a stoperror exception
// we should handle
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::teardown_plan - "
- "Unable to find DomainApplicationManager "
- "for plan with uuid: %s\n", uuid));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - ")
+ ACE_TEXT("Unable to find DomainApplicationManager ")
+ ACE_TEXT("for plan with uuid: %C\n"), uuid));
return false;
}
@@ -350,12 +350,12 @@ void
Plan_Launcher_Base_Impl::teardown_plan(::Deployment::DomainApplicationManager_ptr dam)
{
DANCE_DEBUG ((LM_DEBUG, DLINFO
- "Plan_Launcher_Base_Impl::teardown_plan - destroy the application.....\n"));
+ ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - destroy the application.....\n")));
::Deployment::Applications_var apps = dam->getApplications();
if (0 == apps->length())
{
- DANCE_DEBUG((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::teardown_plan - "
- "DAM has no application.\n"));
+ DANCE_DEBUG((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - ")
+ ACE_TEXT("DAM has no application.\n")));
}
for (size_t i = 0; i < apps->length(); ++i)
{
@@ -363,17 +363,17 @@ Plan_Launcher_Base_Impl::teardown_plan(::Deployment::DomainApplicationManager_pt
}
this->destroy_dam(dam);
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::teardown_plan - [success]\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::teardown_plan - [success]\n")));
}
void Plan_Launcher_Base_Impl::destroy_dam(
::Deployment::DomainApplicationManager_ptr dam)
{
DANCE_DEBUG ((LM_DEBUG, DLINFO
- "Plan_Launcher_Base_Impl::destroy_dam - destroy the manager.....\n"));
+ ACE_TEXT("Plan_Launcher_Base_Impl::destroy_dam - destroy the manager.....\n")));
this->em_->destroyManager(dam);
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Plan_Launcher_Base_Impl::destroy_dam - [success]\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::destroy_dam - [success]\n")));
}
void Plan_Launcher_Base_Impl::usage(const ACE_TCHAR* program)
@@ -398,7 +398,7 @@ void Plan_Launcher_Base_Impl::usage(const ACE_TCHAR* program)
void Plan_Launcher_Base_Impl::parse_args(int argc, ACE_TCHAR *argv[])
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "PL options : \""));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("PL options : \"")));
for (int i = 0; i < argc; ++i)
{
DANCE_DEBUG ( (LM_TRACE, " %s", argv[i]));
@@ -441,7 +441,7 @@ void Plan_Launcher_Base_Impl::parse_args(int argc, ACE_TCHAR *argv[])
case 'w':
if (0 < this->cdr_dest_url_.length())
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Ambiguity: more then one --write-cdr-plan option.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Ambiguity: more then one --write-cdr-plan option.\n")));
throw Deployment_Failure("Ambiguity: more then one --write-cdr-plan option.");
}
this->cdr_dest_url_ = expand_env_vars (get_opt.opt_arg());
@@ -500,7 +500,7 @@ void Plan_Launcher_Base_Impl::write_dam_ior(
}
else
{
- DANCE_ERROR ((LM_ERROR, DLINFO "PlanLauncher.cpp::write_dap_ior - Error in opening file %s to write DAM IOR: %m",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("PlanLauncher.cpp::write_dap_ior - Error in opening file %s to write DAM IOR: %m"),
this->dam_ior_.c_str()));
throw Deployment_Failure (ACE_CString ("write_dap_ior - Error in opening file %s to write DAM IOR: %m") +
this->dam_ior_);
@@ -514,28 +514,28 @@ Plan_Launcher_Base_Impl::stop_plan()
if (!is_empty (this->plan_uuid_))
{
stopped = true;
- DANCE_DEBUG((LM_TRACE, DLINFO "Plan_Launcher_Base_Impl::stop_plan - "
- "Stopping plan \"%s\"\n", this->plan_uuid_.c_str()));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan \"%C\"\n"), this->plan_uuid_.c_str()));
if (!this->teardown_plan(this->plan_uuid_.c_str()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::stop_plan - "
- "tear down assembly failed: unknown plan uuid.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("tear down assembly failed: unknown plan uuid.\n")));
}
}
if (!is_empty (this->dam_ior_))
{
stopped = true;
- DANCE_DEBUG((LM_TRACE, DLINFO "Plan_Launcher_Base_Impl::stop_plan - "
- "Stopping plan by DAM IOR.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan by DAM IOR.\n")));
CORBA::Object_var
obj = this->orb_->string_to_object(this->dam_ior_.c_str());
if (CORBA::is_nil (obj.in ()))
{
DANCE_ERROR ((LM_ERROR, DLINFO
- "Plan_Launcher_Base_Impl::stop_plan - "
- "tear down assembly failed: DAM IOR is invalid.\n"));
+ ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("tear down assembly failed: DAM IOR is invalid.\n")));
}
else
{
@@ -551,21 +551,21 @@ Plan_Launcher_Base_Impl::stop_plan()
size_t sz = this->cdr_plan_urls_.size();
for (size_t i = 0; i < sz; ++i)
{
- DANCE_DEBUG((LM_TRACE, DLINFO "Plan_Launcher_Base_Impl::stop_plan - "
- "Stopping plan by plan file : %s\n", this->cdr_plan_urls_[i].c_str()));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan by plan file : %s\n"), this->cdr_plan_urls_[i].c_str()));
::Deployment::DeploymentPlan_var plan = this->read_cdr_plan_file(this->cdr_plan_urls_[i].c_str());
if (!this->teardown_plan(plan->UUID.in()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::stop_plan - "
- "tear down assembly failed: unknown plan uuid.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("tear down assembly failed: unknown plan uuid.\n")));
}
}
}
if (!stopped && 0 == this->xml_plan_urls_.size())
{
- DANCE_DEBUG((LM_TRACE, DLINFO "Plan_Launcher_Base_Impl::stop_plan - "
- "Stopping plan all running plans.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan all running plans.\n")));
::Deployment::DomainApplicationManagers_var
mgrs = this->em_->getManagers();
::Deployment::DomainApplicationManager_var dapp_mgr;
@@ -579,7 +579,7 @@ Plan_Launcher_Base_Impl::stop_plan()
void Plan_Launcher_Base_Impl::create_external_connections(
const ::Deployment::DeploymentPlan &plan, Deployment::Connections& conn)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "create_external_connections - start\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("create_external_connections - start\n")));
/* CORBA::Object_var obj = this->orb_->resolve_initial_references("NameService");
CosNaming::NamingContext_var naming = CosNaming::NamingContext::_narrow(obj.in());
CosNaming::BindingList_var bl;
@@ -640,7 +640,7 @@ void Plan_Launcher_Base_Impl::create_external_connections(
else
{
DANCE_DEBUG ( (LM_DEBUG,
- "Plan_Launcher_i::create_external_connections - can't create object for IOR %C\n",
+ ACE_TEXT("Plan_Launcher_i::create_external_connections - can't create object for IOR %C\n"),
plan.connection[i].externalReference[0].location.in()));
throw 0;
}
@@ -681,7 +681,7 @@ Deployment::DeploymentPlan*Plan_Launcher_Base_Impl::read_cdr_plan_file(
}
catch(...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Failed to read CDR plan file.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Failed to read CDR plan file.\n")));
throw Deployment_Failure("Failed to read CDR plan file.");
}
return res;
@@ -712,8 +712,8 @@ Plan_Launcher_Base_Impl::write_cdr_plan_file(const char * filename,
}
catch(...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Base_Impl::write_cdr_plan_file - "
- "Failed to write CDR plan file.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::write_cdr_plan_file - ")
+ ACE_TEXT("Failed to write CDR plan file.\n")));
throw Deployment_Failure("Failed to write CDR plan file.");
}
}
@@ -756,7 +756,7 @@ Plan_Launcher_Base_Impl::check_mode_consistentness()
}
ACE_CString
-Plan_Launcher_Base_Impl::expand_env_vars (const char * s)
+Plan_Launcher_Base_Impl::expand_env_vars (const ACE_TCHAR * s)
{
ACE_CString src = s;
ACE_CString res;
@@ -802,8 +802,8 @@ Plan_Launcher_Base_Impl::expand_env_vars (const char * s)
}
else
{
- DANCE_DEBUG ((LM_WARNING, DLINFO "Plan_Launcher_Base_Impl::expand_env_vars - "
- "Envvar can not be parsed out at %i in \"%s\"",
+ DANCE_DEBUG ((LM_WARNING, DLINFO ACE_TEXT("Plan_Launcher_Base_Impl::expand_env_vars - ")
+ ACE_TEXT("Envvar can not be parsed out at %i in \"%s\""),
pos_start,
src.c_str()));
}
diff --git a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
index 5e6f5e60cc6..e4c1788e131 100644
--- a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
+++ b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Base_Impl.h
@@ -51,7 +51,7 @@ public:
static void write_cdr_plan_file(const char * filename,
const Deployment::DeploymentPlan & plan);
-protected:
+ protected:
/**
* @brief Launch a plan, given an IDL deployment plan
@@ -85,7 +85,7 @@ protected:
Deployment::Connections& conn);
virtual void check_mode_consistentness();
- static ACE_CString expand_env_vars(const char * src);
+ static ACE_CString expand_env_vars(const ACE_TCHAR * src);
/// Cached ORB pointer
CORBA::ORB_var orb_;
diff --git a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
index bd1c5f49425..e44f6088bd3 100644
--- a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
+++ b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Impl.cpp
@@ -21,20 +21,20 @@ namespace Plan_Launcher
::Deployment::DeploymentPlan *
Plan_Launcher_Impl::load_xml_plan(const char *deployment_plan_uri)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "Plan_Launcher_Impl::load_xml_plan - "
- "Parsing plan \"%s\"...\n", deployment_plan_uri));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::load_xml_plan - ")
+ ACE_TEXT("Parsing plan \"%C\"...\n"), deployment_plan_uri));
::Deployment::DeploymentPlan * plan = 0;
try
{
CIAO::Config_Handlers::XML_File_Intf intf (deployment_plan_uri);
- intf.add_search_path ("CIAO_ROOT", "/docs/schema/");
- intf.add_search_path ("TAO_ROOT", "/docs/schema/");
+ intf.add_search_path (ACE_TEXT("CIAO_ROOT"), ACE_TEXT("/docs/schema/"));
+ intf.add_search_path (ACE_TEXT("TAO_ROOT"), ACE_TEXT("/docs/schema/"));
plan = intf.release_plan ();
if (0 == plan)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Impl::load_xml_plan - "
- "Failed to parse plan \"%C\".\n", deployment_plan_uri));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Impl::load_xml_plan - ")
+ ACE_TEXT("Failed to parse plan \"%C\".\n"), deployment_plan_uri));
throw Deployment_Failure("Failed to parse plan.");
}
}
@@ -43,11 +43,11 @@ Plan_Launcher_Impl::load_xml_plan(const char *deployment_plan_uri)
ACE_CString s = "failed to parse deployment plan \"";
s += deployment_plan_uri;
s += "\"";
- DANCE_DEBUG ((LM_ERROR, DLINFO "Plan_Launcher_Impl::load_xml_plan - %C\n", s.c_str()));
+ DANCE_DEBUG ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Impl::load_xml_plan - %C\n"), s.c_str()));
throw Deployment_Failure (s.c_str());
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "Plan_Launcher_Impl::load_xml_plan - Parsing complete....\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::load_xml_plan - Parsing complete....\n")));
return plan;
}
@@ -60,8 +60,8 @@ void Plan_Launcher_Impl::execute()
size_t sz = this->xml_plan_urls_.size();
for (size_t i= 0; i < sz; ++i)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "Plan_Launcher_Impl::execute - "
- "launching plan \"%C\"...\n", this->xml_plan_urls_[i].c_str()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::execute - ")
+ ACE_TEXT("launching plan \"%C\"...\n"), this->xml_plan_urls_[i].c_str()));
::Deployment::DeploymentPlan_var plan =
this->load_xml_plan(this->xml_plan_urls_[i].c_str());
try
@@ -71,8 +71,8 @@ void Plan_Launcher_Impl::execute()
{
throw Deployment_Failure ("execute - Error launching plan\n");
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "Plan_Launcher_Impl::execute - "
- "returned plan UUID is \"%s\"\n", uuid.in ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::execute - ")
+ ACE_TEXT("returned plan UUID is \"%C\"\n"), uuid.in ()));
}
catch (...)
{
@@ -103,13 +103,13 @@ void Plan_Launcher_Impl::stop_plan()
size_t sz = this->xml_plan_urls_.size();
for (size_t i= 0; i < sz; ++i)
{
- DANCE_DEBUG((LM_TRACE, DLINFO "Plan_Launcher_Impl::stop_plan - "
- "Stopping plan by plan file: %C\n", this->xml_plan_urls_[i].c_str()));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("Plan_Launcher_Impl::stop_plan - ")
+ ACE_TEXT("Stopping plan by plan file: %C\n"), this->xml_plan_urls_[i].c_str()));
::Deployment::DeploymentPlan_var plan = this->load_xml_plan(this->xml_plan_urls_[i].c_str());
if (!this->teardown_plan(plan->UUID.in()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Plan_Launcher_Impl::stop_plan - "
- "tear down assembly failed: unknown plan uuid.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Plan_Launcher_Impl::stop_plan - ")
+ ACE_TEXT("tear down assembly failed: unknown plan uuid.\n")));
}
}
}
diff --git a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
index 0d2c179fb47..2337394cc00 100644
--- a/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
+++ b/CIAO/DAnCE/Plan_Launcher/Plan_Launcher_Module.cpp
@@ -25,27 +25,27 @@ DAnCE_Plan_Launcher_Module::create_object (CORBA::ORB_ptr orb,
{
try
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_Plan_Launcher_Module::create_object - "
- "Creating Plan Launcher object."));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_Plan_Launcher_Module::create_object - ")
+ ACE_TEXT("Creating Plan Launcher object.")));
Plan_Launcher_Impl pl (orb, argc, argv);
pl.execute();
}
catch (const Plan_Launcher_Base_Impl::Deployment_Failure& e)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_Plan_Launcher_Module::create_object - "
- "Error : %s.\n", e.error_.c_str()));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_Plan_Launcher_Module::create_object - ")
+ ACE_TEXT("Error : %C.\n"), e.error_.c_str()));
}
catch (const CORBA::Exception& ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_Plan_Launcher_Module::create_object - "
- "Caught CORBA Exception %C",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_Plan_Launcher_Module::create_object - ")
+ ACE_TEXT("Caught CORBA Exception %C"),
ex._info ().c_str ()));
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_Plan_Launcher_Module::create_object - "
- "Unknown exception.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_Plan_Launcher_Module::create_object - ")
+ ACE_TEXT("Unknown exception.\n")));
}
return CORBA::Object::_nil ();
}
diff --git a/CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp b/CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp
index c5c5c0c86b2..702d7e7c400 100644
--- a/CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp
+++ b/CIAO/DAnCE/RedirectionService/NameServiceRedirection.cpp
@@ -19,7 +19,7 @@ NameServiceRedirection::~NameServiceRedirection()
void
NameServiceRedirection::start_binding (const ACE_CString& node, const ACE_CString& plan)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::start_binding for node %s plan %s.\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::start_binding for node %C plan %C.\n"),
node.c_str(),
plan.c_str()));
ACE_CString key = node + plan;
@@ -38,7 +38,7 @@ NameServiceRedirection::start_binding (const ACE_CString& node, const ACE_CStrin
void
NameServiceRedirection::bind (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, const ACE_CString& port, CORBA::Object_ptr obj)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::bind for node %s plan %s component %s and port %s is started.\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::bind for node %C plan %C component %C and port %C is started.\n"),
node.c_str(),
plan.c_str(),
component.c_str(),
@@ -68,7 +68,7 @@ NameServiceRedirection::bind (const ACE_CString& node, const ACE_CString& plan,
TRecords* records = 0;
if (0 != this->transactions_.find (key, records))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NameServiceRedirection::bind - Cann't find record %C for closing transaction.\n", key.c_str()));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NameServiceRedirection::bind - Can't find record %C for closing transaction.\n"), key.c_str()));
return;
}
@@ -82,13 +82,13 @@ NameServiceRedirection::bind (const ACE_CString& node, const ACE_CString& plan,
// {
// component_context->rebind(name, obj);
// }
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::bind has finished.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::bind has finished.\n")));
}
void
NameServiceRedirection::bind (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, CORBA::Object_ptr obj)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::bind for node %s plan %s and component %s is started.\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::bind for node %C plan %C and component %C is started.\n"),
node.c_str(),
plan.c_str(),
component.c_str()));
@@ -111,7 +111,7 @@ NameServiceRedirection::bind (const ACE_CString& node, const ACE_CString& plan,
TRecords* records = 0;
if (0 != this->transactions_.find (key, records))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NameServiceRedirection::bind - Cann't find record %s for closing transaction.\n", key.c_str()));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NameServiceRedirection::bind - Can't find record %C for closing transaction.\n"), key.c_str()));
return;
}
@@ -129,18 +129,18 @@ NameServiceRedirection::bind (const ACE_CString& node, const ACE_CString& plan,
// DANCE_DEBUG((LM_DEBUG, "[%M] NameServiceRedirection::bind - Already bound exception was thrown. Rebinding\n"));
// plan_context->rebind(name, obj);
// }
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::bind has finished.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::bind has finished.\n")));
}
void
NameServiceRedirection::finish_binding (const ACE_CString& node, const ACE_CString& plan)
{
ACE_CString key = node + plan;
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::finish_binding started for %s.\n", key.c_str()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::finish_binding started for %s.\n"), key.c_str()));
TRecords* records = 0;
if (0 != this->transactions_.find (key, records))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "NameServiceRedirection::finish_binding - Cann't find record %s for closing transaction.\n", key.c_str()));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("NameServiceRedirection::finish_binding - Can't find record %C for closing transaction.\n"), key.c_str()));
return;
}
for (unsigned int i = 0; i < records->size(); i++)
@@ -152,7 +152,7 @@ NameServiceRedirection::finish_binding (const ACE_CString& node, const ACE_CStri
}
catch (CosNaming::NamingContext::AlreadyBound&)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::finish_bind - Already bound exception was thrown. Rebinding\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::finish_bind - Already bound exception was thrown. Rebinding\n")));
this->naming_->rebind ( (*records) [i].name, (*records) [i].obj.in());
}
@@ -174,38 +174,38 @@ NameServiceRedirection::finish_binding (const ACE_CString& node, const ACE_CStri
this->domain_->rebind_context (name, context.in());
}
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::finish_bind has finished.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::finish_bind has finished.\n")));
}
void
NameServiceRedirection::unbind_context (const ACE_CString& node, const ACE_CString& plan)
{
- DANCE_DEBUG ( (LM_TRACE, "[%M] NameServiceRedirection::unbind_context started...\n"));
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context started...\n")));
ACE_CString kind = "";
CosNaming::NamingContext_var node_context = this->resolve_context (node, kind, this->naming_.in());
kind = "DeploymentPlan";
CosNaming::NamingContext_var plan_context = this->resolve_context (plan, kind, node_context.in());
- DANCE_DEBUG ( (LM_TRACE, "[%M] NameServiceRedirection::unbind_context before clear_context for %s.%s\n", plan.c_str(), kind.c_str()));
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context before clear_context for %s.%s\n"), plan.c_str(), kind.c_str()));
this->clear_context (plan_context.inout());
CosNaming::Name name (1);
name.length (1);
name[0].id = CORBA::string_dup (plan.c_str());
name[0].kind = CORBA::string_dup (kind.c_str());
- DANCE_DEBUG ( (LM_TRACE, "[%M] NameServiceRedirection::unbind_context before unbinding %s.%s\n"
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context before unbinding %s.%s\n")
, name[0].id.in(), name[0].kind.in()));
node_context->unbind (name);
- DANCE_DEBUG ( (LM_TRACE, "[%M] NameServiceRedirection::unbind_context before destroying plan context.\n"));
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context before destroying plan context.\n")));
plan_context->destroy();
- DANCE_DEBUG ( (LM_TRACE, "[%M] NameServiceRedirection::unbind_context fininshed.\n"));
+ DANCE_DEBUG ( (LM_TRACE, ACE_TEXT("[%M] NameServiceRedirection::unbind_context fininshed.\n")));
}
CosNaming::NamingContext_ptr
NameServiceRedirection::resolve_context (const ACE_CString& context_name, const ACE_CString& context_kind, CosNaming::NamingContext_ptr naming)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::resolve_context is started for context %s.%s\n", context_name.c_str(), context_kind.c_str()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::resolve_context is started for context %C.%C\n"), context_name.c_str(), context_kind.c_str()));
if (CORBA::is_nil (naming))
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::resolve_context source context is nil!.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::resolve_context source context is nil!.\n")));
return CosNaming::NamingContext::_nil ();
}
CORBA::Object_var obj;
@@ -221,7 +221,7 @@ NameServiceRedirection::resolve_context (const ACE_CString& context_name, const
{
obj = naming->bind_new_context (name);
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "NameServiceRedirection::resolve_context has finished.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("NameServiceRedirection::resolve_context has finished.\n")));
return CosNaming::NamingContext::_narrow (obj._retn());
}
diff --git a/CIAO/DAnCE/RedirectionService/RedirectionService.cpp b/CIAO/DAnCE/RedirectionService/RedirectionService.cpp
index e79673bfa4c..551d7bb5be6 100644
--- a/CIAO/DAnCE/RedirectionService/RedirectionService.cpp
+++ b/CIAO/DAnCE/RedirectionService/RedirectionService.cpp
@@ -22,8 +22,8 @@ RedirectionService::RedirectionService (CORBA::ORB_ptr orb,
{
if (CORBA::is_nil (hosting_naming))
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "RedirectionService::RedirectionService - "
- "Name Service redirection is enabled but name context is nil.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("RedirectionService::RedirectionService - ")
+ ACE_TEXT("Name Service redirection is enabled but name context is nil.\n")));
}
}
}
@@ -83,8 +83,8 @@ void
RedirectionService::registration (const ACE_CString& node, const ACE_CString& plan, const ACE_CString& component, const ACE_CString& port, CORBA::Object_ptr obj)
{
DANCE_TRACE ("RedirectionService::registration");
- DANCE_DEBUG ((LM_DEBUG, DLINFO "RedirectionService::registration - "
- "for node %s plan %s component %s and port %s is started.\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("RedirectionService::registration - ")
+ ACE_TEXT("for node %C plan %C component %C and port %C is started.\n"),
node.c_str(),
plan.c_str(),
component.c_str(),
@@ -111,8 +111,8 @@ RedirectionService::registration (const ACE_CString& node, const ACE_CString& pl
this->naming_.bind (node, plan, component, port, ns_obj.in());
}
}
- DANCE_DEBUG ((LM_DEBUG, DLINFO "RedirectionService::registration - "
- "Registration has been finished.\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("RedirectionService::registration - ")
+ ACE_TEXT("Registration has been finished.\n")));
}
void
@@ -146,17 +146,17 @@ void
RedirectionService::unregister (const ACE_CString& node, const ACE_CString& plan)
{
DANCE_TRACE ("RedirectionService::unregister");
- DANCE_DEBUG((LM_TRACE, DLINFO "RedirectionService::unregister - "
- "unregistering %s/%s...\n", node.c_str(), plan.c_str()));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("RedirectionService::unregister - ")
+ ACE_TEXT("unregistering %C/%C...\n"), node.c_str(), plan.c_str()));
if (this->ns_)
{
this->naming_.unbind_context (node, plan);
- DANCE_DEBUG((LM_TRACE, DLINFO "RedirectionService::unregister - "
- "finished.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("RedirectionService::unregister - ")
+ ACE_TEXT("finished.\n")));
}
else
{
- DANCE_DEBUG((LM_TRACE, DLINFO "RedirectionService::unregister - "
- "nothing to do.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("RedirectionService::unregister - ")
+ ACE_TEXT("nothing to do.\n")));
}
}
diff --git a/CIAO/DAnCE/RepositoryManager/RMadmin.cpp b/CIAO/DAnCE/RepositoryManager/RMadmin.cpp
index 7b34082daaf..66eae9b7d79 100644
--- a/CIAO/DAnCE/RepositoryManager/RMadmin.cpp
+++ b/CIAO/DAnCE/RepositoryManager/RMadmin.cpp
@@ -185,7 +185,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Parse the PCD to make sure that there are no package errors.
try
{
- CIAO::Config_Handlers::Packaging::PCD_Handler::package_config ("default.pcd", *pc);
+ CIAO::Config_Handlers::Packaging::PCD_Handler::package_config (ACE_TEXT("default.pcd"), *pc);
}
catch (...)
{
diff --git a/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp b/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
index 10a47e9886c..71978324c80 100644
--- a/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
+++ b/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.cpp
@@ -53,9 +53,9 @@ namespace
{
static const char* PC_EXTENSION = ".epc";
- static const char *RM_RECORD_FILE = "RM_record";
- static const char *RM_RECORD_NAME_SECTION = "Names";
- static const char *RM_RECORD_UUID_SECTION = "UUIDs";
+ static const ACE_TCHAR *RM_RECORD_FILE = ACE_TEXT("RM_record");
+ static const ACE_TCHAR *RM_RECORD_NAME_SECTION = ACE_TEXT("Names");
+ static const ACE_TCHAR *RM_RECORD_UUID_SECTION = ACE_TEXT("UUIDs");
}
namespace DAnCE
@@ -67,7 +67,7 @@ namespace DAnCE
//-----------------------------------------------------------------
RepositoryManagerDaemon_i::RepositoryManagerDaemon_i
- (CORBA::ORB_ptr the_orb, const char* server, const char* install_dir)
+ (CORBA::ORB_ptr the_orb, const ACE_TCHAR* server, const ACE_TCHAR* install_dir)
: the_orb_ (CORBA::ORB::_duplicate (the_orb)),
install_root_ (""),
HTTP_server_ ("http://"),
diff --git a/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h b/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h
index e7b3a9164a1..051c6577514 100644
--- a/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h
+++ b/CIAO/DAnCE/RepositoryManager/RepositoryManager_Impl.h
@@ -57,8 +57,8 @@ namespace DAnCE
public:
/// Constructor
RepositoryManagerDaemon_i (CORBA::ORB_ptr the_orb,
- const ACE_TCHAR* server = "localhost:5432",
- const ACE_TCHAR* install_dir = "RepositoryManager");
+ const ACE_TCHAR* server = ACE_TEXT("localhost:5432"),
+ const ACE_TCHAR* install_dir = ACE_TEXT("RepositoryManager"));
/// Destructor
virtual ~RepositoryManagerDaemon_i (void);
diff --git a/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp b/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp
index d372e64827a..6fe6f8e3e9b 100644
--- a/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp
+++ b/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.cpp
@@ -60,23 +60,23 @@ namespace DAnCE
try
{
- DANCE_DEBUG ((LM_INFO, DLINFO "DAnCE::Repository_Manager::Worker::svc - "
- "Spawning thread %u for the ORB.\n", thread_id));
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("DAnCE::Repository_Manager::Worker::svc - ")
+ ACE_TEXT("Spawning thread %u for the ORB.\n"), thread_id));
this->orb_->run ();
- DANCE_DEBUG ((LM_INFO, DLINFO "DAnCE::Repository_Manager::Worker::svc - "
- "ORB event loop for thread %u completed successfully.\n", thread_id));
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("DAnCE::Repository_Manager::Worker::svc - ")
+ ACE_TEXT("ORB event loop for thread %u completed successfully.\n"), thread_id));
}
- catch (CORBA::Exception &ex)
+ catch (const CORBA::Exception &ex)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE::Repository_Manager::Worker::svc - "
- "Caught CORBA exception from ORB event loop for thread %u: %s\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE::Repository_Manager::Worker::svc - ")
+ ACE_TEXT("Caught CORBA exception from ORB event loop for thread %u: %C\n"),
thread_id, ex._info ().c_str ()));
return -1;
}
catch (...)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE::Repository_Manager::Worker::svc - "
- "Caught unknown C++ exception from ORB event loop for thread %u\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE::Repository_Manager::Worker::svc - ")
+ ACE_TEXT("Caught unknown C++ exception from ORB event loop for thread %u\n"),
thread_id));
return -1;
}
@@ -168,42 +168,42 @@ DAnCE_RepositoryManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
switch (c)
{
case 'd':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Binding to provided Domain Naming Context: '%s'\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Binding to provided Domain Naming Context: '%s'\n"),
get_opts.opt_arg ()));
this->options_.domain_nc_ = get_opts.opt_arg ();
break;
case 'f':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Output filename for IOR is %C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Output filename for IOR is %s\n"),
get_opts.opt_arg ()));
this->options_.ior_file_ = get_opts.opt_arg ();
break;
case 't':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Number of threads is %C\n", get_opts.opt_arg ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Number of threads is %s\n"), get_opts.opt_arg ()));
this->options_.threads_ = (ACE_OS::atoi (get_opts.opt_arg ()));
break;
case 'p':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Package directory is %C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Package directory is %s\n"),
get_opts.opt_arg ()));
this->options_.package_dir_ = get_opts.opt_arg ();
break;
case 'n':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Name is %C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Name is %s\n"),
get_opts.opt_arg ()));
this->options_.name_ = get_opts.opt_arg ();
break;
case 's':
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Server address is %C\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Server address is %s\n"),
get_opts.opt_arg ()));
this->options_.server_address_ = get_opts.opt_arg ();
break;
@@ -220,54 +220,54 @@ DAnCE_RepositoryManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
case 0:
if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("spawn-http")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Found option to spawn in-process HTTP server\n"));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Found option to spawn in-process HTTP server\n")));
this->options_.spawn_http_ = true;
}
else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-port")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Using %C as the spawned HTTP server port\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP server port\n"),
get_opts.opt_arg ()));
this->options_.spawn_http_ = true;
this->options_.http_port_ = get_opts.opt_arg ();
}
else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Using %C as the spawned HTTP number of threads\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP number of threads\n"),
get_opts.opt_arg ()));
this->options_.spawn_http_ = true;
this->options_.http_threads_ = get_opts.opt_arg ();
}
else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Using %C as the spawned HTTP server threading model\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP server threading model\n"),
get_opts.opt_arg ()));
this->options_.spawn_http_ = true;
this->options_.http_threading_ = get_opts.opt_arg ();
}
else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Using %C as the spawned HTTP server IO strategy\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP server IO strategy\n"),
get_opts.opt_arg ()));
this->options_.spawn_http_ = true;
this->options_.http_io_ = get_opts.opt_arg ();
}
else if (ACE_OS::strcmp (get_opts.long_option (), ACE_TEXT("http-")) == 0)
{
- DANCE_DEBUG ((LM_DEBUG, DLINFO "Repository_Manager_Module::parse_args - "
- "Using %C as the spawned HTTP server caching strategy\n",
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Using %s as the spawned HTTP server caching strategy\n"),
get_opts.opt_arg ()));
this->options_.spawn_http_ = true;
this->options_.http_caching_ = get_opts.opt_arg ();
}
else
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Repository_Manager_Module::parse_args - "
- "ERROR: unknown long option %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("ERROR: unknown long option %s\n"),
get_opts.long_option ()));
}
@@ -275,12 +275,12 @@ DAnCE_RepositoryManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
case '\?':
case ':':
- DANCE_ERROR ((LM_ERROR, DLINFO "Repository_Manager_Module::parse_args - "
- "Options %c:%C requires an argument\n", c, get_opts.opt_opt ()));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Options %c:%s requires an argument\n"), c, get_opts.opt_opt ()));
break;
default:
- DANCE_DEBUG ((LM_TRACE, DLINFO "Repository_Manager_Module::parse_args - ignoring unknown option %c:%C\n",
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ignoring unknown option %c:%s\n"),
c, get_opts.opt_arg ()));
}
@@ -288,8 +288,8 @@ DAnCE_RepositoryManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
if (this->options_.server_address_ == 0)
{
- DANCE_ERROR ((LM_ERROR, DLINFO "Repository_Manager_Module::parse_args - "
- "Must provider server address using --server-address option.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("Repository_Manager_Module::parse_args - ")
+ ACE_TEXT("Must provider server address using --server-address option.\n")));
return false;
}
@@ -307,8 +307,8 @@ DAnCE_RepositoryManager_Module::create_object (CORBA::ORB_ptr orb,
{
if (CORBA::is_nil(orb))
{
- DANCE_ERROR((LM_ERROR, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Attempted to create Repository Manager with a nil orb.\n"));
+ DANCE_ERROR((LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Attempted to create Repository Manager with a nil orb.\n")));
return CORBA::Object::_nil();
}
else
@@ -318,16 +318,16 @@ DAnCE_RepositoryManager_Module::create_object (CORBA::ORB_ptr orb,
if (ACE_OS::strcmp(orb->id(), this->orb_->id()) != 0)
{
- DANCE_DEBUG((LM_TRACE, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Resetting NM's orb.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Resetting NM's orb.\n")));
this->orb_ = CORBA::ORB::_duplicate (orb);
this->domain_nc_ = CosNaming::NamingContext::_nil();
}
if (!this->parse_args (argc, argv))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Failed to parse command line arguments, exiting\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Failed to parse command line arguments, exiting\n")));
return CORBA::Object::_nil ();
}
@@ -340,30 +340,30 @@ DAnCE_RepositoryManager_Module::create_object (CORBA::ORB_ptr orb,
{
try
{
- DANCE_DEBUG((LM_TRACE, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Resolving DomainNC.\n"));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Resolving DomainNC.\n")));
CORBA::Object_var domain_obj = this->orb_->string_to_object (this->options_.domain_nc_);
if (!CORBA::is_nil (domain_obj.in ()))
{
this->domain_nc_ = CosNaming::NamingContext::_narrow (domain_obj.in());
if (CORBA::is_nil (this->domain_nc_.in ()))
{
- DANCE_ERROR ((LM_ERROR,DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Narrow to NamingContext return nil for DomainNC.\n"));
+ DANCE_ERROR ((LM_ERROR,DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Narrow to NamingContext return nil for DomainNC.\n")));
return CORBA::Object::_nil ();
}
}
}
- catch (CORBA::Exception&)
+ catch (const CORBA::Exception&)
{
- DANCE_DEBUG ((LM_WARNING, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "DomainNC context not found!\n"));
+ DANCE_DEBUG ((LM_WARNING, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("DomainNC context not found!\n")));
}
}
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Initializing the IOR Table\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Initializing the IOR Table\n")));
// Initialize IOR table
CORBA::Object_var table_object = orb->resolve_initial_references ("IORTable");
@@ -371,8 +371,8 @@ DAnCE_RepositoryManager_Module::create_object (CORBA::ORB_ptr orb,
if (CORBA::is_nil (adapter.in ()))
{
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Unable to RIR the IORTable.\n"));
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Unable to RIR the IORTable.\n")));
return CORBA::Object::_nil ();
}
@@ -413,8 +413,8 @@ DAnCE_RepositoryManager_Module::create_object (CORBA::ORB_ptr orb,
ns_name = "RepositoryManager";
else ns_name = this->options_.name_;
- DANCE_DEBUG((LM_TRACE, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Registering NM in NC as \"%C\".\n", ns_name.c_str ()));
+ DANCE_DEBUG((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Registering NM in NC as \"%C\".\n"), ns_name.c_str ()));
CosNaming::Name name (1);
name.length (1);
name[0].id = CORBA::string_dup (ns_name.c_str ());
@@ -425,11 +425,11 @@ DAnCE_RepositoryManager_Module::create_object (CORBA::ORB_ptr orb,
// Writing ior to file
if (0 != this->options_.ior_file_)
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Writing RM IOR %C to file %C.\n", this->options_.ior_file_, ior.in ()));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Writing RM IOR %C to file %C.\n"), this->options_.ior_file_, ior.in ()));
if (!DAnCE::Repository_Manager::write_IOR (this->options_.ior_file_, ior.in ()))
- DANCE_ERROR ((LM_ERROR, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "Error: Unable to write IOR to file %C\n",
+ DANCE_ERROR ((LM_ERROR, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("Error: Unable to write IOR to file %C\n"),
this->options_.ior_file_));
}
@@ -438,11 +438,11 @@ DAnCE_RepositoryManager_Module::create_object (CORBA::ORB_ptr orb,
mgr->activate ();
// Finishing Deployment part
- DANCE_DEBUG ((LM_NOTICE, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "DAnCE_RepositoryManager is running...\n"));
+ DANCE_DEBUG ((LM_NOTICE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("DAnCE_RepositoryManager is running...\n")));
- DANCE_DEBUG ((LM_DEBUG, DLINFO "DAnCE_RepositoryManager_Module::create_object - "
- "RepositoryManager IOR: %s\n", ior.in ()));
+ DANCE_DEBUG ((LM_DEBUG, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_object - ")
+ ACE_TEXT("RepositoryManager IOR: %C\n"), ior.in ()));
return nm_obj._retn ();
}
@@ -458,14 +458,14 @@ DAnCE_RepositoryManager_Module::create_poas (void)
{
DANCE_TRACE("DAnCE_Repository_Manager_Module::create_poas");
// Get reference to Root POA.
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_RepositoryManager_Module::create_poas - "
- "Resolving root POA\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("Resolving root POA\n")));
CORBA::Object_var obj = this->orb_->resolve_initial_references ("RootPOA");
this->root_poa_ = PortableServer::POA::_narrow (obj.in ());
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_RepositoryManager_Module::create_poas - "
- "Obtaining the POAManager\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("Obtaining the POAManager\n")));
PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
TAO::Utils::PolicyList_Destroyer policies (2);
@@ -473,9 +473,9 @@ DAnCE_RepositoryManager_Module::create_poas (void)
try
{
- DANCE_DEBUG ((LM_TRACE, DLINFO "DAnCE_RepositoryManager_Module::create_poas - "
- "DAnCE_RepositoryManager_Module::create_poas - "
- "Creating the \"Repository\" POA.\n"));
+ DANCE_DEBUG ((LM_TRACE, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("Creating the \"Repository\" POA.\n")));
policies[0] = this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID);
policies[1] = this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT);
@@ -485,8 +485,8 @@ DAnCE_RepositoryManager_Module::create_poas (void)
}
catch (const PortableServer::POA::AdapterAlreadyExists &)
{
- DANCE_DEBUG ((LM_INFO, DLINFO "DAnCE_RepositoryManager_Module::create_poas - "
- "Using exiswting \"Repository\" POA\n"));
+ DANCE_DEBUG ((LM_INFO, DLINFO ACE_TEXT("DAnCE_RepositoryManager_Module::create_poas - ")
+ ACE_TEXT("Using existing \"Repository\" POA\n")));
this->rm_poa_ = this->root_poa_->find_POA ("Repository", 0);
}
}
diff --git a/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h b/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h
index 21804fec10a..18a149e5e21 100644
--- a/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h
+++ b/CIAO/DAnCE/RepositoryManager/Repository_Manager_Module.h
@@ -75,11 +75,11 @@ class DAnCE_RepositoryManager_Module_Export DAnCE_RepositoryManager_Module
package_dir_ (ACE_TEXT("RepositoryManager_Packages")),
server_address_ (0),
spawn_http_ (false),
- http_port_ ("5432"),
- http_threads_ ("1"),
- http_threading_ ("POOL"),
- http_io_ ("SYNCH"),
- http_caching_ ("NO_CACHE")
+ http_port_ (ACE_TEXT("5432")),
+ http_threads_ (ACE_TEXT("1")),
+ http_threading_ (ACE_TEXT("POOL")),
+ http_io_ (ACE_TEXT("SYNCH")),
+ http_caching_ (ACE_TEXT("NO_CACHE"))
{
}
};
@@ -96,7 +96,7 @@ class DAnCE_RepositoryManager_Module_Export DAnCE_RepositoryManager_Module
int argc,
ACE_TCHAR *argv []);
- virtual const ACE_TCHAR * usage (void);
+ virtual const char * usage (void);
virtual bool parse_args (int argc, ACE_TCHAR *argv []);
diff --git a/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp b/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp
index 37187ebff61..47cf4fbb039 100644
--- a/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp
+++ b/CIAO/DAnCE/RepositoryManager/URL_Parser.cpp
@@ -38,20 +38,20 @@ URL_Parser::parse_args (int argc, ACE_TCHAR *argv[])
}
URL_Parser::URL_Parser (void)
- : hostname_ (ACE::strnew ("127.0.0.1")),
+ : hostname_ (ACE::strnew (ACE_TEXT("127.0.0.1"))),
port_ (ACE_DEFAULT_HTTP_SERVER_PORT),
filename_ (0),
debug_ (false)
{
}
-bool URL_Parser::parseURL (char* url)
+bool URL_Parser::parseURL (ACE_TCHAR* url)
{
- char* ptr = 0;
+ ACE_TCHAR* ptr = 0;
bool success = true;
- ptr = ACE_OS::strstr (url, "http://");
+ ptr = ACE_OS::strstr (url, ACE_TEXT("http://"));
if (ptr)
- url += ACE_OS::strlen ("http://");
+ url += ACE_OS::strlen (ACE_TEXT("http://"));
if (url[0] == '/')
{
diff --git a/CIAO/DAnCE/RepositoryManager/URL_Parser.h b/CIAO/DAnCE/RepositoryManager/URL_Parser.h
index 0dfef0262ad..16805c390b7 100644
--- a/CIAO/DAnCE/RepositoryManager/URL_Parser.h
+++ b/CIAO/DAnCE/RepositoryManager/URL_Parser.h
@@ -37,7 +37,7 @@ public:
bool parse_args (int argc, ACE_TCHAR *argv[]);
/// Return false on failure
- bool parseURL (char* url);
+ bool parseURL (ACE_TCHAR* url);
void Error (void);
diff --git a/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp b/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp
index 41a247cb717..d5f130b828f 100644
--- a/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp
+++ b/CIAO/DAnCE/RepositoryManager/ZIP_Wrapper.cpp
@@ -72,16 +72,16 @@ int ZIP_Wrapper::file_list_info (char* zip_name,
/* If zipfile could not be opened still, return */
if (uf==0)
{
- ACE_DEBUG((LM_DEBUG, ACE_TEXT("There is some problem in opening"
- " %s or %s.zip using unzOpen\n"), zip_name, zip_name));
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("There is some problem in opening")
+ ACE_TEXT(" %s or %s.zip using unzOpen\n"), zip_name, zip_name));
return 1;
}
unz_global_info gi;
/* get information about all the files in zip file*/
int err = unzGetGlobalInfo(uf, &gi);
if (err!=UNZ_OK)
- ACE_DEBUG((LM_DEBUG, ACE_TEXT("unzGetGlobalInfo failed while trying"
- " to get global information about zipfile\n"), err));
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("unzGetGlobalInfo failed while trying")
+ ACE_TEXT(" to get global information about zipfile\n"), err));
/* gi.number_entry corresponds to the number of directory entries
in the zip file */
for (uLong i=0;i<gi.number_entry;i++)
@@ -93,9 +93,9 @@ int ZIP_Wrapper::file_list_info (char* zip_name,
sizeof(filename_inzip), 0, 0, 0, 0);
if (err!=UNZ_OK)
{
- ACE_DEBUG((LM_DEBUG, ACE_TEXT("unzGetCurrentFileInfo failed"
- " while trying to get information"
- " about current file\n"), err));
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("unzGetCurrentFileInfo failed")
+ ACE_TEXT(" while trying to get information")
+ ACE_TEXT(" about current file\n"), err));
break;
}
ZIP_File_Info* next = 0;
@@ -109,8 +109,8 @@ int ZIP_Wrapper::file_list_info (char* zip_name,
if (err!=UNZ_OK)
{
ACE_DEBUG((LM_DEBUG,
- ACE_TEXT(" unzGoToNextFile failed"
- " while trying to go to next file\n"),
+ ACE_TEXT(" unzGoToNextFile failed")
+ ACE_TEXT(" while trying to go to next file\n"),
err));
break;
}
@@ -140,8 +140,8 @@ bool ZIP_Wrapper::get_file (char* archive_path, char* filename,
int k=unzOpenCurrentFile(uf);
if (k!=UNZ_OK)
{
- ACE_DEBUG((LM_DEBUG, ACE_TEXT("Error in opening the current"
- " file using unzOpenCurrentFile")));
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("Error in opening the current")
+ ACE_TEXT(" file using unzOpenCurrentFile")));
return false;
}
else
@@ -187,8 +187,8 @@ bool ZIP_Wrapper::uncompress (char* zip_archive, char* path, bool verbose)
uf = unzOpen(zip_archive);
if (uf==0)
{
- ACE_DEBUG((LM_DEBUG,ACE_TEXT("unzOpen failed to open the"
- " zipfile\n")));
+ ACE_DEBUG((LM_DEBUG,ACE_TEXT("unzOpen failed to open the")
+ ACE_TEXT(" zipfile\n")));
return false;
}
//get the name of the archive
@@ -212,15 +212,15 @@ bool ZIP_Wrapper::uncompress (char* zip_archive, char* path, bool verbose)
int err = unzGetGlobalInfo(uf, &gi);
if (err!=UNZ_OK)
{
- ACE_DEBUG((LM_DEBUG, ACE_TEXT("unzGetGlobalInfo failed to get global"
- " information about zipfile\n"), err));
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("unzGetGlobalInfo failed to get global")
+ ACE_TEXT(" information about zipfile\n"), err));
return false;
}
err =unzGoToFirstFile(uf);
if (err!=UNZ_OK)
{
ACE_DEBUG((LM_DEBUG,ACE_TEXT("error %d with zipfile in"
- " unzGoToFirstFile\n"), err));
+ ACE_TEXT(" unzGoToFirstFile\n")), err));
return false;
}
/* read each entry of zip file, create directory structure if it is
@@ -234,9 +234,9 @@ bool ZIP_Wrapper::uncompress (char* zip_archive, char* path, bool verbose)
sizeof(filename_inzip), 0, 0, 0, 0);
if (err!=UNZ_OK)
{
- ACE_DEBUG((LM_DEBUG, ACE_TEXT("unzGetCurrentFileInfo failed"
- " while trying to get information"
- " about currentfile\n"), err));
+ ACE_DEBUG((LM_DEBUG, ACE_TEXT("unzGetCurrentFileInfo failed")
+ ACE_TEXT(" while trying to get information")
+ ACE_TEXT(" about currentfile\n"), err));
break;
}
int direc = checkdir(filename_inzip);
@@ -256,9 +256,9 @@ bool ZIP_Wrapper::uncompress (char* zip_archive, char* path, bool verbose)
err = unzGoToNextFile(uf);
if (err!=UNZ_OK)
{
- ACE_ERROR((LM_ERROR,ACE_TEXT("unzGoToNextFile failed"
- " while trying to go to"
- " nextfile\n"), err));
+ ACE_ERROR((LM_ERROR,ACE_TEXT("unzGoToNextFile failed")
+ ACE_TEXT(" while trying to go to")
+ ACE_TEXT(" nextfile\n"), err));
break;
}
}
diff --git a/CIAO/DAnCE/Starter/Starter.cpp b/CIAO/DAnCE/Starter/Starter.cpp
index 8aa2a2c5d97..17827f0c103 100644
--- a/CIAO/DAnCE/Starter/Starter.cpp
+++ b/CIAO/DAnCE/Starter/Starter.cpp
@@ -78,14 +78,14 @@ Starter::Starter(int argc, ACE_TCHAR * argv[]) :
this->logger_->init (argc, argv);
DANCE_DEBUG ((LM_TRACE, DLINFO
- "Starter::Starter - Creating starter...\n"));
+ ACE_TEXT("Starter::Starter - Creating starter...\n")));
this->parseArgs(argc, argv);
this->configure_logging_backend ();
DANCE_DEBUG ((LM_TRACE, DLINFO
- "Starter::Starter - Starter was created successfully.\n"));
+ ACE_TEXT("Starter::Starter - Starter was created successfully.\n")));
}
Starter::~Starter()
@@ -137,7 +137,7 @@ void Starter::parseArgs(int argc, ACE_TCHAR * argv[])
int j;
char c;
- ACE_CString s;
+ ACE_TString s;
while ( (c = opts ()) != -1)
{
DANCE_DEBUG((LM_TRACE, "[%M] Option : \"%s\" with argument \"%s\"\n", opts.last_option(), opts.opt_arg()));
@@ -159,7 +159,7 @@ void Starter::parseArgs(int argc, ACE_TCHAR * argv[])
{
ACE_CString nodename;
Node node;
- size_t pos = s.find("=");
+ size_t const pos = s.find(ACE_TEXT("="));
if (ACE_CString::npos != pos)
{
nodename = s.substring(0, pos);
@@ -573,7 +573,7 @@ Starter::initNodeManager (const char * node)
throw ACE_CString ("Failed to load NodeManager.");
}
int c = 0;
- char ** v = 0;
+ ACE_TCHAR ** v = 0;
this->argCopyForNode (node, c, v);
CORBA::Object_var res = loader->create_object (this->orb_, c, v);
this->releaseArgs (c, v);
@@ -602,7 +602,7 @@ Starter::initExecutionManager()
throw ACE_CString ("Failed to load ExecutionManager.");
}
int c = 0;
- char ** v = 0;
+ ACE_TCHAR ** v = 0;
this->argCopyForEM (c, v);
CORBA::Object_var em = loader->create_object (this->orb_, c, v);
this->releaseArgs (c, v);
@@ -643,7 +643,7 @@ Starter::runPlanLauncher()
throw ACE_CString ("Failed to load PlanLauncher.");
}
int c = 0;
- char ** v = 0;
+ ACE_TCHAR ** v = 0;
this->argCopyForPL (c, v);
loader->create_object (this->orb_, c, v);
this->releaseArgs (c, v);
@@ -719,7 +719,7 @@ Starter::argCopyForNode (const char * node, int & c, char **& v)
if (this->argv_[i] == ACE_OS::strstr (this->argv_[i], validOptions[j]))
{
if (i + 1 < this->argc_
- && (0 == ACE_OS::strcmp (this->argv_[i], "--node-mgr") || 0 == ACE_OS::strcmp (this->argv_[i], "-n")))
+ && (0 == ACE_OS::strcmp (this->argv_[i], ACE_TEXT("--node-mgr")) || 0 == ACE_OS::strcmp (this->argv_[i], ACE_TEXT("-n"))))
{
ACE_CString s = this->argv_[i+1];
if (ACE_CString::npos != s.find ('='))
diff --git a/CIAO/DAnCE/TargetManager/CmpClient.cpp b/CIAO/DAnCE/TargetManager/CmpClient.cpp
index 1a7320a21a9..8f8f2b55060 100644
--- a/CIAO/DAnCE/TargetManager/CmpClient.cpp
+++ b/CIAO/DAnCE/TargetManager/CmpClient.cpp
@@ -90,7 +90,7 @@ namespace TM_Tester
// in real applications we use the naming service, but let's do
// the easy part first!
CORBA::Object_var factory_object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (TM_Tester::stringified_TM_IOR));
+ orb->string_to_object (TM_Tester::stringified_TM_IOR);
// Now downcast the object reference to the appropriate type
CIAO::TargetManagerImpl_var targetCmp =
@@ -289,7 +289,7 @@ namespace TM_Tester
std::string file_name = "NA_";
file_name += domain.node[i].name.in ();
ACE_FILE_IO file_io;
- ACE_FILE_Connector (file_io, ACE_FILE_Addr (file_name.c_str ()));
+ ACE_FILE_Connector (file_io, ACE_FILE_Addr (ACE_TEXT_ALWAYS_CHAR (file_name.c_str ())));
CORBA::Double na_node_cpu;
domain.node[i].resource[j].property[0].value >>= na_node_cpu;
char buf[BUFSIZ];
diff --git a/CIAO/DAnCE/TargetManager/DomainDataManager.cpp b/CIAO/DAnCE/TargetManager/DomainDataManager.cpp
index 92aa0f2337f..901089d816d 100644
--- a/CIAO/DAnCE/TargetManager/DomainDataManager.cpp
+++ b/CIAO/DAnCE/TargetManager/DomainDataManager.cpp
@@ -5,7 +5,7 @@
#include "tools/Config_Handlers/DnC_Dump.h"
#include "ciao/CIAO_common.h"
-const char * domain_file_name = "Domain.cdd";
+const ACE_TCHAR * domain_file_name = ACE_TEXT("Domain.cdd");
CIAO::DomainDataManager* CIAO::DomainDataManager::global_data_manager_ = 0;
diff --git a/CIAO/DAnCE/TargetManager/TargetManager.mpc b/CIAO/DAnCE/TargetManager/TargetManager.mpc
index 962370d4b73..73d4406bbb4 100644
--- a/CIAO/DAnCE/TargetManager/TargetManager.mpc
+++ b/CIAO/DAnCE/TargetManager/TargetManager.mpc
@@ -59,7 +59,7 @@ project(CIAO_TargetManager_exec) : ciao_output, ciao_executor, dance_domain_appl
}
}
-project(CIAO_TargetManager_svnt) : ciao_output, ccm_svnt, ciao_servant, messaging, dance_deployment_svnt, ciao_config_handlers, avoids_ace_for_tao {
+project(CIAO_TargetManager_svnt) : ciao_output, ccm_svnt, ciao_servant, messaging, dance_deployment_svnt, ciao_config_handlers, avoids_ace_for_tao, dance_node_manager {
sharedname = CIAO_TargetManager_svnt
libs += CIAO_TargetManager_stub CIAO_TargetManager_exec
diff --git a/CIAO/DAnCE/TargetManager/TargetManagerExt.idl b/CIAO/DAnCE/TargetManager/TargetManagerExt.idl
index 390383312f2..934314b4613 100644
--- a/CIAO/DAnCE/TargetManager/TargetManagerExt.idl
+++ b/CIAO/DAnCE/TargetManager/TargetManagerExt.idl
@@ -53,7 +53,7 @@ module CIAO
string host_;
/// the node manager IOR
- ::DAnCE::NodeManagerDaemon node_mgr_;
+ ::Deployment::NodeManager node_mgr_;
};
/// Sequence of NodeManager.
diff --git a/CIAO/DAnCE/TargetManager/descriptors/run_test_TargetManager.pl b/CIAO/DAnCE/TargetManager/descriptors/run_test_TargetManager.pl
index 4ea42376b98..4ea42376b98 100644..100755
--- a/CIAO/DAnCE/TargetManager/descriptors/run_test_TargetManager.pl
+++ b/CIAO/DAnCE/TargetManager/descriptors/run_test_TargetManager.pl
diff --git a/CIAO/MPC/config/ciao_plan_generator.mpb b/CIAO/MPC/config/ciao_plan_generator.mpb
index e234ead3e67..83b78f6f013 100644
--- a/CIAO/MPC/config/ciao_plan_generator.mpb
+++ b/CIAO/MPC/config/ciao_plan_generator.mpb
@@ -1,8 +1,8 @@
// -*- MPC -*-
// $Id$
-project : ciao_component_dnc {
+project : ciao_executor {
includes += $(CIAO_ROOT)/DAnCE/Plan_Generator
- libs += Plan_Generator
- after += Plan_Generator
+ libs += DAnCE_Plan_Generator
+ after += DAnCE_Plan_Generator
}
diff --git a/CIAO/MPC/config/ciaocidldefaults.mpb b/CIAO/MPC/config/ciaocidldefaults.mpb
index 534e83f5a68..ff8e9449ffb 100644
--- a/CIAO/MPC/config/ciaocidldefaults.mpb
+++ b/CIAO/MPC/config/ciaocidldefaults.mpb
@@ -22,9 +22,6 @@ project: build_files {
command = $(CIDLC)
commandflags = $(CIDLC_FLAGS)
inputext = .cidl
- source_outputext = _svnt.cpp
- header_outputext = _svnt.h
- generic_outputext = E.idl
keyword cidlflags = commandflags
@@ -32,5 +29,16 @@ project: build_files {
commandflags (--gen-desc-file) = _Impl.ccd
}
+ optional (header_outputext) {
+ commandflags (!--suppress-svnt) = _svnt.h
+ }
+
+ optional (source_outputext) {
+ commandflags (!--suppress-svnt) = _svnt.cpp
+ }
+
+ optional (generic_outputext) {
+ commandflags (!--suppress-lem) = E.idl
+ }
}
}
diff --git a/CIAO/MPC/config/cidlc.mpb b/CIAO/MPC/config/cidlc.mpb
index 92da50cefb2..31ad4bb08ed 100644
--- a/CIAO/MPC/config/cidlc.mpb
+++ b/CIAO/MPC/config/cidlc.mpb
@@ -5,7 +5,7 @@ project: boost_filesystem, boost_regex, exceptions, crosscompile {
includes += $(CIAO_ROOT) $(CIAO_ROOT)/CCF $(ACE_ROOT)/contrib/utility
libpaths += $(CIAO_ROOT)/CCF/CCF $(ACE_ROOT)/lib
- specific(nmake, vc71, vc8, vc9, vc10) {
+ specific(prop:microsoft) {
compile_flags += /wd4290 /wd4800 /wd4250 /wd4355 /wd4996
}
diff --git a/CIAO/MPC/config/dance_plan_generator.mpc b/CIAO/MPC/config/dance_plan_generator.mpc
index 3448d4b2a6b..be95b7c5555 100644
--- a/CIAO/MPC/config/dance_plan_generator.mpc
+++ b/CIAO/MPC/config/dance_plan_generator.mpc
@@ -1,7 +1,8 @@
// -*- MPC -*-
// $Id$
-project : dance_deployment_stub, naming {
- after += Plan_Generator
+project : ciao_executor {
+ after += DAnCE_Plan_Generator
libs += DAnCE_Plan_Generator
+ includes += $(CIAO_ROOT)/DAnCE/Plan_Generator
}
diff --git a/CIAO/MPC/config/dance_plan_launcher_base.mpc b/CIAO/MPC/config/dance_plan_launcher_base.mpc
new file mode 100644
index 00000000000..675ca3045d7
--- /dev/null
+++ b/CIAO/MPC/config/dance_plan_launcher_base.mpc
@@ -0,0 +1,6 @@
+// $Id$
+
+project : naming, dance_executionmanager_stub {
+ after += Plan_Launcher_Base
+ libs += DAnCE_Plan_Launcher_Base
+} \ No newline at end of file
diff --git a/CIAO/MPC/config/xscdefaults.mpb b/CIAO/MPC/config/xscdefaults.mpb
index e53f1eeedbf..759ddcb6924 100644
--- a/CIAO/MPC/config/xscdefaults.mpb
+++ b/CIAO/MPC/config/xscdefaults.mpb
@@ -3,8 +3,8 @@
project {
specific {
- xsc_bin = $(XSC_ROOT)/bin/xsc-binary
- xsc_dep = $(XSC_ROOT)/bin/xsc-binary
+ xsc_bin = $(XSC_ROOT)/bin/xsc
+ xsc_dep = $(XSC_ROOT)/bin/xsc
xsc_flags = --backend cxx --cxx-char-type ACE_TCHAR --cxx-generate-writer-types
}
diff --git a/CIAO/NEWS b/CIAO/NEWS
index 0ac75aaa916..2f6e8a6c05a 100644
--- a/CIAO/NEWS
+++ b/CIAO/NEWS
@@ -1,9 +1,20 @@
PLANNED CHANGES BEFORE NEXT RELEASE
===================================
-This is advanced notification that the CIAO-0.6.7 release of CIAO will be
-the last release before a major refactoring is introduced into CIAO/DAnCE
-that will remove several features, with no planned replacement in
+. The RepositoryManager will be ported to the new DAnCE.
+
+. The TargetManager will be ported to the new DAnCE.
+
+. The CIDL Compiler will be deprecated in the next version to be replaced by
+ code generation being handled entirely by tao_idl. As a result, CIDL will
+ no longer be used to specify containers and local executor mappings for component
+ implementations, to be instead handled by either command line options to the
+ compiler or some new file type.
+
+PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
+===========================================================================
+
+. Several features have been recently removed, with no planned replacement in
their current form, such as:
. ReDaC
@@ -18,9 +29,6 @@ replacement in the near term:
. RepositoryManager
. Swapping container
-PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
-===========================================================================
-
. Enhance Execution Manager and Domain Application Manager to make calls
on the Target Manager to get resource information.
@@ -52,18 +60,6 @@ PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
can be implemented in such a way as to not break copliance with the DnC
specification.
-. Implement Resource Allocation and Control Engine (RACE), which is a
- component middleware framework built atop of CIAO/DAnCE that integrates
- multiple resource allocation/control algorithms for (re)deploying and
- (re)configuring component applications. RACE enables (1) system
- developers to configure algorithms depending on the characteristics of
- applications and operating environment, and (2) swapping in and swapping
- out multiple algorithms to make different resource allocation and control
- decisions, without handcrafting the mechanisms needed to (1) configure
- the algorithms and (2) deploy the decisions made by the algorithms.
-
-. Implement support for more complex type initialization with XML.
-
. Decouple dependencies to NodeApplication from other DAnCE tools.
These dependencies were added to support static configurator. We
need to have these tools in both conventional version and static
@@ -79,6 +75,13 @@ PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
. Implement a planner to query the TargetManager and RepositoryManager
and generate deployment plans on the fly.
+USER VISIBLE CHANGES BETWEEN CIAO-0.6.9 and CIAO-0.7.0
+=======================================================
+. CIDLC compiler has new command line options: --suppress-lem which will suppress
+ generation of the local executor mapping, --suppress-svnt which will suppress
+ generation of the servant code, --lem-enclosing-module which will generate the
+ local executor mapping inside a given module.
+
USER VISIBLE CHANGES BETWEEN CIAO-0.6.8 and CIAO-0.6.9
======================================================
diff --git a/CIAO/PROBLEM-REPORT-FORM b/CIAO/PROBLEM-REPORT-FORM
index 43f0f0a4326..52912bf70fe 100644
--- a/CIAO/PROBLEM-REPORT-FORM
+++ b/CIAO/PROBLEM-REPORT-FORM
@@ -62,6 +62,9 @@ Subject: [area]: [synopsis]
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:
+ BUILD METHOD USED:
+[Experimental ./configure or traditional makefile/project file?]
+
CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):
diff --git a/CIAO/VERSION b/CIAO/VERSION
index 84a55ceac94..a8cd7bceba7 100644
--- a/CIAO/VERSION
+++ b/CIAO/VERSION
@@ -1,4 +1,4 @@
-This is CIAO version 0.7, released Tue Apr 14 09:48:27 CDT 2009
+This is CIAO version 0.7, released Mon Jun 22 09:33:40 CDT 2009
If you have any problems with or questions about CIAO, please send
e-mail to the CIAO mailing list (ciao-users@cs.wustl.edu), using the
diff --git a/CIAO/bin/PerlCIAO/generate_container.pl b/CIAO/bin/PerlCIAO/generate_container.pl
index c56c03ea300..c56c03ea300 100644..100755
--- a/CIAO/bin/PerlCIAO/generate_container.pl
+++ b/CIAO/bin/PerlCIAO/generate_container.pl
diff --git a/CIAO/bin/ciao_tests.lst b/CIAO/bin/ciao_tests.lst
index eeaf5d94c41..7ae127234e8 100644
--- a/CIAO/bin/ciao_tests.lst
+++ b/CIAO/bin/ciao_tests.lst
@@ -18,6 +18,7 @@ TAO/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl: !STATIC !MINIMUM !CO
TAO/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
TAO/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
TAO/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
+TAO/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl: !FIXED_BUGS_ONLY !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE
TAO/CIAO/DAnCE/tests/CIAO/NodeManager-Deployments/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
TAO/CIAO/DAnCE/tests/CIAO/ExecutionManager-Deployments/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
TAO/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl: !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NOXERCES !ACE_FOR_TAO !ST !LabVIEW_RT !WinCE !FUZZ
diff --git a/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp b/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp
index b7c2eaa6895..126c0309502 100644
--- a/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp
+++ b/CIAO/ciao/ComponentServer/CIAO_ComponentServer.cpp
@@ -83,7 +83,7 @@ namespace CIAO
ComponentServer_Task::ComponentServer_Task (int argc, ACE_TCHAR **argv)
: orb_ (0),
uuid_ (""),
- callback_ior_str_ ("")
+ callback_ior_str_ (ACE_TEXT(""))
{
CIAO_TRACE ("CIAO_ComponentServer_Task::CIAO_ComponentServer_Task ()");
@@ -169,7 +169,7 @@ namespace CIAO
}
- if (this->callback_ior_str_ != "")
+ if (this->callback_ior_str_ != ACE_TEXT(""))
{
CIAO_DEBUG ((LM_TRACE, CLINFO " resolving callback IOR\n"));
CORBA::Object_ptr obj = this->orb_->string_to_object (this->callback_ior_str_.c_str ());
@@ -337,7 +337,7 @@ namespace CIAO
CIAO_DEBUG ((LM_DEBUG, CLINFO "ComponentServer_Task::parse_args - "
"uuid is %s\n",
opts.opt_arg ()));
- this->uuid_ = opts.opt_arg ();
+ this->uuid_ = ACE_TEXT_ALWAYS_CHAR (opts.opt_arg ());
break;
case 'c':
@@ -370,8 +370,8 @@ namespace CIAO
CIAO_ERROR ((LM_ERROR, CLINFO " Unknown option: %s\n",
opts.last_option ()));
this->usage ();
- ACE_TString err (ACE_TEXT("Unknown option "));
- err += opts.last_option ();
+ ACE_CString err ("Unknown option ");
+ err += ACE_TEXT_ALWAYS_CHAR (opts.last_option ());
throw Error (err);
}
}
@@ -379,7 +379,7 @@ namespace CIAO
// check required options.
if (this->uuid_ == "")
throw Error ("Option required: -u|--uuid");
- if (this->callback_ior_str_ == "")
+ if (this->callback_ior_str_ == ACE_TEXT(""))
CIAO_ERROR ((LM_WARNING, CLINFO
"ComponentServer_Task::parse_args - Starting ComponentServer without a callback IOR\n"));
}
diff --git a/CIAO/ciao/ComponentServer/CIAO_ComponentServer.h b/CIAO/ciao/ComponentServer/CIAO_ComponentServer.h
index 1b89ff461e0..26919ad8486 100644
--- a/CIAO/ciao/ComponentServer/CIAO_ComponentServer.h
+++ b/CIAO/ciao/ComponentServer/CIAO_ComponentServer.h
@@ -58,7 +58,7 @@ namespace CIAO
auto_ptr<CIAO::Logger_Service> logger_;
ACE_CString uuid_;
- ACE_CString callback_ior_str_;
+ ACE_TString callback_ior_str_;
ACE_TString output_file_;
auto_ptr<ComponentServer_Configurator> configurator_;
diff --git a/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp b/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
index f965bf57e21..97e17b5c4d6 100644
--- a/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
+++ b/CIAO/ciao/ComponentServer/CIAO_ServerActivator_Impl.cpp
@@ -33,7 +33,7 @@ namespace CIAO
ci_ (CIAO::Deployment::ComponentInstallation::_duplicate (ci))
{
- CIAO_TRACE (CLINFO "CIAO_ServerActivator_i::CIAO_ServerActivator_i");
+ CIAO_TRACE (CLINFO ACE_TEXT("CIAO_ServerActivator_i::CIAO_ServerActivator_i"));
}
CIAO_ServerActivator_i::~CIAO_ServerActivator_i(void)
@@ -46,7 +46,7 @@ namespace CIAO
const char * server_UUID,
::Components::ConfigValues_out config)
{
- CIAO_TRACE(CLINFO "CIAO_ServerActivator_i::component_server_callback");
+ CIAO_TRACE(CLINFO ACE_TEXT("CIAO_ServerActivator_i::component_server_callback"));
CIAO_DEBUG ((LM_TRACE, CLINFO
"CIAO_ServerActivator_i::component_server_callback - "
@@ -123,7 +123,7 @@ namespace CIAO
void
CIAO_ServerActivator_i::configuration_complete (const char *server_UUID)
{
- CIAO_TRACE (CLINFO "CIAO_ServerActivator_i::configuration_complete");
+ CIAO_TRACE (CLINFO ACE_TEXT("CIAO_ServerActivator_i::configuration_complete"));
CIAO_DEBUG ((LM_TRACE, CLINFO
"CIAO_ServerActivator_i::configuration_complete - "
@@ -193,7 +193,7 @@ namespace CIAO
::Components::Deployment::ComponentServer_ptr
CIAO_ServerActivator_i::create_component_server (const ::Components::ConfigValues & config)
{
- CIAO_TRACE(CLINFO "CIAO_ServerActivator_i::create_component_server");
+ CIAO_TRACE(CLINFO ACE_TEXT("CIAO_ServerActivator_i::create_component_server"));
Safe_Server_Info server (new Server_Info (config.length () + 1));
@@ -253,7 +253,7 @@ namespace CIAO
ACE_CString
CIAO_ServerActivator_i::construct_command_line (Server_Info &server)
{
- CIAO_TRACE (CLINFO "CIAO_ServerActivator_i::construct_command_line");
+ CIAO_TRACE (CLINFO ACE_TEXT("CIAO_ServerActivator_i::construct_command_line"));
// Build our command line to launch the compoent server
ACE_CString cmd_options (this->cs_args_);
@@ -377,7 +377,7 @@ namespace CIAO
single_threaded_wait_for_callback (const Server_Info &si,
ACE_Time_Value &timeout)
{
- CIAO_TRACE (CLINFO "CIAO_ServerActivator_i::single_threaded_wait_for_callback");
+ CIAO_TRACE (CLINFO ACE_TEXT("CIAO_ServerActivator_i::single_threaded_wait_for_callback"));
// Below code is broken for thread-per-connection concurrency model,
// since the main thread is running ORB event loop and will spawn
// a different thread to handle the call <register_node_application>,
@@ -409,7 +409,7 @@ namespace CIAO
multi_threaded_wait_for_callback (const Server_Info &si,
ACE_Time_Value &timeout)
{
- CIAO_TRACE (CLINFO "CIAO_ServerActivator_i::multi_threaded_wait_for_callback");
+ CIAO_TRACE (CLINFO ACE_TEXT("CIAO_ServerActivator_i::multi_threaded_wait_for_callback"));
// Wait for a conditional variable
ACE_GUARD_THROW_EX ( TAO_SYNCH_MUTEX,
@@ -431,7 +431,7 @@ namespace CIAO
void
CIAO_ServerActivator_i::remove_component_server (::Components::Deployment::ComponentServer_ptr server)
{
- CIAO_TRACE(CLINFO "CIAO_ServerActivator_i::remove_component_server");
+ CIAO_TRACE(CLINFO ACE_TEXT("CIAO_ServerActivator_i::remove_component_server"));
if (this->server_infos_.is_empty ())
{
@@ -502,7 +502,7 @@ namespace CIAO
::Components::Deployment::ComponentServers *
CIAO_ServerActivator_i::get_component_servers (void)
{
- CIAO_TRACE(CLINFO "CIAO_ServerActivator_i::get_component_servers");
+ CIAO_TRACE(CLINFO ACE_TEXT("CIAO_ServerActivator_i::get_component_servers"));
::Components::Deployment::ComponentServers_var retval = new
Components::Deployment::ComponentServers (this->server_infos_.size ());
diff --git a/CIAO/ciao/Server_init.cpp b/CIAO/ciao/Server_init.cpp
index 591dd2bd8a0..37fc2693641 100644
--- a/CIAO/ciao/Server_init.cpp
+++ b/CIAO/ciao/Server_init.cpp
@@ -7,6 +7,7 @@
#include "Valuetype_Factories/Cookies.h"
#include "CIAO_common.h"
#include "Client_init.h"
+#include "ace/Tokenizer_T.h"
namespace CIAO
{
@@ -22,9 +23,9 @@ namespace CIAO
namespace Utility
{
- int write_IOR (const char *pathname, const char *ior)
+ int write_IOR (const ACE_TCHAR *pathname, const char *ior)
{
- FILE* ior_output_file_ = ACE_OS::fopen (pathname, "w");
+ FILE* ior_output_file_ = ACE_OS::fopen (pathname, ACE_TEXT("w"));
if (ior_output_file_)
{
@@ -71,13 +72,13 @@ namespace CIAO
NameUtility::create_name (const char *namestr, CosNaming::Name &name)
{
ACE_Auto_Basic_Array_Ptr<char> namebfr (ACE::strnew (namestr));
- ACE_Tokenizer tok (namebfr.get ());
+ ACE_Tokenizer_T<char> tok (namebfr.get ());
tok.delimiter ('/');
for (char *p = tok.next (); p; p=tok.next ())
{
- CORBA::ULong pos = name.length ();
+ CORBA::ULong const pos = name.length ();
name.length (pos + 1);
name[pos].id = CORBA::string_dup (p);
}
@@ -88,7 +89,7 @@ namespace CIAO
{
bool isNotFound = false;
CORBA::ULong lengthMissing = 0;
- CORBA::ULong OriginalLength = name.length ();
+ CORBA::ULong const OriginalLength = name.length ();
CosNaming::Name tmpName;
CosNaming::NamingContext_var tmpCtxVar;
diff --git a/CIAO/ciao/Server_init.h b/CIAO/ciao/Server_init.h
index db9b126f37d..bb9e00ede9f 100644
--- a/CIAO/ciao/Server_init.h
+++ b/CIAO/ciao/Server_init.h
@@ -50,7 +50,7 @@ namespace CIAO
/// Write a string (usually a stringified IOR) to a file
/// designated by the @c pathname. The file named will always get
/// overwritten.
- CIAO_SERVER_Export int write_IOR (const char *pathname,
+ CIAO_SERVER_Export int write_IOR (const ACE_TCHAR *pathname,
const char *IOR);
class CIAO_SERVER_Export NameUtility
diff --git a/CIAO/docs/fm/CIAO.fm b/CIAO/docs/fm/CIAO.fm
new file mode 100644
index 00000000000..2d9f30978b4
--- /dev/null
+++ b/CIAO/docs/fm/CIAO.fm
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.eps b/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.eps
new file mode 100644
index 00000000000..199356e471f
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.sxd b/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.sxd
new file mode 100644
index 00000000000..c9274592024
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Component_Container_and_CORBA.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.eps b/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.eps
new file mode 100644
index 00000000000..d15f7622a60
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.sxd b/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.sxd
new file mode 100644
index 00000000000..434e9c640ad
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Components_Administrator_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.eps b/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.eps
new file mode 100644
index 00000000000..a59c4c51367
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.sxd b/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.sxd
new file mode 100644
index 00000000000..39f15ee32c3
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Components_Messenger_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.eps b/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.eps
new file mode 100644
index 00000000000..e381ccee506
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.sxd b/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.sxd
new file mode 100644
index 00000000000..e31cea90d52
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Components_Messenger_Runnable_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.eps b/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.eps
new file mode 100644
index 00000000000..9f45c415037
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.sxd b/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.sxd
new file mode 100644
index 00000000000..61beec7cae2
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Components_Receiver_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.eps b/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.eps
new file mode 100644
index 00000000000..520d868bdf9
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.sxd b/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.sxd
new file mode 100644
index 00000000000..b7075b1d398
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Administrator.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Application.eps b/CIAO/docs/fm/images/CIAO_Descriptors_Application.eps
new file mode 100644
index 00000000000..f291c21aa79
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Application.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Application.sxd b/CIAO/docs/fm/images/CIAO_Descriptors_Application.sxd
new file mode 100644
index 00000000000..fe3745e5fc9
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Application.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.eps b/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.eps
new file mode 100644
index 00000000000..c1e997bf8f8
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.sxd b/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.sxd
new file mode 100644
index 00000000000..ee5286986b0
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Messenger.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.eps b/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.eps
new file mode 100644
index 00000000000..924c5e62d11
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.sxd b/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.sxd
new file mode 100644
index 00000000000..fc4c07c269a
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Messenger_Assembly.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.eps b/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.eps
new file mode 100644
index 00000000000..ff3c3b74733
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.sxd b/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.sxd
new file mode 100644
index 00000000000..67555eb68a4
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Descriptors_Receiver.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.eps b/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.eps
new file mode 100644
index 00000000000..9999c12552e
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.sxd b/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.sxd
new file mode 100644
index 00000000000..9b0cb8c21f2
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Generic_Component_Diagram.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.eps b/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.eps
new file mode 100644
index 00000000000..4d541937873
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.sxd b/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.sxd
new file mode 100644
index 00000000000..861f5a15cdb
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_IDL3_to_IDL2_Files.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.eps b/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.eps
new file mode 100644
index 00000000000..6df8ae5272e
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.sxd b/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.sxd
new file mode 100644
index 00000000000..8c1f626ed6c
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.eps b/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.eps
new file mode 100644
index 00000000000..dc77e8e97ec
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.sxd b/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.sxd
new file mode 100644
index 00000000000..aab58862aca
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_IDL_CIDL_Files_CIDL_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.eps b/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.eps
new file mode 100644
index 00000000000..1fec26375aa
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.sxd b/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.sxd
new file mode 100644
index 00000000000..b641b2cd3c9
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_MessengerHome_Class_Diagram.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.eps b/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.eps
new file mode 100644
index 00000000000..b68053dd664
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.sxd b/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.sxd
new file mode 100644
index 00000000000..287fc0c97bc
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Class_Diagram.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.eps b/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.eps
new file mode 100644
index 00000000000..0eb8ae53773
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.sxd b/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.sxd
new file mode 100644
index 00000000000..34dc595d299
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Component_Diagram.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.eps b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.eps
new file mode 100644
index 00000000000..4beae29323f
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.sxd b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.sxd
new file mode 100644
index 00000000000..4a28077f309
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.eps b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.eps
new file mode 100644
index 00000000000..785b42673da
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.sxd b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.sxd
new file mode 100644
index 00000000000..0b4f235a918
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Connections_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.eps b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.eps
new file mode 100644
index 00000000000..16b34a2ce5e
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.sxd b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.sxd
new file mode 100644
index 00000000000..ec31dff72fd
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_All_Nodes_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.eps b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.eps
new file mode 100644
index 00000000000..a4d12ef666d
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.sxd b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.sxd
new file mode 100644
index 00000000000..109aa0d33fc
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Connection_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.eps b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.eps
new file mode 100644
index 00000000000..fe802ede9b8
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.sxd b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.sxd
new file mode 100644
index 00000000000..e273d767461
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Deployment_Diagram_Node_Highlight.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.eps b/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.eps
new file mode 100644
index 00000000000..52336bee092
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.sxd b/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.sxd
new file mode 100644
index 00000000000..374744638e8
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_IDL_Generated_Class_Diagram.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.eps b/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.eps
new file mode 100644
index 00000000000..dcfe7db00a8
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.sxd b/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.sxd
new file mode 100644
index 00000000000..bb39ca53a27
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Messenger_Interaction_Diagram.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_01.eps b/CIAO/docs/fm/images/CIAO_Roadmap_01.eps
new file mode 100644
index 00000000000..9b1f7e7337c
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_01.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_01.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_01.sxd
new file mode 100644
index 00000000000..8227c8d1ca1
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_01.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_02.eps b/CIAO/docs/fm/images/CIAO_Roadmap_02.eps
new file mode 100644
index 00000000000..166f1fbdb3c
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_02.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_02.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_02.sxd
new file mode 100644
index 00000000000..499b12e8023
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_02.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_03.eps b/CIAO/docs/fm/images/CIAO_Roadmap_03.eps
new file mode 100644
index 00000000000..e91f91330b7
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_03.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_03.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_03.sxd
new file mode 100644
index 00000000000..710fbf2b247
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_03.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_04.eps b/CIAO/docs/fm/images/CIAO_Roadmap_04.eps
new file mode 100644
index 00000000000..8b5b1a6b01c
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_04.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_04.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_04.sxd
new file mode 100644
index 00000000000..f163a28db22
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_04.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_05.eps b/CIAO/docs/fm/images/CIAO_Roadmap_05.eps
new file mode 100644
index 00000000000..4fe79d1f1b6
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_05.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_05.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_05.sxd
new file mode 100644
index 00000000000..7a2add97011
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_05.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_06.eps b/CIAO/docs/fm/images/CIAO_Roadmap_06.eps
new file mode 100644
index 00000000000..5564282e65b
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_06.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_06.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_06.sxd
new file mode 100644
index 00000000000..8121ceb64b7
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_06.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_07.eps b/CIAO/docs/fm/images/CIAO_Roadmap_07.eps
new file mode 100644
index 00000000000..5e279f30297
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_07.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_07.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_07.sxd
new file mode 100644
index 00000000000..884efe0ea5e
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_07.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_08.eps b/CIAO/docs/fm/images/CIAO_Roadmap_08.eps
new file mode 100644
index 00000000000..d56e2626795
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_08.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_08.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_08.sxd
new file mode 100644
index 00000000000..7e53c97fdbb
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_08.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_09.eps b/CIAO/docs/fm/images/CIAO_Roadmap_09.eps
new file mode 100644
index 00000000000..06272f3d65d
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_09.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_09.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_09.sxd
new file mode 100644
index 00000000000..f43524d5eb8
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_09.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_Overview.eps b/CIAO/docs/fm/images/CIAO_Roadmap_Overview.eps
new file mode 100644
index 00000000000..65ae8c9de46
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_Overview.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Roadmap_Overview.sxd b/CIAO/docs/fm/images/CIAO_Roadmap_Overview.sxd
new file mode 100644
index 00000000000..7d7eaebd5a1
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Roadmap_Overview.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.eps b/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.eps
new file mode 100644
index 00000000000..a27d4af7d68
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.eps
Binary files differ
diff --git a/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.sxd b/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.sxd
new file mode 100644
index 00000000000..c15bd72becc
--- /dev/null
+++ b/CIAO/docs/fm/images/CIAO_Runnable_Class_Diagram.sxd
Binary files differ
diff --git a/CIAO/docs/fm/images/OCILOGO_bw_book.eps b/CIAO/docs/fm/images/OCILOGO_bw_book.eps
new file mode 100644
index 00000000000..708fd10aae9
--- /dev/null
+++ b/CIAO/docs/fm/images/OCILOGO_bw_book.eps
Binary files differ
diff --git a/CIAO/docs/schema/Basic_Deployment_Data.xsd b/CIAO/docs/schema/Basic_Deployment_Data.xsd
index 9588919909a..025b4d8631d 100644
--- a/CIAO/docs/schema/Basic_Deployment_Data.xsd
+++ b/CIAO/docs/schema/Basic_Deployment_Data.xsd
@@ -235,9 +235,9 @@
<xsd:complexType name="ArtifactDeploymentDescription">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
- <xsd:element name="source" type="xsd:string" maxOccurs="unbounded"/>
- <xsd:element name="node" type="xsd:string"/>
- <xsd:element name="location" type="xsd:string" maxOccurs="unbounded"/>
+ <xsd:element name="source" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="node" type="xsd:string" />
+ <xsd:element name="location" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="execParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="deployedResource" type="Deployment:ResourceDeploymentDescription" minOccurs="0" maxOccurs="unbounded"/>
@@ -248,8 +248,8 @@
<xsd:complexType name="MonolithicDeploymentDescription">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
- <xsd:element name="source" type="xsd:string" maxOccurs="unbounded"/>
- <xsd:element name="artifact" type="Deployment:IdRef" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription -->
+ <xsd:element name="source" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="artifact" type="Deployment:IdRef" minOccurs="0" maxOccurs="unbounded"/> <!-- ArtifactDeploymentDescription -->
<xsd:element name="execParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="deployRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
@@ -340,7 +340,7 @@
<xsd:element name="location" type="xsd:string"/>
<xsd:element name="provider" type="xsd:boolean"/>
<xsd:element name="portName" type="xsd:string" minOccurs="0" />
- <xsd:element name="supportedType" type="xsd:string" maxOccurs="unbounded" />
+ <xsd:element name="supportedType" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
@@ -376,7 +376,7 @@
<xsd:complexType name="Capability">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
- <xsd:element name="resourceType" type="xsd:string" maxOccurs="unbounded" />
+ <xsd:element name="resourceType" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="property" type="Deployment:SatisfierProperty" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
diff --git a/CIAO/docs/schema/cid.xsd b/CIAO/docs/schema/cid.xsd
index fdcd66c3044..1d46d467190 100644
--- a/CIAO/docs/schema/cid.xsd
+++ b/CIAO/docs/schema/cid.xsd
@@ -42,13 +42,13 @@
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="externalName" type="xsd:string"/>
- <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference" maxOccurs="unbounded" />
+ <xsd:element name="delegatesTo" type="Deployment:SubcomponentPropertyReference" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ComponentAssemblyDescription">
<xsd:sequence>
- <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" maxOccurs="unbounded"/>
+ <xsd:element name="instance" type="Deployment:SubcomponentInstantiationDescription" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="connection" type="Deployment:AssemblyConnectionDescription" minOccurs="0" maxOccurs="unbounded"/>
<!-- <xsd:element name="locality" type="Deployment:Locality" minOccurs="0" maxOccurs="unbounded" /> -->
<xsd:element name="externalProperty" type="Deployment:AssemblyPropertyMapping" minOccurs="0" maxOccurs="unbounded" />
@@ -60,7 +60,7 @@
<xsd:element name="nodeExecParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="componentExecParameter" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="deployRequirement" type="Deployment:ImplementationRequirement" minOccurs="0" maxOccurs="unbounded" />
- <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" maxOccurs="unbounded"/>
+ <xsd:element name="primaryArtifact" type="Deployment:NamedImplementationArtifact" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
diff --git a/CIAO/docs/schema/pcd.xsd b/CIAO/docs/schema/pcd.xsd
index 05b10e1bb79..5c7772f7d85 100644
--- a/CIAO/docs/schema/pcd.xsd
+++ b/CIAO/docs/schema/pcd.xsd
@@ -9,7 +9,7 @@
<xsd:complexType name="ComponentPackageImport">
<xsd:sequence>
- <xsd:element name="location" type="xsd:string" maxOccurs="unbounded" />
+ <xsd:element name="location" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
@@ -25,7 +25,7 @@
<xsd:element name="selectRequirement" type="Deployment:Requirement" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="configProperty" type="Deployment:Property" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
- <xsd:element name="contentLocation" type="xsd:string"/>
+ <xsd:element name="contentLocation" type="xsd:string" minOccurs="0"/>
</xsd:choice>
</xsd:complexType>
diff --git a/CIAO/docs/schema/toplevel.xsd b/CIAO/docs/schema/toplevel.xsd
index 0c67f5fb7a9..a091c04bc23 100644
--- a/CIAO/docs/schema/toplevel.xsd
+++ b/CIAO/docs/schema/toplevel.xsd
@@ -8,7 +8,7 @@
<xsd:complexType name="TopLevelPackageDescription">
<xsd:sequence>
- <xsd:element name="basePackage" type="Deployment:PackageConfiguration" maxOccurs="unbounded"/>
+ <xsd:element name="basePackage" type="Deployment:PackageConfiguration" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
diff --git a/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp b/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
index 1160135006d..f9a0072ee47 100644
--- a/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
+++ b/CIAO/docs/tutorials/Quoter/Simple/Broker/StockBrokerDriver.cpp
@@ -66,7 +66,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
// create the factory object reference of StockBrokerHome
CORBA::Object_var broker_obj =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (broker_ior));
+ orb->string_to_object (broker_ior);
// downcast the object reference to the appropriate type
Stock::StockBroker_var broker =
diff --git a/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp b/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
index 8b0e0d34446..13d1a30b3f9 100644
--- a/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
+++ b/CIAO/docs/tutorials/Quoter/Simple/Distributor/StockDistributorDriver.cpp
@@ -73,7 +73,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
// create the factory object reference,
CORBA::Object_var distributor_obj =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (distributor_ior));
+ orb->string_to_object (distributor_ior);
// downcast the object reference to the appropriate type
Stock::StockDistributor_var distributor =
diff --git a/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl b/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
index 1a3ba62f403..1a3ba62f403 100644..100755
--- a/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
+++ b/CIAO/docs/tutorials/Quoter/Simple/descriptors/runNodeDaemons.pl
diff --git a/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl b/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl
index e7e707f253d..e7e707f253d 100644..100755
--- a/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl
+++ b/CIAO/examples/DevGuideExamples/Messenger/StaticDAnCE/run_test.pl
diff --git a/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl b/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl
index 77b1711b3be..77b1711b3be 100644..100755
--- a/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl
+++ b/CIAO/examples/DevGuideExamples/Messenger/descriptors/run_test.pl
diff --git a/CIAO/examples/Hello/Sender/starter.cpp b/CIAO/examples/Hello/Sender/starter.cpp
index 610ee410d11..e91b55f47d7 100644
--- a/CIAO/examples/Hello/Sender/starter.cpp
+++ b/CIAO/examples/Hello/Sender/starter.cpp
@@ -58,8 +58,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return -1;
}
- CORBA::Object_var obj =
- orb->string_to_object (ior);
+ CORBA::Object_var obj = orb->string_to_object (ior);
Hello::Sender_var sender = Hello::Sender::_narrow (obj.in ());
@@ -71,9 +70,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
}
if (message)
- {
- sender->local_message (message);
- }
+ {
+ sender->local_message (message);
+ }
sender->start ();
diff --git a/CIAO/examples/Hello/descriptors/Aliased_Map.dat b/CIAO/examples/Hello/descriptors/Aliased_Map.dat
new file mode 100644
index 00000000000..30e6930c2a3
--- /dev/null
+++ b/CIAO/examples/Hello/descriptors/Aliased_Map.dat
@@ -0,0 +1,2 @@
+SenderNode corbaloc:iiop:localhost:60001/Alias.NodeManager
+ReceiverNode corbaloc:iiop:localhost:60001/Alias.NodeManager \ No newline at end of file
diff --git a/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl b/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl
index 3ada705a1c9..3ada705a1c9 100644..100755
--- a/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl
+++ b/CIAO/examples/Hello/descriptors/run_NodeDaemons.pl
diff --git a/CIAO/examples/Hello/descriptors/run_test_alias.pl b/CIAO/examples/Hello/descriptors/run_test_alias.pl
new file mode 100755
index 00000000000..4d53ae417d4
--- /dev/null
+++ b/CIAO/examples/Hello/descriptors/run_test_alias.pl
@@ -0,0 +1,195 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$DAnCE = "$ENV{'DANCE_ROOT'}";
+$daemons_running = 0;
+$em_running = 0;
+$ns_running = 0;
+$daemons = 1;
+@ports = ( 60001 );
+@iorfiles = ( "NodeApp1.ior" );
+@nodenames = ( "Alias" );
+$status = 0;
+$dat_file = "Aliased_Map.dat";
+$cdp_file = "DeploymentPlan.cdp";
+$controller_exec = "$CIAO_ROOT/examples/Hello/Sender/starter";
+
+$nsior = PerlACE::LocalFile ("ns.ior");
+
+PerlACE::add_lib_path ('../lib');
+
+unlink $nsior;
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("Receiver.ior");
+ unlink PerlACE::LocalFile ("Sender.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+ unlink PerlACE::LocalFile ("ns.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill ();
+ $EM->TimedWait (1);
+ }
+
+ if ($ns_running == 1) {
+ $NS->Kill ();
+ $NS->TimedWait (1);
+ }
+
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+ $nodename = $nodenames[$i];
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/ciao_componentserver";
+
+ $d_cmd = "$DAnCE/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -n $nodename=$iorfile -t 30 --instance-nc corbaloc:rir:/NameService";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ 30) == -1) {
+ print STDERR
+ "ERROR: The ior $iorfile file of node daemon $i could not be found\n";
+ for (; $i >= 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ return 0;
+}
+
+delete_ior_files ();
+
+# Invoke naming service
+
+$NS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service", "-m 0 -ORBEndpoint iiop://localhost:60003 -o ns.ior");
+
+$NS->Spawn ();
+
+print STDERR "Starting Naming Service\n";
+
+if (PerlACE::waitforfile_timed ($nsior, $PerlACE::wait_interval_for_process_creation) == -1)
+{
+ print STDERR "ERROR: cannot find naming service IOR file\n";
+ $NS->Kill ();
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Set up NamingService environment
+$ENV{"NameServiceIOR"} = "corbaloc:iiop:localhost:60003/NameService";
+
+
+# Invoke node daemons.
+print "Invoking node daemons\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$daemons_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager\n";
+$EM = new PerlACE::Process ("$DAnCE/bin/dance_execution_manager",
+ "-eEM.ior --node-map $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$em_running = 1;
+
+# Invoke executor - start the application -.
+print "Invoking executor - start the application -\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-x DeploymentPlan.cdp -k file://EM.ior");
+
+$E->SpawnWaitKill (5000);
+
+if (PerlACE::waitforfile_timed (
+ "Receiver.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of receiver could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ("Sender.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Invoking the controller\n";
+$controller = new PerlACE::Process ("$controller_exec", "-k file://Sender.ior");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+$E =
+ new PerlACE::Process ("$DAnCE/bin/dance_plan_launcher",
+ "-k file://EM.ior -x DeploymentPlan.cdp -q");
+$E->SpawnWaitKill (3000);
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/CIAO/examples/Hello/descriptors_naming/deploymentplan_naming.cdp b/CIAO/examples/Hello/descriptors_naming/deploymentplan_naming.cdp
deleted file mode 100644
index 6addc453772..00000000000
--- a/CIAO/examples/Hello/descriptors_naming/deploymentplan_naming.cdp
+++ /dev/null
@@ -1,240 +0,0 @@
-<!-- This flattened deployment plan allows component instance to
- register to naming service, if you don't want to use naming
- service at all, you can use the flattened_deployment_without_ns.cdp
- as your deployment descriptor. -->
-
-<Deployment:deploymentPlan
- xmlns:Deployment="http://www.omg.org/Deployment"
- xmlns:xmi="http://www.omg.org/XMI"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/Deployment Deployment.xsd">
-
- <label>Hello-DeploymentPlan</label>
- <UUID>Hello_Plan_UUID_0001</UUID>
- <!-- Could be ZERO -->
- <realizes>
- <label>BasicSP-realizes-cid</label>
- <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID>
- <specificType><!-- @@ What does here? --></specificType>
- <supportedType>IDL:BasicSP/EC:1.0</supportedType>
- <port>
- <name>read_message</name>
- <specificType>IDL:Hello/ReadMessage:1.0</specificType>
- <supportedType>IDL:Hello/ReadMessage:1.0</supportedType>
- <provider>false></provider>
- <exclusiveProvider>false</exclusiveProvider>
- <exclusiveUser>true</exclusiveUser>
- <optional>false</optional>
- <kind>SimplexReceptacle</kind>
- </port>
- </realizes>
-
- <implementation id="Hello-Sender-mdd">
- <name>Hello-Sender-mdd</name>
- <source><!-- @@ Don't know what goes here --></source>
- <artifact>Hello-Sender_exec</artifact>
- <artifact>Hello-Sender_svnt</artifact>
- <!--
- <execParameter></execParameter>
- <deployRequirement></deployRequirement>
- -->
- </implementation>
-
- <implementation id="Hello-Receiver-mdd">
- <name>Hello-Receiver-mdd</name>
- <source><!-- @@ Don't know what goes here --></source>
- <artifact>Hello-Receiver_exec</artifact>
- <artifact>Hello-Receiver_svnt</artifact>
- <!--
- <execParameter></execParameter>
- <deployRequirement></deployRequirement>
- -->
- </implementation>
-
- <instance id="Hello-Sender-idd">
- <name>Hello-Sender-idd</name>
- <node>SenderNode</node>
- <source><!-- @@ What goes here --></source>
- <implementation>Hello-Sender-mdd</implementation>
-
- <!-- Add this property if you want to write component reference to IOR -->
- <configProperty>
- <name>ComponentIOR</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender.ior</string>
- </value>
- </value>
- </configProperty>
-
- <!-- Add this property if you want to register with naming service -->
- <!-- The string is the naming context to bind to naming service -->
- <configProperty>
- <name>RegisterNaming</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Sender_001</string>
- </value>
- </value>
- </configProperty>
-
- <!-- Add this property if you want to initialize component attribute -->
- <configProperty>
- <name>local_message</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>This is a test message passed in through XML.</string>
- </value>
- </value>
- </configProperty>
- <!-- This attribute initializes an enumerated value -->
- <configProperty>
- <name>color</name>
- <value>
- <type>
- <kind>tk_enum</kind>
- <enum>
- <name>COLOR_SELECTION</name>
- <typeId>IDL:Hello/COLOR_SELECTION:1.0</typeId>
- <member>empty</member>
- <member>white</member>
- <member>red</member>
- <member>yellow</member>
- </enum>
- </type>
- <value>
- <enum>yellow</enum>
- </value>
- </value>
- </configProperty>
- </instance>
-
- <instance id="Hello-Receiver-idd">
- <name>Hello-Receiver-idd</name>
- <node>ReceiverNode</node>
- <source><!-- @@ What goes here --></source>
- <implementation>Hello-Receiver-mdd</implementation>
- <configProperty>
- <name>ComponentIOR</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>Receiver.ior</string>
- </value>
- </value>
- </configProperty>
- </instance>
-
-
- <connection>
- <name>hell_event_connection</name>
- <internalEndpoint>
- <portName>click_out</portName>
- <kind>EventPublisher</kind>
- <instance>Hello-Sender-idd</instance>
- </internalEndpoint>
- <internalEndpoint>
- <portName>click_in</portName>
- <kind>EventConsumer</kind>
- <instance>Hello-Receiver-idd</instance>
- </internalEndpoint>
- </connection>
-
- <connection>
- <name>hello_facet_connection</name>
- <internalEndpoint>
- <portName>push_message</portName>
- <kind>Facet</kind>
- <instance>Hello-Sender-idd</instance>
- </internalEndpoint>
- <internalEndpoint>
- <portName>read_message</portName>
- <kind>SimplexReceptacle</kind>
- <instance>Hello-Receiver-idd</instance>
- </internalEndpoint>
- </connection>
-
- <!-- @@ Runtime library name must match exactly in "location" tag -->
- <artifact id="Hello-Sender_exec">
- <name>Sender_exec</name>
- <source><!-- @@ Not sure about this--></source>
- <node><!-- blank --></node>
- <location>Hello_Sender_exec</location>
- <execParameter>
- <name>entryPoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Hello_SenderHome_Impl</string>
- </value>
- </value>
- </execParameter>
- </artifact>
-
- <artifact id="Hello-Sender_svnt">
- <name>Sender_svnt</name>
- <source><!-- @@ Not sure --></source>
- <node><!-- blank --></node>
- <location>Hello_Sender_svnt</location>
- <execParameter>
- <name>entryPoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Hello_SenderHome_Servant</string>
- </value>
- </value>
- </execParameter>
- </artifact>
-
- <artifact id="Hello-Receiver_exec">
- <name>Receiver_exec</name>
- <source><!-- @@ Not sure about this--></source>
- <node><!-- blank --></node>
- <location>Hello_Receiver_exec</location>
- <execParameter>
- <name>entryPoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Hello_ReceiverHome_Impl</string>
- </value>
- </value>
- </execParameter>
- </artifact>
-
- <artifact id="Hello-Receiver_svnt">
- <name>Receiver_svnt</name>
- <source><!-- @@ Not sure --></source>
- <node><!-- blank --></node>
- <location>Hello_Receiver_svnt</location>
- <execParameter>
- <name>entryPoint</name>
- <value>
- <type>
- <kind>tk_string</kind>
- </type>
- <value>
- <string>create_Hello_ReceiverHome_Servant</string>
- </value>
- </value>
- </execParameter>
- </artifact>
-</Deployment:deploymentPlan>
diff --git a/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl b/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl
index dccd19ae0d2..dccd19ae0d2 100644..100755
--- a/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl
+++ b/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl
diff --git a/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp b/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp
index 576e8218144..bdcdf022d1a 100644
--- a/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp
+++ b/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp
@@ -24,7 +24,7 @@ parse_args (int argc, ACE_TCHAR *argv[])
switch (c)
{
case 's':
- cs_path = get_opts.opt_arg ();
+ cs_path = ACE_TEXT_ALWAYS_CHAR (get_opts.opt_arg ());
break;
case 'd':
@@ -34,7 +34,7 @@ parse_args (int argc, ACE_TCHAR *argv[])
case '?':
default:
ACE_ERROR_RETURN ((LM_ERROR,
- "usage: %s "
+ "usage: %s "
"-s <path> "
"-d <uint> "
"\n",
diff --git a/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl b/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
index 358e28b8f42..77597dae053 100755
--- a/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
@@ -13,7 +13,7 @@ $status = 0;
my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
my $idl = "test.idl";
-my $dtd = "XMI.dtd";
+my $dtd = "../XMI.dtd";
my $xmi = "generated.xmi";
my $target_idl = $target->LocalFile ($idl);
my $target_dtd = $target->LocalFile ($dtd);
@@ -42,7 +42,7 @@ open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
close (DAT);
$num = grep (/<UML:Attribute/, @data);
-if ($num == 1) {
+if ($num == 2) {
print "TEST OK. Correct tags in there.\n";
} else {
print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
diff --git a/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl b/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl
index 4d69b4ae438..58c9017b595 100644
--- a/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl
+++ b/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl
@@ -9,4 +9,3 @@ struct Foo
};
#endif
-
diff --git a/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc
new file mode 100644
index 00000000000..4db76128d4c
--- /dev/null
+++ b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc
@@ -0,0 +1,14 @@
+// -*- MPC -*-
+// $Id$
+
+project(*IDL2XMI_Test) : taoexe, ciao_xml_utils, xerces {
+ exename = xmlvalidator
+
+ Source_Files {
+ XML_Helper.cpp
+ xmlvalidator.cpp
+ }
+
+ IDL_Files {
+ }
+}
diff --git a/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp
new file mode 100644
index 00000000000..da5a29f7e42
--- /dev/null
+++ b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp
@@ -0,0 +1,103 @@
+// $Id$
+
+#include "XML_Helper.h"
+#include "ace/Log_Msg.h"
+
+#include "xercesc/dom/DOM.hpp"
+#include "xercesc/parsers/XercesDOMParser.hpp"
+
+#include "XML/XercesString.h"
+
+namespace Test
+{
+ namespace XML
+ {
+ Helper::Helper (CIAO::XML::XML_Error_Handler &eh)
+ : impl_ (0)
+ , parser_ (0)
+ , e_handler_ (eh)
+ {
+ this->init_parser ();
+ }
+
+ Helper::~Helper (void)
+ {
+ this->terminate_parser ();
+ }
+
+ void
+ Helper::init_parser (void)
+ {
+ // Initialize the Xerces run-time
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
+
+ // Instantiate the DOM parser.
+ static const XMLCh gLS[] = { XERCES_CPP_NAMESPACE::chLatin_L,
+ XERCES_CPP_NAMESPACE::chLatin_S,
+ XERCES_CPP_NAMESPACE::chNull };
+
+ // Get an implementation of the Load-Store (LS) interface
+ // and cache it for later use
+ impl_ =
+ XERCES_CPP_NAMESPACE::DOMImplementationRegistry::getDOMImplementation(gLS);
+ }
+
+ int
+ Helper::validate_dom (const ACE_TCHAR *url)
+ {
+ if (url == 0)
+ return 0;
+
+ try
+ {
+ if (this->parser_ == 0)
+ this->parser_ = new XERCES_CPP_NAMESPACE::XercesDOMParser ();
+
+ // Discard comment nodes in the document
+ this->parser_->setCreateCommentNodes (false);
+
+ // Do not create EntityReference nodes in the DOM tree. No
+ // EntityReference nodes will be created, only the nodes
+ // corresponding to their fully expanded sustitution text will be
+ // created.
+ this->parser_->setCreateEntityReferenceNodes (false);
+
+ // Perform Validation
+ this->parser_->setValidationScheme (
+ XERCES_CPP_NAMESPACE::AbstractDOMParser::Val_Always);
+
+ // Do not include ignorable whitespace in the DOM tree.
+ this->parser_->setIncludeIgnorableWhitespace (false);
+
+ // Enable full schema constraint checking, including checking which
+ // may be time-consuming or memory intensive. Currently, particle
+ // unique attribution constraint checking and particle derivation
+ // restriction checking are controlled by this option.
+ this->parser_->setValidationSchemaFullChecking (true);
+
+ this->parser_->setErrorHandler (&e_handler_);
+
+ this->parser_->parse (url);
+
+ if (e_handler_.getErrors ())
+ return 1;
+
+ return 0;
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) Caught an unknown exception\n"));
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ Helper::terminate_parser (void)
+ {
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Terminate ();
+ }
+ }
+}
diff --git a/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h
new file mode 100644
index 00000000000..869742e2274
--- /dev/null
+++ b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h
@@ -0,0 +1,67 @@
+// $Id$
+//============================================================
+/**
+ * @file XML_Helper.h
+ *
+ * @brief Some helper functions for XML
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//============================================================
+
+#ifndef CIAO_XML_HELPER_H
+#define CIAO_XML_HELPER_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "XML/XML_Error_Handler.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+
+namespace XERCES_CPP_NAMESPACE
+{
+ class DOMImplementation;
+ class XercesDOMParser;
+}
+
+namespace Test
+{
+ namespace XML
+ {
+ /**
+ * @class Helper
+ *
+ * @brief Helper class for some routine XML stuff.
+ */
+ class Helper
+ {
+ public:
+ // Initialize the resolver we should use.
+ Helper (CIAO::XML::XML_Error_Handler &eh);
+
+ ~Helper (void);
+
+ int validate_dom (const ACE_TCHAR *uri);
+
+ protected:
+ /// Intialize the parser
+ void init_parser (void);
+
+ /// Terminate the parser
+ void terminate_parser (void);
+
+ private:
+ XERCES_CPP_NAMESPACE::DOMImplementation *impl_;
+ XERCES_CPP_NAMESPACE::XercesDOMParser *parser_;
+
+ CIAO::XML::XML_Error_Handler &e_handler_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif/*CIAO_XML_HELPER_H*/
diff --git a/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
new file mode 100755
index 00000000000..57b96125210
--- /dev/null
+++ b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
@@ -0,0 +1,59 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+
+$I2X = new PerlACE::Process ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi");
+#$VAL = new PerlACE::Process ("/usr/bin/xmlstarlet");
+$VAL = new PerlACE::Process ("xmlvalidator");
+
+my $idl_tests_dir = "$ENV{'TAO_ROOT'}/tests/IDL_Test";
+opendir(DIR, $idl_tests_dir) || die "can't opendir $idl_tests_dir: $!";
+
+my @idls = grep { /\.idl$/ && -f "$idl_tests_dir/$_" } readdir(DIR);
+foreach my $idl_file (@idls) {
+ my $idl = "$idl_tests_dir/$idl_file";
+ my $dtd = "../XMI.dtd";
+ (my $xmi = $idl_file) =~ s/\.idl$/.xmi/;
+ unlink $xmi;
+
+ $I2X->Arguments ("-I$idl_tests_dir -xd $dtd -of $xmi $idl");
+
+ $target_status = $I2X->SpawnWaitKill (30);
+
+ if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ $status = 1;
+ }
+
+ if (! -f $xmi) {
+ print STDERR "ERROR: tao_idl3_to_xmi didn't produce XMI\n";
+ print "\n";
+ next;
+ }
+
+ #$VAL->Arguments ("val -d $dtd $xmi");
+ $VAL->Arguments ("-i $xmi");
+
+ $target_status = $VAL->SpawnWaitKill (30);
+
+ if ($target_status != 0) {
+ print STDERR "ERROR: xmlvalidator returned $target_status\n";
+ $status = 1;
+ }
+
+ unlink $xmi;
+
+ print "\n";
+}
+
+closedir DIR;
+
+exit $status;
diff --git a/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp
new file mode 100644
index 00000000000..2603fb30403
--- /dev/null
+++ b/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp
@@ -0,0 +1,64 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+#include "XML_Helper.h"
+
+ACE_RCSID (IDL2XMI_Test,
+ xmlvalidator,
+ "$Id$")
+
+const ACE_TCHAR *inp_file = ACE_TEXT ("");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("i:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ inp_file = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("usage: %s ")
+ ACE_TEXT ("-i <inputfile>")
+ ACE_TEXT ("\n"),
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ if (parse_args (argc, argv) != 0)
+ {
+ return 1;
+ }
+
+ CIAO::XML::XML_Error_Handler handler;
+ Test::XML::Helper helper (handler);
+
+ if (0 != helper.validate_dom (inp_file))
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%s - invalid xml\n"),
+ inp_file));
+ return 1;
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%s - valid xml\n"),
+ inp_file));
+
+ return 0;
+}
diff --git a/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/XMI.dtd b/CIAO/tests/IDL3_to_XMI/XMI.dtd
index 3b0ef4154c4..c8cf164befd 100644
--- a/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/XMI.dtd
+++ b/CIAO/tests/IDL3_to_XMI/XMI.dtd
@@ -1,25 +1,8 @@
<!-- ===================================================================== -->
<!--
- * This file is part of CARDAMOM (R) which is jointly developed by THALES
- * and SELEX Sistemi Integrati. It is derivative work based on PERCO
- * Copyright (C) THALES 2000-2003. All rights reserved.
- * Copyright (C) THALES 2004-2005. All rights reserved.
- * Copyright (C) SELEX SISTEMI INTEGRATI and THALES 2006-2007.
- * All rights reserved.
- *
- * CARDAMOM is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Library General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * CARDAMOM is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with CARDAMOM; see the file COPYING. If not, write to the
- * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ This file is the same for all the XMI tests.
+ This is XMI 1.1 RTF UML DTD which can be found at
+ http://www.omg.org/cgi-bin/apps/doc?ad/99-10-05.dtd
-->
<!-- ===================================================================== -->
<!-- Generated by: XMI Framework 1.0 -->
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd b/CIAO/tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd
deleted file mode 100644
index 3b0ef4154c4..00000000000
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Array/XMI.dtd
+++ /dev/null
@@ -1,6401 +0,0 @@
-<!-- ===================================================================== -->
-<!--
- * This file is part of CARDAMOM (R) which is jointly developed by THALES
- * and SELEX Sistemi Integrati. It is derivative work based on PERCO
- * Copyright (C) THALES 2000-2003. All rights reserved.
- * Copyright (C) THALES 2004-2005. All rights reserved.
- * Copyright (C) SELEX SISTEMI INTEGRATI and THALES 2006-2007.
- * All rights reserved.
- *
- * CARDAMOM is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Library General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * CARDAMOM is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with CARDAMOM; see the file COPYING. If not, write to the
- * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
--->
-<!-- ===================================================================== -->
-<!-- Generated by: XMI Framework 1.0 -->
-<!-- Date: Fri Oct 22 14:31:09 PDT 1999 -->
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- This section of the DTD contains XML declarations required by -->
-<!-- XMI. -->
-<!-- _______________________________________________________________ -->
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI is the top-level XML element for XMI transfer text -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI (XMI.header?, XMI.content?, XMI.difference*,
- XMI.extensions*) >
-<!ATTLIST XMI
- xmi.version CDATA #FIXED "1.1"
- timestamp CDATA #IMPLIED
- verified (true | false) #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.header contains documentation and identifies the model, -->
-<!-- metamodel, and metametamodel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.header (XMI.documentation?, XMI.model*, XMI.metamodel*,
- XMI.metametamodel*, XMI.import*) >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- documentation for transfer data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.documentation (#PCDATA | XMI.owner | XMI.contact |
- XMI.longDescription | XMI.shortDescription |
- XMI.exporter | XMI.exporterVersion |
- XMI.notice)* >
-<!ELEMENT XMI.owner ANY >
-<!ELEMENT XMI.contact ANY >
-<!ELEMENT XMI.longDescription ANY >
-<!ELEMENT XMI.shortDescription ANY >
-<!ELEMENT XMI.exporter ANY >
-<!ELEMENT XMI.exporterVersion ANY >
-<!ELEMENT XMI.exporterID ANY >
-<!ELEMENT XMI.notice ANY >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.element.att defines the attributes that each XML element -->
-<!-- that corresponds to a metamodel class must have to conform to -->
-<!-- the XMI specification. -->
-<!-- _______________________________________________________________ -->
-
-
-<!ENTITY % XMI.element.att
- 'xmi.id ID #IMPLIED xmi.label CDATA #IMPLIED xmi.uuid
- CDATA #IMPLIED ' >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.link.att defines the attributes that each XML element that -->
-<!-- corresponds to a metamodel class must have to enable it to -->
-<!-- function as a simple XLink as well as refer to model -->
-<!-- constructs within the same XMI file. -->
-<!-- _______________________________________________________________ -->
-
-
-<!ENTITY % XMI.link.att
- 'href CDATA #IMPLIED xmi.idref IDREF #IMPLIED xml:link
- CDATA #IMPLIED xlink:inline (true | false) #IMPLIED
- xlink:actuate (show | user) #IMPLIED xlink:content-role
- CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:show
- (embed | replace | new) #IMPLIED xlink:behavior CDATA
- #IMPLIED' >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.model identifies the model(s) being transferred -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.model ANY >
-<!ATTLIST XMI.model
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metamodel identifies the metamodel(s) for the transferred -->
-<!-- data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.metamodel ANY >
-<!ATTLIST XMI.metamodel
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metametamodel identifies the metametamodel(s) for the -->
-<!-- transferred data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.metametamodel ANY >
-<!ATTLIST XMI.metametamodel
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metametamodel identifies other files associated with the -->
-<!-- transferred data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.import ANY >
-<!ATTLIST XMI.import
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.content is the actual data being transferred -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.content ANY >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.extensions contains data to transfer that does not conform -->
-<!-- to the metamodel(s) in the header -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.extensions ANY >
-<!ATTLIST XMI.extensions
- xmi.extender CDATA #REQUIRED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- extension contains information related to a specific model -->
-<!-- construct that is not defined in the metamodel(s) in the header -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.extension ANY >
-<!ATTLIST XMI.extension
- %XMI.element.att;
- %XMI.link.att;
- xmi.extender CDATA #REQUIRED
- xmi.extenderID CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.difference holds XML elements representing differences to a -->
-<!-- base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.difference (XMI.difference | XMI.delete | XMI.add |
- XMI.replace)* >
-<!ATTLIST XMI.difference
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.delete represents a deletion from a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.delete EMPTY >
-<!ATTLIST XMI.delete
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.add represents an addition to a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.add ANY >
-<!ATTLIST XMI.add
- %XMI.element.att;
- %XMI.link.att;
- xmi.position CDATA "-1"
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.replace represents the replacement of a model construct -->
-<!-- with another model construct in a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.replace ANY >
-<!ATTLIST XMI.replace
- %XMI.element.att;
- %XMI.link.att;
- xmi.position CDATA "-1"
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.reference may be used to refer to data types not defined in -->
-<!-- the metamodel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.reference ANY >
-<!ATTLIST XMI.reference
- %XMI.link.att;
->
-
-<!ATTLIST XMI
- xmlns:UML CDATA #IMPLIED
->
-
-
-<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment |
- UML:Namespace | UML:GeneralizableElement |
- UML:Feature | UML:Parameter |
- UML:Constraint | UML:Dependency |
- UML:Generalization | UML:AssociationEnd |
- UML:Request | UML:ActionSequence |
- UML:Action | UML:Link | UML:LinkEnd |
- UML:Instance | UML:AttributeLink |
- UML:MessageInstance | UML:Interaction |
- UML:Message | UML:StateMachine |
- UML:Guard | UML:StateVertex |
- UML:Transition | UML:Event |
- UML:Partition | UML:Collaboration |
- UML:Classifier | UML:Association |
- UML:Stereotype | UML:Package |
- UML:Signal | UML:Node | UML:Component |
- UML:Interface | UML:Class | UML:DataType |
- UML:Subsystem | UML:ClassifierRole |
- UML:Actor | UML:UseCase |
- UML:ClassifierInState |
- UML:AssociationClass | UML:Enumeration |
- UML:Primitive | UML:Structure |
- UML:AssociationRole | UML:Model |
- UML:Exception | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Attribute |
- UML:Operation | UML:Method |
- UML:Reception | UML:Refinement |
- UML:Usage | UML:Trace | UML:Binding |
- UML:AssociationEndRole |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation | UML:ReturnAction |
- UML:SendAction | UML:UninterpretedAction |
- UML:TerminateAction | UML:DestroyAction |
- UML:LinkObject | UML:Object |
- UML:DataValue | UML:UseCaseInstance |
- UML:ActivityModel | UML:PseudoState |
- UML:State | UML:CompositeState |
- UML:SimpleState | UML:SubmachineState |
- UML:ActionState | UML:ObjectFlowState |
- UML:ActivityState | UML:SignalEvent |
- UML:CallEvent | UML:TimeEvent |
- UML:ChangeEvent)* >
-
-
-<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* >
-
-
-<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment |
- UML:Namespace |
- UML:GeneralizableElement |
- UML:Feature | UML:Parameter |
- UML:Constraint | UML:Dependency |
- UML:Generalization |
- UML:AssociationEnd | UML:Request |
- UML:ActionSequence | UML:Action |
- UML:Link | UML:LinkEnd |
- UML:Instance | UML:AttributeLink |
- UML:MessageInstance |
- UML:Interaction | UML:Message |
- UML:StateMachine | UML:Guard |
- UML:StateVertex | UML:Transition |
- UML:Event | UML:Partition |
- UML:Collaboration | UML:Classifier |
- UML:Association | UML:Stereotype |
- UML:Package | UML:Signal |
- UML:Node | UML:Component |
- UML:Interface | UML:Class |
- UML:DataType | UML:Subsystem |
- UML:ClassifierRole | UML:Actor |
- UML:UseCase |
- UML:ClassifierInState |
- UML:AssociationClass |
- UML:Enumeration | UML:Primitive |
- UML:Structure |
- UML:AssociationRole | UML:Model |
- UML:Exception |
- UML:StructuralFeature |
- UML:BehavioralFeature |
- UML:Attribute | UML:Operation |
- UML:Method | UML:Reception |
- UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding |
- UML:AssociationEndRole |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation |
- UML:ReturnAction | UML:SendAction |
- UML:UninterpretedAction |
- UML:TerminateAction |
- UML:DestroyAction | UML:LinkObject |
- UML:Object | UML:DataValue |
- UML:UseCaseInstance |
- UML:ActivityModel |
- UML:PseudoState | UML:State |
- UML:CompositeState |
- UML:SimpleState |
- UML:SubmachineState |
- UML:ActionState |
- UML:ObjectFlowState |
- UML:ActivityState |
- UML:SignalEvent | UML:CallEvent |
- UML:TimeEvent | UML:ChangeEvent)* >
-
-
-<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Attribute |
- UML:Operation | UML:Method |
- UML:Reception)* >
-
-
-<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* >
-
-
-<!ELEMENT UML:Dependency.subDependencies (UML:Dependency |
- UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding)* >
-
-
-<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* >
-
-
-<!ELEMENT UML:Association.connection (UML:AssociationEnd |
- UML:AssociationEndRole)* >
-
-
-<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* >
-
-
-<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* >
-
-
-<!ELEMENT UML:Signal.parameter (UML:Parameter)* >
-
-
-<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction |
- UML:CallAction |
- UML:LocalInvocation |
- UML:ReturnAction | UML:SendAction |
- UML:UninterpretedAction |
- UML:TerminateAction |
- UML:DestroyAction)* >
-
-
-<!ELEMENT UML:Action.actualArgument (UML:Argument)* >
-
-
-<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* >
-
-
-<!ELEMENT UML:Instance.slot (UML:AttributeLink)* >
-
-
-<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* >
-
-
-<!ELEMENT UML:Interaction.message (UML:Message)* >
-
-
-<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState |
- UML:SimpleState | UML:SubmachineState |
- UML:ActionState | UML:ObjectFlowState |
- UML:ActivityState)* >
-
-<!ELEMENT UML:StateMachine.transitions (UML:Transition)* >
-
-
-<!ELEMENT UML:Transition.guard (UML:Guard)* >
-
-<!ELEMENT UML:Transition.effect (UML:ActionSequence)* >
-
-
-<!ELEMENT UML:State.internalTransition (UML:Transition)* >
-
-<!ELEMENT UML:State.entry (UML:ActionSequence)* >
-
-<!ELEMENT UML:State.exit (UML:ActionSequence)* >
-
-
-<!ELEMENT UML:CompositeState.substate (UML:StateVertex |
- UML:PseudoState | UML:State |
- UML:CompositeState |
- UML:SimpleState |
- UML:SubmachineState |
- UML:ActionState |
- UML:ObjectFlowState |
- UML:ActivityState)* >
-
-
-<!ELEMENT UML:ActivityModel.partition (UML:Partition)* >
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Refinement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Refinement.mapping (UML:Mapping) >
-
-<!ELEMENT UML:Refinement (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description |
- UML:Refinement.mapping | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client |
- UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Refinement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Usage -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Usage (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Usage
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Trace -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Trace (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Trace
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Binding -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Binding (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies |
- UML:Binding.argument)* >
-<!ATTLIST UML:Binding
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Node -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Node.component (UML:Component)* >
-
-<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding | UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Node.component | UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Node
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- component IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Component -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Component.deployment (UML:Node)* >
-
-<!ELEMENT UML:Component.implements (UML:ModelElement)* >
-
-<!ELEMENT UML:Component (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Component.deployment |
- UML:Component.implements |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Component
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- deployment IDREFS #IMPLIED
- implements IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Comment -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Comment (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Comment
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ViewElement.model (UML:ModelElement)* >
-
-<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* >
-
-<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model |
- UML:ViewElement.presentation)* >
-<!ATTLIST UML:ViewElement
- model IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Presentation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Presentation.geometry (UML:Geometry) >
-
-<!ELEMENT UML:Presentation.style (UML:GraphicMarker) >
-
-<!ELEMENT UML:Presentation.model (UML:ModelElement)* >
-
-<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* >
-
-<!ELEMENT UML:Presentation (UML:Presentation.geometry |
- UML:Presentation.style | XMI.extension |
- UML:Presentation.model |
- UML:Presentation.viewElement)* >
-<!ATTLIST UML:Presentation
- model IDREFS #IMPLIED
- viewElement IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Element -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Element (XMI.extension)* >
-<!ATTLIST UML:Element
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.ModelElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ModelElement.visibility EMPTY >
-<!ATTLIST UML:ModelElement.visibility
- xmi.value (public | protected | private) #REQUIRED
->
-
-<!ELEMENT UML:ModelElement.binding (UML:Binding)* >
-
-<!ELEMENT UML:ModelElement.template (UML:ModelElement)* >
-
-<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* >
-
-<!ELEMENT UML:ModelElement.implementation (UML:Component)* >
-
-<!ELEMENT UML:ModelElement.view (UML:ViewElement)* >
-
-<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* >
-
-<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* >
-
-<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* >
-
-<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* >
-
-<!ELEMENT UML:ModelElement.provision (UML:Dependency)* >
-
-<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* >
-
-<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* >
-
-<!ELEMENT UML:ModelElement.partition (UML:Partition)* >
-
-<!ELEMENT UML:ModelElement (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:ModelElement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Namespace -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Namespace (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Namespace
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.GeneralizableElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:GeneralizableElement.isRoot EMPTY >
-<!ATTLIST UML:GeneralizableElement.isRoot
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY >
-<!ATTLIST UML:GeneralizableElement.isLeaf
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY >
-<!ATTLIST UML:GeneralizableElement.isAbstract
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.generalization
- (UML:Generalization)* >
-
-<!ELEMENT UML:GeneralizableElement.specialization
- (UML:Generalization)* >
-
-<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:GeneralizableElement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Classifier -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Classifier.parameter (UML:Parameter)* >
-
-<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* >
-
-<!ELEMENT UML:Classifier.specification (UML:Classifier)* >
-
-<!ELEMENT UML:Classifier.realization (UML:Classifier)* >
-
-<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* >
-
-<!ELEMENT UML:Classifier.instance (UML:Instance)* >
-
-<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:Classifier (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Classifier
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Interface -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Interface (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Interface
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Class -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Class.isActive EMPTY >
-<!ATTLIST UML:Class.isActive
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Class (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Class.isActive | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Class
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isActive (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.DataType -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DataType (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:DataType
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Feature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Feature.ownerScope EMPTY >
-<!ATTLIST UML:Feature.ownerScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:Feature.owner (UML:Classifier)* >
-
-<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Feature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Feature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.StructuralFeature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA |
- XMI.reference)* >
-
-<!ELEMENT UML:StructuralFeature.changeable EMPTY >
-<!ATTLIST UML:StructuralFeature.changeable
- xmi.value (none | frozen | addOnly) #REQUIRED
->
-
-<!ELEMENT UML:StructuralFeature.targetScope EMPTY >
-<!ATTLIST UML:StructuralFeature.targetScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* >
-
-<!ELEMENT UML:StructuralFeature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:StructuralFeature.multiplicity |
- UML:StructuralFeature.changeable |
- UML:StructuralFeature.targetScope |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:StructuralFeature.type |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:StructuralFeature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- type IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.BehavioralFeature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:BehavioralFeature.isQuery EMPTY >
-<!ATTLIST UML:BehavioralFeature.isQuery
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* >
-
-<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:BehavioralFeature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Operation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Operation.isPolymorphic EMPTY >
-<!ATTLIST UML:Operation.isPolymorphic
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Operation.concurrency EMPTY >
-<!ATTLIST UML:Operation.concurrency
- xmi.value (sequential | guarded | concurrent) #REQUIRED
->
-
-<!ELEMENT UML:Operation.method (UML:Method)* >
-
-<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* >
-
-<!ELEMENT UML:Operation (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- UML:Operation.specification |
- UML:Operation.isPolymorphic |
- UML:Operation.concurrency | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Request.action |
- UML:Request.messageInstance |
- UML:Operation.method |
- UML:Operation.collaboration |
- UML:Operation.occurrence |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Operation
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- specification CDATA #IMPLIED
- isPolymorphic (false | true) #IMPLIED
- concurrency (sequential | guarded | concurrent) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- method IDREFS #IMPLIED
- Operation.collaboration IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Method -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Method.body (UML:ProcedureExpression) >
-
-<!ELEMENT UML:Method.specification (UML:Operation)* >
-
-<!ELEMENT UML:Method (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery | UML:Method.body |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Method.specification |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Method
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Parameter -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Parameter.defaultValue (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Parameter.kind EMPTY >
-<!ATTLIST UML:Parameter.kind
- xmi.value (in | inout | out | return) #REQUIRED
->
-
-<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* >
-
-<!ELEMENT UML:Parameter.type (UML:Classifier)* >
-
-<!ELEMENT UML:Parameter.signal (UML:Signal)* >
-
-<!ELEMENT UML:Parameter (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Parameter.defaultValue | UML:Parameter.kind |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Parameter.behavioralFeature |
- UML:Parameter.type | UML:Parameter.signal |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Parameter
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- kind (in | inout | out | return) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- behavioralFeature IDREFS #IMPLIED
- type IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Constraint -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Constraint.body (UML:BooleanExpression) >
-
-<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:Constraint (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Constraint.body | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Constraint.constrainedElement |
- UML:Constraint.constrainedStereotype |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Constraint
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- constrainedElement IDREFS #IMPLIED
- constrainedStereotype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Dependency -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* >
-
-<!ELEMENT UML:Dependency.client (UML:ModelElement)* >
-
-<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* >
-
-<!ELEMENT UML:Dependency (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client |
- UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Dependency
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Generalization -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* >
-
-<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* >
-
-<!ELEMENT UML:Generalization (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Generalization.discriminator |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Generalization.subtype |
- UML:Generalization.supertype |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Generalization
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- discriminator CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- subtype IDREFS #IMPLIED
- supertype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.AssociationEnd -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationEnd.isNavigable EMPTY >
-<!ATTLIST UML:AssociationEnd.isNavigable
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.isOrdered EMPTY >
-<!ATTLIST UML:AssociationEnd.isOrdered
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.aggregation EMPTY >
-<!ATTLIST UML:AssociationEnd.aggregation
- xmi.value (none | shared | composite) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:AssociationEnd.changeable EMPTY >
-<!ATTLIST UML:AssociationEnd.changeable
- xmi.value (none | frozen | addOnly) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.targetScope EMPTY >
-<!ATTLIST UML:AssociationEnd.targetScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* >
-
-<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* >
-
-<!ELEMENT UML:AssociationEnd.association (UML:Association)* >
-
-<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* >
-
-<!ELEMENT UML:AssociationEnd.associationEndRole
- (UML:AssociationEndRole)* >
-
-<!ELEMENT UML:AssociationEnd (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:AssociationEnd.isNavigable |
- UML:AssociationEnd.isOrdered |
- UML:AssociationEnd.aggregation |
- UML:AssociationEnd.multiplicity |
- UML:AssociationEnd.changeable |
- UML:AssociationEnd.targetScope |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AssociationEnd.type |
- UML:AssociationEnd.specification |
- UML:AssociationEnd.association |
- UML:AssociationEnd.linkEnd |
- UML:AssociationEnd.associationEndRole |
- UML:ModelElement.taggedValue |
- UML:AssociationEnd.qualifier)* >
-<!ATTLIST UML:AssociationEnd
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isNavigable (false | true) #IMPLIED
- isOrdered (false | true) #IMPLIED
- aggregation (none | shared | composite) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- type IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- association IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Association -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Association.link (UML:Link)* >
-
-<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* >
-
-<!ELEMENT UML:Association (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Association.connection)* >
-<!ATTLIST UML:Association
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.AssociationClass -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationClass (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Class.isActive | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature |
- UML:Association.connection)* >
-<!ATTLIST UML:AssociationClass
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isActive (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- Classifier.associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- link IDREFS #IMPLIED
- Association.associationEnd IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Attribute -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Attribute.initialValue (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* >
-
-<!ELEMENT UML:Attribute (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:StructuralFeature.multiplicity |
- UML:StructuralFeature.changeable |
- UML:StructuralFeature.targetScope |
- UML:Attribute.initialValue | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:StructuralFeature.type |
- UML:Attribute.associationEnd |
- UML:Attribute.attributeLink |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Attribute
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- type IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* >
-
-<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value |
- XMI.extension | UML:TaggedValue.modelElement |
- UML:TaggedValue.stereotype)* >
-<!ATTLIST UML:TaggedValue
- tag CDATA #IMPLIED
- value CDATA #IMPLIED
- modelElement IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Stereotype.icon (UML:Geometry) >
-
-<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* >
-
-<!ELEMENT UML:Stereotype (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Stereotype.icon | UML:Stereotype.baseClass |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Stereotype.extendedElement |
- UML:Stereotype.stereotypeConstraint |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Stereotype.requiredTag)* >
-<!ATTLIST UML:Stereotype
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- baseClass CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- extendedElement IDREFS #IMPLIED
- stereotypeConstraint IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Enumeration -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Enumeration (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature |
- UML:Enumeration.literal)* >
-<!ATTLIST UML:Enumeration
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.EnumerationLiteral -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* >
-
-<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name |
- XMI.extension |
- UML:EnumerationLiteral.enumeration)* >
-<!ATTLIST UML:EnumerationLiteral
- name CDATA #IMPLIED
- enumeration IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Primitive -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Primitive (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Primitive
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Structure -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Structure (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Structure
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.MultiplicityRange -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower |
- UML:MultiplicityRange.upper |
- XMI.extension)* >
-<!ATTLIST UML:MultiplicityRange
- lower CDATA #IMPLIED
- upper CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Geometry -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* >
-<!ATTLIST UML:Geometry
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.GraphicMarker -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* >
-<!ATTLIST UML:GraphicMarker
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Mapping -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* >
-<!ATTLIST UML:Mapping
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Expression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body |
- XMI.extension)* >
-<!ATTLIST UML:Expression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.ProcedureExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ProcedureExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:ProcedureExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.ObjectSetExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ObjectSetExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:ObjectSetExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.TimeExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TimeExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:TimeExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.BooleanExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:BooleanExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:BooleanExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Package -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Package.elementReference (UML:ElementReference)* >
-
-<!ELEMENT UML:Package (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Package
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Subsystem -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Subsystem.isInstantiable EMPTY >
-<!ATTLIST UML:Subsystem.isInstantiable
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Subsystem (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Subsystem.isInstantiable | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Subsystem
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isInstantiable (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Model (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Model
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.ElementReference -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ElementReference.visibility EMPTY >
-<!ATTLIST UML:ElementReference.visibility
- xmi.value (public | protected | private) #REQUIRED
->
-
-<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:ElementReference.package (UML:Package)* >
-
-<!ELEMENT UML:ElementReference (UML:ElementReference.visibility |
- UML:ElementReference.alias |
- XMI.extension |
- UML:ElementReference.referencedElement |
- UML:ElementReference.package)* >
-<!ATTLIST UML:ElementReference
- visibility (public | protected | private) #IMPLIED
- alias CDATA #IMPLIED
- referencedElement IDREFS #IMPLIED
- package IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Request -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Request.action (UML:Action)* >
-
-<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* >
-
-<!ELEMENT UML:Request (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Request.action |
- UML:Request.messageInstance |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Request
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Signal.reception (UML:Reception)* >
-
-<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* >
-
-<!ELEMENT UML:Signal (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Request.action | UML:Request.messageInstance |
- UML:Signal.reception | UML:Signal.occurrence |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Signal.parameter)* >
-<!ATTLIST UML:Signal
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- reception IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* >
-
-<!ELEMENT UML:Exception (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Request.action |
- UML:Request.messageInstance |
- UML:Signal.reception | UML:Signal.occurrence |
- UML:Exception.context |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Signal.parameter)* >
-<!ATTLIST UML:Exception
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- reception IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- context IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Reception.isPolymorphic EMPTY >
-<!ATTLIST UML:Reception.isPolymorphic
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Reception.signal (UML:Signal)* >
-
-<!ELEMENT UML:Reception (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- UML:Reception.isPolymorphic |
- UML:Reception.specification | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Reception.signal |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Reception
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- isPolymorphic (false | true) #IMPLIED
- specification CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Argument.action (UML:Action)* >
-
-<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension |
- UML:Argument.action)* >
-<!ATTLIST UML:Argument
- action IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActionSequence.transition (UML:Transition)* >
-
-<!ELEMENT UML:ActionSequence.state (UML:State)* >
-
-<!ELEMENT UML:ActionSequence.state2 (UML:State)* >
-
-<!ELEMENT UML:ActionSequence (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ActionSequence.transition |
- UML:ActionSequence.state |
- UML:ActionSequence.state2 |
- UML:ModelElement.taggedValue |
- UML:ActionSequence.action)* >
-<!ATTLIST UML:ActionSequence
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- state2 IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Action -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Action.recurrence (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Action.target (UML:ObjectSetExpression) >
-
-<!ELEMENT UML:Action.isAsynchronous EMPTY >
-<!ATTLIST UML:Action.isAsynchronous
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Action.request (UML:Request)* >
-
-<!ELEMENT UML:Action.message (UML:Message)* >
-
-<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* >
-
-<!ELEMENT UML:Action (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Action.request |
- UML:Action.message | UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:Action
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* >
-
-<!ELEMENT UML:CreateAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:CreateAction.instantiation |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:CreateAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- instantiation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CallAction.mode EMPTY >
-<!ATTLIST UML:CallAction.mode
- xmi.value (synchronous | asynchronous) #REQUIRED
->
-
-<!ELEMENT UML:CallAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- UML:CallAction.mode | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:CallAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- mode (synchronous | asynchronous) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LocalInvocation (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:LocalInvocation
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ReturnAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:ReturnAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SendAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:SendAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence |
- UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script |
- UML:UninterpretedAction.body |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request |
- UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:UninterpretedAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- body CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TerminateAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:TerminateAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DestroyAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:DestroyAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Link -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Link.association (UML:Association)* >
-
-<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Link.association |
- UML:ModelElement.taggedValue | UML:Link.linkRole)* >
-<!ATTLIST UML:Link
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- association IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LinkEnd.link (UML:Link)* >
-
-<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:LinkEnd.instance (UML:Instance)* >
-
-<!ELEMENT UML:LinkEnd (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:LinkEnd.link |
- UML:LinkEnd.associationEnd | UML:LinkEnd.instance |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:LinkEnd
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* >
-
-<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* >
-
-<!ELEMENT UML:Instance.classifier (UML:Classifier)* >
-
-<!ELEMENT UML:Instance (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:Instance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AttributeLink.instance (UML:Instance)* >
-
-<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* >
-
-<!ELEMENT UML:AttributeLink.value (UML:Instance)* >
-
-<!ELEMENT UML:AttributeLink (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AttributeLink.instance |
- UML:AttributeLink.attribute |
- UML:AttributeLink.value |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:AttributeLink
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- attribute IDREFS #IMPLIED
- value IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Object -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Object (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue | UML:Instance.slot)* >
-<!ATTLIST UML:Object
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DataValue (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:DataValue
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LinkObject (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier | UML:Link.association |
- UML:ModelElement.taggedValue |
- UML:Instance.slot | UML:Link.linkRole)* >
-<!ATTLIST UML:LinkObject
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- association IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:MessageInstance.specification (UML:Request)* >
-
-<!ELEMENT UML:MessageInstance.sender (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance.argument (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:MessageInstance.specification |
- UML:MessageInstance.sender |
- UML:MessageInstance.receiver |
- UML:MessageInstance.argument |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:MessageInstance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- sender IDREFS #IMPLIED
- receiver IDREFS #IMPLIED
- argument IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* >
-
-<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* >
-
-<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Collaboration (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Collaboration.representedClassifier |
- UML:Collaboration.representedOperation |
- UML:Collaboration.constrainingElement |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Collaboration.interaction)* >
-<!ATTLIST UML:Collaboration
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- representedClassifier IDREFS #IMPLIED
- representedOperation IDREFS #IMPLIED
- constrainingElement IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Interaction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Interaction.context (UML:Collaboration)* >
-
-<!ELEMENT UML:Interaction (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Interaction.context |
- UML:ModelElement.taggedValue |
- UML:Interaction.message)* >
-<!ATTLIST UML:Interaction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:AssociationRole.base (UML:Association)* >
-
-<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* >
-
-<!ELEMENT UML:AssociationRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:AssociationRole.multiplicity |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:AssociationRole.base |
- UML:AssociationRole.namespace |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Association.connection)* >
-<!ATTLIST UML:AssociationRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- multiplicity CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- ModelElement.namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- base IDREFS #IMPLIED
- AssociationRole.namespace IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationEndRole.associationRole
- (UML:AssociationRole)* >
-
-<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* >
-
-<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:AssociationEnd.isNavigable |
- UML:AssociationEnd.isOrdered |
- UML:AssociationEnd.aggregation |
- UML:AssociationEnd.multiplicity |
- UML:AssociationEnd.changeable |
- UML:AssociationEnd.targetScope |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AssociationEnd.type |
- UML:AssociationEnd.specification |
- UML:AssociationEnd.association |
- UML:AssociationEnd.linkEnd |
- UML:AssociationEnd.associationEndRole |
- UML:AssociationEndRole.associationRole |
- UML:AssociationEndRole.base |
- UML:ModelElement.taggedValue |
- UML:AssociationEnd.qualifier)* >
-<!ATTLIST UML:AssociationEndRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isNavigable (false | true) #IMPLIED
- isOrdered (false | true) #IMPLIED
- aggregation (none | shared | composite) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- type IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- association IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- associationRole IDREFS #IMPLIED
- base IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Message -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Message.interaction (UML:Interaction)* >
-
-<!ELEMENT UML:Message.predecessor (UML:Message)* >
-
-<!ELEMENT UML:Message.message2 (UML:Message)* >
-
-<!ELEMENT UML:Message.message (UML:Message)* >
-
-<!ELEMENT UML:Message.activator (UML:Message)* >
-
-<!ELEMENT UML:Message.action (UML:Action)* >
-
-<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Message.sender (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Message (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Message.interaction | UML:Message.predecessor |
- UML:Message.message2 | UML:Message.message |
- UML:Message.activator | UML:Message.action |
- UML:Message.receiver | UML:Message.sender |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Message
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- interaction IDREFS #IMPLIED
- predecessor IDREFS #IMPLIED
- message2 IDREFS #IMPLIED
- message IDREFS #IMPLIED
- activator IDREFS #IMPLIED
- action IDREFS #IMPLIED
- receiver IDREFS #IMPLIED
- sender IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ClassifierRole.associationEndRole
- (UML:AssociationEndRole)* >
-
-<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* >
-
-<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* >
-
-<!ELEMENT UML:ClassifierRole.message (UML:Message)* >
-
-<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* >
-
-<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* >
-
-<!ELEMENT UML:ClassifierRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:ClassifierRole.multiplicity |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ClassifierRole.associationEndRole |
- UML:ClassifierRole.namespace |
- UML:ClassifierRole.message2 |
- UML:ClassifierRole.message |
- UML:ClassifierRole.base |
- UML:ClassifierRole.availableFeature |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:ClassifierRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- multiplicity CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- ModelElement.namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- ClassifierRole.namespace IDREFS #IMPLIED
- message2 IDREFS #IMPLIED
- message IDREFS #IMPLIED
- base IDREFS #IMPLIED
- availableFeature IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.Actor -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Actor (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Actor
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:UseCase (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:UseCase.extensionPoint | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:UseCase
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- extensionPoint CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:UseCaseInstance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StateMachine.context (UML:ModelElement)* >
-
-<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* >
-
-<!ELEMENT UML:StateMachine (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateMachine.context |
- UML:StateMachine.submachineState |
- UML:ModelElement.taggedValue |
- UML:StateMachine.top |
- UML:StateMachine.transitions)* >
-<!ATTLIST UML:StateMachine
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- submachineState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Guard -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Guard.expression (UML:BooleanExpression) >
-
-<!ELEMENT UML:Guard.transition (UML:Transition)* >
-
-<!ELEMENT UML:Guard (UML:ModelElement.name |
- UML:ModelElement.visibility | UML:Guard.expression |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Guard.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Guard
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* >
-
-<!ELEMENT UML:StateVertex.incoming (UML:Transition)* >
-
-<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* >
-
-<!ELEMENT UML:StateVertex (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:StateVertex
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Transition -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Transition.source (UML:StateVertex)* >
-
-<!ELEMENT UML:Transition.target (UML:StateVertex)* >
-
-<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* >
-
-<!ELEMENT UML:Transition.state (UML:State)* >
-
-<!ELEMENT UML:Transition.trigger (UML:Event)* >
-
-<!ELEMENT UML:Transition (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Transition.source | UML:Transition.target |
- UML:Transition.statemachine |
- UML:Transition.state | UML:Transition.trigger |
- UML:ModelElement.taggedValue |
- UML:Transition.guard | UML:Transition.effect)* >
-<!ATTLIST UML:Transition
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- source IDREFS #IMPLIED
- target IDREFS #IMPLIED
- statemachine IDREFS #IMPLIED
- state IDREFS #IMPLIED
- trigger IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:PseudoState.kind EMPTY >
-<!ATTLIST UML:PseudoState.kind
- xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED
->
-
-<!ELEMENT UML:PseudoState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:PseudoState.kind | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:PseudoState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.State -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:State.stateMachine (UML:StateMachine)* >
-
-<!ELEMENT UML:State.deferredEvent (UML:Event)* >
-
-<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:State (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing | UML:StateVertex.incoming |
- UML:StateVertex.parent | UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition | UML:State.entry |
- UML:State.exit)* >
-<!ATTLIST UML:State
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CompositeState.isConcurrent EMPTY >
-<!ATTLIST UML:CompositeState.isConcurrent
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:CompositeState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:CompositeState.isConcurrent |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit |
- UML:CompositeState.substate)* >
-<!ATTLIST UML:CompositeState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isConcurrent (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SimpleState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:SimpleState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* >
-
-<!ELEMENT UML:SubmachineState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:SubmachineState.stateMachine |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:SubmachineState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- State.stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- SubmachineState.stateMachine IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Event -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Event.state (UML:State)* >
-
-<!ELEMENT UML:Event.transition (UML:Transition)* >
-
-<!ELEMENT UML:Event (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Event
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SignalEvent.signal (UML:Signal)* >
-
-<!ELEMENT UML:SignalEvent (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition | UML:SignalEvent.signal |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:SignalEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CallEvent.operation (UML:Operation)* >
-
-<!ELEMENT UML:CallEvent (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition | UML:CallEvent.operation |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:CallEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- operation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) >
-
-<!ELEMENT UML:TimeEvent (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:TimeEvent.duration | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:TimeEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) >
-
-<!ELEMENT UML:ChangeEvent (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:ChangeEvent.changeExpression |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:ChangeEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActivityModel (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateMachine.context |
- UML:StateMachine.submachineState |
- UML:ModelElement.taggedValue |
- UML:StateMachine.top |
- UML:StateMachine.transitions |
- UML:ActivityModel.partition)* >
-<!ATTLIST UML:ActivityModel
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- submachineState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Partition -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Partition.contents (UML:ModelElement)* >
-
-<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* >
-
-<!ELEMENT UML:Partition (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Partition.contents |
- UML:Partition.activityModel |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Partition
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- contents IDREFS #IMPLIED
- activityModel IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActionState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActionState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ActionState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ObjectFlowState.typeState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ObjectFlowState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- typeState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* >
-
-<!ELEMENT UML:ClassifierInState.inState (UML:State)* >
-
-<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* >
-
-<!ELEMENT UML:ClassifierInState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ClassifierInState.objectFlowState |
- UML:ClassifierInState.inState |
- UML:ClassifierInState.type |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:ClassifierInState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- objectFlowState IDREFS #IMPLIED
- inState IDREFS #IMPLIED
- type IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActivityState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:SubmachineState.stateMachine |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ActivityState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- State.stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- SubmachineState.stateMachine IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core |
- UML:Extension_Mechanisms | UML:Data_Types)* >
-<!ATTLIST UML:Foundation
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding | UML:Node |
- UML:Component | UML:Comment |
- UML:ViewElement | UML:Presentation)* >
-<!ATTLIST UML:Auxiliary_Elements
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace |
- UML:GeneralizableElement | UML:Classifier |
- UML:Interface | UML:Class | UML:DataType |
- UML:Feature | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Operation | UML:Method |
- UML:Parameter | UML:Constraint | UML:Dependency |
- UML:Generalization | UML:AssociationEnd |
- UML:Association | UML:AssociationClass |
- UML:Attribute)* >
-<!ATTLIST UML:Core
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* >
-<!ATTLIST UML:Extension_Mechanisms
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral |
- UML:Primitive | UML:Structure |
- UML:MultiplicityRange | UML:Geometry |
- UML:GraphicMarker | UML:Mapping |
- UML:Expression | UML:ProcedureExpression |
- UML:ObjectSetExpression | UML:TimeExpression |
- UML:BooleanExpression)* >
-<!ATTLIST UML:Data_Types
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model |
- UML:ElementReference)* >
-<!ATTLIST UML:Model_Management
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior |
- UML:Collaborations | UML:Use_Cases |
- UML:State_Machines)* >
-<!ATTLIST UML:Behavioral_Elements
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception |
- UML:Reception | UML:Argument |
- UML:ActionSequence | UML:Action |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation | UML:ReturnAction |
- UML:SendAction | UML:UninterpretedAction |
- UML:TerminateAction | UML:DestroyAction |
- UML:Link | UML:LinkEnd | UML:Instance |
- UML:AttributeLink | UML:Object |
- UML:DataValue | UML:LinkObject |
- UML:MessageInstance)* >
-<!ATTLIST UML:Common_Behavior
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction |
- UML:AssociationRole |
- UML:AssociationEndRole | UML:Message |
- UML:ClassifierRole)* >
-<!ATTLIST UML:Collaborations
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase |
- UML:UseCaseInstance)* >
-<!ATTLIST UML:Use_Cases
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard |
- UML:StateVertex | UML:Transition |
- UML:PseudoState | UML:State |
- UML:CompositeState | UML:SimpleState |
- UML:SubmachineState | UML:Event |
- UML:SignalEvent | UML:CallEvent |
- UML:TimeEvent | UML:ChangeEvent |
- UML:ActivityModel | UML:Partition |
- UML:ActionState | UML:ObjectFlowState |
- UML:ClassifierInState |
- UML:ActivityState)* >
-<!ATTLIST UML:State_Machines
- %XMI.element.att;
- %XMI.link.att;
->
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl b/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
index bafdb7694f8..e619e3616cd 100755
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
@@ -13,7 +13,7 @@ $status = 0;
my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
my $idl = "test.idl";
-my $dtd = "XMI.dtd";
+my $dtd = "../XMI.dtd";
my $xmi = "generated.xmi";
my $target_idl = $target->LocalFile ($idl);
my $target_dtd = $target->LocalFile ($dtd);
@@ -42,7 +42,7 @@ open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
close (DAT);
$num = grep (/<UML:Attribute/, @data);
-if ($num == 2) {
+if ($num == 6) {
print "TEST OK. Correct tags in there.\n";
} else {
print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl b/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
index 122ca407e5a..548c7aa2073 100644
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
@@ -1,3 +1,20 @@
// $Id$
-typedef char Ffffffftttt [4][5];
+#ifndef TEST_IDL
+#define TEST_IDL
+
+module TestXMIArray {
+ typedef char CharArray [4][5];
+
+ struct A
+ {
+ CharArray bar;
+ };
+
+ struct B
+ {
+ char bar[3][2];
+ };
+};
+
+#endif // TEST_IDL
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd b/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd
deleted file mode 100644
index 3b0ef4154c4..00000000000
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/XMI.dtd
+++ /dev/null
@@ -1,6401 +0,0 @@
-<!-- ===================================================================== -->
-<!--
- * This file is part of CARDAMOM (R) which is jointly developed by THALES
- * and SELEX Sistemi Integrati. It is derivative work based on PERCO
- * Copyright (C) THALES 2000-2003. All rights reserved.
- * Copyright (C) THALES 2004-2005. All rights reserved.
- * Copyright (C) SELEX SISTEMI INTEGRATI and THALES 2006-2007.
- * All rights reserved.
- *
- * CARDAMOM is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Library General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * CARDAMOM is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with CARDAMOM; see the file COPYING. If not, write to the
- * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
--->
-<!-- ===================================================================== -->
-<!-- Generated by: XMI Framework 1.0 -->
-<!-- Date: Fri Oct 22 14:31:09 PDT 1999 -->
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- This section of the DTD contains XML declarations required by -->
-<!-- XMI. -->
-<!-- _______________________________________________________________ -->
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI is the top-level XML element for XMI transfer text -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI (XMI.header?, XMI.content?, XMI.difference*,
- XMI.extensions*) >
-<!ATTLIST XMI
- xmi.version CDATA #FIXED "1.1"
- timestamp CDATA #IMPLIED
- verified (true | false) #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.header contains documentation and identifies the model, -->
-<!-- metamodel, and metametamodel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.header (XMI.documentation?, XMI.model*, XMI.metamodel*,
- XMI.metametamodel*, XMI.import*) >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- documentation for transfer data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.documentation (#PCDATA | XMI.owner | XMI.contact |
- XMI.longDescription | XMI.shortDescription |
- XMI.exporter | XMI.exporterVersion |
- XMI.notice)* >
-<!ELEMENT XMI.owner ANY >
-<!ELEMENT XMI.contact ANY >
-<!ELEMENT XMI.longDescription ANY >
-<!ELEMENT XMI.shortDescription ANY >
-<!ELEMENT XMI.exporter ANY >
-<!ELEMENT XMI.exporterVersion ANY >
-<!ELEMENT XMI.exporterID ANY >
-<!ELEMENT XMI.notice ANY >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.element.att defines the attributes that each XML element -->
-<!-- that corresponds to a metamodel class must have to conform to -->
-<!-- the XMI specification. -->
-<!-- _______________________________________________________________ -->
-
-
-<!ENTITY % XMI.element.att
- 'xmi.id ID #IMPLIED xmi.label CDATA #IMPLIED xmi.uuid
- CDATA #IMPLIED ' >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.link.att defines the attributes that each XML element that -->
-<!-- corresponds to a metamodel class must have to enable it to -->
-<!-- function as a simple XLink as well as refer to model -->
-<!-- constructs within the same XMI file. -->
-<!-- _______________________________________________________________ -->
-
-
-<!ENTITY % XMI.link.att
- 'href CDATA #IMPLIED xmi.idref IDREF #IMPLIED xml:link
- CDATA #IMPLIED xlink:inline (true | false) #IMPLIED
- xlink:actuate (show | user) #IMPLIED xlink:content-role
- CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:show
- (embed | replace | new) #IMPLIED xlink:behavior CDATA
- #IMPLIED' >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.model identifies the model(s) being transferred -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.model ANY >
-<!ATTLIST XMI.model
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metamodel identifies the metamodel(s) for the transferred -->
-<!-- data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.metamodel ANY >
-<!ATTLIST XMI.metamodel
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metametamodel identifies the metametamodel(s) for the -->
-<!-- transferred data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.metametamodel ANY >
-<!ATTLIST XMI.metametamodel
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metametamodel identifies other files associated with the -->
-<!-- transferred data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.import ANY >
-<!ATTLIST XMI.import
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.content is the actual data being transferred -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.content ANY >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.extensions contains data to transfer that does not conform -->
-<!-- to the metamodel(s) in the header -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.extensions ANY >
-<!ATTLIST XMI.extensions
- xmi.extender CDATA #REQUIRED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- extension contains information related to a specific model -->
-<!-- construct that is not defined in the metamodel(s) in the header -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.extension ANY >
-<!ATTLIST XMI.extension
- %XMI.element.att;
- %XMI.link.att;
- xmi.extender CDATA #REQUIRED
- xmi.extenderID CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.difference holds XML elements representing differences to a -->
-<!-- base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.difference (XMI.difference | XMI.delete | XMI.add |
- XMI.replace)* >
-<!ATTLIST XMI.difference
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.delete represents a deletion from a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.delete EMPTY >
-<!ATTLIST XMI.delete
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.add represents an addition to a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.add ANY >
-<!ATTLIST XMI.add
- %XMI.element.att;
- %XMI.link.att;
- xmi.position CDATA "-1"
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.replace represents the replacement of a model construct -->
-<!-- with another model construct in a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.replace ANY >
-<!ATTLIST XMI.replace
- %XMI.element.att;
- %XMI.link.att;
- xmi.position CDATA "-1"
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.reference may be used to refer to data types not defined in -->
-<!-- the metamodel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.reference ANY >
-<!ATTLIST XMI.reference
- %XMI.link.att;
->
-
-<!ATTLIST XMI
- xmlns:UML CDATA #IMPLIED
->
-
-
-<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment |
- UML:Namespace | UML:GeneralizableElement |
- UML:Feature | UML:Parameter |
- UML:Constraint | UML:Dependency |
- UML:Generalization | UML:AssociationEnd |
- UML:Request | UML:ActionSequence |
- UML:Action | UML:Link | UML:LinkEnd |
- UML:Instance | UML:AttributeLink |
- UML:MessageInstance | UML:Interaction |
- UML:Message | UML:StateMachine |
- UML:Guard | UML:StateVertex |
- UML:Transition | UML:Event |
- UML:Partition | UML:Collaboration |
- UML:Classifier | UML:Association |
- UML:Stereotype | UML:Package |
- UML:Signal | UML:Node | UML:Component |
- UML:Interface | UML:Class | UML:DataType |
- UML:Subsystem | UML:ClassifierRole |
- UML:Actor | UML:UseCase |
- UML:ClassifierInState |
- UML:AssociationClass | UML:Enumeration |
- UML:Primitive | UML:Structure |
- UML:AssociationRole | UML:Model |
- UML:Exception | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Attribute |
- UML:Operation | UML:Method |
- UML:Reception | UML:Refinement |
- UML:Usage | UML:Trace | UML:Binding |
- UML:AssociationEndRole |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation | UML:ReturnAction |
- UML:SendAction | UML:UninterpretedAction |
- UML:TerminateAction | UML:DestroyAction |
- UML:LinkObject | UML:Object |
- UML:DataValue | UML:UseCaseInstance |
- UML:ActivityModel | UML:PseudoState |
- UML:State | UML:CompositeState |
- UML:SimpleState | UML:SubmachineState |
- UML:ActionState | UML:ObjectFlowState |
- UML:ActivityState | UML:SignalEvent |
- UML:CallEvent | UML:TimeEvent |
- UML:ChangeEvent)* >
-
-
-<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* >
-
-
-<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment |
- UML:Namespace |
- UML:GeneralizableElement |
- UML:Feature | UML:Parameter |
- UML:Constraint | UML:Dependency |
- UML:Generalization |
- UML:AssociationEnd | UML:Request |
- UML:ActionSequence | UML:Action |
- UML:Link | UML:LinkEnd |
- UML:Instance | UML:AttributeLink |
- UML:MessageInstance |
- UML:Interaction | UML:Message |
- UML:StateMachine | UML:Guard |
- UML:StateVertex | UML:Transition |
- UML:Event | UML:Partition |
- UML:Collaboration | UML:Classifier |
- UML:Association | UML:Stereotype |
- UML:Package | UML:Signal |
- UML:Node | UML:Component |
- UML:Interface | UML:Class |
- UML:DataType | UML:Subsystem |
- UML:ClassifierRole | UML:Actor |
- UML:UseCase |
- UML:ClassifierInState |
- UML:AssociationClass |
- UML:Enumeration | UML:Primitive |
- UML:Structure |
- UML:AssociationRole | UML:Model |
- UML:Exception |
- UML:StructuralFeature |
- UML:BehavioralFeature |
- UML:Attribute | UML:Operation |
- UML:Method | UML:Reception |
- UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding |
- UML:AssociationEndRole |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation |
- UML:ReturnAction | UML:SendAction |
- UML:UninterpretedAction |
- UML:TerminateAction |
- UML:DestroyAction | UML:LinkObject |
- UML:Object | UML:DataValue |
- UML:UseCaseInstance |
- UML:ActivityModel |
- UML:PseudoState | UML:State |
- UML:CompositeState |
- UML:SimpleState |
- UML:SubmachineState |
- UML:ActionState |
- UML:ObjectFlowState |
- UML:ActivityState |
- UML:SignalEvent | UML:CallEvent |
- UML:TimeEvent | UML:ChangeEvent)* >
-
-
-<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Attribute |
- UML:Operation | UML:Method |
- UML:Reception)* >
-
-
-<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* >
-
-
-<!ELEMENT UML:Dependency.subDependencies (UML:Dependency |
- UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding)* >
-
-
-<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* >
-
-
-<!ELEMENT UML:Association.connection (UML:AssociationEnd |
- UML:AssociationEndRole)* >
-
-
-<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* >
-
-
-<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* >
-
-
-<!ELEMENT UML:Signal.parameter (UML:Parameter)* >
-
-
-<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction |
- UML:CallAction |
- UML:LocalInvocation |
- UML:ReturnAction | UML:SendAction |
- UML:UninterpretedAction |
- UML:TerminateAction |
- UML:DestroyAction)* >
-
-
-<!ELEMENT UML:Action.actualArgument (UML:Argument)* >
-
-
-<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* >
-
-
-<!ELEMENT UML:Instance.slot (UML:AttributeLink)* >
-
-
-<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* >
-
-
-<!ELEMENT UML:Interaction.message (UML:Message)* >
-
-
-<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState |
- UML:SimpleState | UML:SubmachineState |
- UML:ActionState | UML:ObjectFlowState |
- UML:ActivityState)* >
-
-<!ELEMENT UML:StateMachine.transitions (UML:Transition)* >
-
-
-<!ELEMENT UML:Transition.guard (UML:Guard)* >
-
-<!ELEMENT UML:Transition.effect (UML:ActionSequence)* >
-
-
-<!ELEMENT UML:State.internalTransition (UML:Transition)* >
-
-<!ELEMENT UML:State.entry (UML:ActionSequence)* >
-
-<!ELEMENT UML:State.exit (UML:ActionSequence)* >
-
-
-<!ELEMENT UML:CompositeState.substate (UML:StateVertex |
- UML:PseudoState | UML:State |
- UML:CompositeState |
- UML:SimpleState |
- UML:SubmachineState |
- UML:ActionState |
- UML:ObjectFlowState |
- UML:ActivityState)* >
-
-
-<!ELEMENT UML:ActivityModel.partition (UML:Partition)* >
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Refinement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Refinement.mapping (UML:Mapping) >
-
-<!ELEMENT UML:Refinement (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description |
- UML:Refinement.mapping | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client |
- UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Refinement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Usage -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Usage (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Usage
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Trace -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Trace (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Trace
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Binding -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Binding (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies |
- UML:Binding.argument)* >
-<!ATTLIST UML:Binding
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Node -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Node.component (UML:Component)* >
-
-<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding | UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Node.component | UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Node
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- component IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Component -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Component.deployment (UML:Node)* >
-
-<!ELEMENT UML:Component.implements (UML:ModelElement)* >
-
-<!ELEMENT UML:Component (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Component.deployment |
- UML:Component.implements |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Component
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- deployment IDREFS #IMPLIED
- implements IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Comment -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Comment (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Comment
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ViewElement.model (UML:ModelElement)* >
-
-<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* >
-
-<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model |
- UML:ViewElement.presentation)* >
-<!ATTLIST UML:ViewElement
- model IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Presentation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Presentation.geometry (UML:Geometry) >
-
-<!ELEMENT UML:Presentation.style (UML:GraphicMarker) >
-
-<!ELEMENT UML:Presentation.model (UML:ModelElement)* >
-
-<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* >
-
-<!ELEMENT UML:Presentation (UML:Presentation.geometry |
- UML:Presentation.style | XMI.extension |
- UML:Presentation.model |
- UML:Presentation.viewElement)* >
-<!ATTLIST UML:Presentation
- model IDREFS #IMPLIED
- viewElement IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Element -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Element (XMI.extension)* >
-<!ATTLIST UML:Element
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.ModelElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ModelElement.visibility EMPTY >
-<!ATTLIST UML:ModelElement.visibility
- xmi.value (public | protected | private) #REQUIRED
->
-
-<!ELEMENT UML:ModelElement.binding (UML:Binding)* >
-
-<!ELEMENT UML:ModelElement.template (UML:ModelElement)* >
-
-<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* >
-
-<!ELEMENT UML:ModelElement.implementation (UML:Component)* >
-
-<!ELEMENT UML:ModelElement.view (UML:ViewElement)* >
-
-<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* >
-
-<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* >
-
-<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* >
-
-<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* >
-
-<!ELEMENT UML:ModelElement.provision (UML:Dependency)* >
-
-<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* >
-
-<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* >
-
-<!ELEMENT UML:ModelElement.partition (UML:Partition)* >
-
-<!ELEMENT UML:ModelElement (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:ModelElement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Namespace -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Namespace (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Namespace
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.GeneralizableElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:GeneralizableElement.isRoot EMPTY >
-<!ATTLIST UML:GeneralizableElement.isRoot
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY >
-<!ATTLIST UML:GeneralizableElement.isLeaf
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY >
-<!ATTLIST UML:GeneralizableElement.isAbstract
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.generalization
- (UML:Generalization)* >
-
-<!ELEMENT UML:GeneralizableElement.specialization
- (UML:Generalization)* >
-
-<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:GeneralizableElement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Classifier -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Classifier.parameter (UML:Parameter)* >
-
-<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* >
-
-<!ELEMENT UML:Classifier.specification (UML:Classifier)* >
-
-<!ELEMENT UML:Classifier.realization (UML:Classifier)* >
-
-<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* >
-
-<!ELEMENT UML:Classifier.instance (UML:Instance)* >
-
-<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:Classifier (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Classifier
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Interface -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Interface (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Interface
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Class -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Class.isActive EMPTY >
-<!ATTLIST UML:Class.isActive
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Class (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Class.isActive | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Class
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isActive (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.DataType -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DataType (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:DataType
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Feature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Feature.ownerScope EMPTY >
-<!ATTLIST UML:Feature.ownerScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:Feature.owner (UML:Classifier)* >
-
-<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Feature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Feature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.StructuralFeature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA |
- XMI.reference)* >
-
-<!ELEMENT UML:StructuralFeature.changeable EMPTY >
-<!ATTLIST UML:StructuralFeature.changeable
- xmi.value (none | frozen | addOnly) #REQUIRED
->
-
-<!ELEMENT UML:StructuralFeature.targetScope EMPTY >
-<!ATTLIST UML:StructuralFeature.targetScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* >
-
-<!ELEMENT UML:StructuralFeature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:StructuralFeature.multiplicity |
- UML:StructuralFeature.changeable |
- UML:StructuralFeature.targetScope |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:StructuralFeature.type |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:StructuralFeature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- type IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.BehavioralFeature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:BehavioralFeature.isQuery EMPTY >
-<!ATTLIST UML:BehavioralFeature.isQuery
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* >
-
-<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:BehavioralFeature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Operation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Operation.isPolymorphic EMPTY >
-<!ATTLIST UML:Operation.isPolymorphic
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Operation.concurrency EMPTY >
-<!ATTLIST UML:Operation.concurrency
- xmi.value (sequential | guarded | concurrent) #REQUIRED
->
-
-<!ELEMENT UML:Operation.method (UML:Method)* >
-
-<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* >
-
-<!ELEMENT UML:Operation (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- UML:Operation.specification |
- UML:Operation.isPolymorphic |
- UML:Operation.concurrency | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Request.action |
- UML:Request.messageInstance |
- UML:Operation.method |
- UML:Operation.collaboration |
- UML:Operation.occurrence |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Operation
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- specification CDATA #IMPLIED
- isPolymorphic (false | true) #IMPLIED
- concurrency (sequential | guarded | concurrent) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- method IDREFS #IMPLIED
- Operation.collaboration IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Method -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Method.body (UML:ProcedureExpression) >
-
-<!ELEMENT UML:Method.specification (UML:Operation)* >
-
-<!ELEMENT UML:Method (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery | UML:Method.body |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Method.specification |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Method
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Parameter -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Parameter.defaultValue (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Parameter.kind EMPTY >
-<!ATTLIST UML:Parameter.kind
- xmi.value (in | inout | out | return) #REQUIRED
->
-
-<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* >
-
-<!ELEMENT UML:Parameter.type (UML:Classifier)* >
-
-<!ELEMENT UML:Parameter.signal (UML:Signal)* >
-
-<!ELEMENT UML:Parameter (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Parameter.defaultValue | UML:Parameter.kind |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Parameter.behavioralFeature |
- UML:Parameter.type | UML:Parameter.signal |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Parameter
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- kind (in | inout | out | return) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- behavioralFeature IDREFS #IMPLIED
- type IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Constraint -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Constraint.body (UML:BooleanExpression) >
-
-<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:Constraint (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Constraint.body | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Constraint.constrainedElement |
- UML:Constraint.constrainedStereotype |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Constraint
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- constrainedElement IDREFS #IMPLIED
- constrainedStereotype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Dependency -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* >
-
-<!ELEMENT UML:Dependency.client (UML:ModelElement)* >
-
-<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* >
-
-<!ELEMENT UML:Dependency (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client |
- UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Dependency
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Generalization -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* >
-
-<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* >
-
-<!ELEMENT UML:Generalization (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Generalization.discriminator |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Generalization.subtype |
- UML:Generalization.supertype |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Generalization
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- discriminator CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- subtype IDREFS #IMPLIED
- supertype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.AssociationEnd -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationEnd.isNavigable EMPTY >
-<!ATTLIST UML:AssociationEnd.isNavigable
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.isOrdered EMPTY >
-<!ATTLIST UML:AssociationEnd.isOrdered
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.aggregation EMPTY >
-<!ATTLIST UML:AssociationEnd.aggregation
- xmi.value (none | shared | composite) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:AssociationEnd.changeable EMPTY >
-<!ATTLIST UML:AssociationEnd.changeable
- xmi.value (none | frozen | addOnly) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.targetScope EMPTY >
-<!ATTLIST UML:AssociationEnd.targetScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* >
-
-<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* >
-
-<!ELEMENT UML:AssociationEnd.association (UML:Association)* >
-
-<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* >
-
-<!ELEMENT UML:AssociationEnd.associationEndRole
- (UML:AssociationEndRole)* >
-
-<!ELEMENT UML:AssociationEnd (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:AssociationEnd.isNavigable |
- UML:AssociationEnd.isOrdered |
- UML:AssociationEnd.aggregation |
- UML:AssociationEnd.multiplicity |
- UML:AssociationEnd.changeable |
- UML:AssociationEnd.targetScope |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AssociationEnd.type |
- UML:AssociationEnd.specification |
- UML:AssociationEnd.association |
- UML:AssociationEnd.linkEnd |
- UML:AssociationEnd.associationEndRole |
- UML:ModelElement.taggedValue |
- UML:AssociationEnd.qualifier)* >
-<!ATTLIST UML:AssociationEnd
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isNavigable (false | true) #IMPLIED
- isOrdered (false | true) #IMPLIED
- aggregation (none | shared | composite) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- type IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- association IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Association -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Association.link (UML:Link)* >
-
-<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* >
-
-<!ELEMENT UML:Association (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Association.connection)* >
-<!ATTLIST UML:Association
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.AssociationClass -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationClass (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Class.isActive | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature |
- UML:Association.connection)* >
-<!ATTLIST UML:AssociationClass
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isActive (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- Classifier.associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- link IDREFS #IMPLIED
- Association.associationEnd IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Attribute -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Attribute.initialValue (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* >
-
-<!ELEMENT UML:Attribute (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:StructuralFeature.multiplicity |
- UML:StructuralFeature.changeable |
- UML:StructuralFeature.targetScope |
- UML:Attribute.initialValue | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:StructuralFeature.type |
- UML:Attribute.associationEnd |
- UML:Attribute.attributeLink |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Attribute
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- type IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* >
-
-<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value |
- XMI.extension | UML:TaggedValue.modelElement |
- UML:TaggedValue.stereotype)* >
-<!ATTLIST UML:TaggedValue
- tag CDATA #IMPLIED
- value CDATA #IMPLIED
- modelElement IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Stereotype.icon (UML:Geometry) >
-
-<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* >
-
-<!ELEMENT UML:Stereotype (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Stereotype.icon | UML:Stereotype.baseClass |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Stereotype.extendedElement |
- UML:Stereotype.stereotypeConstraint |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Stereotype.requiredTag)* >
-<!ATTLIST UML:Stereotype
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- baseClass CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- extendedElement IDREFS #IMPLIED
- stereotypeConstraint IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Enumeration -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Enumeration (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature |
- UML:Enumeration.literal)* >
-<!ATTLIST UML:Enumeration
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.EnumerationLiteral -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* >
-
-<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name |
- XMI.extension |
- UML:EnumerationLiteral.enumeration)* >
-<!ATTLIST UML:EnumerationLiteral
- name CDATA #IMPLIED
- enumeration IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Primitive -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Primitive (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Primitive
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Structure -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Structure (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Structure
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.MultiplicityRange -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower |
- UML:MultiplicityRange.upper |
- XMI.extension)* >
-<!ATTLIST UML:MultiplicityRange
- lower CDATA #IMPLIED
- upper CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Geometry -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* >
-<!ATTLIST UML:Geometry
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.GraphicMarker -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* >
-<!ATTLIST UML:GraphicMarker
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Mapping -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* >
-<!ATTLIST UML:Mapping
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Expression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body |
- XMI.extension)* >
-<!ATTLIST UML:Expression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.ProcedureExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ProcedureExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:ProcedureExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.ObjectSetExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ObjectSetExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:ObjectSetExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.TimeExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TimeExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:TimeExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.BooleanExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:BooleanExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:BooleanExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Package -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Package.elementReference (UML:ElementReference)* >
-
-<!ELEMENT UML:Package (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Package
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Subsystem -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Subsystem.isInstantiable EMPTY >
-<!ATTLIST UML:Subsystem.isInstantiable
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Subsystem (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Subsystem.isInstantiable | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Subsystem
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isInstantiable (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Model (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Model
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.ElementReference -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ElementReference.visibility EMPTY >
-<!ATTLIST UML:ElementReference.visibility
- xmi.value (public | protected | private) #REQUIRED
->
-
-<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:ElementReference.package (UML:Package)* >
-
-<!ELEMENT UML:ElementReference (UML:ElementReference.visibility |
- UML:ElementReference.alias |
- XMI.extension |
- UML:ElementReference.referencedElement |
- UML:ElementReference.package)* >
-<!ATTLIST UML:ElementReference
- visibility (public | protected | private) #IMPLIED
- alias CDATA #IMPLIED
- referencedElement IDREFS #IMPLIED
- package IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Request -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Request.action (UML:Action)* >
-
-<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* >
-
-<!ELEMENT UML:Request (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Request.action |
- UML:Request.messageInstance |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Request
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Signal.reception (UML:Reception)* >
-
-<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* >
-
-<!ELEMENT UML:Signal (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Request.action | UML:Request.messageInstance |
- UML:Signal.reception | UML:Signal.occurrence |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Signal.parameter)* >
-<!ATTLIST UML:Signal
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- reception IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* >
-
-<!ELEMENT UML:Exception (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Request.action |
- UML:Request.messageInstance |
- UML:Signal.reception | UML:Signal.occurrence |
- UML:Exception.context |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Signal.parameter)* >
-<!ATTLIST UML:Exception
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- reception IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- context IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Reception.isPolymorphic EMPTY >
-<!ATTLIST UML:Reception.isPolymorphic
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Reception.signal (UML:Signal)* >
-
-<!ELEMENT UML:Reception (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- UML:Reception.isPolymorphic |
- UML:Reception.specification | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Reception.signal |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Reception
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- isPolymorphic (false | true) #IMPLIED
- specification CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Argument.action (UML:Action)* >
-
-<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension |
- UML:Argument.action)* >
-<!ATTLIST UML:Argument
- action IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActionSequence.transition (UML:Transition)* >
-
-<!ELEMENT UML:ActionSequence.state (UML:State)* >
-
-<!ELEMENT UML:ActionSequence.state2 (UML:State)* >
-
-<!ELEMENT UML:ActionSequence (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ActionSequence.transition |
- UML:ActionSequence.state |
- UML:ActionSequence.state2 |
- UML:ModelElement.taggedValue |
- UML:ActionSequence.action)* >
-<!ATTLIST UML:ActionSequence
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- state2 IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Action -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Action.recurrence (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Action.target (UML:ObjectSetExpression) >
-
-<!ELEMENT UML:Action.isAsynchronous EMPTY >
-<!ATTLIST UML:Action.isAsynchronous
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Action.request (UML:Request)* >
-
-<!ELEMENT UML:Action.message (UML:Message)* >
-
-<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* >
-
-<!ELEMENT UML:Action (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Action.request |
- UML:Action.message | UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:Action
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* >
-
-<!ELEMENT UML:CreateAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:CreateAction.instantiation |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:CreateAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- instantiation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CallAction.mode EMPTY >
-<!ATTLIST UML:CallAction.mode
- xmi.value (synchronous | asynchronous) #REQUIRED
->
-
-<!ELEMENT UML:CallAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- UML:CallAction.mode | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:CallAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- mode (synchronous | asynchronous) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LocalInvocation (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:LocalInvocation
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ReturnAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:ReturnAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SendAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:SendAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence |
- UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script |
- UML:UninterpretedAction.body |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request |
- UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:UninterpretedAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- body CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TerminateAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:TerminateAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DestroyAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:DestroyAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Link -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Link.association (UML:Association)* >
-
-<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Link.association |
- UML:ModelElement.taggedValue | UML:Link.linkRole)* >
-<!ATTLIST UML:Link
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- association IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LinkEnd.link (UML:Link)* >
-
-<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:LinkEnd.instance (UML:Instance)* >
-
-<!ELEMENT UML:LinkEnd (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:LinkEnd.link |
- UML:LinkEnd.associationEnd | UML:LinkEnd.instance |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:LinkEnd
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* >
-
-<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* >
-
-<!ELEMENT UML:Instance.classifier (UML:Classifier)* >
-
-<!ELEMENT UML:Instance (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:Instance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AttributeLink.instance (UML:Instance)* >
-
-<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* >
-
-<!ELEMENT UML:AttributeLink.value (UML:Instance)* >
-
-<!ELEMENT UML:AttributeLink (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AttributeLink.instance |
- UML:AttributeLink.attribute |
- UML:AttributeLink.value |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:AttributeLink
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- attribute IDREFS #IMPLIED
- value IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Object -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Object (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue | UML:Instance.slot)* >
-<!ATTLIST UML:Object
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DataValue (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:DataValue
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LinkObject (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier | UML:Link.association |
- UML:ModelElement.taggedValue |
- UML:Instance.slot | UML:Link.linkRole)* >
-<!ATTLIST UML:LinkObject
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- association IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:MessageInstance.specification (UML:Request)* >
-
-<!ELEMENT UML:MessageInstance.sender (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance.argument (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:MessageInstance.specification |
- UML:MessageInstance.sender |
- UML:MessageInstance.receiver |
- UML:MessageInstance.argument |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:MessageInstance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- sender IDREFS #IMPLIED
- receiver IDREFS #IMPLIED
- argument IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* >
-
-<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* >
-
-<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Collaboration (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Collaboration.representedClassifier |
- UML:Collaboration.representedOperation |
- UML:Collaboration.constrainingElement |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Collaboration.interaction)* >
-<!ATTLIST UML:Collaboration
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- representedClassifier IDREFS #IMPLIED
- representedOperation IDREFS #IMPLIED
- constrainingElement IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Interaction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Interaction.context (UML:Collaboration)* >
-
-<!ELEMENT UML:Interaction (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Interaction.context |
- UML:ModelElement.taggedValue |
- UML:Interaction.message)* >
-<!ATTLIST UML:Interaction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:AssociationRole.base (UML:Association)* >
-
-<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* >
-
-<!ELEMENT UML:AssociationRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:AssociationRole.multiplicity |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:AssociationRole.base |
- UML:AssociationRole.namespace |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Association.connection)* >
-<!ATTLIST UML:AssociationRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- multiplicity CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- ModelElement.namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- base IDREFS #IMPLIED
- AssociationRole.namespace IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationEndRole.associationRole
- (UML:AssociationRole)* >
-
-<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* >
-
-<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:AssociationEnd.isNavigable |
- UML:AssociationEnd.isOrdered |
- UML:AssociationEnd.aggregation |
- UML:AssociationEnd.multiplicity |
- UML:AssociationEnd.changeable |
- UML:AssociationEnd.targetScope |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AssociationEnd.type |
- UML:AssociationEnd.specification |
- UML:AssociationEnd.association |
- UML:AssociationEnd.linkEnd |
- UML:AssociationEnd.associationEndRole |
- UML:AssociationEndRole.associationRole |
- UML:AssociationEndRole.base |
- UML:ModelElement.taggedValue |
- UML:AssociationEnd.qualifier)* >
-<!ATTLIST UML:AssociationEndRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isNavigable (false | true) #IMPLIED
- isOrdered (false | true) #IMPLIED
- aggregation (none | shared | composite) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- type IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- association IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- associationRole IDREFS #IMPLIED
- base IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Message -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Message.interaction (UML:Interaction)* >
-
-<!ELEMENT UML:Message.predecessor (UML:Message)* >
-
-<!ELEMENT UML:Message.message2 (UML:Message)* >
-
-<!ELEMENT UML:Message.message (UML:Message)* >
-
-<!ELEMENT UML:Message.activator (UML:Message)* >
-
-<!ELEMENT UML:Message.action (UML:Action)* >
-
-<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Message.sender (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Message (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Message.interaction | UML:Message.predecessor |
- UML:Message.message2 | UML:Message.message |
- UML:Message.activator | UML:Message.action |
- UML:Message.receiver | UML:Message.sender |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Message
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- interaction IDREFS #IMPLIED
- predecessor IDREFS #IMPLIED
- message2 IDREFS #IMPLIED
- message IDREFS #IMPLIED
- activator IDREFS #IMPLIED
- action IDREFS #IMPLIED
- receiver IDREFS #IMPLIED
- sender IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ClassifierRole.associationEndRole
- (UML:AssociationEndRole)* >
-
-<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* >
-
-<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* >
-
-<!ELEMENT UML:ClassifierRole.message (UML:Message)* >
-
-<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* >
-
-<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* >
-
-<!ELEMENT UML:ClassifierRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:ClassifierRole.multiplicity |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ClassifierRole.associationEndRole |
- UML:ClassifierRole.namespace |
- UML:ClassifierRole.message2 |
- UML:ClassifierRole.message |
- UML:ClassifierRole.base |
- UML:ClassifierRole.availableFeature |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:ClassifierRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- multiplicity CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- ModelElement.namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- ClassifierRole.namespace IDREFS #IMPLIED
- message2 IDREFS #IMPLIED
- message IDREFS #IMPLIED
- base IDREFS #IMPLIED
- availableFeature IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.Actor -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Actor (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Actor
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:UseCase (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:UseCase.extensionPoint | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:UseCase
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- extensionPoint CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:UseCaseInstance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StateMachine.context (UML:ModelElement)* >
-
-<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* >
-
-<!ELEMENT UML:StateMachine (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateMachine.context |
- UML:StateMachine.submachineState |
- UML:ModelElement.taggedValue |
- UML:StateMachine.top |
- UML:StateMachine.transitions)* >
-<!ATTLIST UML:StateMachine
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- submachineState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Guard -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Guard.expression (UML:BooleanExpression) >
-
-<!ELEMENT UML:Guard.transition (UML:Transition)* >
-
-<!ELEMENT UML:Guard (UML:ModelElement.name |
- UML:ModelElement.visibility | UML:Guard.expression |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Guard.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Guard
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* >
-
-<!ELEMENT UML:StateVertex.incoming (UML:Transition)* >
-
-<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* >
-
-<!ELEMENT UML:StateVertex (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:StateVertex
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Transition -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Transition.source (UML:StateVertex)* >
-
-<!ELEMENT UML:Transition.target (UML:StateVertex)* >
-
-<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* >
-
-<!ELEMENT UML:Transition.state (UML:State)* >
-
-<!ELEMENT UML:Transition.trigger (UML:Event)* >
-
-<!ELEMENT UML:Transition (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Transition.source | UML:Transition.target |
- UML:Transition.statemachine |
- UML:Transition.state | UML:Transition.trigger |
- UML:ModelElement.taggedValue |
- UML:Transition.guard | UML:Transition.effect)* >
-<!ATTLIST UML:Transition
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- source IDREFS #IMPLIED
- target IDREFS #IMPLIED
- statemachine IDREFS #IMPLIED
- state IDREFS #IMPLIED
- trigger IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:PseudoState.kind EMPTY >
-<!ATTLIST UML:PseudoState.kind
- xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED
->
-
-<!ELEMENT UML:PseudoState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:PseudoState.kind | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:PseudoState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.State -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:State.stateMachine (UML:StateMachine)* >
-
-<!ELEMENT UML:State.deferredEvent (UML:Event)* >
-
-<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:State (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing | UML:StateVertex.incoming |
- UML:StateVertex.parent | UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition | UML:State.entry |
- UML:State.exit)* >
-<!ATTLIST UML:State
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CompositeState.isConcurrent EMPTY >
-<!ATTLIST UML:CompositeState.isConcurrent
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:CompositeState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:CompositeState.isConcurrent |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit |
- UML:CompositeState.substate)* >
-<!ATTLIST UML:CompositeState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isConcurrent (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SimpleState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:SimpleState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* >
-
-<!ELEMENT UML:SubmachineState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:SubmachineState.stateMachine |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:SubmachineState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- State.stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- SubmachineState.stateMachine IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Event -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Event.state (UML:State)* >
-
-<!ELEMENT UML:Event.transition (UML:Transition)* >
-
-<!ELEMENT UML:Event (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Event
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SignalEvent.signal (UML:Signal)* >
-
-<!ELEMENT UML:SignalEvent (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition | UML:SignalEvent.signal |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:SignalEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CallEvent.operation (UML:Operation)* >
-
-<!ELEMENT UML:CallEvent (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition | UML:CallEvent.operation |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:CallEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- operation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) >
-
-<!ELEMENT UML:TimeEvent (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:TimeEvent.duration | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:TimeEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) >
-
-<!ELEMENT UML:ChangeEvent (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:ChangeEvent.changeExpression |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:ChangeEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActivityModel (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateMachine.context |
- UML:StateMachine.submachineState |
- UML:ModelElement.taggedValue |
- UML:StateMachine.top |
- UML:StateMachine.transitions |
- UML:ActivityModel.partition)* >
-<!ATTLIST UML:ActivityModel
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- submachineState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Partition -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Partition.contents (UML:ModelElement)* >
-
-<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* >
-
-<!ELEMENT UML:Partition (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Partition.contents |
- UML:Partition.activityModel |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Partition
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- contents IDREFS #IMPLIED
- activityModel IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActionState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActionState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ActionState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ObjectFlowState.typeState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ObjectFlowState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- typeState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* >
-
-<!ELEMENT UML:ClassifierInState.inState (UML:State)* >
-
-<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* >
-
-<!ELEMENT UML:ClassifierInState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ClassifierInState.objectFlowState |
- UML:ClassifierInState.inState |
- UML:ClassifierInState.type |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:ClassifierInState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- objectFlowState IDREFS #IMPLIED
- inState IDREFS #IMPLIED
- type IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActivityState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:SubmachineState.stateMachine |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ActivityState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- State.stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- SubmachineState.stateMachine IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core |
- UML:Extension_Mechanisms | UML:Data_Types)* >
-<!ATTLIST UML:Foundation
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding | UML:Node |
- UML:Component | UML:Comment |
- UML:ViewElement | UML:Presentation)* >
-<!ATTLIST UML:Auxiliary_Elements
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace |
- UML:GeneralizableElement | UML:Classifier |
- UML:Interface | UML:Class | UML:DataType |
- UML:Feature | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Operation | UML:Method |
- UML:Parameter | UML:Constraint | UML:Dependency |
- UML:Generalization | UML:AssociationEnd |
- UML:Association | UML:AssociationClass |
- UML:Attribute)* >
-<!ATTLIST UML:Core
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* >
-<!ATTLIST UML:Extension_Mechanisms
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral |
- UML:Primitive | UML:Structure |
- UML:MultiplicityRange | UML:Geometry |
- UML:GraphicMarker | UML:Mapping |
- UML:Expression | UML:ProcedureExpression |
- UML:ObjectSetExpression | UML:TimeExpression |
- UML:BooleanExpression)* >
-<!ATTLIST UML:Data_Types
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model |
- UML:ElementReference)* >
-<!ATTLIST UML:Model_Management
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior |
- UML:Collaborations | UML:Use_Cases |
- UML:State_Machines)* >
-<!ATTLIST UML:Behavioral_Elements
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception |
- UML:Reception | UML:Argument |
- UML:ActionSequence | UML:Action |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation | UML:ReturnAction |
- UML:SendAction | UML:UninterpretedAction |
- UML:TerminateAction | UML:DestroyAction |
- UML:Link | UML:LinkEnd | UML:Instance |
- UML:AttributeLink | UML:Object |
- UML:DataValue | UML:LinkObject |
- UML:MessageInstance)* >
-<!ATTLIST UML:Common_Behavior
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction |
- UML:AssociationRole |
- UML:AssociationEndRole | UML:Message |
- UML:ClassifierRole)* >
-<!ATTLIST UML:Collaborations
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase |
- UML:UseCaseInstance)* >
-<!ATTLIST UML:Use_Cases
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard |
- UML:StateVertex | UML:Transition |
- UML:PseudoState | UML:State |
- UML:CompositeState | UML:SimpleState |
- UML:SubmachineState | UML:Event |
- UML:SignalEvent | UML:CallEvent |
- UML:TimeEvent | UML:ChangeEvent |
- UML:ActivityModel | UML:Partition |
- UML:ActionState | UML:ObjectFlowState |
- UML:ClassifierInState |
- UML:ActivityState)* >
-<!ATTLIST UML:State_Machines
- %XMI.element.att;
- %XMI.link.att;
->
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl b/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
index dfa36b3baa5..73300c2ccec 100755
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
@@ -13,12 +13,13 @@ $status = 0;
my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
my $idl = "File2.idl";
-my $dtd = "XMI.dtd";
+my $dtd = "../XMI.dtd";
my $xmi = "generated.xmi";
my $target_idl = $target->LocalFile ($idl);
my $target_dtd = $target->LocalFile ($dtd);
my $target_xmi = $target->LocalFile ($xmi);
$target->DeleteFile($xmi);
+unlink $xmi;
$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
"-f -xd $target_dtd -of $target_xmi $target_idl");
@@ -30,6 +31,26 @@ if ($target_status != 0) {
exit 1;
}
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 2) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
$target->DeleteFile($xmi);
+unlink $xmi;
exit $status;
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd b/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd
deleted file mode 100644
index 3b0ef4154c4..00000000000
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/XMI.dtd
+++ /dev/null
@@ -1,6401 +0,0 @@
-<!-- ===================================================================== -->
-<!--
- * This file is part of CARDAMOM (R) which is jointly developed by THALES
- * and SELEX Sistemi Integrati. It is derivative work based on PERCO
- * Copyright (C) THALES 2000-2003. All rights reserved.
- * Copyright (C) THALES 2004-2005. All rights reserved.
- * Copyright (C) SELEX SISTEMI INTEGRATI and THALES 2006-2007.
- * All rights reserved.
- *
- * CARDAMOM is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Library General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * CARDAMOM is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with CARDAMOM; see the file COPYING. If not, write to the
- * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
--->
-<!-- ===================================================================== -->
-<!-- Generated by: XMI Framework 1.0 -->
-<!-- Date: Fri Oct 22 14:31:09 PDT 1999 -->
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- This section of the DTD contains XML declarations required by -->
-<!-- XMI. -->
-<!-- _______________________________________________________________ -->
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI is the top-level XML element for XMI transfer text -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI (XMI.header?, XMI.content?, XMI.difference*,
- XMI.extensions*) >
-<!ATTLIST XMI
- xmi.version CDATA #FIXED "1.1"
- timestamp CDATA #IMPLIED
- verified (true | false) #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.header contains documentation and identifies the model, -->
-<!-- metamodel, and metametamodel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.header (XMI.documentation?, XMI.model*, XMI.metamodel*,
- XMI.metametamodel*, XMI.import*) >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- documentation for transfer data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.documentation (#PCDATA | XMI.owner | XMI.contact |
- XMI.longDescription | XMI.shortDescription |
- XMI.exporter | XMI.exporterVersion |
- XMI.notice)* >
-<!ELEMENT XMI.owner ANY >
-<!ELEMENT XMI.contact ANY >
-<!ELEMENT XMI.longDescription ANY >
-<!ELEMENT XMI.shortDescription ANY >
-<!ELEMENT XMI.exporter ANY >
-<!ELEMENT XMI.exporterVersion ANY >
-<!ELEMENT XMI.exporterID ANY >
-<!ELEMENT XMI.notice ANY >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.element.att defines the attributes that each XML element -->
-<!-- that corresponds to a metamodel class must have to conform to -->
-<!-- the XMI specification. -->
-<!-- _______________________________________________________________ -->
-
-
-<!ENTITY % XMI.element.att
- 'xmi.id ID #IMPLIED xmi.label CDATA #IMPLIED xmi.uuid
- CDATA #IMPLIED ' >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.link.att defines the attributes that each XML element that -->
-<!-- corresponds to a metamodel class must have to enable it to -->
-<!-- function as a simple XLink as well as refer to model -->
-<!-- constructs within the same XMI file. -->
-<!-- _______________________________________________________________ -->
-
-
-<!ENTITY % XMI.link.att
- 'href CDATA #IMPLIED xmi.idref IDREF #IMPLIED xml:link
- CDATA #IMPLIED xlink:inline (true | false) #IMPLIED
- xlink:actuate (show | user) #IMPLIED xlink:content-role
- CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:show
- (embed | replace | new) #IMPLIED xlink:behavior CDATA
- #IMPLIED' >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.model identifies the model(s) being transferred -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.model ANY >
-<!ATTLIST XMI.model
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metamodel identifies the metamodel(s) for the transferred -->
-<!-- data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.metamodel ANY >
-<!ATTLIST XMI.metamodel
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metametamodel identifies the metametamodel(s) for the -->
-<!-- transferred data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.metametamodel ANY >
-<!ATTLIST XMI.metametamodel
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.metametamodel identifies other files associated with the -->
-<!-- transferred data -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.import ANY >
-<!ATTLIST XMI.import
- %XMI.link.att;
- xmi.name CDATA #REQUIRED
- xmi.version CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.content is the actual data being transferred -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.content ANY >
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.extensions contains data to transfer that does not conform -->
-<!-- to the metamodel(s) in the header -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.extensions ANY >
-<!ATTLIST XMI.extensions
- xmi.extender CDATA #REQUIRED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- extension contains information related to a specific model -->
-<!-- construct that is not defined in the metamodel(s) in the header -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.extension ANY >
-<!ATTLIST XMI.extension
- %XMI.element.att;
- %XMI.link.att;
- xmi.extender CDATA #REQUIRED
- xmi.extenderID CDATA #IMPLIED
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.difference holds XML elements representing differences to a -->
-<!-- base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.difference (XMI.difference | XMI.delete | XMI.add |
- XMI.replace)* >
-<!ATTLIST XMI.difference
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.delete represents a deletion from a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.delete EMPTY >
-<!ATTLIST XMI.delete
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.add represents an addition to a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.add ANY >
-<!ATTLIST XMI.add
- %XMI.element.att;
- %XMI.link.att;
- xmi.position CDATA "-1"
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.replace represents the replacement of a model construct -->
-<!-- with another model construct in a base model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.replace ANY >
-<!ATTLIST XMI.replace
- %XMI.element.att;
- %XMI.link.att;
- xmi.position CDATA "-1"
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- XMI.reference may be used to refer to data types not defined in -->
-<!-- the metamodel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT XMI.reference ANY >
-<!ATTLIST XMI.reference
- %XMI.link.att;
->
-
-<!ATTLIST XMI
- xmlns:UML CDATA #IMPLIED
->
-
-
-<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment |
- UML:Namespace | UML:GeneralizableElement |
- UML:Feature | UML:Parameter |
- UML:Constraint | UML:Dependency |
- UML:Generalization | UML:AssociationEnd |
- UML:Request | UML:ActionSequence |
- UML:Action | UML:Link | UML:LinkEnd |
- UML:Instance | UML:AttributeLink |
- UML:MessageInstance | UML:Interaction |
- UML:Message | UML:StateMachine |
- UML:Guard | UML:StateVertex |
- UML:Transition | UML:Event |
- UML:Partition | UML:Collaboration |
- UML:Classifier | UML:Association |
- UML:Stereotype | UML:Package |
- UML:Signal | UML:Node | UML:Component |
- UML:Interface | UML:Class | UML:DataType |
- UML:Subsystem | UML:ClassifierRole |
- UML:Actor | UML:UseCase |
- UML:ClassifierInState |
- UML:AssociationClass | UML:Enumeration |
- UML:Primitive | UML:Structure |
- UML:AssociationRole | UML:Model |
- UML:Exception | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Attribute |
- UML:Operation | UML:Method |
- UML:Reception | UML:Refinement |
- UML:Usage | UML:Trace | UML:Binding |
- UML:AssociationEndRole |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation | UML:ReturnAction |
- UML:SendAction | UML:UninterpretedAction |
- UML:TerminateAction | UML:DestroyAction |
- UML:LinkObject | UML:Object |
- UML:DataValue | UML:UseCaseInstance |
- UML:ActivityModel | UML:PseudoState |
- UML:State | UML:CompositeState |
- UML:SimpleState | UML:SubmachineState |
- UML:ActionState | UML:ObjectFlowState |
- UML:ActivityState | UML:SignalEvent |
- UML:CallEvent | UML:TimeEvent |
- UML:ChangeEvent)* >
-
-
-<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* >
-
-
-<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment |
- UML:Namespace |
- UML:GeneralizableElement |
- UML:Feature | UML:Parameter |
- UML:Constraint | UML:Dependency |
- UML:Generalization |
- UML:AssociationEnd | UML:Request |
- UML:ActionSequence | UML:Action |
- UML:Link | UML:LinkEnd |
- UML:Instance | UML:AttributeLink |
- UML:MessageInstance |
- UML:Interaction | UML:Message |
- UML:StateMachine | UML:Guard |
- UML:StateVertex | UML:Transition |
- UML:Event | UML:Partition |
- UML:Collaboration | UML:Classifier |
- UML:Association | UML:Stereotype |
- UML:Package | UML:Signal |
- UML:Node | UML:Component |
- UML:Interface | UML:Class |
- UML:DataType | UML:Subsystem |
- UML:ClassifierRole | UML:Actor |
- UML:UseCase |
- UML:ClassifierInState |
- UML:AssociationClass |
- UML:Enumeration | UML:Primitive |
- UML:Structure |
- UML:AssociationRole | UML:Model |
- UML:Exception |
- UML:StructuralFeature |
- UML:BehavioralFeature |
- UML:Attribute | UML:Operation |
- UML:Method | UML:Reception |
- UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding |
- UML:AssociationEndRole |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation |
- UML:ReturnAction | UML:SendAction |
- UML:UninterpretedAction |
- UML:TerminateAction |
- UML:DestroyAction | UML:LinkObject |
- UML:Object | UML:DataValue |
- UML:UseCaseInstance |
- UML:ActivityModel |
- UML:PseudoState | UML:State |
- UML:CompositeState |
- UML:SimpleState |
- UML:SubmachineState |
- UML:ActionState |
- UML:ObjectFlowState |
- UML:ActivityState |
- UML:SignalEvent | UML:CallEvent |
- UML:TimeEvent | UML:ChangeEvent)* >
-
-
-<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Attribute |
- UML:Operation | UML:Method |
- UML:Reception)* >
-
-
-<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* >
-
-
-<!ELEMENT UML:Dependency.subDependencies (UML:Dependency |
- UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding)* >
-
-
-<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* >
-
-
-<!ELEMENT UML:Association.connection (UML:AssociationEnd |
- UML:AssociationEndRole)* >
-
-
-<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* >
-
-
-<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* >
-
-
-<!ELEMENT UML:Signal.parameter (UML:Parameter)* >
-
-
-<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction |
- UML:CallAction |
- UML:LocalInvocation |
- UML:ReturnAction | UML:SendAction |
- UML:UninterpretedAction |
- UML:TerminateAction |
- UML:DestroyAction)* >
-
-
-<!ELEMENT UML:Action.actualArgument (UML:Argument)* >
-
-
-<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* >
-
-
-<!ELEMENT UML:Instance.slot (UML:AttributeLink)* >
-
-
-<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* >
-
-
-<!ELEMENT UML:Interaction.message (UML:Message)* >
-
-
-<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState |
- UML:SimpleState | UML:SubmachineState |
- UML:ActionState | UML:ObjectFlowState |
- UML:ActivityState)* >
-
-<!ELEMENT UML:StateMachine.transitions (UML:Transition)* >
-
-
-<!ELEMENT UML:Transition.guard (UML:Guard)* >
-
-<!ELEMENT UML:Transition.effect (UML:ActionSequence)* >
-
-
-<!ELEMENT UML:State.internalTransition (UML:Transition)* >
-
-<!ELEMENT UML:State.entry (UML:ActionSequence)* >
-
-<!ELEMENT UML:State.exit (UML:ActionSequence)* >
-
-
-<!ELEMENT UML:CompositeState.substate (UML:StateVertex |
- UML:PseudoState | UML:State |
- UML:CompositeState |
- UML:SimpleState |
- UML:SubmachineState |
- UML:ActionState |
- UML:ObjectFlowState |
- UML:ActivityState)* >
-
-
-<!ELEMENT UML:ActivityModel.partition (UML:Partition)* >
-
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Refinement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Refinement.mapping (UML:Mapping) >
-
-<!ELEMENT UML:Refinement (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description |
- UML:Refinement.mapping | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client |
- UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Refinement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Usage -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Usage (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Usage
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Trace -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Trace (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Trace
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Binding -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Binding (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client | UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies |
- UML:Binding.argument)* >
-<!ATTLIST UML:Binding
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Node -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Node.component (UML:Component)* >
-
-<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding | UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Node.component | UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Node
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- component IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Component -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Component.deployment (UML:Node)* >
-
-<!ELEMENT UML:Component.implements (UML:ModelElement)* >
-
-<!ELEMENT UML:Component (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Component.deployment |
- UML:Component.implements |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Component
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- deployment IDREFS #IMPLIED
- implements IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Comment -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Comment (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Comment
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ViewElement.model (UML:ModelElement)* >
-
-<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* >
-
-<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model |
- UML:ViewElement.presentation)* >
-<!ATTLIST UML:ViewElement
- model IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Auxiliary_Elements.Presentation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Presentation.geometry (UML:Geometry) >
-
-<!ELEMENT UML:Presentation.style (UML:GraphicMarker) >
-
-<!ELEMENT UML:Presentation.model (UML:ModelElement)* >
-
-<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* >
-
-<!ELEMENT UML:Presentation (UML:Presentation.geometry |
- UML:Presentation.style | XMI.extension |
- UML:Presentation.model |
- UML:Presentation.viewElement)* >
-<!ATTLIST UML:Presentation
- model IDREFS #IMPLIED
- viewElement IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Element -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Element (XMI.extension)* >
-<!ATTLIST UML:Element
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.ModelElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ModelElement.visibility EMPTY >
-<!ATTLIST UML:ModelElement.visibility
- xmi.value (public | protected | private) #REQUIRED
->
-
-<!ELEMENT UML:ModelElement.binding (UML:Binding)* >
-
-<!ELEMENT UML:ModelElement.template (UML:ModelElement)* >
-
-<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* >
-
-<!ELEMENT UML:ModelElement.implementation (UML:Component)* >
-
-<!ELEMENT UML:ModelElement.view (UML:ViewElement)* >
-
-<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* >
-
-<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* >
-
-<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* >
-
-<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* >
-
-<!ELEMENT UML:ModelElement.provision (UML:Dependency)* >
-
-<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* >
-
-<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* >
-
-<!ELEMENT UML:ModelElement.partition (UML:Partition)* >
-
-<!ELEMENT UML:ModelElement (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:ModelElement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Namespace -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Namespace (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Namespace
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.GeneralizableElement -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:GeneralizableElement.isRoot EMPTY >
-<!ATTLIST UML:GeneralizableElement.isRoot
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY >
-<!ATTLIST UML:GeneralizableElement.isLeaf
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY >
-<!ATTLIST UML:GeneralizableElement.isAbstract
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:GeneralizableElement.generalization
- (UML:Generalization)* >
-
-<!ELEMENT UML:GeneralizableElement.specialization
- (UML:Generalization)* >
-
-<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:GeneralizableElement
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Classifier -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Classifier.parameter (UML:Parameter)* >
-
-<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* >
-
-<!ELEMENT UML:Classifier.specification (UML:Classifier)* >
-
-<!ELEMENT UML:Classifier.realization (UML:Classifier)* >
-
-<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* >
-
-<!ELEMENT UML:Classifier.instance (UML:Instance)* >
-
-<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:Classifier (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Classifier
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Interface -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Interface (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Interface
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Class -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Class.isActive EMPTY >
-<!ATTLIST UML:Class.isActive
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Class (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Class.isActive | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Class
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isActive (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.DataType -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DataType (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:DataType
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Feature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Feature.ownerScope EMPTY >
-<!ATTLIST UML:Feature.ownerScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:Feature.owner (UML:Classifier)* >
-
-<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Feature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Feature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.StructuralFeature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA |
- XMI.reference)* >
-
-<!ELEMENT UML:StructuralFeature.changeable EMPTY >
-<!ATTLIST UML:StructuralFeature.changeable
- xmi.value (none | frozen | addOnly) #REQUIRED
->
-
-<!ELEMENT UML:StructuralFeature.targetScope EMPTY >
-<!ATTLIST UML:StructuralFeature.targetScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* >
-
-<!ELEMENT UML:StructuralFeature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:StructuralFeature.multiplicity |
- UML:StructuralFeature.changeable |
- UML:StructuralFeature.targetScope |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:StructuralFeature.type |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:StructuralFeature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- type IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.BehavioralFeature -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:BehavioralFeature.isQuery EMPTY >
-<!ATTLIST UML:BehavioralFeature.isQuery
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* >
-
-<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:BehavioralFeature
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Operation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Operation.isPolymorphic EMPTY >
-<!ATTLIST UML:Operation.isPolymorphic
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Operation.concurrency EMPTY >
-<!ATTLIST UML:Operation.concurrency
- xmi.value (sequential | guarded | concurrent) #REQUIRED
->
-
-<!ELEMENT UML:Operation.method (UML:Method)* >
-
-<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* >
-
-<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* >
-
-<!ELEMENT UML:Operation (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- UML:Operation.specification |
- UML:Operation.isPolymorphic |
- UML:Operation.concurrency | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Request.action |
- UML:Request.messageInstance |
- UML:Operation.method |
- UML:Operation.collaboration |
- UML:Operation.occurrence |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Operation
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- specification CDATA #IMPLIED
- isPolymorphic (false | true) #IMPLIED
- concurrency (sequential | guarded | concurrent) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- method IDREFS #IMPLIED
- Operation.collaboration IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Method -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Method.body (UML:ProcedureExpression) >
-
-<!ELEMENT UML:Method.specification (UML:Operation)* >
-
-<!ELEMENT UML:Method (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery | UML:Method.body |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Method.specification |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Method
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Parameter -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Parameter.defaultValue (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Parameter.kind EMPTY >
-<!ATTLIST UML:Parameter.kind
- xmi.value (in | inout | out | return) #REQUIRED
->
-
-<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* >
-
-<!ELEMENT UML:Parameter.type (UML:Classifier)* >
-
-<!ELEMENT UML:Parameter.signal (UML:Signal)* >
-
-<!ELEMENT UML:Parameter (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Parameter.defaultValue | UML:Parameter.kind |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Parameter.behavioralFeature |
- UML:Parameter.type | UML:Parameter.signal |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Parameter
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- kind (in | inout | out | return) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- behavioralFeature IDREFS #IMPLIED
- type IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Constraint -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Constraint.body (UML:BooleanExpression) >
-
-<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:Constraint (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Constraint.body | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Constraint.constrainedElement |
- UML:Constraint.constrainedStereotype |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Constraint
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- constrainedElement IDREFS #IMPLIED
- constrainedStereotype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Dependency -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* >
-
-<!ELEMENT UML:Dependency.client (UML:ModelElement)* >
-
-<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* >
-
-<!ELEMENT UML:Dependency (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Dependency.description | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Dependency.owningDependency |
- UML:Dependency.client |
- UML:Dependency.supplier |
- UML:ModelElement.taggedValue |
- UML:Dependency.subDependencies)* >
-<!ATTLIST UML:Dependency
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- description CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owningDependency IDREFS #IMPLIED
- client IDREFS #IMPLIED
- supplier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Generalization -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* >
-
-<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* >
-
-<!ELEMENT UML:Generalization (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Generalization.discriminator |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Generalization.subtype |
- UML:Generalization.supertype |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Generalization
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- discriminator CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- subtype IDREFS #IMPLIED
- supertype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.AssociationEnd -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationEnd.isNavigable EMPTY >
-<!ATTLIST UML:AssociationEnd.isNavigable
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.isOrdered EMPTY >
-<!ATTLIST UML:AssociationEnd.isOrdered
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.aggregation EMPTY >
-<!ATTLIST UML:AssociationEnd.aggregation
- xmi.value (none | shared | composite) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:AssociationEnd.changeable EMPTY >
-<!ATTLIST UML:AssociationEnd.changeable
- xmi.value (none | frozen | addOnly) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.targetScope EMPTY >
-<!ATTLIST UML:AssociationEnd.targetScope
- xmi.value (classifier | instance) #REQUIRED
->
-
-<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* >
-
-<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* >
-
-<!ELEMENT UML:AssociationEnd.association (UML:Association)* >
-
-<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* >
-
-<!ELEMENT UML:AssociationEnd.associationEndRole
- (UML:AssociationEndRole)* >
-
-<!ELEMENT UML:AssociationEnd (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:AssociationEnd.isNavigable |
- UML:AssociationEnd.isOrdered |
- UML:AssociationEnd.aggregation |
- UML:AssociationEnd.multiplicity |
- UML:AssociationEnd.changeable |
- UML:AssociationEnd.targetScope |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AssociationEnd.type |
- UML:AssociationEnd.specification |
- UML:AssociationEnd.association |
- UML:AssociationEnd.linkEnd |
- UML:AssociationEnd.associationEndRole |
- UML:ModelElement.taggedValue |
- UML:AssociationEnd.qualifier)* >
-<!ATTLIST UML:AssociationEnd
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isNavigable (false | true) #IMPLIED
- isOrdered (false | true) #IMPLIED
- aggregation (none | shared | composite) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- type IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- association IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Association -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Association.link (UML:Link)* >
-
-<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* >
-
-<!ELEMENT UML:Association (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Association.connection)* >
-<!ATTLIST UML:Association
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.AssociationClass -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationClass (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Class.isActive | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature |
- UML:Association.connection)* >
-<!ATTLIST UML:AssociationClass
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isActive (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- Classifier.associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- link IDREFS #IMPLIED
- Association.associationEnd IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Core.Attribute -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Attribute.initialValue (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* >
-
-<!ELEMENT UML:Attribute (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:StructuralFeature.multiplicity |
- UML:StructuralFeature.changeable |
- UML:StructuralFeature.targetScope |
- UML:Attribute.initialValue | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:StructuralFeature.type |
- UML:Attribute.associationEnd |
- UML:Attribute.attributeLink |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Attribute
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- type IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* >
-
-<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* >
-
-<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value |
- XMI.extension | UML:TaggedValue.modelElement |
- UML:TaggedValue.stereotype)* >
-<!ATTLIST UML:TaggedValue
- tag CDATA #IMPLIED
- value CDATA #IMPLIED
- modelElement IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Stereotype.icon (UML:Geometry) >
-
-<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* >
-
-<!ELEMENT UML:Stereotype (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Stereotype.icon | UML:Stereotype.baseClass |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Stereotype.extendedElement |
- UML:Stereotype.stereotypeConstraint |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Stereotype.requiredTag)* >
-<!ATTLIST UML:Stereotype
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- baseClass CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- extendedElement IDREFS #IMPLIED
- stereotypeConstraint IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Enumeration -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Enumeration (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature |
- UML:Enumeration.literal)* >
-<!ATTLIST UML:Enumeration
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.EnumerationLiteral -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* >
-
-<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name |
- XMI.extension |
- UML:EnumerationLiteral.enumeration)* >
-<!ATTLIST UML:EnumerationLiteral
- name CDATA #IMPLIED
- enumeration IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Primitive -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Primitive (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Primitive
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Structure -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Structure (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Structure
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.MultiplicityRange -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower |
- UML:MultiplicityRange.upper |
- XMI.extension)* >
-<!ATTLIST UML:MultiplicityRange
- lower CDATA #IMPLIED
- upper CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Geometry -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* >
-<!ATTLIST UML:Geometry
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.GraphicMarker -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* >
-<!ATTLIST UML:GraphicMarker
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Mapping -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* >
-<!ATTLIST UML:Mapping
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.Expression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body |
- XMI.extension)* >
-<!ATTLIST UML:Expression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.ProcedureExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ProcedureExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:ProcedureExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.ObjectSetExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ObjectSetExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:ObjectSetExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.TimeExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TimeExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:TimeExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Foundation.Data_Types.BooleanExpression -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:BooleanExpression (UML:Expression.language |
- UML:Expression.body | XMI.extension)* >
-<!ATTLIST UML:BooleanExpression
- language CDATA #IMPLIED
- body CDATA #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Package -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Package.elementReference (UML:ElementReference)* >
-
-<!ELEMENT UML:Package (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Package
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Subsystem -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Subsystem.isInstantiable EMPTY >
-<!ATTLIST UML:Subsystem.isInstantiable
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Subsystem (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:Subsystem.isInstantiable | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Subsystem
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- isInstantiable (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.Model -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Model (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Package.elementReference |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement)* >
-<!ATTLIST UML:Model
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- ModelElement.elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- Package.elementReference IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Model_Management.ElementReference -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ElementReference.visibility EMPTY >
-<!ATTLIST UML:ElementReference.visibility
- xmi.value (public | protected | private) #REQUIRED
->
-
-<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* >
-
-<!ELEMENT UML:ElementReference.package (UML:Package)* >
-
-<!ELEMENT UML:ElementReference (UML:ElementReference.visibility |
- UML:ElementReference.alias |
- XMI.extension |
- UML:ElementReference.referencedElement |
- UML:ElementReference.package)* >
-<!ATTLIST UML:ElementReference
- visibility (public | protected | private) #IMPLIED
- alias CDATA #IMPLIED
- referencedElement IDREFS #IMPLIED
- package IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Request -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Request.action (UML:Action)* >
-
-<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* >
-
-<!ELEMENT UML:Request (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Request.action |
- UML:Request.messageInstance |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Request
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Signal.reception (UML:Reception)* >
-
-<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* >
-
-<!ELEMENT UML:Signal (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Request.action | UML:Request.messageInstance |
- UML:Signal.reception | UML:Signal.occurrence |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Signal.parameter)* >
-<!ATTLIST UML:Signal
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- reception IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* >
-
-<!ELEMENT UML:Exception (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Request.action |
- UML:Request.messageInstance |
- UML:Signal.reception | UML:Signal.occurrence |
- UML:Exception.context |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Signal.parameter)* >
-<!ATTLIST UML:Exception
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- action IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- reception IDREFS #IMPLIED
- occurrence IDREFS #IMPLIED
- context IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Reception.isPolymorphic EMPTY >
-<!ATTLIST UML:Reception.isPolymorphic
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Reception.signal (UML:Signal)* >
-
-<!ELEMENT UML:Reception (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Feature.ownerScope |
- UML:BehavioralFeature.isQuery |
- UML:Reception.isPolymorphic |
- UML:Reception.specification | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Feature.owner |
- UML:Feature.classifierRole |
- UML:BehavioralFeature.raisedException |
- UML:Reception.signal |
- UML:ModelElement.taggedValue |
- UML:BehavioralFeature.parameter)* >
-<!ATTLIST UML:Reception
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- ownerScope (classifier | instance) #IMPLIED
- isQuery (false | true) #IMPLIED
- isPolymorphic (false | true) #IMPLIED
- specification CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- owner IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- raisedException IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Argument.action (UML:Action)* >
-
-<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension |
- UML:Argument.action)* >
-<!ATTLIST UML:Argument
- action IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActionSequence.transition (UML:Transition)* >
-
-<!ELEMENT UML:ActionSequence.state (UML:State)* >
-
-<!ELEMENT UML:ActionSequence.state2 (UML:State)* >
-
-<!ELEMENT UML:ActionSequence (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:ActionSequence.transition |
- UML:ActionSequence.state |
- UML:ActionSequence.state2 |
- UML:ModelElement.taggedValue |
- UML:ActionSequence.action)* >
-<!ATTLIST UML:ActionSequence
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- state2 IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Action -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Action.recurrence (UML:Expression |
- UML:ProcedureExpression |
- UML:ObjectSetExpression |
- UML:TimeExpression |
- UML:BooleanExpression) >
-
-<!ELEMENT UML:Action.target (UML:ObjectSetExpression) >
-
-<!ELEMENT UML:Action.isAsynchronous EMPTY >
-<!ATTLIST UML:Action.isAsynchronous
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:Action.request (UML:Request)* >
-
-<!ELEMENT UML:Action.message (UML:Message)* >
-
-<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* >
-
-<!ELEMENT UML:Action (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Action.request |
- UML:Action.message | UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:Action
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* >
-
-<!ELEMENT UML:CreateAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:CreateAction.instantiation |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:CreateAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- instantiation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CallAction.mode EMPTY >
-<!ATTLIST UML:CallAction.mode
- xmi.value (synchronous | asynchronous) #REQUIRED
->
-
-<!ELEMENT UML:CallAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- UML:CallAction.mode | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:CallAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- mode (synchronous | asynchronous) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LocalInvocation (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:LocalInvocation
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ReturnAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:ReturnAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SendAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous | UML:Action.script |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:SendAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence |
- UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script |
- UML:UninterpretedAction.body |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request |
- UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:UninterpretedAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- body CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TerminateAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:TerminateAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DestroyAction (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:Action.recurrence | UML:Action.target |
- UML:Action.isAsynchronous |
- UML:Action.script | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Action.request | UML:Action.message |
- UML:Action.actionSequence |
- UML:ModelElement.taggedValue |
- UML:Action.actualArgument)* >
-<!ATTLIST UML:DestroyAction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isAsynchronous (false | true) #IMPLIED
- script CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- request IDREFS #IMPLIED
- message IDREFS #IMPLIED
- actionSequence IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Link -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Link.association (UML:Association)* >
-
-<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Link.association |
- UML:ModelElement.taggedValue | UML:Link.linkRole)* >
-<!ATTLIST UML:Link
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- association IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LinkEnd.link (UML:Link)* >
-
-<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* >
-
-<!ELEMENT UML:LinkEnd.instance (UML:Instance)* >
-
-<!ELEMENT UML:LinkEnd (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:LinkEnd.link |
- UML:LinkEnd.associationEnd | UML:LinkEnd.instance |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:LinkEnd
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* >
-
-<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* >
-
-<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* >
-
-<!ELEMENT UML:Instance.classifier (UML:Classifier)* >
-
-<!ELEMENT UML:Instance (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:Instance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AttributeLink.instance (UML:Instance)* >
-
-<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* >
-
-<!ELEMENT UML:AttributeLink.value (UML:Instance)* >
-
-<!ELEMENT UML:AttributeLink (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AttributeLink.instance |
- UML:AttributeLink.attribute |
- UML:AttributeLink.value |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:AttributeLink
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- attribute IDREFS #IMPLIED
- value IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.Object -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Object (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue | UML:Instance.slot)* >
-<!ATTLIST UML:Object
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:DataValue (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:DataValue
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:LinkObject (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier | UML:Link.association |
- UML:ModelElement.taggedValue |
- UML:Instance.slot | UML:Link.linkRole)* >
-<!ATTLIST UML:LinkObject
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- association IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:MessageInstance.specification (UML:Request)* >
-
-<!ELEMENT UML:MessageInstance.sender (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance.argument (UML:Instance)* >
-
-<!ELEMENT UML:MessageInstance (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:MessageInstance.specification |
- UML:MessageInstance.sender |
- UML:MessageInstance.receiver |
- UML:MessageInstance.argument |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:MessageInstance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- sender IDREFS #IMPLIED
- receiver IDREFS #IMPLIED
- argument IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* >
-
-<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* >
-
-<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* >
-
-<!ELEMENT UML:Collaboration (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Collaboration.representedClassifier |
- UML:Collaboration.representedOperation |
- UML:Collaboration.constrainingElement |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Collaboration.interaction)* >
-<!ATTLIST UML:Collaboration
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- representedClassifier IDREFS #IMPLIED
- representedOperation IDREFS #IMPLIED
- constrainingElement IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Interaction -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Interaction.context (UML:Collaboration)* >
-
-<!ELEMENT UML:Interaction (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Interaction.context |
- UML:ModelElement.taggedValue |
- UML:Interaction.message)* >
-<!ATTLIST UML:Interaction
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:AssociationRole.base (UML:Association)* >
-
-<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* >
-
-<!ELEMENT UML:AssociationRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:AssociationRole.multiplicity |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Association.link |
- UML:Association.associationEnd |
- UML:AssociationRole.base |
- UML:AssociationRole.namespace |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Association.connection)* >
-<!ATTLIST UML:AssociationRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- multiplicity CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- ModelElement.namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- link IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- base IDREFS #IMPLIED
- AssociationRole.namespace IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:AssociationEndRole.associationRole
- (UML:AssociationRole)* >
-
-<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* >
-
-<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:AssociationEnd.isNavigable |
- UML:AssociationEnd.isOrdered |
- UML:AssociationEnd.aggregation |
- UML:AssociationEnd.multiplicity |
- UML:AssociationEnd.changeable |
- UML:AssociationEnd.targetScope |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:AssociationEnd.type |
- UML:AssociationEnd.specification |
- UML:AssociationEnd.association |
- UML:AssociationEnd.linkEnd |
- UML:AssociationEnd.associationEndRole |
- UML:AssociationEndRole.associationRole |
- UML:AssociationEndRole.base |
- UML:ModelElement.taggedValue |
- UML:AssociationEnd.qualifier)* >
-<!ATTLIST UML:AssociationEndRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isNavigable (false | true) #IMPLIED
- isOrdered (false | true) #IMPLIED
- aggregation (none | shared | composite) #IMPLIED
- multiplicity CDATA #IMPLIED
- changeable (none | frozen | addOnly) #IMPLIED
- targetScope (classifier | instance) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- type IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- association IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- associationRole IDREFS #IMPLIED
- base IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.Message -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Message.interaction (UML:Interaction)* >
-
-<!ELEMENT UML:Message.predecessor (UML:Message)* >
-
-<!ELEMENT UML:Message.message2 (UML:Message)* >
-
-<!ELEMENT UML:Message.message (UML:Message)* >
-
-<!ELEMENT UML:Message.activator (UML:Message)* >
-
-<!ELEMENT UML:Message.action (UML:Action)* >
-
-<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Message.sender (UML:ClassifierRole)* >
-
-<!ELEMENT UML:Message (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Message.interaction | UML:Message.predecessor |
- UML:Message.message2 | UML:Message.message |
- UML:Message.activator | UML:Message.action |
- UML:Message.receiver | UML:Message.sender |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Message
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- interaction IDREFS #IMPLIED
- predecessor IDREFS #IMPLIED
- message2 IDREFS #IMPLIED
- message IDREFS #IMPLIED
- activator IDREFS #IMPLIED
- action IDREFS #IMPLIED
- receiver IDREFS #IMPLIED
- sender IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:ClassifierRole.associationEndRole
- (UML:AssociationEndRole)* >
-
-<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* >
-
-<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* >
-
-<!ELEMENT UML:ClassifierRole.message (UML:Message)* >
-
-<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* >
-
-<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* >
-
-<!ELEMENT UML:ClassifierRole (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:ClassifierRole.multiplicity |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ClassifierRole.associationEndRole |
- UML:ClassifierRole.namespace |
- UML:ClassifierRole.message2 |
- UML:ClassifierRole.message |
- UML:ClassifierRole.base |
- UML:ClassifierRole.availableFeature |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:ClassifierRole
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- multiplicity CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- ModelElement.namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- associationEndRole IDREFS #IMPLIED
- ClassifierRole.namespace IDREFS #IMPLIED
- message2 IDREFS #IMPLIED
- message IDREFS #IMPLIED
- base IDREFS #IMPLIED
- availableFeature IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.Actor -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Actor (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:Actor
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* >
-
-<!ELEMENT UML:UseCase (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- UML:UseCase.extensionPoint | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:UseCase
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- extensionPoint CDATA #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Instance.linkEnd |
- UML:Instance.messageInstance3 |
- UML:Instance.messageInstance2 |
- UML:Instance.messageInstance |
- UML:Instance.attributeLink |
- UML:Instance.classifier |
- UML:ModelElement.taggedValue |
- UML:Instance.slot)* >
-<!ATTLIST UML:UseCaseInstance
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- linkEnd IDREFS #IMPLIED
- messageInstance3 IDREFS #IMPLIED
- messageInstance2 IDREFS #IMPLIED
- messageInstance IDREFS #IMPLIED
- attributeLink IDREFS #IMPLIED
- classifier IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StateMachine.context (UML:ModelElement)* >
-
-<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* >
-
-<!ELEMENT UML:StateMachine (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateMachine.context |
- UML:StateMachine.submachineState |
- UML:ModelElement.taggedValue |
- UML:StateMachine.top |
- UML:StateMachine.transitions)* >
-<!ATTLIST UML:StateMachine
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- submachineState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Guard -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Guard.expression (UML:BooleanExpression) >
-
-<!ELEMENT UML:Guard.transition (UML:Transition)* >
-
-<!ELEMENT UML:Guard (UML:ModelElement.name |
- UML:ModelElement.visibility | UML:Guard.expression |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Guard.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Guard
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* >
-
-<!ELEMENT UML:StateVertex.incoming (UML:Transition)* >
-
-<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* >
-
-<!ELEMENT UML:StateVertex (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:StateVertex
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Transition -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Transition.source (UML:StateVertex)* >
-
-<!ELEMENT UML:Transition.target (UML:StateVertex)* >
-
-<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* >
-
-<!ELEMENT UML:Transition.state (UML:State)* >
-
-<!ELEMENT UML:Transition.trigger (UML:Event)* >
-
-<!ELEMENT UML:Transition (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Transition.source | UML:Transition.target |
- UML:Transition.statemachine |
- UML:Transition.state | UML:Transition.trigger |
- UML:ModelElement.taggedValue |
- UML:Transition.guard | UML:Transition.effect)* >
-<!ATTLIST UML:Transition
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- source IDREFS #IMPLIED
- target IDREFS #IMPLIED
- statemachine IDREFS #IMPLIED
- state IDREFS #IMPLIED
- trigger IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:PseudoState.kind EMPTY >
-<!ATTLIST UML:PseudoState.kind
- xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED
->
-
-<!ELEMENT UML:PseudoState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:PseudoState.kind | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:PseudoState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.State -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:State.stateMachine (UML:StateMachine)* >
-
-<!ELEMENT UML:State.deferredEvent (UML:Event)* >
-
-<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:State (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing | UML:StateVertex.incoming |
- UML:StateVertex.parent | UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition | UML:State.entry |
- UML:State.exit)* >
-<!ATTLIST UML:State
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CompositeState.isConcurrent EMPTY >
-<!ATTLIST UML:CompositeState.isConcurrent
- xmi.value (false | true) #REQUIRED
->
-
-<!ELEMENT UML:CompositeState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:CompositeState.isConcurrent |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit |
- UML:CompositeState.substate)* >
-<!ATTLIST UML:CompositeState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isConcurrent (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SimpleState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:SimpleState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* >
-
-<!ELEMENT UML:SubmachineState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:SubmachineState.stateMachine |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:SubmachineState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- State.stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- SubmachineState.stateMachine IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Event -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Event.state (UML:State)* >
-
-<!ELEMENT UML:Event.transition (UML:Transition)* >
-
-<!ELEMENT UML:Event (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Event
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:SignalEvent.signal (UML:Signal)* >
-
-<!ELEMENT UML:SignalEvent (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition | UML:SignalEvent.signal |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:SignalEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- signal IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:CallEvent.operation (UML:Operation)* >
-
-<!ELEMENT UML:CallEvent (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition | UML:CallEvent.operation |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:CallEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- operation IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) >
-
-<!ELEMENT UML:TimeEvent (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:TimeEvent.duration | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:TimeEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) >
-
-<!ELEMENT UML:ChangeEvent (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:ChangeEvent.changeExpression |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition | UML:Event.state |
- UML:Event.transition |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:ChangeEvent
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- state IDREFS #IMPLIED
- transition IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActivityModel (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateMachine.context |
- UML:StateMachine.submachineState |
- UML:ModelElement.taggedValue |
- UML:StateMachine.top |
- UML:StateMachine.transitions |
- UML:ActivityModel.partition)* >
-<!ATTLIST UML:ActivityModel
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- context IDREFS #IMPLIED
- submachineState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.Partition -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:Partition.contents (UML:ModelElement)* >
-
-<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* >
-
-<!ELEMENT UML:Partition (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:Partition.contents |
- UML:Partition.activityModel |
- UML:ModelElement.taggedValue)* >
-<!ATTLIST UML:Partition
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- contents IDREFS #IMPLIED
- activityModel IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActionState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActionState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ActionState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* >
-
-<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- XMI.extension | UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:ObjectFlowState.typeState |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ObjectFlowState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- typeState IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* >
-
-<!ELEMENT UML:ClassifierInState.inState (UML:State)* >
-
-<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* >
-
-<!ELEMENT UML:ClassifierInState (UML:ModelElement.name |
- UML:ModelElement.visibility |
- UML:GeneralizableElement.isRoot |
- UML:GeneralizableElement.isLeaf |
- UML:GeneralizableElement.isAbstract |
- XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:GeneralizableElement.generalization |
- UML:GeneralizableElement.specialization |
- UML:Classifier.parameter |
- UML:Classifier.structuralFeature |
- UML:Classifier.specification |
- UML:Classifier.realization |
- UML:Classifier.associationEnd |
- UML:Classifier.participant |
- UML:Classifier.createAction |
- UML:Classifier.instance |
- UML:Classifier.collaboration |
- UML:Classifier.classifierRole |
- UML:Classifier.classifierInState |
- UML:ClassifierInState.objectFlowState |
- UML:ClassifierInState.inState |
- UML:ClassifierInState.type |
- UML:ModelElement.taggedValue |
- UML:Namespace.ownedElement |
- UML:Classifier.feature)* >
-<!ATTLIST UML:ClassifierInState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- isRoot (false | true) #IMPLIED
- isLeaf (false | true) #IMPLIED
- isAbstract (false | true) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- ModelElement.collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- generalization IDREFS #IMPLIED
- specialization IDREFS #IMPLIED
- parameter IDREFS #IMPLIED
- structuralFeature IDREFS #IMPLIED
- specification IDREFS #IMPLIED
- realization IDREFS #IMPLIED
- associationEnd IDREFS #IMPLIED
- participant IDREFS #IMPLIED
- createAction IDREFS #IMPLIED
- instance IDREFS #IMPLIED
- Classifier.collaboration IDREFS #IMPLIED
- classifierRole IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- objectFlowState IDREFS #IMPLIED
- inState IDREFS #IMPLIED
- type IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!-- _______________________________________________________________ -->
-<!-- -->
-<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState -->
-<!-- _______________________________________________________________ -->
-
-<!ELEMENT UML:ActivityState (UML:ModelElement.name |
- UML:ModelElement.visibility | XMI.extension |
- UML:ModelElement.binding |
- UML:ModelElement.template |
- UML:ModelElement.templateParameter |
- UML:ModelElement.implementation |
- UML:ModelElement.view |
- UML:ModelElement.presentation |
- UML:ModelElement.namespace |
- UML:ModelElement.constraint |
- UML:ModelElement.requirement |
- UML:ModelElement.provision |
- UML:ModelElement.stereotype |
- UML:ModelElement.elementReference |
- UML:ModelElement.collaboration |
- UML:ModelElement.behavior |
- UML:ModelElement.partition |
- UML:StateVertex.outgoing |
- UML:StateVertex.incoming |
- UML:StateVertex.parent |
- UML:State.stateMachine |
- UML:State.deferredEvent |
- UML:State.classifierInState |
- UML:SubmachineState.stateMachine |
- UML:ModelElement.taggedValue |
- UML:State.internalTransition |
- UML:State.entry | UML:State.exit)* >
-<!ATTLIST UML:ActivityState
- name CDATA #IMPLIED
- visibility (public | protected | private) #IMPLIED
- binding IDREFS #IMPLIED
- template IDREFS #IMPLIED
- templateParameter IDREFS #IMPLIED
- implementation IDREFS #IMPLIED
- view IDREFS #IMPLIED
- presentation IDREFS #IMPLIED
- namespace IDREFS #IMPLIED
- constraint IDREFS #IMPLIED
- requirement IDREFS #IMPLIED
- provision IDREFS #IMPLIED
- stereotype IDREFS #IMPLIED
- elementReference IDREFS #IMPLIED
- collaboration IDREFS #IMPLIED
- behavior IDREFS #IMPLIED
- partition IDREFS #IMPLIED
- outgoing IDREFS #IMPLIED
- incoming IDREFS #IMPLIED
- parent IDREFS #IMPLIED
- State.stateMachine IDREFS #IMPLIED
- deferredEvent IDREFS #IMPLIED
- classifierInState IDREFS #IMPLIED
- SubmachineState.stateMachine IDREFS #IMPLIED
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core |
- UML:Extension_Mechanisms | UML:Data_Types)* >
-<!ATTLIST UML:Foundation
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage |
- UML:Trace | UML:Binding | UML:Node |
- UML:Component | UML:Comment |
- UML:ViewElement | UML:Presentation)* >
-<!ATTLIST UML:Auxiliary_Elements
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace |
- UML:GeneralizableElement | UML:Classifier |
- UML:Interface | UML:Class | UML:DataType |
- UML:Feature | UML:StructuralFeature |
- UML:BehavioralFeature | UML:Operation | UML:Method |
- UML:Parameter | UML:Constraint | UML:Dependency |
- UML:Generalization | UML:AssociationEnd |
- UML:Association | UML:AssociationClass |
- UML:Attribute)* >
-<!ATTLIST UML:Core
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* >
-<!ATTLIST UML:Extension_Mechanisms
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral |
- UML:Primitive | UML:Structure |
- UML:MultiplicityRange | UML:Geometry |
- UML:GraphicMarker | UML:Mapping |
- UML:Expression | UML:ProcedureExpression |
- UML:ObjectSetExpression | UML:TimeExpression |
- UML:BooleanExpression)* >
-<!ATTLIST UML:Data_Types
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model |
- UML:ElementReference)* >
-<!ATTLIST UML:Model_Management
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior |
- UML:Collaborations | UML:Use_Cases |
- UML:State_Machines)* >
-<!ATTLIST UML:Behavioral_Elements
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception |
- UML:Reception | UML:Argument |
- UML:ActionSequence | UML:Action |
- UML:CreateAction | UML:CallAction |
- UML:LocalInvocation | UML:ReturnAction |
- UML:SendAction | UML:UninterpretedAction |
- UML:TerminateAction | UML:DestroyAction |
- UML:Link | UML:LinkEnd | UML:Instance |
- UML:AttributeLink | UML:Object |
- UML:DataValue | UML:LinkObject |
- UML:MessageInstance)* >
-<!ATTLIST UML:Common_Behavior
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction |
- UML:AssociationRole |
- UML:AssociationEndRole | UML:Message |
- UML:ClassifierRole)* >
-<!ATTLIST UML:Collaborations
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase |
- UML:UseCaseInstance)* >
-<!ATTLIST UML:Use_Cases
- %XMI.element.att;
- %XMI.link.att;
->
-
-<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard |
- UML:StateVertex | UML:Transition |
- UML:PseudoState | UML:State |
- UML:CompositeState | UML:SimpleState |
- UML:SubmachineState | UML:Event |
- UML:SignalEvent | UML:CallEvent |
- UML:TimeEvent | UML:ChangeEvent |
- UML:ActivityModel | UML:Partition |
- UML:ActionState | UML:ObjectFlowState |
- UML:ClassifierInState |
- UML:ActivityState)* >
-<!ATTLIST UML:State_Machines
- %XMI.element.att;
- %XMI.link.att;
->
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl b/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
index 358e28b8f42..0285c156fbb 100755
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
@@ -13,7 +13,7 @@ $status = 0;
my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
my $idl = "test.idl";
-my $dtd = "XMI.dtd";
+my $dtd = "../XMI.dtd";
my $xmi = "generated.xmi";
my $target_idl = $target->LocalFile ($idl);
my $target_dtd = $target->LocalFile ($dtd);
@@ -42,7 +42,7 @@ open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
close (DAT);
$num = grep (/<UML:Attribute/, @data);
-if ($num == 1) {
+if ($num == 8) {
print "TEST OK. Correct tags in there.\n";
} else {
print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
diff --git a/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl b/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
index 946d57a7cb0..1fced580bc2 100644
--- a/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
+++ b/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
@@ -1,5 +1,25 @@
// $Id$
+#ifndef TEST_IDL
+#define TEST_IDL
+
module TestXMISequence {
typedef sequence<char> SeqChar;
+ typedef sequence<char, 10> SeqChar10;
+
+ struct A {
+ sequence<char> field;
+ };
+ struct A10 {
+ sequence<char, 10> field;
+ };
+
+ struct B {
+ SeqChar field;
+ };
+ struct B10 {
+ SeqChar10 field;
+ };
};
+
+#endif // TEST_IDL
diff --git a/CIAO/tools/Config_Handlers/ADD_Handler.cpp b/CIAO/tools/Config_Handlers/ADD_Handler.cpp
index 1b898b603d2..6837481d500 100644
--- a/CIAO/tools/Config_Handlers/ADD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/ADD_Handler.cpp
@@ -29,7 +29,7 @@ namespace CIAO
aci_e != aci_b;
++aci_b)
{
- ADD_Handler::artifact_deployment_descr ((*aci_b),
+ ADD_Handler::artifact_deployment_descr (*(*aci_b),
dest[pos],
pos);
pos++;
@@ -58,7 +58,7 @@ namespace CIAO
start != end;
++start)
{
- dest.location[len++] = start->c_str ();
+ dest.location[len++] = (*start)->c_str ();
}
ArtifactDeploymentDescription::source_const_iterator sce =
@@ -70,7 +70,7 @@ namespace CIAO
scb != sce;
++scb)
{
- dest.source[len++] = scb->c_str ();
+ dest.source[len++] = (*scb)->c_str ();
}
// @@TODO: See this loop is repeated
@@ -83,13 +83,13 @@ namespace CIAO
adcb != adce;
++adcb)
{
- Property_Handler::handle_property ((*adcb),
- dest.execParameter[len++]);
+ Property_Handler::handle_property (*(*adcb),
+ dest.execParameter[len++]);
}
- if (src.xmi_id_p ())
+ if (src.id_p ())
{
- ACE_CString cstr (src.xmi_id ().c_str ());
+ ACE_CString cstr (src.id ().c_str ());
ADD_Handler::IDREF.bind_ref (cstr,pos);
}
@@ -140,7 +140,7 @@ namespace CIAO
for (size_t i = 0; i < total; ++i)
{
XMLSchema::string< char > curr ((src.location[i]));
- add.add_location (curr);
+ //add.add_location (curr);
}
//As above, for the source(s)
@@ -148,14 +148,14 @@ namespace CIAO
for (size_t j = 0; j < total; ++j)
{
XMLSchema::string< char > curr ((src.source[j]));
- add.add_source (curr);
+ //add.add_source (curr);
}
//As above for the execParameter(s)
total = src.execParameter.length ();
for (size_t k = 0; k < total; ++k)
{
- add.add_execParameter (Property_Handler::get_property (src.execParameter[k]));
+ //add.add_execParameter (Property_Handler::get_property (src.execParameter[k]));
}
// Generate a UUID to use for the IDREF.
@@ -169,7 +169,7 @@ namespace CIAO
// Bind the ref and set it in the IDD
ADD_Handler::IDREF.bind_next_available (add_id);
- add.xmi_id (xml_id);
+ add.id (xml_id);
return add;
}
diff --git a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
index a000d175f0f..f45ed759337 100644
--- a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
+++ b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.cpp
@@ -32,8 +32,9 @@ namespace CIAO
}
IdRef::
- IdRef (::CIAO::Config_Handlers::IdRef const& s)
- : XSCRT::Type (),
+ IdRef (IdRef const& s)
+ :
+ XSCRT::Type (),
href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
idref_ (s.idref_.get () ? new ::XMLSchema::IDREF< ACE_TCHAR > (*s.idref_) : 0),
regulator__ ()
@@ -42,8 +43,8 @@ namespace CIAO
if (idref_.get ()) idref_->container (this);
}
- ::CIAO::Config_Handlers::IdRef& IdRef::
- operator= (::CIAO::Config_Handlers::IdRef const& s)
+ IdRef& IdRef::
+ operator= (IdRef const& s)
{
if (s.href_.get ()) href (*(s.href_));
else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
@@ -167,7 +168,7 @@ namespace CIAO
}
DataType::
- DataType (::CIAO::Config_Handlers::DataType const& s)
+ DataType (DataType const& s)
:
::XSCRT::Type (),
kind_ (new ::CIAO::Config_Handlers::TCKind (*s.kind_)),
@@ -176,7 +177,7 @@ namespace CIAO
value_ (s.value_.get () ? new ::CIAO::Config_Handlers::ValueType (*s.value_) : 0),
sequence_ (s.sequence_.get () ? new ::CIAO::Config_Handlers::SequenceType (*s.sequence_) : 0),
alias_ (s.alias_.get () ? new ::CIAO::Config_Handlers::AliasType (*s.alias_) : 0),
- xmi_id_ (s.xmi_id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.xmi_id_) : 0),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
regulator__ ()
{
kind_->container (this);
@@ -185,31 +186,41 @@ namespace CIAO
if (value_.get ()) value_->container (this);
if (sequence_.get ()) sequence_->container (this);
if (alias_.get ()) alias_->container (this);
- if (xmi_id_.get ()) xmi_id_->container (this);
+ if (id_.get ()) id_->container (this);
}
- ::CIAO::Config_Handlers::DataType& DataType::
- operator= (::CIAO::Config_Handlers::DataType const& s)
+ DataType& DataType::
+ operator= (DataType const& s)
{
- kind (s.kind ());
+ kind (*s.kind_);
- if (s.enum__.get ()) enum_ (*(s.enum__));
- else enum__ = ::std::auto_ptr< ::CIAO::Config_Handlers::EnumType > (0);
+ if (s.enum__.get ())
+ enum_ (*(s.enum__));
+ else
+ enum__.reset (0);
- if (s.struct__.get ()) struct_ (*(s.struct__));
- else struct__ = ::std::auto_ptr< ::CIAO::Config_Handlers::StructType > (0);
+ if (s.struct__.get ())
+ struct_ (*(s.struct__));
+ else
+ struct__.reset (0);
- if (s.value_.get ()) value (*(s.value_));
- else value_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ValueType > (0);
+ if (s.value_.get ())
+ value (*(s.value_));
+ else
+ value_.reset (0);
- if (s.sequence_.get ()) sequence (*(s.sequence_));
- else sequence_ = ::std::auto_ptr< ::CIAO::Config_Handlers::SequenceType > (0);
+ if (s.sequence_.get ())
+ sequence (*(s.sequence_));
+ else
+ sequence_.reset (0);
- if (s.alias_.get ()) alias (*(s.alias_));
- else alias_ = ::std::auto_ptr< ::CIAO::Config_Handlers::AliasType > (0);
+ if (s.alias_.get ())
+ alias (*(s.alias_));
+ else
+ alias_.reset (0);
- if (s.xmi_id_.get ()) xmi_id (*(s.xmi_id_));
- else xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
return *this;
}
@@ -377,35 +388,35 @@ namespace CIAO
// DataType
//
bool DataType::
- xmi_id_p () const
+ id_p () const
{
- return xmi_id_.get () != 0;
+ return id_.get () != 0;
}
::XMLSchema::ID< ACE_TCHAR > const& DataType::
- xmi_id () const
+ id () const
{
- return *xmi_id_;
+ return *id_;
}
::XMLSchema::ID< ACE_TCHAR >& DataType::
- xmi_id ()
+ id ()
{
- return *xmi_id_;
+ return *id_;
}
void DataType::
- xmi_id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
{
- if (xmi_id_.get ())
+ if (id_.get ())
{
- *xmi_id_ = e;
+ *id_ = e;
}
else
{
- xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
- xmi_id_->container (this);
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
}
}
@@ -416,155 +427,65 @@ namespace CIAO
DataValue::
DataValue ()
:
- ::XSCRT::Type (),
regulator__ ()
{
}
DataValue::
- DataValue (::CIAO::Config_Handlers::DataValue const& s)
+ DataValue (DataValue const& s)
:
::XSCRT::Type (),
+ short__ (s.short__),
+ long__ (s.long__),
+ ushort_ (s.ushort_),
+ ulong_ (s.ulong_),
+ float__ (s.float__),
+ double__ (s.double__),
+ boolean_ (s.boolean_),
+ octet_ (s.octet_),
+ enum__ (s.enum__),
+ string_ (s.string_),
+ longlong_ (s.longlong_),
+ ulonglong_ (s.ulonglong_),
+ longdouble_ (s.longdouble_),
+ element_ (s.element_),
+ member_ (s.member_),
regulator__ ()
{
- {
- for (short_const_iterator i (s.short_.begin ());i != s.short_.end ();++i) add_short (*i);
- }
-
- {
- for (long_const_iterator i (s.long_.begin ());i != s.long_.end ();++i) add_long (*i);
- }
-
- {
- for (ushort_const_iterator i (s.ushort_.begin ());i != s.ushort_.end ();++i) add_ushort (*i);
- }
-
- {
- for (ulong_const_iterator i (s.ulong_.begin ());i != s.ulong_.end ();++i) add_ulong (*i);
- }
-
- {
- for (float_const_iterator i (s.float_.begin ());i != s.float_.end ();++i) add_float (*i);
- }
-
- {
- for (double_const_iterator i (s.double_.begin ());i != s.double_.end ();++i) add_double (*i);
- }
-
- {
- for (boolean_const_iterator i (s.boolean_.begin ());i != s.boolean_.end ();++i) add_boolean (*i);
- }
-
- {
- for (octet_const_iterator i (s.octet_.begin ());i != s.octet_.end ();++i) add_octet (*i);
- }
-
- {
- for (enum_const_iterator i (s.enum_.begin ());i != s.enum_.end ();++i) add_enum (*i);
- }
-
- {
- for (string_const_iterator i (s.string_.begin ());i != s.string_.end ();++i) add_string (*i);
- }
-
- {
- for (longlong_const_iterator i (s.longlong_.begin ());i != s.longlong_.end ();++i) add_longlong (*i);
- }
-
- {
- for (ulonglong_const_iterator i (s.ulonglong_.begin ());i != s.ulonglong_.end ();++i) add_ulonglong (*i);
- }
-
- {
- for (longdouble_const_iterator i (s.longdouble_.begin ());i != s.longdouble_.end ();++i) add_longdouble (*i);
- }
-
- {
- for (element_const_iterator i (s.element_.begin ());i != s.element_.end ();++i) add_element (*i);
- }
-
- {
- for (member_const_iterator i (s.member_.begin ());i != s.member_.end ();++i) add_member (*i);
- }
}
- ::CIAO::Config_Handlers::DataValue& DataValue::
- operator= (::CIAO::Config_Handlers::DataValue const& s)
+ DataValue& DataValue::
+ operator= (DataValue const& s)
{
- short_.clear ();
- {
- for (short_const_iterator i (s.short_.begin ());i != s.short_.end ();++i) add_short (*i);
- }
+ short__ = s.short__;
- long_.clear ();
- {
- for (long_const_iterator i (s.long_.begin ());i != s.long_.end ();++i) add_long (*i);
- }
+ long__ = s.long__;
- ushort_.clear ();
- {
- for (ushort_const_iterator i (s.ushort_.begin ());i != s.ushort_.end ();++i) add_ushort (*i);
- }
+ ushort_ = s.ushort_;
- ulong_.clear ();
- {
- for (ulong_const_iterator i (s.ulong_.begin ());i != s.ulong_.end ();++i) add_ulong (*i);
- }
+ ulong_ = s.ulong_;
- float_.clear ();
- {
- for (float_const_iterator i (s.float_.begin ());i != s.float_.end ();++i) add_float (*i);
- }
+ float__ = s.float__;
- double_.clear ();
- {
- for (double_const_iterator i (s.double_.begin ());i != s.double_.end ();++i) add_double (*i);
- }
+ double__ = s.double__;
- boolean_.clear ();
- {
- for (boolean_const_iterator i (s.boolean_.begin ());i != s.boolean_.end ();++i) add_boolean (*i);
- }
+ boolean_ = s.boolean_;
- octet_.clear ();
- {
- for (octet_const_iterator i (s.octet_.begin ());i != s.octet_.end ();++i) add_octet (*i);
- }
+ octet_ = s.octet_;
- enum_.clear ();
- {
- for (enum_const_iterator i (s.enum_.begin ());i != s.enum_.end ();++i) add_enum (*i);
- }
+ enum__ = s.enum__;
- string_.clear ();
- {
- for (string_const_iterator i (s.string_.begin ());i != s.string_.end ();++i) add_string (*i);
- }
+ string_ = s.string_;
- longlong_.clear ();
- {
- for (longlong_const_iterator i (s.longlong_.begin ());i != s.longlong_.end ();++i) add_longlong (*i);
- }
+ longlong_ = s.longlong_;
- ulonglong_.clear ();
- {
- for (ulonglong_const_iterator i (s.ulonglong_.begin ());i != s.ulonglong_.end ();++i) add_ulonglong (*i);
- }
+ ulonglong_ = s.ulonglong_;
- longdouble_.clear ();
- {
- for (longdouble_const_iterator i (s.longdouble_.begin ());i != s.longdouble_.end ();++i) add_longdouble (*i);
- }
+ longdouble_ = s.longdouble_;
- element_.clear ();
- {
- for (element_const_iterator i (s.element_.begin ());i != s.element_.end ();++i) add_element (*i);
- }
+ element_ = s.element_;
- member_.clear ();
- {
- for (member_const_iterator i (s.member_.begin ());i != s.member_.end ();++i) add_member (*i);
- }
+ member_ = s.member_;
return *this;
}
@@ -575,37 +496,37 @@ namespace CIAO
DataValue::short_iterator DataValue::
begin_short ()
{
- return short_.begin ();
+ return short__.begin ();
}
DataValue::short_iterator DataValue::
end_short ()
{
- return short_.end ();
+ return short__.end ();
}
DataValue::short_const_iterator DataValue::
begin_short () const
{
- return short_.begin ();
+ return short__.begin ();
}
DataValue::short_const_iterator DataValue::
end_short () const
{
- return short_.end ();
+ return short__.end ();
}
void DataValue::
- add_short (::XMLSchema::short_ const& e)
+ add_short (ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > const& e)
{
- short_.push_back (e);
+ short__.push_back (e);
}
size_t DataValue::
count_short(void) const
{
- return short_.size ();
+ return short__.size ();
}
// DataValue
@@ -613,37 +534,37 @@ namespace CIAO
DataValue::long_iterator DataValue::
begin_long ()
{
- return long_.begin ();
+ return long__.begin ();
}
DataValue::long_iterator DataValue::
end_long ()
{
- return long_.end ();
+ return long__.end ();
}
DataValue::long_const_iterator DataValue::
begin_long () const
{
- return long_.begin ();
+ return long__.begin ();
}
DataValue::long_const_iterator DataValue::
end_long () const
{
- return long_.end ();
+ return long__.end ();
}
void DataValue::
- add_long (::XMLSchema::int_ const& e)
+ add_long (ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > const& e)
{
- long_.push_back (e);
+ long__.push_back (e);
}
size_t DataValue::
count_long(void) const
{
- return long_.size ();
+ return long__.size ();
}
// DataValue
@@ -673,7 +594,7 @@ namespace CIAO
}
void DataValue::
- add_ushort (::XMLSchema::unsignedShort const& e)
+ add_ushort (ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > const& e)
{
ushort_.push_back (e);
}
@@ -711,7 +632,7 @@ namespace CIAO
}
void DataValue::
- add_ulong (::XMLSchema::unsignedInt const& e)
+ add_ulong (ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > const& e)
{
ulong_.push_back (e);
}
@@ -727,37 +648,37 @@ namespace CIAO
DataValue::float_iterator DataValue::
begin_float ()
{
- return float_.begin ();
+ return float__.begin ();
}
DataValue::float_iterator DataValue::
end_float ()
{
- return float_.end ();
+ return float__.end ();
}
DataValue::float_const_iterator DataValue::
begin_float () const
{
- return float_.begin ();
+ return float__.begin ();
}
DataValue::float_const_iterator DataValue::
end_float () const
{
- return float_.end ();
+ return float__.end ();
}
void DataValue::
- add_float (::XMLSchema::float_ const& e)
+ add_float (ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > const& e)
{
- float_.push_back (e);
+ float__.push_back (e);
}
size_t DataValue::
count_float(void) const
{
- return float_.size ();
+ return float__.size ();
}
// DataValue
@@ -765,37 +686,37 @@ namespace CIAO
DataValue::double_iterator DataValue::
begin_double ()
{
- return double_.begin ();
+ return double__.begin ();
}
DataValue::double_iterator DataValue::
end_double ()
{
- return double_.end ();
+ return double__.end ();
}
DataValue::double_const_iterator DataValue::
begin_double () const
{
- return double_.begin ();
+ return double__.begin ();
}
DataValue::double_const_iterator DataValue::
end_double () const
{
- return double_.end ();
+ return double__.end ();
}
void DataValue::
- add_double (::XMLSchema::double_ const& e)
+ add_double (ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > const& e)
{
- double_.push_back (e);
+ double__.push_back (e);
}
size_t DataValue::
count_double(void) const
{
- return double_.size ();
+ return double__.size ();
}
// DataValue
@@ -825,7 +746,7 @@ namespace CIAO
}
void DataValue::
- add_boolean (::XMLSchema::boolean const& e)
+ add_boolean (ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > const& e)
{
boolean_.push_back (e);
}
@@ -863,7 +784,7 @@ namespace CIAO
}
void DataValue::
- add_octet (::XMLSchema::unsignedByte const& e)
+ add_octet (ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > const& e)
{
octet_.push_back (e);
}
@@ -879,37 +800,37 @@ namespace CIAO
DataValue::enum_iterator DataValue::
begin_enum ()
{
- return enum_.begin ();
+ return enum__.begin ();
}
DataValue::enum_iterator DataValue::
end_enum ()
{
- return enum_.end ();
+ return enum__.end ();
}
DataValue::enum_const_iterator DataValue::
begin_enum () const
{
- return enum_.begin ();
+ return enum__.begin ();
}
DataValue::enum_const_iterator DataValue::
end_enum () const
{
- return enum_.end ();
+ return enum__.end ();
}
void DataValue::
- add_enum (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_enum (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
- enum_.push_back (e);
+ enum__.push_back (e);
}
size_t DataValue::
count_enum(void) const
{
- return enum_.size ();
+ return enum__.size ();
}
// DataValue
@@ -939,7 +860,7 @@ namespace CIAO
}
void DataValue::
- add_string (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_string (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
string_.push_back (e);
}
@@ -977,7 +898,7 @@ namespace CIAO
}
void DataValue::
- add_longlong (::XMLSchema::long_ const& e)
+ add_longlong (ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > const& e)
{
longlong_.push_back (e);
}
@@ -1015,7 +936,7 @@ namespace CIAO
}
void DataValue::
- add_ulonglong (::XMLSchema::unsignedLong const& e)
+ add_ulonglong (ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > const& e)
{
ulonglong_.push_back (e);
}
@@ -1053,7 +974,7 @@ namespace CIAO
}
void DataValue::
- add_longdouble (::XMLSchema::double_ const& e)
+ add_longdouble (ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > const& e)
{
longdouble_.push_back (e);
}
@@ -1091,7 +1012,7 @@ namespace CIAO
}
void DataValue::
- add_element (::CIAO::Config_Handlers::DataValue const& e)
+ add_element (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > const& e)
{
element_.push_back (e);
}
@@ -1129,7 +1050,7 @@ namespace CIAO
}
void DataValue::
- add_member (::CIAO::Config_Handlers::NamedValue const& e)
+ add_member (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > const& e)
{
member_.push_back (e);
}
@@ -1149,7 +1070,6 @@ namespace CIAO
::XMLSchema::string< ACE_TCHAR > const& typeId__,
::CIAO::Config_Handlers::DataType const& elementType__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
typeId_ (new ::XMLSchema::string< ACE_TCHAR > (typeId__)),
elementType_ (new ::CIAO::Config_Handlers::DataType (elementType__)),
@@ -1161,7 +1081,7 @@ namespace CIAO
}
AliasType::
- AliasType (::CIAO::Config_Handlers::AliasType const& s)
+ AliasType (AliasType const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -1174,14 +1094,14 @@ namespace CIAO
elementType_->container (this);
}
- ::CIAO::Config_Handlers::AliasType& AliasType::
- operator= (::CIAO::Config_Handlers::AliasType const& s)
+ AliasType& AliasType::
+ operator= (AliasType const& s)
{
- name (s.name ());
+ name (*s.name_);
- typeId (s.typeId ());
+ typeId (*s.typeId_);
- elementType (s.elementType ());
+ elementType (*s.elementType_);
return *this;
}
@@ -1235,11 +1155,12 @@ namespace CIAO
EnumType::
EnumType (::XMLSchema::string< ACE_TCHAR > const& name__,
- ::XMLSchema::string< ACE_TCHAR > const& typeId__)
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > const& member__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
typeId_ (new ::XMLSchema::string< ACE_TCHAR > (typeId__)),
+ member_ (member__),
regulator__ ()
{
name_->container (this);
@@ -1247,31 +1168,26 @@ namespace CIAO
}
EnumType::
- EnumType (::CIAO::Config_Handlers::EnumType const& s)
+ EnumType (EnumType const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
typeId_ (new ::XMLSchema::string< ACE_TCHAR > (*s.typeId_)),
+ member_ (s.member_),
regulator__ ()
{
name_->container (this);
typeId_->container (this);
- {
- for (member_const_iterator i (s.member_.begin ());i != s.member_.end ();++i) add_member (*i);
- }
}
- ::CIAO::Config_Handlers::EnumType& EnumType::
- operator= (::CIAO::Config_Handlers::EnumType const& s)
+ EnumType& EnumType::
+ operator= (EnumType const& s)
{
- name (s.name ());
+ name (*s.name_);
- typeId (s.typeId ());
+ typeId (*s.typeId_);
- member_.clear ();
- {
- for (member_const_iterator i (s.member_.begin ());i != s.member_.end ();++i) add_member (*i);
- }
+ member_ = s.member_;
return *this;
}
@@ -1332,7 +1248,7 @@ namespace CIAO
}
void EnumType::
- add_member (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_member (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
member_.push_back (e);
}
@@ -1351,7 +1267,6 @@ namespace CIAO
StructType (::XMLSchema::string< ACE_TCHAR > const& name__,
::XMLSchema::string< ACE_TCHAR > const& typeId__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
typeId_ (new ::XMLSchema::string< ACE_TCHAR > (typeId__)),
regulator__ ()
@@ -1361,31 +1276,26 @@ namespace CIAO
}
StructType::
- StructType (::CIAO::Config_Handlers::StructType const& s)
+ StructType (StructType const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
typeId_ (new ::XMLSchema::string< ACE_TCHAR > (*s.typeId_)),
+ member_ (s.member_),
regulator__ ()
{
name_->container (this);
typeId_->container (this);
- {
- for (member_const_iterator i (s.member_.begin ());i != s.member_.end ();++i) add_member (*i);
- }
}
- ::CIAO::Config_Handlers::StructType& StructType::
- operator= (::CIAO::Config_Handlers::StructType const& s)
+ StructType& StructType::
+ operator= (StructType const& s)
{
- name (s.name ());
+ name (*s.name_);
- typeId (s.typeId ());
+ typeId (*s.typeId_);
- member_.clear ();
- {
- for (member_const_iterator i (s.member_.begin ());i != s.member_.end ();++i) add_member (*i);
- }
+ member_ = s.member_;
return *this;
}
@@ -1446,7 +1356,7 @@ namespace CIAO
}
void StructType::
- add_member (::CIAO::Config_Handlers::StructMemberType const& e)
+ add_member (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > const& e)
{
member_.push_back (e);
}
@@ -1465,7 +1375,6 @@ namespace CIAO
StructMemberType (::XMLSchema::string< ACE_TCHAR > const& name__,
::CIAO::Config_Handlers::DataType const& type__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
type_ (new ::CIAO::Config_Handlers::DataType (type__)),
regulator__ ()
@@ -1475,7 +1384,7 @@ namespace CIAO
}
StructMemberType::
- StructMemberType (::CIAO::Config_Handlers::StructMemberType const& s)
+ StructMemberType (StructMemberType const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -1486,12 +1395,12 @@ namespace CIAO
type_->container (this);
}
- ::CIAO::Config_Handlers::StructMemberType& StructMemberType::
- operator= (::CIAO::Config_Handlers::StructMemberType const& s)
+ StructMemberType& StructMemberType::
+ operator= (StructMemberType const& s)
{
- name (s.name ());
+ name (*s.name_);
- type (s.type ());
+ type (*s.type_);
return *this;
}
@@ -1535,7 +1444,6 @@ namespace CIAO
::XMLSchema::string< ACE_TCHAR > const& modifier__,
::CIAO::Config_Handlers::DataType const& baseType__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
typeId_ (new ::XMLSchema::string< ACE_TCHAR > (typeId__)),
modifier_ (new ::XMLSchema::string< ACE_TCHAR > (modifier__)),
@@ -1549,39 +1457,34 @@ namespace CIAO
}
ValueType::
- ValueType (::CIAO::Config_Handlers::ValueType const& s)
+ ValueType (ValueType const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
typeId_ (new ::XMLSchema::string< ACE_TCHAR > (*s.typeId_)),
modifier_ (new ::XMLSchema::string< ACE_TCHAR > (*s.modifier_)),
baseType_ (new ::CIAO::Config_Handlers::DataType (*s.baseType_)),
+ member_ (s.member_),
regulator__ ()
{
name_->container (this);
typeId_->container (this);
modifier_->container (this);
baseType_->container (this);
- {
- for (member_const_iterator i (s.member_.begin ());i != s.member_.end ();++i) add_member (*i);
- }
}
- ::CIAO::Config_Handlers::ValueType& ValueType::
- operator= (::CIAO::Config_Handlers::ValueType const& s)
+ ValueType& ValueType::
+ operator= (ValueType const& s)
{
- name (s.name ());
+ name (*s.name_);
- typeId (s.typeId ());
+ typeId (*s.typeId_);
- modifier (s.modifier ());
+ modifier (*s.modifier_);
- baseType (s.baseType ());
+ baseType (*s.baseType_);
- member_.clear ();
- {
- for (member_const_iterator i (s.member_.begin ());i != s.member_.end ();++i) add_member (*i);
- }
+ member_ = s.member_;
return *this;
}
@@ -1670,7 +1573,7 @@ namespace CIAO
}
void ValueType::
- add_member (::CIAO::Config_Handlers::ValueMemberType const& e)
+ add_member (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > const& e)
{
member_.push_back (e);
}
@@ -1690,7 +1593,6 @@ namespace CIAO
::XMLSchema::string< ACE_TCHAR > const& visibility__,
::CIAO::Config_Handlers::DataType const& type__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
visibility_ (new ::XMLSchema::string< ACE_TCHAR > (visibility__)),
type_ (new ::CIAO::Config_Handlers::DataType (type__)),
@@ -1702,7 +1604,7 @@ namespace CIAO
}
ValueMemberType::
- ValueMemberType (::CIAO::Config_Handlers::ValueMemberType const& s)
+ ValueMemberType (ValueMemberType const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -1715,14 +1617,14 @@ namespace CIAO
type_->container (this);
}
- ::CIAO::Config_Handlers::ValueMemberType& ValueMemberType::
- operator= (::CIAO::Config_Handlers::ValueMemberType const& s)
+ ValueMemberType& ValueMemberType::
+ operator= (ValueMemberType const& s)
{
- name (s.name ());
+ name (*s.name_);
- visibility (s.visibility ());
+ visibility (*s.visibility_);
- type (s.type ());
+ type (*s.type_);
return *this;
}
@@ -1778,7 +1680,6 @@ namespace CIAO
NamedValue (::XMLSchema::string< ACE_TCHAR > const& name__,
::CIAO::Config_Handlers::DataValue const& value__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
value_ (new ::CIAO::Config_Handlers::DataValue (value__)),
regulator__ ()
@@ -1788,7 +1689,7 @@ namespace CIAO
}
NamedValue::
- NamedValue (::CIAO::Config_Handlers::NamedValue const& s)
+ NamedValue (NamedValue const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -1799,12 +1700,12 @@ namespace CIAO
value_->container (this);
}
- ::CIAO::Config_Handlers::NamedValue& NamedValue::
- operator= (::CIAO::Config_Handlers::NamedValue const& s)
+ NamedValue& NamedValue::
+ operator= (NamedValue const& s)
{
- name (s.name ());
+ name (*s.name_);
- value (s.value ());
+ value (*s.value_);
return *this;
}
@@ -1845,7 +1746,6 @@ namespace CIAO
SequenceType::
SequenceType (::CIAO::Config_Handlers::DataType const& elementType__)
:
- ::XSCRT::Type (),
elementType_ (new ::CIAO::Config_Handlers::DataType (elementType__)),
regulator__ ()
{
@@ -1853,7 +1753,7 @@ namespace CIAO
}
SequenceType::
- SequenceType (::CIAO::Config_Handlers::SequenceType const& s)
+ SequenceType (SequenceType const& s)
:
::XSCRT::Type (),
bound_ (s.bound_.get () ? new ::XMLSchema::unsignedInt (*s.bound_) : 0),
@@ -1864,13 +1764,15 @@ namespace CIAO
elementType_->container (this);
}
- ::CIAO::Config_Handlers::SequenceType& SequenceType::
- operator= (::CIAO::Config_Handlers::SequenceType const& s)
+ SequenceType& SequenceType::
+ operator= (SequenceType const& s)
{
- if (s.bound_.get ()) bound (*(s.bound_));
- else bound_ = ::std::auto_ptr< ::XMLSchema::unsignedInt > (0);
+ if (s.bound_.get ())
+ bound (*(s.bound_));
+ else
+ bound_.reset (0);
- elementType (s.elementType ());
+ elementType (*s.elementType_);
return *this;
}
@@ -1927,7 +1829,6 @@ namespace CIAO
Any (::CIAO::Config_Handlers::DataType const& type__,
::CIAO::Config_Handlers::DataValue const& value__)
:
- ::XSCRT::Type (),
type_ (new ::CIAO::Config_Handlers::DataType (type__)),
value_ (new ::CIAO::Config_Handlers::DataValue (value__)),
regulator__ ()
@@ -1937,7 +1838,7 @@ namespace CIAO
}
Any::
- Any (::CIAO::Config_Handlers::Any const& s)
+ Any (Any const& s)
:
::XSCRT::Type (),
type_ (new ::CIAO::Config_Handlers::DataType (*s.type_)),
@@ -1948,12 +1849,12 @@ namespace CIAO
value_->container (this);
}
- ::CIAO::Config_Handlers::Any& Any::
- operator= (::CIAO::Config_Handlers::Any const& s)
+ Any& Any::
+ operator= (Any const& s)
{
- type (s.type ());
+ type (*s.type_);
- value (s.value ());
+ value (*s.value_);
return *this;
}
@@ -1995,7 +1896,6 @@ namespace CIAO
Property (::XMLSchema::string< ACE_TCHAR > const& name__,
::CIAO::Config_Handlers::Any const& value__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
value_ (new ::CIAO::Config_Handlers::Any (value__)),
regulator__ ()
@@ -2005,7 +1905,7 @@ namespace CIAO
}
Property::
- Property (::CIAO::Config_Handlers::Property const& s)
+ Property (Property const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -2016,12 +1916,12 @@ namespace CIAO
value_->container (this);
}
- ::CIAO::Config_Handlers::Property& Property::
- operator= (::CIAO::Config_Handlers::Property const& s)
+ Property& Property::
+ operator= (Property const& s)
{
- name (s.name ());
+ name (*s.name_);
- value (s.value ());
+ value (*s.value_);
return *this;
}
@@ -2092,7 +1992,6 @@ namespace CIAO
::XMLSchema::boolean const& dynamic__,
::CIAO::Config_Handlers::Any const& value__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
kind_ (new ::CIAO::Config_Handlers::SatisfierPropertyKind (kind__)),
dynamic_ (new ::XMLSchema::boolean (dynamic__)),
@@ -2106,7 +2005,7 @@ namespace CIAO
}
SatisfierProperty::
- SatisfierProperty (::CIAO::Config_Handlers::SatisfierProperty const& s)
+ SatisfierProperty (SatisfierProperty const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -2121,16 +2020,16 @@ namespace CIAO
value_->container (this);
}
- ::CIAO::Config_Handlers::SatisfierProperty& SatisfierProperty::
- operator= (::CIAO::Config_Handlers::SatisfierProperty const& s)
+ SatisfierProperty& SatisfierProperty::
+ operator= (SatisfierProperty const& s)
{
- name (s.name ());
+ name (*s.name_);
- kind (s.kind ());
+ kind (*s.kind_);
- dynamic (s.dynamic ());
+ dynamic (*s.dynamic_);
- value (s.value ());
+ value (*s.value_);
return *this;
}
@@ -2197,46 +2096,36 @@ namespace CIAO
//
Resource::
- Resource (::XMLSchema::string< ACE_TCHAR > const& name__)
+ Resource (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > const& resourceType__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ resourceType_ (resourceType__),
regulator__ ()
{
name_->container (this);
}
Resource::
- Resource (::CIAO::Config_Handlers::Resource const& s)
+ Resource (Resource const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ resourceType_ (s.resourceType_),
+ property_ (s.property_),
regulator__ ()
{
name_->container (this);
- {
- for (resourceType_const_iterator i (s.resourceType_.begin ());i != s.resourceType_.end ();++i) add_resourceType (*i);
- }
-
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
}
- ::CIAO::Config_Handlers::Resource& Resource::
- operator= (::CIAO::Config_Handlers::Resource const& s)
+ Resource& Resource::
+ operator= (Resource const& s)
{
- name (s.name ());
+ name (*s.name_);
- resourceType_.clear ();
- {
- for (resourceType_const_iterator i (s.resourceType_.begin ());i != s.resourceType_.end ();++i) add_resourceType (*i);
- }
+ resourceType_ = s.resourceType_;
- property_.clear ();
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
+ property_ = s.property_;
return *this;
}
@@ -2283,7 +2172,7 @@ namespace CIAO
}
void Resource::
- add_resourceType (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_resourceType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
resourceType_.push_back (e);
}
@@ -2321,7 +2210,7 @@ namespace CIAO
}
void Resource::
- add_property (::CIAO::Config_Handlers::SatisfierProperty const& e)
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > const& e)
{
property_.push_back (e);
}
@@ -2340,7 +2229,6 @@ namespace CIAO
Requirement (::XMLSchema::string< ACE_TCHAR > const& resourceType__,
::XMLSchema::string< ACE_TCHAR > const& name__)
:
- ::XSCRT::Type (),
resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (resourceType__)),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
regulator__ ()
@@ -2350,31 +2238,26 @@ namespace CIAO
}
Requirement::
- Requirement (::CIAO::Config_Handlers::Requirement const& s)
+ Requirement (Requirement const& s)
:
::XSCRT::Type (),
resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceType_)),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ property_ (s.property_),
regulator__ ()
{
resourceType_->container (this);
name_->container (this);
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
}
- ::CIAO::Config_Handlers::Requirement& Requirement::
- operator= (::CIAO::Config_Handlers::Requirement const& s)
+ Requirement& Requirement::
+ operator= (Requirement const& s)
{
- resourceType (s.resourceType ());
+ resourceType (*s.resourceType_);
- name (s.name ());
+ name (*s.name_);
- property_.clear ();
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
+ property_ = s.property_;
return *this;
}
@@ -2435,7 +2318,7 @@ namespace CIAO
}
void Requirement::
- add_property (::CIAO::Config_Handlers::Property const& e)
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
property_.push_back (e);
}
@@ -2454,7 +2337,6 @@ namespace CIAO
ResourceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& requirementName__,
::XMLSchema::string< ACE_TCHAR > const& resourceName__)
:
- ::XSCRT::Type (),
requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (requirementName__)),
resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (resourceName__)),
regulator__ ()
@@ -2464,31 +2346,26 @@ namespace CIAO
}
ResourceDeploymentDescription::
- ResourceDeploymentDescription (::CIAO::Config_Handlers::ResourceDeploymentDescription const& s)
+ ResourceDeploymentDescription (ResourceDeploymentDescription const& s)
:
::XSCRT::Type (),
requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.requirementName_)),
resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceName_)),
+ property_ (s.property_),
regulator__ ()
{
requirementName_->container (this);
resourceName_->container (this);
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
}
- ::CIAO::Config_Handlers::ResourceDeploymentDescription& ResourceDeploymentDescription::
- operator= (::CIAO::Config_Handlers::ResourceDeploymentDescription const& s)
+ ResourceDeploymentDescription& ResourceDeploymentDescription::
+ operator= (ResourceDeploymentDescription const& s)
{
- requirementName (s.requirementName ());
+ requirementName (*s.requirementName_);
- resourceName (s.resourceName ());
+ resourceName (*s.resourceName_);
- property_.clear ();
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
+ property_ = s.property_;
return *this;
}
@@ -2549,7 +2426,7 @@ namespace CIAO
}
void ResourceDeploymentDescription::
- add_property (::CIAO::Config_Handlers::Property const& e)
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
property_.push_back (e);
}
@@ -2568,7 +2445,6 @@ namespace CIAO
ArtifactDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
::XMLSchema::string< ACE_TCHAR > const& node__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
node_ (new ::XMLSchema::string< ACE_TCHAR > (node__)),
regulator__ ()
@@ -2578,73 +2454,43 @@ namespace CIAO
}
ArtifactDeploymentDescription::
- ArtifactDeploymentDescription (::CIAO::Config_Handlers::ArtifactDeploymentDescription const& s)
+ ArtifactDeploymentDescription (ArtifactDeploymentDescription const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ source_ (s.source_),
node_ (new ::XMLSchema::string< ACE_TCHAR > (*s.node_)),
- xmi_id_ (s.xmi_id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.xmi_id_) : 0),
+ location_ (s.location_),
+ execParameter_ (s.execParameter_),
+ deployRequirement_ (s.deployRequirement_),
+ deployedResource_ (s.deployedResource_),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
regulator__ ()
{
name_->container (this);
- {
- for (source_const_iterator i (s.source_.begin ());i != s.source_.end ();++i) add_source (*i);
- }
-
node_->container (this);
- {
- for (location_const_iterator i (s.location_.begin ());i != s.location_.end ();++i) add_location (*i);
- }
-
- {
- for (execParameter_const_iterator i (s.execParameter_.begin ());i != s.execParameter_.end ();++i) add_execParameter (*i);
- }
-
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
-
- {
- for (deployedResource_const_iterator i (s.deployedResource_.begin ());i != s.deployedResource_.end ();++i) add_deployedResource (*i);
- }
-
- if (xmi_id_.get ()) xmi_id_->container (this);
+ if (id_.get ()) id_->container (this);
}
- ::CIAO::Config_Handlers::ArtifactDeploymentDescription& ArtifactDeploymentDescription::
- operator= (::CIAO::Config_Handlers::ArtifactDeploymentDescription const& s)
+ ArtifactDeploymentDescription& ArtifactDeploymentDescription::
+ operator= (ArtifactDeploymentDescription const& s)
{
- name (s.name ());
+ name (*s.name_);
- source_.clear ();
- {
- for (source_const_iterator i (s.source_.begin ());i != s.source_.end ();++i) add_source (*i);
- }
+ source_ = s.source_;
- node (s.node ());
+ node (*s.node_);
- location_.clear ();
- {
- for (location_const_iterator i (s.location_.begin ());i != s.location_.end ();++i) add_location (*i);
- }
+ location_ = s.location_;
- execParameter_.clear ();
- {
- for (execParameter_const_iterator i (s.execParameter_.begin ());i != s.execParameter_.end ();++i) add_execParameter (*i);
- }
+ execParameter_ = s.execParameter_;
- deployRequirement_.clear ();
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
+ deployRequirement_ = s.deployRequirement_;
- deployedResource_.clear ();
- {
- for (deployedResource_const_iterator i (s.deployedResource_.begin ());i != s.deployedResource_.end ();++i) add_deployedResource (*i);
- }
+ deployedResource_ = s.deployedResource_;
- if (s.xmi_id_.get ()) xmi_id (*(s.xmi_id_));
- else xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
return *this;
}
@@ -2691,7 +2537,7 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
- add_source (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_source (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
source_.push_back (e);
}
@@ -2743,7 +2589,7 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
- add_location (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_location (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
location_.push_back (e);
}
@@ -2781,7 +2627,7 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
- add_execParameter (::CIAO::Config_Handlers::Property const& e)
+ add_execParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
execParameter_.push_back (e);
}
@@ -2819,7 +2665,7 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
- add_deployRequirement (::CIAO::Config_Handlers::Requirement const& e)
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
{
deployRequirement_.push_back (e);
}
@@ -2857,7 +2703,7 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
- add_deployedResource (::CIAO::Config_Handlers::ResourceDeploymentDescription const& e)
+ add_deployedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > const& e)
{
deployedResource_.push_back (e);
}
@@ -2871,35 +2717,35 @@ namespace CIAO
// ArtifactDeploymentDescription
//
bool ArtifactDeploymentDescription::
- xmi_id_p () const
+ id_p () const
{
- return xmi_id_.get () != 0;
+ return id_.get () != 0;
}
::XMLSchema::ID< ACE_TCHAR > const& ArtifactDeploymentDescription::
- xmi_id () const
+ id () const
{
- return *xmi_id_;
+ return *id_;
}
::XMLSchema::ID< ACE_TCHAR >& ArtifactDeploymentDescription::
- xmi_id ()
+ id ()
{
- return *xmi_id_;
+ return *id_;
}
void ArtifactDeploymentDescription::
- xmi_id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
{
- if (xmi_id_.get ())
+ if (id_.get ())
{
- *xmi_id_ = e;
+ *id_ = e;
}
else
{
- xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
- xmi_id_->container (this);
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
}
}
@@ -2910,7 +2756,6 @@ namespace CIAO
MonolithicDeploymentDescription::
MonolithicDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
regulator__ ()
{
@@ -2918,60 +2763,36 @@ namespace CIAO
}
MonolithicDeploymentDescription::
- MonolithicDeploymentDescription (::CIAO::Config_Handlers::MonolithicDeploymentDescription const& s)
+ MonolithicDeploymentDescription (MonolithicDeploymentDescription const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
- xmi_id_ (s.xmi_id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.xmi_id_) : 0),
+ source_ (s.source_),
+ artifact_ (s.artifact_),
+ execParameter_ (s.execParameter_),
+ deployRequirement_ (s.deployRequirement_),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
regulator__ ()
{
name_->container (this);
- {
- for (source_const_iterator i (s.source_.begin ());i != s.source_.end ();++i) add_source (*i);
- }
-
- {
- for (artifact_const_iterator i (s.artifact_.begin ());i != s.artifact_.end ();++i) add_artifact (*i);
- }
-
- {
- for (execParameter_const_iterator i (s.execParameter_.begin ());i != s.execParameter_.end ();++i) add_execParameter (*i);
- }
-
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
-
- if (xmi_id_.get ()) xmi_id_->container (this);
+ if (id_.get ()) id_->container (this);
}
- ::CIAO::Config_Handlers::MonolithicDeploymentDescription& MonolithicDeploymentDescription::
- operator= (::CIAO::Config_Handlers::MonolithicDeploymentDescription const& s)
+ MonolithicDeploymentDescription& MonolithicDeploymentDescription::
+ operator= (MonolithicDeploymentDescription const& s)
{
- name (s.name ());
+ name (*s.name_);
- source_.clear ();
- {
- for (source_const_iterator i (s.source_.begin ());i != s.source_.end ();++i) add_source (*i);
- }
+ source_ = s.source_;
- artifact_.clear ();
- {
- for (artifact_const_iterator i (s.artifact_.begin ());i != s.artifact_.end ();++i) add_artifact (*i);
- }
+ artifact_ = s.artifact_;
- execParameter_.clear ();
- {
- for (execParameter_const_iterator i (s.execParameter_.begin ());i != s.execParameter_.end ();++i) add_execParameter (*i);
- }
+ execParameter_ = s.execParameter_;
- deployRequirement_.clear ();
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
+ deployRequirement_ = s.deployRequirement_;
- if (s.xmi_id_.get ()) xmi_id (*(s.xmi_id_));
- else xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
return *this;
}
@@ -3018,7 +2839,7 @@ namespace CIAO
}
void MonolithicDeploymentDescription::
- add_source (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_source (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
source_.push_back (e);
}
@@ -3056,7 +2877,7 @@ namespace CIAO
}
void MonolithicDeploymentDescription::
- add_artifact (::CIAO::Config_Handlers::IdRef const& e)
+ add_artifact (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > const& e)
{
artifact_.push_back (e);
}
@@ -3094,7 +2915,7 @@ namespace CIAO
}
void MonolithicDeploymentDescription::
- add_execParameter (::CIAO::Config_Handlers::Property const& e)
+ add_execParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
execParameter_.push_back (e);
}
@@ -3132,7 +2953,7 @@ namespace CIAO
}
void MonolithicDeploymentDescription::
- add_deployRequirement (::CIAO::Config_Handlers::Requirement const& e)
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
{
deployRequirement_.push_back (e);
}
@@ -3146,35 +2967,35 @@ namespace CIAO
// MonolithicDeploymentDescription
//
bool MonolithicDeploymentDescription::
- xmi_id_p () const
+ id_p () const
{
- return xmi_id_.get () != 0;
+ return id_.get () != 0;
}
::XMLSchema::ID< ACE_TCHAR > const& MonolithicDeploymentDescription::
- xmi_id () const
+ id () const
{
- return *xmi_id_;
+ return *id_;
}
::XMLSchema::ID< ACE_TCHAR >& MonolithicDeploymentDescription::
- xmi_id ()
+ id ()
{
- return *xmi_id_;
+ return *id_;
}
void MonolithicDeploymentDescription::
- xmi_id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
{
- if (xmi_id_.get ())
+ if (id_.get ())
{
- *xmi_id_ = e;
+ *id_ = e;
}
else
{
- xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
- xmi_id_->container (this);
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
}
}
@@ -3214,7 +3035,6 @@ namespace CIAO
::XMLSchema::string< ACE_TCHAR > const& requirementName__,
::XMLSchema::string< ACE_TCHAR > const& resourceName__)
:
- ::XSCRT::Type (),
resourceUsage_ (new ::CIAO::Config_Handlers::ResourceUsageKind (resourceUsage__)),
requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (requirementName__)),
resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (resourceName__)),
@@ -3226,35 +3046,30 @@ namespace CIAO
}
InstanceResourceDeploymentDescription::
- InstanceResourceDeploymentDescription (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& s)
+ InstanceResourceDeploymentDescription (InstanceResourceDeploymentDescription const& s)
:
::XSCRT::Type (),
resourceUsage_ (new ::CIAO::Config_Handlers::ResourceUsageKind (*s.resourceUsage_)),
requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.requirementName_)),
resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceName_)),
+ property_ (s.property_),
regulator__ ()
{
resourceUsage_->container (this);
requirementName_->container (this);
resourceName_->container (this);
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
}
- ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription& InstanceResourceDeploymentDescription::
- operator= (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& s)
+ InstanceResourceDeploymentDescription& InstanceResourceDeploymentDescription::
+ operator= (InstanceResourceDeploymentDescription const& s)
{
- resourceUsage (s.resourceUsage ());
+ resourceUsage (*s.resourceUsage_);
- requirementName (s.requirementName ());
+ requirementName (*s.requirementName_);
- resourceName (s.resourceName ());
+ resourceName (*s.resourceName_);
- property_.clear ();
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
+ property_ = s.property_;
return *this;
}
@@ -3329,7 +3144,7 @@ namespace CIAO
}
void InstanceResourceDeploymentDescription::
- add_property (::CIAO::Config_Handlers::Property const& e)
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
property_.push_back (e);
}
@@ -3350,7 +3165,6 @@ namespace CIAO
::XMLSchema::string< ACE_TCHAR > const& source__,
::CIAO::Config_Handlers::IdRef const& implementation__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
node_ (new ::XMLSchema::string< ACE_TCHAR > (node__)),
source_ (new ::XMLSchema::string< ACE_TCHAR > (source__)),
@@ -3364,59 +3178,49 @@ namespace CIAO
}
InstanceDeploymentDescription::
- InstanceDeploymentDescription (::CIAO::Config_Handlers::InstanceDeploymentDescription const& s)
+ InstanceDeploymentDescription (InstanceDeploymentDescription const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
node_ (new ::XMLSchema::string< ACE_TCHAR > (*s.node_)),
source_ (new ::XMLSchema::string< ACE_TCHAR > (*s.source_)),
implementation_ (new ::CIAO::Config_Handlers::IdRef (*s.implementation_)),
+ configProperty_ (s.configProperty_),
+ deployedResource_ (s.deployedResource_),
deployedSharedResource_ (s.deployedSharedResource_.get () ? new ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription (*s.deployedSharedResource_) : 0),
- xmi_id_ (s.xmi_id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.xmi_id_) : 0),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
regulator__ ()
{
name_->container (this);
node_->container (this);
source_->container (this);
implementation_->container (this);
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
-
- {
- for (deployedResource_const_iterator i (s.deployedResource_.begin ());i != s.deployedResource_.end ();++i) add_deployedResource (*i);
- }
-
if (deployedSharedResource_.get ()) deployedSharedResource_->container (this);
- if (xmi_id_.get ()) xmi_id_->container (this);
+ if (id_.get ()) id_->container (this);
}
- ::CIAO::Config_Handlers::InstanceDeploymentDescription& InstanceDeploymentDescription::
- operator= (::CIAO::Config_Handlers::InstanceDeploymentDescription const& s)
+ InstanceDeploymentDescription& InstanceDeploymentDescription::
+ operator= (InstanceDeploymentDescription const& s)
{
- name (s.name ());
+ name (*s.name_);
- node (s.node ());
+ node (*s.node_);
- source (s.source ());
+ source (*s.source_);
- implementation (s.implementation ());
+ implementation (*s.implementation_);
- configProperty_.clear ();
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
+ configProperty_ = s.configProperty_;
- deployedResource_.clear ();
- {
- for (deployedResource_const_iterator i (s.deployedResource_.begin ());i != s.deployedResource_.end ();++i) add_deployedResource (*i);
- }
+ deployedResource_ = s.deployedResource_;
- if (s.deployedSharedResource_.get ()) deployedSharedResource (*(s.deployedSharedResource_));
- else deployedSharedResource_ = ::std::auto_ptr< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > (0);
+ if (s.deployedSharedResource_.get ())
+ deployedSharedResource (*(s.deployedSharedResource_));
+ else
+ deployedSharedResource_.reset (0);
- if (s.xmi_id_.get ()) xmi_id (*(s.xmi_id_));
- else xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
return *this;
}
@@ -3505,7 +3309,7 @@ namespace CIAO
}
void InstanceDeploymentDescription::
- add_configProperty (::CIAO::Config_Handlers::Property const& e)
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
configProperty_.push_back (e);
}
@@ -3543,7 +3347,7 @@ namespace CIAO
}
void InstanceDeploymentDescription::
- add_deployedResource (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& e)
+ add_deployedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > const& e)
{
deployedResource_.push_back (e);
}
@@ -3586,35 +3390,35 @@ namespace CIAO
// InstanceDeploymentDescription
//
bool InstanceDeploymentDescription::
- xmi_id_p () const
+ id_p () const
{
- return xmi_id_.get () != 0;
+ return id_.get () != 0;
}
::XMLSchema::ID< ACE_TCHAR > const& InstanceDeploymentDescription::
- xmi_id () const
+ id () const
{
- return *xmi_id_;
+ return *id_;
}
::XMLSchema::ID< ACE_TCHAR >& InstanceDeploymentDescription::
- xmi_id ()
+ id ()
{
- return *xmi_id_;
+ return *id_;
}
void InstanceDeploymentDescription::
- xmi_id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
{
- if (xmi_id_.get ())
+ if (id_.get ())
{
- *xmi_id_ = e;
+ *id_ = e;
}
else
{
- xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
- xmi_id_->container (this);
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
}
}
@@ -3657,7 +3461,6 @@ namespace CIAO
::XMLSchema::boolean const& optional__,
::CIAO::Config_Handlers::CCMComponentPortKind const& kind__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
provider_ (new ::XMLSchema::boolean (provider__)),
exclusiveProvider_ (new ::XMLSchema::boolean (exclusiveProvider__)),
@@ -3675,11 +3478,12 @@ namespace CIAO
}
ComponentPortDescription::
- ComponentPortDescription (::CIAO::Config_Handlers::ComponentPortDescription const& s)
+ ComponentPortDescription (ComponentPortDescription const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
specificType_ (s.specificType_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.specificType_) : 0),
+ supportedType_ (s.supportedType_),
provider_ (new ::XMLSchema::boolean (*s.provider_)),
exclusiveProvider_ (new ::XMLSchema::boolean (*s.exclusiveProvider_)),
exclusiveUser_ (new ::XMLSchema::boolean (*s.exclusiveUser_)),
@@ -3689,10 +3493,6 @@ namespace CIAO
{
name_->container (this);
if (specificType_.get ()) specificType_->container (this);
- {
- for (supportedType_const_iterator i (s.supportedType_.begin ());i != s.supportedType_.end ();++i) add_supportedType (*i);
- }
-
provider_->container (this);
exclusiveProvider_->container (this);
exclusiveUser_->container (this);
@@ -3700,28 +3500,27 @@ namespace CIAO
kind_->container (this);
}
- ::CIAO::Config_Handlers::ComponentPortDescription& ComponentPortDescription::
- operator= (::CIAO::Config_Handlers::ComponentPortDescription const& s)
+ ComponentPortDescription& ComponentPortDescription::
+ operator= (ComponentPortDescription const& s)
{
- name (s.name ());
+ name (*s.name_);
- if (s.specificType_.get ()) specificType (*(s.specificType_));
- else specificType_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.specificType_.get ())
+ specificType (*(s.specificType_));
+ else
+ specificType_.reset (0);
- supportedType_.clear ();
- {
- for (supportedType_const_iterator i (s.supportedType_.begin ());i != s.supportedType_.end ();++i) add_supportedType (*i);
- }
+ supportedType_ = s.supportedType_;
- provider (s.provider ());
+ provider (*s.provider_);
- exclusiveProvider (s.exclusiveProvider ());
+ exclusiveProvider (*s.exclusiveProvider_);
- exclusiveUser (s.exclusiveUser ());
+ exclusiveUser (*s.exclusiveUser_);
- optional (s.optional ());
+ optional (*s.optional_);
- kind (s.kind ());
+ kind (*s.kind_);
return *this;
}
@@ -3797,7 +3596,7 @@ namespace CIAO
}
void ComponentPortDescription::
- add_supportedType (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_supportedType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
supportedType_.push_back (e);
}
@@ -3886,7 +3685,6 @@ namespace CIAO
ComponentPropertyDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
::CIAO::Config_Handlers::DataType const& type__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
type_ (new ::CIAO::Config_Handlers::DataType (type__)),
regulator__ ()
@@ -3896,7 +3694,7 @@ namespace CIAO
}
ComponentPropertyDescription::
- ComponentPropertyDescription (::CIAO::Config_Handlers::ComponentPropertyDescription const& s)
+ ComponentPropertyDescription (ComponentPropertyDescription const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -3907,12 +3705,12 @@ namespace CIAO
type_->container (this);
}
- ::CIAO::Config_Handlers::ComponentPropertyDescription& ComponentPropertyDescription::
- operator= (::CIAO::Config_Handlers::ComponentPropertyDescription const& s)
+ ComponentPropertyDescription& ComponentPropertyDescription::
+ operator= (ComponentPropertyDescription const& s)
{
- name (s.name ());
+ name (*s.name_);
- type (s.type ());
+ type (*s.type_);
return *this;
}
@@ -3953,7 +3751,6 @@ namespace CIAO
ComponentExternalPortEndpoint::
ComponentExternalPortEndpoint (::XMLSchema::string< ACE_TCHAR > const& portName__)
:
- ::XSCRT::Type (),
portName_ (new ::XMLSchema::string< ACE_TCHAR > (portName__)),
regulator__ ()
{
@@ -3961,7 +3758,7 @@ namespace CIAO
}
ComponentExternalPortEndpoint::
- ComponentExternalPortEndpoint (::CIAO::Config_Handlers::ComponentExternalPortEndpoint const& s)
+ ComponentExternalPortEndpoint (ComponentExternalPortEndpoint const& s)
:
::XSCRT::Type (),
portName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.portName_)),
@@ -3970,10 +3767,10 @@ namespace CIAO
portName_->container (this);
}
- ::CIAO::Config_Handlers::ComponentExternalPortEndpoint& ComponentExternalPortEndpoint::
- operator= (::CIAO::Config_Handlers::ComponentExternalPortEndpoint const& s)
+ ComponentExternalPortEndpoint& ComponentExternalPortEndpoint::
+ operator= (ComponentExternalPortEndpoint const& s)
{
- portName (s.portName ());
+ portName (*s.portName_);
return *this;
}
@@ -4002,7 +3799,6 @@ namespace CIAO
::CIAO::Config_Handlers::CCMComponentPortKind const& kind__,
::CIAO::Config_Handlers::IdRef const& instance__)
:
- ::XSCRT::Type (),
portName_ (new ::XMLSchema::string< ACE_TCHAR > (portName__)),
kind_ (new ::CIAO::Config_Handlers::CCMComponentPortKind (kind__)),
instance_ (new ::CIAO::Config_Handlers::IdRef (instance__)),
@@ -4014,7 +3810,7 @@ namespace CIAO
}
PlanSubcomponentPortEndpoint::
- PlanSubcomponentPortEndpoint (::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint const& s)
+ PlanSubcomponentPortEndpoint (PlanSubcomponentPortEndpoint const& s)
:
::XSCRT::Type (),
portName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.portName_)),
@@ -4029,17 +3825,19 @@ namespace CIAO
instance_->container (this);
}
- ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint& PlanSubcomponentPortEndpoint::
- operator= (::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint const& s)
+ PlanSubcomponentPortEndpoint& PlanSubcomponentPortEndpoint::
+ operator= (PlanSubcomponentPortEndpoint const& s)
{
- portName (s.portName ());
+ portName (*s.portName_);
- if (s.provider_.get ()) provider (*(s.provider_));
- else provider_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.provider_.get ())
+ provider (*(s.provider_));
+ else
+ provider_.reset (0);
- kind (s.kind ());
+ kind (*s.kind_);
- instance (s.instance ());
+ instance (*s.instance_);
return *this;
}
@@ -4124,7 +3922,6 @@ namespace CIAO
ExternalReferenceEndpoint (::XMLSchema::string< ACE_TCHAR > const& location__,
::XMLSchema::boolean const& provider__)
:
- ::XSCRT::Type (),
location_ (new ::XMLSchema::string< ACE_TCHAR > (location__)),
provider_ (new ::XMLSchema::boolean (provider__)),
regulator__ ()
@@ -4134,36 +3931,33 @@ namespace CIAO
}
ExternalReferenceEndpoint::
- ExternalReferenceEndpoint (::CIAO::Config_Handlers::ExternalReferenceEndpoint const& s)
+ ExternalReferenceEndpoint (ExternalReferenceEndpoint const& s)
:
::XSCRT::Type (),
location_ (new ::XMLSchema::string< ACE_TCHAR > (*s.location_)),
provider_ (new ::XMLSchema::boolean (*s.provider_)),
portName_ (s.portName_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.portName_) : 0),
+ supportedType_ (s.supportedType_),
regulator__ ()
{
location_->container (this);
provider_->container (this);
if (portName_.get ()) portName_->container (this);
- {
- for (supportedType_const_iterator i (s.supportedType_.begin ());i != s.supportedType_.end ();++i) add_supportedType (*i);
- }
}
- ::CIAO::Config_Handlers::ExternalReferenceEndpoint& ExternalReferenceEndpoint::
- operator= (::CIAO::Config_Handlers::ExternalReferenceEndpoint const& s)
+ ExternalReferenceEndpoint& ExternalReferenceEndpoint::
+ operator= (ExternalReferenceEndpoint const& s)
{
- location (s.location ());
+ location (*s.location_);
- provider (s.provider ());
+ provider (*s.provider_);
- if (s.portName_.get ()) portName (*(s.portName_));
- else portName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.portName_.get ())
+ portName (*(s.portName_));
+ else
+ portName_.reset (0);
- supportedType_.clear ();
- {
- for (supportedType_const_iterator i (s.supportedType_.begin ());i != s.supportedType_.end ();++i) add_supportedType (*i);
- }
+ supportedType_ = s.supportedType_;
return *this;
}
@@ -4253,7 +4047,7 @@ namespace CIAO
}
void ExternalReferenceEndpoint::
- add_supportedType (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_supportedType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
supportedType_.push_back (e);
}
@@ -4273,7 +4067,6 @@ namespace CIAO
::XMLSchema::string< ACE_TCHAR > const& requirementName__,
::XMLSchema::string< ACE_TCHAR > const& resourceName__)
:
- ::XSCRT::Type (),
targetName_ (new ::XMLSchema::string< ACE_TCHAR > (targetName__)),
requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (requirementName__)),
resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (resourceName__)),
@@ -4285,35 +4078,30 @@ namespace CIAO
}
ConnectionResourceDeploymentDescription::
- ConnectionResourceDeploymentDescription (::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription const& s)
+ ConnectionResourceDeploymentDescription (ConnectionResourceDeploymentDescription const& s)
:
::XSCRT::Type (),
targetName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.targetName_)),
requirementName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.requirementName_)),
resourceName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceName_)),
+ property_ (s.property_),
regulator__ ()
{
targetName_->container (this);
requirementName_->container (this);
resourceName_->container (this);
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
}
- ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription& ConnectionResourceDeploymentDescription::
- operator= (::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription const& s)
+ ConnectionResourceDeploymentDescription& ConnectionResourceDeploymentDescription::
+ operator= (ConnectionResourceDeploymentDescription const& s)
{
- targetName (s.targetName ());
+ targetName (*s.targetName_);
- requirementName (s.requirementName ());
+ requirementName (*s.requirementName_);
- resourceName (s.resourceName ());
+ resourceName (*s.resourceName_);
- property_.clear ();
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
+ property_ = s.property_;
return *this;
}
@@ -4388,7 +4176,7 @@ namespace CIAO
}
void ConnectionResourceDeploymentDescription::
- add_property (::CIAO::Config_Handlers::Property const& e)
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
property_.push_back (e);
}
@@ -4406,7 +4194,6 @@ namespace CIAO
PlanConnectionDescription::
PlanConnectionDescription (::XMLSchema::string< ACE_TCHAR > const& name__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
regulator__ ()
{
@@ -4414,68 +4201,41 @@ namespace CIAO
}
PlanConnectionDescription::
- PlanConnectionDescription (::CIAO::Config_Handlers::PlanConnectionDescription const& s)
+ PlanConnectionDescription (PlanConnectionDescription const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
source_ (s.source_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.source_) : 0),
+ deployRequirement_ (s.deployRequirement_),
+ externalEndpoint_ (s.externalEndpoint_),
+ internalEndpoint_ (s.internalEndpoint_),
+ externalReference_ (s.externalReference_),
+ deployedResource_ (s.deployedResource_),
regulator__ ()
{
name_->container (this);
if (source_.get ()) source_->container (this);
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
-
- {
- for (externalEndpoint_const_iterator i (s.externalEndpoint_.begin ());i != s.externalEndpoint_.end ();++i) add_externalEndpoint (*i);
- }
-
- {
- for (internalEndpoint_const_iterator i (s.internalEndpoint_.begin ());i != s.internalEndpoint_.end ();++i) add_internalEndpoint (*i);
- }
-
- {
- for (externalReference_const_iterator i (s.externalReference_.begin ());i != s.externalReference_.end ();++i) add_externalReference (*i);
- }
-
- {
- for (deployedResource_const_iterator i (s.deployedResource_.begin ());i != s.deployedResource_.end ();++i) add_deployedResource (*i);
- }
}
- ::CIAO::Config_Handlers::PlanConnectionDescription& PlanConnectionDescription::
- operator= (::CIAO::Config_Handlers::PlanConnectionDescription const& s)
+ PlanConnectionDescription& PlanConnectionDescription::
+ operator= (PlanConnectionDescription const& s)
{
- name (s.name ());
+ name (*s.name_);
- if (s.source_.get ()) source (*(s.source_));
- else source_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.source_.get ())
+ source (*(s.source_));
+ else
+ source_.reset (0);
- deployRequirement_.clear ();
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
+ deployRequirement_ = s.deployRequirement_;
- externalEndpoint_.clear ();
- {
- for (externalEndpoint_const_iterator i (s.externalEndpoint_.begin ());i != s.externalEndpoint_.end ();++i) add_externalEndpoint (*i);
- }
+ externalEndpoint_ = s.externalEndpoint_;
- internalEndpoint_.clear ();
- {
- for (internalEndpoint_const_iterator i (s.internalEndpoint_.begin ());i != s.internalEndpoint_.end ();++i) add_internalEndpoint (*i);
- }
+ internalEndpoint_ = s.internalEndpoint_;
- externalReference_.clear ();
- {
- for (externalReference_const_iterator i (s.externalReference_.begin ());i != s.externalReference_.end ();++i) add_externalReference (*i);
- }
+ externalReference_ = s.externalReference_;
- deployedResource_.clear ();
- {
- for (deployedResource_const_iterator i (s.deployedResource_.begin ());i != s.deployedResource_.end ();++i) add_deployedResource (*i);
- }
+ deployedResource_ = s.deployedResource_;
return *this;
}
@@ -4551,7 +4311,7 @@ namespace CIAO
}
void PlanConnectionDescription::
- add_deployRequirement (::CIAO::Config_Handlers::Requirement const& e)
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
{
deployRequirement_.push_back (e);
}
@@ -4589,7 +4349,7 @@ namespace CIAO
}
void PlanConnectionDescription::
- add_externalEndpoint (::CIAO::Config_Handlers::ComponentExternalPortEndpoint const& e)
+ add_externalEndpoint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > const& e)
{
externalEndpoint_.push_back (e);
}
@@ -4627,7 +4387,7 @@ namespace CIAO
}
void PlanConnectionDescription::
- add_internalEndpoint (::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint const& e)
+ add_internalEndpoint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > const& e)
{
internalEndpoint_.push_back (e);
}
@@ -4665,7 +4425,7 @@ namespace CIAO
}
void PlanConnectionDescription::
- add_externalReference (::CIAO::Config_Handlers::ExternalReferenceEndpoint const& e)
+ add_externalReference (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > const& e)
{
externalReference_.push_back (e);
}
@@ -4703,7 +4463,7 @@ namespace CIAO
}
void PlanConnectionDescription::
- add_deployedResource (::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription const& e)
+ add_deployedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > const& e)
{
deployedResource_.push_back (e);
}
@@ -4721,7 +4481,6 @@ namespace CIAO
ImplementationDependency::
ImplementationDependency (::XMLSchema::string< ACE_TCHAR > const& requiredType__)
:
- ::XSCRT::Type (),
requiredType_ (new ::XMLSchema::string< ACE_TCHAR > (requiredType__)),
regulator__ ()
{
@@ -4729,7 +4488,7 @@ namespace CIAO
}
ImplementationDependency::
- ImplementationDependency (::CIAO::Config_Handlers::ImplementationDependency const& s)
+ ImplementationDependency (ImplementationDependency const& s)
:
::XSCRT::Type (),
requiredType_ (new ::XMLSchema::string< ACE_TCHAR > (*s.requiredType_)),
@@ -4738,10 +4497,10 @@ namespace CIAO
requiredType_->container (this);
}
- ::CIAO::Config_Handlers::ImplementationDependency& ImplementationDependency::
- operator= (::CIAO::Config_Handlers::ImplementationDependency const& s)
+ ImplementationDependency& ImplementationDependency::
+ operator= (ImplementationDependency const& s)
{
- requiredType (s.requiredType ());
+ requiredType (*s.requiredType_);
return *this;
}
@@ -4768,7 +4527,6 @@ namespace CIAO
Capability::
Capability (::XMLSchema::string< ACE_TCHAR > const& name__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
regulator__ ()
{
@@ -4776,36 +4534,25 @@ namespace CIAO
}
Capability::
- Capability (::CIAO::Config_Handlers::Capability const& s)
+ Capability (Capability const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ resourceType_ (s.resourceType_),
+ property_ (s.property_),
regulator__ ()
{
name_->container (this);
- {
- for (resourceType_const_iterator i (s.resourceType_.begin ());i != s.resourceType_.end ();++i) add_resourceType (*i);
- }
-
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
}
- ::CIAO::Config_Handlers::Capability& Capability::
- operator= (::CIAO::Config_Handlers::Capability const& s)
+ Capability& Capability::
+ operator= (Capability const& s)
{
- name (s.name ());
+ name (*s.name_);
- resourceType_.clear ();
- {
- for (resourceType_const_iterator i (s.resourceType_.begin ());i != s.resourceType_.end ();++i) add_resourceType (*i);
- }
+ resourceType_ = s.resourceType_;
- property_.clear ();
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
+ property_ = s.property_;
return *this;
}
@@ -4852,7 +4599,7 @@ namespace CIAO
}
void Capability::
- add_resourceType (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_resourceType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
resourceType_.push_back (e);
}
@@ -4890,7 +4637,7 @@ namespace CIAO
}
void Capability::
- add_property (::CIAO::Config_Handlers::SatisfierProperty const& e)
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > const& e)
{
property_.push_back (e);
}
@@ -4909,7 +4656,6 @@ namespace CIAO
ImplementationRequirement (::XMLSchema::string< ACE_TCHAR > const& resourceType__,
::XMLSchema::string< ACE_TCHAR > const& name__)
:
- ::XSCRT::Type (),
resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (resourceType__)),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
regulator__ ()
@@ -4919,7 +4665,7 @@ namespace CIAO
}
ImplementationRequirement::
- ImplementationRequirement (::CIAO::Config_Handlers::ImplementationRequirement const& s)
+ ImplementationRequirement (ImplementationRequirement const& s)
:
::XSCRT::Type (),
resourceUsage_ (s.resourceUsage_.get () ? new ::CIAO::Config_Handlers::ResourceUsageKind (*s.resourceUsage_) : 0),
@@ -4927,6 +4673,7 @@ namespace CIAO
componentPort_ (s.componentPort_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.componentPort_) : 0),
resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (*s.resourceType_)),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ property_ (s.property_),
regulator__ ()
{
if (resourceUsage_.get ()) resourceUsage_->container (this);
@@ -4934,31 +4681,31 @@ namespace CIAO
if (componentPort_.get ()) componentPort_->container (this);
resourceType_->container (this);
name_->container (this);
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
}
- ::CIAO::Config_Handlers::ImplementationRequirement& ImplementationRequirement::
- operator= (::CIAO::Config_Handlers::ImplementationRequirement const& s)
+ ImplementationRequirement& ImplementationRequirement::
+ operator= (ImplementationRequirement const& s)
{
- if (s.resourceUsage_.get ()) resourceUsage (*(s.resourceUsage_));
- else resourceUsage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ResourceUsageKind > (0);
+ if (s.resourceUsage_.get ())
+ resourceUsage (*(s.resourceUsage_));
+ else
+ resourceUsage_.reset (0);
- if (s.resourcePort_.get ()) resourcePort (*(s.resourcePort_));
- else resourcePort_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.resourcePort_.get ())
+ resourcePort (*(s.resourcePort_));
+ else
+ resourcePort_.reset (0);
- if (s.componentPort_.get ()) componentPort (*(s.componentPort_));
- else componentPort_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.componentPort_.get ())
+ componentPort (*(s.componentPort_));
+ else
+ componentPort_.reset (0);
- resourceType (s.resourceType ());
+ resourceType (*s.resourceType_);
- name (s.name ());
+ name (*s.name_);
- property_.clear ();
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
+ property_ = s.property_;
return *this;
}
@@ -5106,7 +4853,7 @@ namespace CIAO
}
void ImplementationRequirement::
- add_property (::CIAO::Config_Handlers::Property const& e)
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
property_.push_back (e);
}
@@ -5125,7 +4872,6 @@ namespace CIAO
SubcomponentPortEndpoint (::XMLSchema::string< ACE_TCHAR > const& portName__,
::CIAO::Config_Handlers::IdRef const& instance__)
:
- ::XSCRT::Type (),
portName_ (new ::XMLSchema::string< ACE_TCHAR > (portName__)),
instance_ (new ::CIAO::Config_Handlers::IdRef (instance__)),
regulator__ ()
@@ -5135,7 +4881,7 @@ namespace CIAO
}
SubcomponentPortEndpoint::
- SubcomponentPortEndpoint (::CIAO::Config_Handlers::SubcomponentPortEndpoint const& s)
+ SubcomponentPortEndpoint (SubcomponentPortEndpoint const& s)
:
::XSCRT::Type (),
portName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.portName_)),
@@ -5146,12 +4892,12 @@ namespace CIAO
instance_->container (this);
}
- ::CIAO::Config_Handlers::SubcomponentPortEndpoint& SubcomponentPortEndpoint::
- operator= (::CIAO::Config_Handlers::SubcomponentPortEndpoint const& s)
+ SubcomponentPortEndpoint& SubcomponentPortEndpoint::
+ operator= (SubcomponentPortEndpoint const& s)
{
- portName (s.portName ());
+ portName (*s.portName_);
- instance (s.instance ());
+ instance (*s.instance_);
return *this;
}
@@ -5192,7 +4938,6 @@ namespace CIAO
AssemblyConnectionDescription::
AssemblyConnectionDescription (::XMLSchema::string< ACE_TCHAR > const& name__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
regulator__ ()
{
@@ -5200,54 +4945,31 @@ namespace CIAO
}
AssemblyConnectionDescription::
- AssemblyConnectionDescription (::CIAO::Config_Handlers::AssemblyConnectionDescription const& s)
+ AssemblyConnectionDescription (AssemblyConnectionDescription const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
+ deployRequirement_ (s.deployRequirement_),
+ internalEndpoint_ (s.internalEndpoint_),
+ externalEndpoint_ (s.externalEndpoint_),
+ externalReference_ (s.externalReference_),
regulator__ ()
{
name_->container (this);
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
-
- {
- for (internalEndpoint_const_iterator i (s.internalEndpoint_.begin ());i != s.internalEndpoint_.end ();++i) add_internalEndpoint (*i);
- }
-
- {
- for (externalEndpoint_const_iterator i (s.externalEndpoint_.begin ());i != s.externalEndpoint_.end ();++i) add_externalEndpoint (*i);
- }
-
- {
- for (externalReference_const_iterator i (s.externalReference_.begin ());i != s.externalReference_.end ();++i) add_externalReference (*i);
- }
}
- ::CIAO::Config_Handlers::AssemblyConnectionDescription& AssemblyConnectionDescription::
- operator= (::CIAO::Config_Handlers::AssemblyConnectionDescription const& s)
+ AssemblyConnectionDescription& AssemblyConnectionDescription::
+ operator= (AssemblyConnectionDescription const& s)
{
- name (s.name ());
+ name (*s.name_);
- deployRequirement_.clear ();
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
+ deployRequirement_ = s.deployRequirement_;
- internalEndpoint_.clear ();
- {
- for (internalEndpoint_const_iterator i (s.internalEndpoint_.begin ());i != s.internalEndpoint_.end ();++i) add_internalEndpoint (*i);
- }
+ internalEndpoint_ = s.internalEndpoint_;
- externalEndpoint_.clear ();
- {
- for (externalEndpoint_const_iterator i (s.externalEndpoint_.begin ());i != s.externalEndpoint_.end ();++i) add_externalEndpoint (*i);
- }
+ externalEndpoint_ = s.externalEndpoint_;
- externalReference_.clear ();
- {
- for (externalReference_const_iterator i (s.externalReference_.begin ());i != s.externalReference_.end ();++i) add_externalReference (*i);
- }
+ externalReference_ = s.externalReference_;
return *this;
}
@@ -5294,7 +5016,7 @@ namespace CIAO
}
void AssemblyConnectionDescription::
- add_deployRequirement (::CIAO::Config_Handlers::Requirement const& e)
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
{
deployRequirement_.push_back (e);
}
@@ -5332,7 +5054,7 @@ namespace CIAO
}
void AssemblyConnectionDescription::
- add_internalEndpoint (::CIAO::Config_Handlers::SubcomponentPortEndpoint const& e)
+ add_internalEndpoint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > const& e)
{
internalEndpoint_.push_back (e);
}
@@ -5370,7 +5092,7 @@ namespace CIAO
}
void AssemblyConnectionDescription::
- add_externalEndpoint (::CIAO::Config_Handlers::ComponentExternalPortEndpoint const& e)
+ add_externalEndpoint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > const& e)
{
externalEndpoint_.push_back (e);
}
@@ -5408,7 +5130,7 @@ namespace CIAO
}
void AssemblyConnectionDescription::
- add_externalReference (::CIAO::Config_Handlers::ExternalReferenceEndpoint const& e)
+ add_externalReference (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > const& e)
{
externalReference_.push_back (e);
}
@@ -5454,7 +5176,6 @@ namespace CIAO
PlanLocality (::CIAO::Config_Handlers::PlanLocalityKind const& constraint__,
::CIAO::Config_Handlers::IdRef const& constrainedInstance__)
:
- ::XSCRT::Type (),
constraint_ (new ::CIAO::Config_Handlers::PlanLocalityKind (constraint__)),
constrainedInstance_ (new ::CIAO::Config_Handlers::IdRef (constrainedInstance__)),
regulator__ ()
@@ -5464,7 +5185,7 @@ namespace CIAO
}
PlanLocality::
- PlanLocality (::CIAO::Config_Handlers::PlanLocality const& s)
+ PlanLocality (PlanLocality const& s)
:
::XSCRT::Type (),
constraint_ (new ::CIAO::Config_Handlers::PlanLocalityKind (*s.constraint_)),
@@ -5475,12 +5196,12 @@ namespace CIAO
constrainedInstance_->container (this);
}
- ::CIAO::Config_Handlers::PlanLocality& PlanLocality::
- operator= (::CIAO::Config_Handlers::PlanLocality const& s)
+ PlanLocality& PlanLocality::
+ operator= (PlanLocality const& s)
{
- constraint (s.constraint ());
+ constraint (*s.constraint_);
- constrainedInstance (s.constrainedInstance ());
+ constrainedInstance (*s.constrainedInstance_);
return *this;
}
@@ -5752,7 +5473,7 @@ namespace CIAO
if (n == "id")
{
::XMLSchema::ID< ACE_TCHAR > t (a);
- xmi_id (t);
+ id (t);
}
else
@@ -5778,91 +5499,91 @@ namespace CIAO
if (n == "short")
{
- ::XMLSchema::short_ t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > t (new ::XMLSchema::short_ (e));
add_short (t);
}
else if (n == "long")
{
- ::XMLSchema::int_ t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > t (new ::XMLSchema::int_ (e));
add_long (t);
}
else if (n == "ushort")
{
- ::XMLSchema::unsignedShort t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > t (new ::XMLSchema::unsignedShort (e));
add_ushort (t);
}
else if (n == "ulong")
{
- ::XMLSchema::unsignedInt t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > t (new ::XMLSchema::unsignedInt (e));
add_ulong (t);
}
else if (n == "float")
{
- ::XMLSchema::float_ t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > t (new ::XMLSchema::float_ (e));
add_float (t);
}
else if (n == "double")
{
- ::XMLSchema::double_ t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > t (new ::XMLSchema::double_ (e));
add_double (t);
}
else if (n == "boolean")
{
- ::XMLSchema::boolean t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > t (new ::XMLSchema::boolean (e));
add_boolean (t);
}
else if (n == "octet")
{
- ::XMLSchema::unsignedByte t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > t (new ::XMLSchema::unsignedByte (e));
add_octet (t);
}
else if (n == "enum")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_enum (t);
}
else if (n == "string")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_string (t);
}
else if (n == "longlong")
{
- ::XMLSchema::long_ t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > t (new ::XMLSchema::long_ (e));
add_longlong (t);
}
else if (n == "ulonglong")
{
- ::XMLSchema::unsignedLong t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > t (new ::XMLSchema::unsignedLong (e));
add_ulonglong (t);
}
else if (n == "longdouble")
{
- ::XMLSchema::double_ t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > t (new ::XMLSchema::double_ (e));
add_longdouble (t);
}
else if (n == "element")
{
- ::CIAO::Config_Handlers::DataValue t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::DataValue (e));
add_element (t);
}
else if (n == "member")
{
- ::CIAO::Config_Handlers::NamedValue t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::NamedValue (e));
add_member (t);
}
@@ -5940,7 +5661,7 @@ namespace CIAO
else if (n == "member")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_member (t);
}
@@ -5979,7 +5700,7 @@ namespace CIAO
else if (n == "member")
{
- ::CIAO::Config_Handlers::StructMemberType t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::StructMemberType (e));
add_member (t);
}
@@ -6063,7 +5784,7 @@ namespace CIAO
else if (n == "member")
{
- ::CIAO::Config_Handlers::ValueMemberType t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ValueMemberType (e));
add_member (t);
}
@@ -6356,13 +6077,13 @@ namespace CIAO
else if (n == "resourceType")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_resourceType (t);
}
else if (n == "property")
{
- ::CIAO::Config_Handlers::SatisfierProperty t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SatisfierProperty (e));
add_property (t);
}
@@ -6401,7 +6122,7 @@ namespace CIAO
else if (n == "property")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_property (t);
}
@@ -6440,7 +6161,7 @@ namespace CIAO
else if (n == "property")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_property (t);
}
@@ -6473,7 +6194,7 @@ namespace CIAO
else if (n == "source")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_source (t);
}
@@ -6485,25 +6206,25 @@ namespace CIAO
else if (n == "location")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_location (t);
}
else if (n == "execParameter")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_execParameter (t);
}
else if (n == "deployRequirement")
{
- ::CIAO::Config_Handlers::Requirement t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
add_deployRequirement (t);
}
else if (n == "deployedResource")
{
- ::CIAO::Config_Handlers::ResourceDeploymentDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ResourceDeploymentDescription (e));
add_deployedResource (t);
}
@@ -6519,7 +6240,7 @@ namespace CIAO
if (n == "id")
{
::XMLSchema::ID< ACE_TCHAR > t (a);
- xmi_id (t);
+ id (t);
}
else
@@ -6551,25 +6272,25 @@ namespace CIAO
else if (n == "source")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_source (t);
}
else if (n == "artifact")
{
- ::CIAO::Config_Handlers::IdRef t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::IdRef (e));
add_artifact (t);
}
else if (n == "execParameter")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_execParameter (t);
}
else if (n == "deployRequirement")
{
- ::CIAO::Config_Handlers::Requirement t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
add_deployRequirement (t);
}
@@ -6585,7 +6306,7 @@ namespace CIAO
if (n == "id")
{
::XMLSchema::ID< ACE_TCHAR > t (a);
- xmi_id (t);
+ id (t);
}
else
@@ -6670,7 +6391,7 @@ namespace CIAO
else if (n == "property")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_property (t);
}
@@ -6721,13 +6442,13 @@ namespace CIAO
else if (n == "configProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_configProperty (t);
}
else if (n == "deployedResource")
{
- ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription (e));
add_deployedResource (t);
}
@@ -6749,7 +6470,7 @@ namespace CIAO
if (n == "id")
{
::XMLSchema::ID< ACE_TCHAR > t (a);
- xmi_id (t);
+ id (t);
}
else
@@ -6831,7 +6552,7 @@ namespace CIAO
else if (n == "supportedType")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_supportedType (t);
}
@@ -7011,7 +6732,7 @@ namespace CIAO
else if (n == "supportedType")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_supportedType (t);
}
@@ -7056,7 +6777,7 @@ namespace CIAO
else if (n == "property")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_property (t);
}
@@ -7095,31 +6816,31 @@ namespace CIAO
else if (n == "deployRequirement")
{
- ::CIAO::Config_Handlers::Requirement t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
add_deployRequirement (t);
}
else if (n == "externalEndpoint")
{
- ::CIAO::Config_Handlers::ComponentExternalPortEndpoint t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ComponentExternalPortEndpoint (e));
add_externalEndpoint (t);
}
else if (n == "internalEndpoint")
{
- ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint (e));
add_internalEndpoint (t);
}
else if (n == "externalReference")
{
- ::CIAO::Config_Handlers::ExternalReferenceEndpoint t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ExternalReferenceEndpoint (e));
add_externalReference (t);
}
else if (n == "deployedResource")
{
- ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription (e));
add_deployedResource (t);
}
@@ -7179,13 +6900,13 @@ namespace CIAO
else if (n == "resourceType")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_resourceType (t);
}
else if (n == "property")
{
- ::CIAO::Config_Handlers::SatisfierProperty t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SatisfierProperty (e));
add_property (t);
}
@@ -7242,7 +6963,7 @@ namespace CIAO
else if (n == "property")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_property (t);
}
@@ -7308,25 +7029,25 @@ namespace CIAO
else if (n == "deployRequirement")
{
- ::CIAO::Config_Handlers::Requirement t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
add_deployRequirement (t);
}
else if (n == "internalEndpoint")
{
- ::CIAO::Config_Handlers::SubcomponentPortEndpoint t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SubcomponentPortEndpoint (e));
add_internalEndpoint (t);
}
else if (n == "externalEndpoint")
{
- ::CIAO::Config_Handlers::ComponentExternalPortEndpoint t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ComponentExternalPortEndpoint (e));
add_externalEndpoint (t);
}
else if (n == "externalReference")
{
- ::CIAO::Config_Handlers::ExternalReferenceEndpoint t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ExternalReferenceEndpoint (e));
add_externalReference (t);
}
@@ -7427,7 +7148,7 @@ namespace CIAO
{
IdRefTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (IdRef));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::IdRef));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7456,7 +7177,7 @@ namespace CIAO
{
DataTypeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (DataType));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::DataType));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7470,7 +7191,7 @@ namespace CIAO
{
DataValueTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (DataValue));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::DataValue));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7484,7 +7205,7 @@ namespace CIAO
{
AliasTypeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (AliasType));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::AliasType));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7498,7 +7219,7 @@ namespace CIAO
{
EnumTypeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (EnumType));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::EnumType));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7512,7 +7233,7 @@ namespace CIAO
{
StructTypeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (StructType));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::StructType));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7526,7 +7247,7 @@ namespace CIAO
{
StructMemberTypeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (StructMemberType));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::StructMemberType));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7540,7 +7261,7 @@ namespace CIAO
{
ValueTypeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ValueType));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ValueType));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7554,7 +7275,7 @@ namespace CIAO
{
ValueMemberTypeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ValueMemberType));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ValueMemberType));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7568,7 +7289,7 @@ namespace CIAO
{
NamedValueTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (NamedValue));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::NamedValue));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7582,7 +7303,7 @@ namespace CIAO
{
SequenceTypeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (SequenceType));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SequenceType));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7596,7 +7317,7 @@ namespace CIAO
{
AnyTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Any));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Any));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7610,7 +7331,7 @@ namespace CIAO
{
PropertyTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Property));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Property));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7639,7 +7360,7 @@ namespace CIAO
{
SatisfierPropertyTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (SatisfierProperty));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SatisfierProperty));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7653,7 +7374,7 @@ namespace CIAO
{
ResourceTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Resource));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Resource));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7667,7 +7388,7 @@ namespace CIAO
{
RequirementTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Requirement));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Requirement));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7681,7 +7402,7 @@ namespace CIAO
{
ResourceDeploymentDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ResourceDeploymentDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ResourceDeploymentDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7695,7 +7416,7 @@ namespace CIAO
{
ArtifactDeploymentDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ArtifactDeploymentDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ArtifactDeploymentDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7709,7 +7430,7 @@ namespace CIAO
{
MonolithicDeploymentDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (MonolithicDeploymentDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::MonolithicDeploymentDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7738,7 +7459,7 @@ namespace CIAO
{
InstanceResourceDeploymentDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (InstanceResourceDeploymentDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7752,7 +7473,7 @@ namespace CIAO
{
InstanceDeploymentDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (InstanceDeploymentDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::InstanceDeploymentDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7781,7 +7502,7 @@ namespace CIAO
{
ComponentPortDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentPortDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPortDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7795,7 +7516,7 @@ namespace CIAO
{
ComponentPropertyDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentPropertyDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPropertyDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7809,7 +7530,7 @@ namespace CIAO
{
ComponentExternalPortEndpointTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentExternalPortEndpoint));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentExternalPortEndpoint));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7823,7 +7544,7 @@ namespace CIAO
{
PlanSubcomponentPortEndpointTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (PlanSubcomponentPortEndpoint));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7837,7 +7558,7 @@ namespace CIAO
{
ExternalReferenceEndpointTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ExternalReferenceEndpoint));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ExternalReferenceEndpoint));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7851,7 +7572,7 @@ namespace CIAO
{
ConnectionResourceDeploymentDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ConnectionResourceDeploymentDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7865,7 +7586,7 @@ namespace CIAO
{
PlanConnectionDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (PlanConnectionDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PlanConnectionDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7879,7 +7600,7 @@ namespace CIAO
{
ImplementationDependencyTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ImplementationDependency));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ImplementationDependency));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7893,7 +7614,7 @@ namespace CIAO
{
CapabilityTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Capability));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Capability));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7907,7 +7628,7 @@ namespace CIAO
{
ImplementationRequirementTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ImplementationRequirement));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ImplementationRequirement));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7921,7 +7642,7 @@ namespace CIAO
{
SubcomponentPortEndpointTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (SubcomponentPortEndpoint));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SubcomponentPortEndpoint));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7935,7 +7656,7 @@ namespace CIAO
{
AssemblyConnectionDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (AssemblyConnectionDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::AssemblyConnectionDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -7964,7 +7685,7 @@ namespace CIAO
{
PlanLocalityTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (PlanLocality));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PlanLocality));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -8092,8 +7813,8 @@ namespace CIAO
else sequence_none (o);
if (o.alias_p ()) alias (o);
else alias_none (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
post (o);
}
@@ -8112,8 +7833,8 @@ namespace CIAO
else sequence_none (o);
if (o.alias_p ()) alias (o);
else alias_none (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
post (o);
}
@@ -8250,24 +7971,24 @@ namespace CIAO
}
void DataType::
- xmi_id (Type& o)
+ id (Type& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void DataType::
- xmi_id (Type const& o)
+ id (Type const& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void DataType::
- xmi_id_none (Type&)
+ id_none (Type&)
{
}
void DataType::
- xmi_id_none (Type const&)
+ id_none (Type const&)
{
}
@@ -8344,14 +8065,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::short_iterator b (o.begin_short()), e (o.end_short());
+ ::CIAO::Config_Handlers::DataValue::short_iterator b (o.begin_short()), e (o.end_short());
if (b != e)
{
short_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) short_next (o);
}
@@ -8366,14 +8087,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::short_const_iterator b (o.begin_short()), e (o.end_short());
+ ::CIAO::Config_Handlers::DataValue::short_const_iterator b (o.begin_short()), e (o.end_short());
if (b != e)
{
short_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) short_next (o);
}
@@ -8428,14 +8149,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::long_iterator b (o.begin_long()), e (o.end_long());
+ ::CIAO::Config_Handlers::DataValue::long_iterator b (o.begin_long()), e (o.end_long());
if (b != e)
{
long_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) long_next (o);
}
@@ -8450,14 +8171,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::long_const_iterator b (o.begin_long()), e (o.end_long());
+ ::CIAO::Config_Handlers::DataValue::long_const_iterator b (o.begin_long()), e (o.end_long());
if (b != e)
{
long_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) long_next (o);
}
@@ -8512,14 +8233,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::ushort_iterator b (o.begin_ushort()), e (o.end_ushort());
+ ::CIAO::Config_Handlers::DataValue::ushort_iterator b (o.begin_ushort()), e (o.end_ushort());
if (b != e)
{
ushort_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) ushort_next (o);
}
@@ -8534,14 +8255,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::ushort_const_iterator b (o.begin_ushort()), e (o.end_ushort());
+ ::CIAO::Config_Handlers::DataValue::ushort_const_iterator b (o.begin_ushort()), e (o.end_ushort());
if (b != e)
{
ushort_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) ushort_next (o);
}
@@ -8596,14 +8317,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::ulong_iterator b (o.begin_ulong()), e (o.end_ulong());
+ ::CIAO::Config_Handlers::DataValue::ulong_iterator b (o.begin_ulong()), e (o.end_ulong());
if (b != e)
{
ulong_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) ulong_next (o);
}
@@ -8618,14 +8339,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::ulong_const_iterator b (o.begin_ulong()), e (o.end_ulong());
+ ::CIAO::Config_Handlers::DataValue::ulong_const_iterator b (o.begin_ulong()), e (o.end_ulong());
if (b != e)
{
ulong_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) ulong_next (o);
}
@@ -8680,14 +8401,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::float_iterator b (o.begin_float()), e (o.end_float());
+ ::CIAO::Config_Handlers::DataValue::float_iterator b (o.begin_float()), e (o.end_float());
if (b != e)
{
float_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) float_next (o);
}
@@ -8702,14 +8423,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::float_const_iterator b (o.begin_float()), e (o.end_float());
+ ::CIAO::Config_Handlers::DataValue::float_const_iterator b (o.begin_float()), e (o.end_float());
if (b != e)
{
float_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) float_next (o);
}
@@ -8764,14 +8485,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::double_iterator b (o.begin_double()), e (o.end_double());
+ ::CIAO::Config_Handlers::DataValue::double_iterator b (o.begin_double()), e (o.end_double());
if (b != e)
{
double_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) double_next (o);
}
@@ -8786,14 +8507,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::double_const_iterator b (o.begin_double()), e (o.end_double());
+ ::CIAO::Config_Handlers::DataValue::double_const_iterator b (o.begin_double()), e (o.end_double());
if (b != e)
{
double_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) double_next (o);
}
@@ -8848,14 +8569,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::boolean_iterator b (o.begin_boolean()), e (o.end_boolean());
+ ::CIAO::Config_Handlers::DataValue::boolean_iterator b (o.begin_boolean()), e (o.end_boolean());
if (b != e)
{
boolean_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) boolean_next (o);
}
@@ -8870,14 +8591,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::boolean_const_iterator b (o.begin_boolean()), e (o.end_boolean());
+ ::CIAO::Config_Handlers::DataValue::boolean_const_iterator b (o.begin_boolean()), e (o.end_boolean());
if (b != e)
{
boolean_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) boolean_next (o);
}
@@ -8932,14 +8653,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::octet_iterator b (o.begin_octet()), e (o.end_octet());
+ ::CIAO::Config_Handlers::DataValue::octet_iterator b (o.begin_octet()), e (o.end_octet());
if (b != e)
{
octet_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) octet_next (o);
}
@@ -8954,14 +8675,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::octet_const_iterator b (o.begin_octet()), e (o.end_octet());
+ ::CIAO::Config_Handlers::DataValue::octet_const_iterator b (o.begin_octet()), e (o.end_octet());
if (b != e)
{
octet_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) octet_next (o);
}
@@ -9016,14 +8737,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::enum_iterator b (o.begin_enum()), e (o.end_enum());
+ ::CIAO::Config_Handlers::DataValue::enum_iterator b (o.begin_enum()), e (o.end_enum());
if (b != e)
{
enum_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) enum_next (o);
}
@@ -9038,14 +8759,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::enum_const_iterator b (o.begin_enum()), e (o.end_enum());
+ ::CIAO::Config_Handlers::DataValue::enum_const_iterator b (o.begin_enum()), e (o.end_enum());
if (b != e)
{
enum_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) enum_next (o);
}
@@ -9100,14 +8821,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::string_iterator b (o.begin_string()), e (o.end_string());
+ ::CIAO::Config_Handlers::DataValue::string_iterator b (o.begin_string()), e (o.end_string());
if (b != e)
{
string_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) string_next (o);
}
@@ -9122,14 +8843,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::string_const_iterator b (o.begin_string()), e (o.end_string());
+ ::CIAO::Config_Handlers::DataValue::string_const_iterator b (o.begin_string()), e (o.end_string());
if (b != e)
{
string_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) string_next (o);
}
@@ -9184,14 +8905,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::longlong_iterator b (o.begin_longlong()), e (o.end_longlong());
+ ::CIAO::Config_Handlers::DataValue::longlong_iterator b (o.begin_longlong()), e (o.end_longlong());
if (b != e)
{
longlong_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) longlong_next (o);
}
@@ -9206,14 +8927,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::longlong_const_iterator b (o.begin_longlong()), e (o.end_longlong());
+ ::CIAO::Config_Handlers::DataValue::longlong_const_iterator b (o.begin_longlong()), e (o.end_longlong());
if (b != e)
{
longlong_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) longlong_next (o);
}
@@ -9268,14 +8989,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::ulonglong_iterator b (o.begin_ulonglong()), e (o.end_ulonglong());
+ ::CIAO::Config_Handlers::DataValue::ulonglong_iterator b (o.begin_ulonglong()), e (o.end_ulonglong());
if (b != e)
{
ulonglong_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) ulonglong_next (o);
}
@@ -9290,14 +9011,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::ulonglong_const_iterator b (o.begin_ulonglong()), e (o.end_ulonglong());
+ ::CIAO::Config_Handlers::DataValue::ulonglong_const_iterator b (o.begin_ulonglong()), e (o.end_ulonglong());
if (b != e)
{
ulonglong_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) ulonglong_next (o);
}
@@ -9352,14 +9073,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::longdouble_iterator b (o.begin_longdouble()), e (o.end_longdouble());
+ ::CIAO::Config_Handlers::DataValue::longdouble_iterator b (o.begin_longdouble()), e (o.end_longdouble());
if (b != e)
{
longdouble_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) longdouble_next (o);
}
@@ -9374,14 +9095,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::longdouble_const_iterator b (o.begin_longdouble()), e (o.end_longdouble());
+ ::CIAO::Config_Handlers::DataValue::longdouble_const_iterator b (o.begin_longdouble()), e (o.end_longdouble());
if (b != e)
{
longdouble_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) longdouble_next (o);
}
@@ -9436,14 +9157,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::element_iterator b (o.begin_element()), e (o.end_element());
+ ::CIAO::Config_Handlers::DataValue::element_iterator b (o.begin_element()), e (o.end_element());
if (b != e)
{
element_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) element_next (o);
}
@@ -9458,14 +9179,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::element_const_iterator b (o.begin_element()), e (o.end_element());
+ ::CIAO::Config_Handlers::DataValue::element_const_iterator b (o.begin_element()), e (o.end_element());
if (b != e)
{
element_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) element_next (o);
}
@@ -9520,14 +9241,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::member_iterator b (o.begin_member()), e (o.end_member());
+ ::CIAO::Config_Handlers::DataValue::member_iterator b (o.begin_member()), e (o.end_member());
if (b != e)
{
member_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) member_next (o);
}
@@ -9542,14 +9263,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- DataValue::Type::member_const_iterator b (o.begin_member()), e (o.end_member());
+ ::CIAO::Config_Handlers::DataValue::member_const_iterator b (o.begin_member()), e (o.end_member());
if (b != e)
{
member_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) member_next (o);
}
@@ -9752,14 +9473,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- EnumType::Type::member_iterator b (o.begin_member()), e (o.end_member());
+ ::CIAO::Config_Handlers::EnumType::member_iterator b (o.begin_member()), e (o.end_member());
if (b != e)
{
member_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) member_next (o);
}
@@ -9772,14 +9493,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- EnumType::Type::member_const_iterator b (o.begin_member()), e (o.end_member());
+ ::CIAO::Config_Handlers::EnumType::member_const_iterator b (o.begin_member()), e (o.end_member());
if (b != e)
{
member_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) member_next (o);
}
@@ -9890,14 +9611,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- StructType::Type::member_iterator b (o.begin_member()), e (o.end_member());
+ ::CIAO::Config_Handlers::StructType::member_iterator b (o.begin_member()), e (o.end_member());
if (b != e)
{
member_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) member_next (o);
}
@@ -9912,14 +9633,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- StructType::Type::member_const_iterator b (o.begin_member()), e (o.end_member());
+ ::CIAO::Config_Handlers::StructType::member_const_iterator b (o.begin_member()), e (o.end_member());
if (b != e)
{
member_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) member_next (o);
}
@@ -10136,14 +9857,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ValueType::Type::member_iterator b (o.begin_member()), e (o.end_member());
+ ::CIAO::Config_Handlers::ValueType::member_iterator b (o.begin_member()), e (o.end_member());
if (b != e)
{
member_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) member_next (o);
}
@@ -10158,14 +9879,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ValueType::Type::member_const_iterator b (o.begin_member()), e (o.end_member());
+ ::CIAO::Config_Handlers::ValueType::member_const_iterator b (o.begin_member()), e (o.end_member());
if (b != e)
{
member_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) member_next (o);
}
@@ -10726,14 +10447,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Resource::Type::resourceType_iterator b (o.begin_resourceType()), e (o.end_resourceType());
+ ::CIAO::Config_Handlers::Resource::resourceType_iterator b (o.begin_resourceType()), e (o.end_resourceType());
if (b != e)
{
resourceType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resourceType_next (o);
}
@@ -10746,14 +10467,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Resource::Type::resourceType_const_iterator b (o.begin_resourceType()), e (o.end_resourceType());
+ ::CIAO::Config_Handlers::Resource::resourceType_const_iterator b (o.begin_resourceType()), e (o.end_resourceType());
if (b != e)
{
resourceType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resourceType_next (o);
}
@@ -10796,14 +10517,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Resource::Type::property_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::Resource::property_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -10818,14 +10539,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Resource::Type::property_const_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::Resource::property_const_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -10948,14 +10669,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Requirement::Type::property_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::Requirement::property_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -10970,14 +10691,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Requirement::Type::property_const_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::Requirement::property_const_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -11100,14 +10821,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ResourceDeploymentDescription::Type::property_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::ResourceDeploymentDescription::property_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -11122,14 +10843,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ResourceDeploymentDescription::Type::property_const_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::ResourceDeploymentDescription::property_const_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -11204,8 +10925,8 @@ namespace CIAO
execParameter (o);
deployRequirement (o);
deployedResource (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
post (o);
}
@@ -11220,8 +10941,8 @@ namespace CIAO
execParameter (o);
deployRequirement (o);
deployedResource (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
post (o);
}
@@ -11252,19 +10973,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::source_iterator b (o.begin_source()), e (o.end_source());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::source_iterator b (o.begin_source()), e (o.end_source());
if (b != e)
{
source_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) source_next (o);
}
source_post (o);
}
+
+ else source_none (o);
}
void ArtifactDeploymentDescription::
@@ -11272,19 +10995,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::source_const_iterator b (o.begin_source()), e (o.end_source());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::source_const_iterator b (o.begin_source()), e (o.end_source());
if (b != e)
{
source_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) source_next (o);
}
source_post (o);
}
+
+ else source_none (o);
}
void ArtifactDeploymentDescription::
@@ -11318,6 +11043,16 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
+ source_none (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ source_none (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
node (Type& o)
{
dispatch (o.node ());
@@ -11334,19 +11069,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::location_iterator b (o.begin_location()), e (o.end_location());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::location_iterator b (o.begin_location()), e (o.end_location());
if (b != e)
{
location_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) location_next (o);
}
location_post (o);
}
+
+ else location_none (o);
}
void ArtifactDeploymentDescription::
@@ -11354,19 +11091,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::location_const_iterator b (o.begin_location()), e (o.end_location());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::location_const_iterator b (o.begin_location()), e (o.end_location());
if (b != e)
{
location_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) location_next (o);
}
location_post (o);
}
+
+ else location_none (o);
}
void ArtifactDeploymentDescription::
@@ -11400,18 +11139,28 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
+ location_none (Type&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
+ location_none (Type const&)
+ {
+ }
+
+ void ArtifactDeploymentDescription::
execParameter (Type& o)
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
if (b != e)
{
execParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) execParameter_next (o);
}
@@ -11426,14 +11175,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
if (b != e)
{
execParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) execParameter_next (o);
}
@@ -11488,14 +11237,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -11510,14 +11259,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -11572,14 +11321,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::deployedResource_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::deployedResource_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
if (b != e)
{
deployedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployedResource_next (o);
}
@@ -11594,14 +11343,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ArtifactDeploymentDescription::Type::deployedResource_const_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
+ ::CIAO::Config_Handlers::ArtifactDeploymentDescription::deployedResource_const_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
if (b != e)
{
deployedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployedResource_next (o);
}
@@ -11652,24 +11401,24 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
- xmi_id (Type& o)
+ id (Type& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void ArtifactDeploymentDescription::
- xmi_id (Type const& o)
+ id (Type const& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void ArtifactDeploymentDescription::
- xmi_id_none (Type&)
+ id_none (Type&)
{
}
void ArtifactDeploymentDescription::
- xmi_id_none (Type const&)
+ id_none (Type const&)
{
}
@@ -11696,8 +11445,8 @@ namespace CIAO
artifact (o);
execParameter (o);
deployRequirement (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
post (o);
}
@@ -11710,8 +11459,8 @@ namespace CIAO
artifact (o);
execParameter (o);
deployRequirement (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
post (o);
}
@@ -11742,19 +11491,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicDeploymentDescription::Type::source_iterator b (o.begin_source()), e (o.end_source());
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::source_iterator b (o.begin_source()), e (o.end_source());
if (b != e)
{
source_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) source_next (o);
}
source_post (o);
}
+
+ else source_none (o);
}
void MonolithicDeploymentDescription::
@@ -11762,19 +11513,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicDeploymentDescription::Type::source_const_iterator b (o.begin_source()), e (o.end_source());
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::source_const_iterator b (o.begin_source()), e (o.end_source());
if (b != e)
{
source_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) source_next (o);
}
source_post (o);
}
+
+ else source_none (o);
}
void MonolithicDeploymentDescription::
@@ -11808,23 +11561,35 @@ namespace CIAO
}
void MonolithicDeploymentDescription::
+ source_none (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ source_none (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
artifact (Type& o)
{
// VC6 anathema strikes again
//
- MonolithicDeploymentDescription::Type::artifact_iterator b (o.begin_artifact()), e (o.end_artifact());
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::artifact_iterator b (o.begin_artifact()), e (o.end_artifact());
if (b != e)
{
artifact_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) artifact_next (o);
}
artifact_post (o);
}
+
+ else artifact_none (o);
}
void MonolithicDeploymentDescription::
@@ -11832,19 +11597,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicDeploymentDescription::Type::artifact_const_iterator b (o.begin_artifact()), e (o.end_artifact());
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::artifact_const_iterator b (o.begin_artifact()), e (o.end_artifact());
if (b != e)
{
artifact_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) artifact_next (o);
}
artifact_post (o);
}
+
+ else artifact_none (o);
}
void MonolithicDeploymentDescription::
@@ -11878,18 +11645,28 @@ namespace CIAO
}
void MonolithicDeploymentDescription::
+ artifact_none (Type&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
+ artifact_none (Type const&)
+ {
+ }
+
+ void MonolithicDeploymentDescription::
execParameter (Type& o)
{
// VC6 anathema strikes again
//
- MonolithicDeploymentDescription::Type::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
if (b != e)
{
execParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) execParameter_next (o);
}
@@ -11904,14 +11681,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicDeploymentDescription::Type::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
if (b != e)
{
execParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) execParameter_next (o);
}
@@ -11966,14 +11743,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicDeploymentDescription::Type::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -11988,14 +11765,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicDeploymentDescription::Type::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::MonolithicDeploymentDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -12046,24 +11823,24 @@ namespace CIAO
}
void MonolithicDeploymentDescription::
- xmi_id (Type& o)
+ id (Type& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void MonolithicDeploymentDescription::
- xmi_id (Type const& o)
+ id (Type const& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void MonolithicDeploymentDescription::
- xmi_id_none (Type&)
+ id_none (Type&)
{
}
void MonolithicDeploymentDescription::
- xmi_id_none (Type const&)
+ id_none (Type const&)
{
}
@@ -12154,14 +11931,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- InstanceResourceDeploymentDescription::Type::property_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription::property_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -12176,14 +11953,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- InstanceResourceDeploymentDescription::Type::property_const_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription::property_const_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -12259,8 +12036,8 @@ namespace CIAO
deployedResource (o);
if (o.deployedSharedResource_p ()) deployedSharedResource (o);
else deployedSharedResource_none (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
post (o);
}
@@ -12276,8 +12053,8 @@ namespace CIAO
deployedResource (o);
if (o.deployedSharedResource_p ()) deployedSharedResource (o);
else deployedSharedResource_none (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
post (o);
}
@@ -12344,14 +12121,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- InstanceDeploymentDescription::Type::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -12366,14 +12143,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- InstanceDeploymentDescription::Type::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -12428,14 +12205,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- InstanceDeploymentDescription::Type::deployedResource_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription::deployedResource_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
if (b != e)
{
deployedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployedResource_next (o);
}
@@ -12450,14 +12227,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- InstanceDeploymentDescription::Type::deployedResource_const_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
+ ::CIAO::Config_Handlers::InstanceDeploymentDescription::deployedResource_const_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
if (b != e)
{
deployedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployedResource_next (o);
}
@@ -12530,24 +12307,24 @@ namespace CIAO
}
void InstanceDeploymentDescription::
- xmi_id (Type& o)
+ id (Type& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void InstanceDeploymentDescription::
- xmi_id (Type const& o)
+ id (Type const& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void InstanceDeploymentDescription::
- xmi_id_none (Type&)
+ id_none (Type&)
{
}
void InstanceDeploymentDescription::
- xmi_id_none (Type const&)
+ id_none (Type const&)
{
}
@@ -12646,14 +12423,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPortDescription::Type::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+ ::CIAO::Config_Handlers::ComponentPortDescription::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
if (b != e)
{
supportedType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) supportedType_next (o);
}
@@ -12668,14 +12445,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPortDescription::Type::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+ ::CIAO::Config_Handlers::ComponentPortDescription::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
if (b != e)
{
supportedType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) supportedType_next (o);
}
@@ -13108,19 +12885,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ExternalReferenceEndpoint::Type::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+ ::CIAO::Config_Handlers::ExternalReferenceEndpoint::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
if (b != e)
{
supportedType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) supportedType_next (o);
}
supportedType_post (o);
}
+
+ else supportedType_none (o);
}
void ExternalReferenceEndpoint::
@@ -13128,19 +12907,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ExternalReferenceEndpoint::Type::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+ ::CIAO::Config_Handlers::ExternalReferenceEndpoint::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
if (b != e)
{
supportedType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) supportedType_next (o);
}
supportedType_post (o);
}
+
+ else supportedType_none (o);
}
void ExternalReferenceEndpoint::
@@ -13174,6 +12955,16 @@ namespace CIAO
}
void ExternalReferenceEndpoint::
+ supportedType_none (Type&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
+ supportedType_none (Type const&)
+ {
+ }
+
+ void ExternalReferenceEndpoint::
post (Type&)
{
}
@@ -13260,14 +13051,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ConnectionResourceDeploymentDescription::Type::property_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription::property_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -13282,14 +13073,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ConnectionResourceDeploymentDescription::Type::property_const_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription::property_const_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -13432,14 +13223,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -13454,14 +13245,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -13516,14 +13307,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::externalEndpoint_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::externalEndpoint_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
if (b != e)
{
externalEndpoint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalEndpoint_next (o);
}
@@ -13538,14 +13329,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::externalEndpoint_const_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::externalEndpoint_const_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
if (b != e)
{
externalEndpoint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalEndpoint_next (o);
}
@@ -13600,14 +13391,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::internalEndpoint_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::internalEndpoint_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
if (b != e)
{
internalEndpoint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) internalEndpoint_next (o);
}
@@ -13622,14 +13413,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::internalEndpoint_const_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::internalEndpoint_const_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
if (b != e)
{
internalEndpoint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) internalEndpoint_next (o);
}
@@ -13684,14 +13475,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::externalReference_iterator b (o.begin_externalReference()), e (o.end_externalReference());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::externalReference_iterator b (o.begin_externalReference()), e (o.end_externalReference());
if (b != e)
{
externalReference_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalReference_next (o);
}
@@ -13706,14 +13497,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::externalReference_const_iterator b (o.begin_externalReference()), e (o.end_externalReference());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::externalReference_const_iterator b (o.begin_externalReference()), e (o.end_externalReference());
if (b != e)
{
externalReference_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalReference_next (o);
}
@@ -13768,14 +13559,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::deployedResource_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::deployedResource_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
if (b != e)
{
deployedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployedResource_next (o);
}
@@ -13790,14 +13581,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PlanConnectionDescription::Type::deployedResource_const_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
+ ::CIAO::Config_Handlers::PlanConnectionDescription::deployedResource_const_iterator b (o.begin_deployedResource()), e (o.end_deployedResource());
if (b != e)
{
deployedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployedResource_next (o);
}
@@ -13960,19 +13751,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Capability::Type::resourceType_iterator b (o.begin_resourceType()), e (o.end_resourceType());
+ ::CIAO::Config_Handlers::Capability::resourceType_iterator b (o.begin_resourceType()), e (o.end_resourceType());
if (b != e)
{
resourceType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resourceType_next (o);
}
resourceType_post (o);
}
+
+ else resourceType_none (o);
}
void Capability::
@@ -13980,19 +13773,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Capability::Type::resourceType_const_iterator b (o.begin_resourceType()), e (o.end_resourceType());
+ ::CIAO::Config_Handlers::Capability::resourceType_const_iterator b (o.begin_resourceType()), e (o.end_resourceType());
if (b != e)
{
resourceType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resourceType_next (o);
}
resourceType_post (o);
}
+
+ else resourceType_none (o);
}
void Capability::
@@ -14026,18 +13821,28 @@ namespace CIAO
}
void Capability::
+ resourceType_none (Type&)
+ {
+ }
+
+ void Capability::
+ resourceType_none (Type const&)
+ {
+ }
+
+ void Capability::
property (Type& o)
{
// VC6 anathema strikes again
//
- Capability::Type::property_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::Capability::property_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -14052,14 +13857,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Capability::Type::property_const_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::Capability::property_const_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -14260,14 +14065,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationRequirement::Type::property_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::ImplementationRequirement::property_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -14282,14 +14087,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationRequirement::Type::property_const_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::ImplementationRequirement::property_const_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -14470,14 +14275,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyConnectionDescription::Type::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -14492,14 +14297,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyConnectionDescription::Type::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -14554,14 +14359,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyConnectionDescription::Type::internalEndpoint_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::internalEndpoint_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
if (b != e)
{
internalEndpoint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) internalEndpoint_next (o);
}
@@ -14576,14 +14381,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyConnectionDescription::Type::internalEndpoint_const_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::internalEndpoint_const_iterator b (o.begin_internalEndpoint()), e (o.end_internalEndpoint());
if (b != e)
{
internalEndpoint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) internalEndpoint_next (o);
}
@@ -14638,14 +14443,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyConnectionDescription::Type::externalEndpoint_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::externalEndpoint_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
if (b != e)
{
externalEndpoint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalEndpoint_next (o);
}
@@ -14660,14 +14465,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyConnectionDescription::Type::externalEndpoint_const_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::externalEndpoint_const_iterator b (o.begin_externalEndpoint()), e (o.end_externalEndpoint());
if (b != e)
{
externalEndpoint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalEndpoint_next (o);
}
@@ -14722,14 +14527,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyConnectionDescription::Type::externalReference_iterator b (o.begin_externalReference()), e (o.end_externalReference());
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::externalReference_iterator b (o.begin_externalReference()), e (o.end_externalReference());
if (b != e)
{
externalReference_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalReference_next (o);
}
@@ -14744,14 +14549,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyConnectionDescription::Type::externalReference_const_iterator b (o.begin_externalReference()), e (o.end_externalReference());
+ ::CIAO::Config_Handlers::AssemblyConnectionDescription::externalReference_const_iterator b (o.begin_externalReference()), e (o.end_externalReference());
if (b != e)
{
externalReference_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalReference_next (o);
}
@@ -15067,11 +14872,11 @@ namespace CIAO
}
void DataType::
- xmi_id (Type const& o)
+ id (Type const& o)
{
::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "http://www.omg.org/Deployment", "", top_ ());
attr_ (&a);
- Traversal::DataType::xmi_id (o);
+ Traversal::DataType::id (o);
attr_ (0);
}
@@ -16246,11 +16051,11 @@ namespace CIAO
}
void ArtifactDeploymentDescription::
- xmi_id (Type const& o)
+ id (Type const& o)
{
::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "http://www.omg.org/Deployment", "", top_ ());
attr_ (&a);
- Traversal::ArtifactDeploymentDescription::xmi_id (o);
+ Traversal::ArtifactDeploymentDescription::id (o);
attr_ (0);
}
@@ -16360,11 +16165,11 @@ namespace CIAO
}
void MonolithicDeploymentDescription::
- xmi_id (Type const& o)
+ id (Type const& o)
{
::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "http://www.omg.org/Deployment", "", top_ ());
attr_ (&a);
- Traversal::MonolithicDeploymentDescription::xmi_id (o);
+ Traversal::MonolithicDeploymentDescription::id (o);
attr_ (0);
}
@@ -16572,11 +16377,11 @@ namespace CIAO
}
void InstanceDeploymentDescription::
- xmi_id (Type const& o)
+ id (Type const& o)
{
::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "http://www.omg.org/Deployment", "", top_ ());
attr_ (&a);
- Traversal::InstanceDeploymentDescription::xmi_id (o);
+ Traversal::InstanceDeploymentDescription::id (o);
attr_ (0);
}
diff --git a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
index c31049cb7f1..0a0c7b60a08 100644
--- a/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
+++ b/CIAO/tools/Config_Handlers/Basic_Deployment_Data.hpp
@@ -71,6 +71,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "XMI.hpp"
namespace CIAO
@@ -81,8 +84,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < IdRef, ACE_Null_Mutex > _ptr;
+
// href
- //
+ //
public:
bool href_p () const;
::XMLSchema::string< ACE_TCHAR > const& href () const;
@@ -93,7 +99,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > href_;
// idref
- //
+ //
public:
bool idref_p () const;
::XMLSchema::IDREF< ACE_TCHAR > const& idref () const;
@@ -170,10 +176,10 @@ namespace CIAO
Value
integral () const;
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator== (TCKind const& a, TCKind const& b);
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator!= (TCKind const& a, TCKind const& b);
private:
@@ -191,8 +197,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < DataType, ACE_Null_Mutex > _ptr;
+
// kind
- //
+ //
public:
::CIAO::Config_Handlers::TCKind const& kind () const;
void kind (::CIAO::Config_Handlers::TCKind const& );
@@ -201,7 +210,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::TCKind > kind_;
// enum
- //
+ //
public:
bool enum_p () const;
::CIAO::Config_Handlers::EnumType const& enum_ () const;
@@ -211,7 +220,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::EnumType > enum__;
// struct
- //
+ //
public:
bool struct_p () const;
::CIAO::Config_Handlers::StructType const& struct_ () const;
@@ -221,7 +230,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::StructType > struct__;
// value
- //
+ //
public:
bool value_p () const;
::CIAO::Config_Handlers::ValueType const& value () const;
@@ -231,7 +240,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::ValueType > value_;
// sequence
- //
+ //
public:
bool sequence_p () const;
::CIAO::Config_Handlers::SequenceType const& sequence () const;
@@ -241,7 +250,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::SequenceType > sequence_;
// alias
- //
+ //
public:
bool alias_p () const;
::CIAO::Config_Handlers::AliasType const& alias () const;
@@ -250,16 +259,16 @@ namespace CIAO
protected:
::std::auto_ptr< ::CIAO::Config_Handlers::AliasType > alias_;
- // xmi_id
- //
+ // id
+ //
public:
- bool xmi_id_p () const;
- ::XMLSchema::ID< ACE_TCHAR > const& xmi_id () const;
- ::XMLSchema::ID< ACE_TCHAR >& xmi_id ();
- void xmi_id (::XMLSchema::ID< ACE_TCHAR > const& );
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
protected:
- ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > xmi_id_;
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
public:
DataType (::CIAO::Config_Handlers::TCKind const& kind__);
@@ -279,230 +288,233 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < DataValue, ACE_Null_Mutex > _ptr;
+
// short
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::short_ >::iterator short_iterator;
- typedef ::std::list< ::XMLSchema::short_ >::const_iterator short_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > >::iterator short_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > >::const_iterator short_const_iterator;
short_iterator begin_short ();
short_iterator end_short ();
short_const_iterator begin_short () const;
short_const_iterator end_short () const;
- void add_short (::XMLSchema::short_ const& );
+ void add_short ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > const& );
size_t count_short (void) const;
protected:
- ::std::list< ::XMLSchema::short_ > short_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::short_, ACE_Null_Mutex > > short__;
// long
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::int_ >::iterator long_iterator;
- typedef ::std::list< ::XMLSchema::int_ >::const_iterator long_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > >::iterator long_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > >::const_iterator long_const_iterator;
long_iterator begin_long ();
long_iterator end_long ();
long_const_iterator begin_long () const;
long_const_iterator end_long () const;
- void add_long (::XMLSchema::int_ const& );
+ void add_long ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > const& );
size_t count_long (void) const;
protected:
- ::std::list< ::XMLSchema::int_ > long_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::int_, ACE_Null_Mutex > > long__;
// ushort
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::unsignedShort >::iterator ushort_iterator;
- typedef ::std::list< ::XMLSchema::unsignedShort >::const_iterator ushort_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > >::iterator ushort_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > >::const_iterator ushort_const_iterator;
ushort_iterator begin_ushort ();
ushort_iterator end_ushort ();
ushort_const_iterator begin_ushort () const;
ushort_const_iterator end_ushort () const;
- void add_ushort (::XMLSchema::unsignedShort const& );
+ void add_ushort ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > const& );
size_t count_ushort (void) const;
protected:
- ::std::list< ::XMLSchema::unsignedShort > ushort_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedShort, ACE_Null_Mutex > > ushort_;
// ulong
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::unsignedInt >::iterator ulong_iterator;
- typedef ::std::list< ::XMLSchema::unsignedInt >::const_iterator ulong_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > >::iterator ulong_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > >::const_iterator ulong_const_iterator;
ulong_iterator begin_ulong ();
ulong_iterator end_ulong ();
ulong_const_iterator begin_ulong () const;
ulong_const_iterator end_ulong () const;
- void add_ulong (::XMLSchema::unsignedInt const& );
+ void add_ulong ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > const& );
size_t count_ulong (void) const;
protected:
- ::std::list< ::XMLSchema::unsignedInt > ulong_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedInt, ACE_Null_Mutex > > ulong_;
// float
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::float_ >::iterator float_iterator;
- typedef ::std::list< ::XMLSchema::float_ >::const_iterator float_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > >::iterator float_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > >::const_iterator float_const_iterator;
float_iterator begin_float ();
float_iterator end_float ();
float_const_iterator begin_float () const;
float_const_iterator end_float () const;
- void add_float (::XMLSchema::float_ const& );
+ void add_float ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > const& );
size_t count_float (void) const;
protected:
- ::std::list< ::XMLSchema::float_ > float_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::float_, ACE_Null_Mutex > > float__;
// double
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::double_ >::iterator double_iterator;
- typedef ::std::list< ::XMLSchema::double_ >::const_iterator double_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > >::iterator double_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > >::const_iterator double_const_iterator;
double_iterator begin_double ();
double_iterator end_double ();
double_const_iterator begin_double () const;
double_const_iterator end_double () const;
- void add_double (::XMLSchema::double_ const& );
+ void add_double ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > const& );
size_t count_double (void) const;
protected:
- ::std::list< ::XMLSchema::double_ > double_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > > double__;
// boolean
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::boolean >::iterator boolean_iterator;
- typedef ::std::list< ::XMLSchema::boolean >::const_iterator boolean_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > >::iterator boolean_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > >::const_iterator boolean_const_iterator;
boolean_iterator begin_boolean ();
boolean_iterator end_boolean ();
boolean_const_iterator begin_boolean () const;
boolean_const_iterator end_boolean () const;
- void add_boolean (::XMLSchema::boolean const& );
+ void add_boolean ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > const& );
size_t count_boolean (void) const;
protected:
- ::std::list< ::XMLSchema::boolean > boolean_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::boolean, ACE_Null_Mutex > > boolean_;
// octet
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::unsignedByte >::iterator octet_iterator;
- typedef ::std::list< ::XMLSchema::unsignedByte >::const_iterator octet_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > >::iterator octet_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > >::const_iterator octet_const_iterator;
octet_iterator begin_octet ();
octet_iterator end_octet ();
octet_const_iterator begin_octet () const;
octet_const_iterator end_octet () const;
- void add_octet (::XMLSchema::unsignedByte const& );
+ void add_octet ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > const& );
size_t count_octet (void) const;
protected:
- ::std::list< ::XMLSchema::unsignedByte > octet_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedByte, ACE_Null_Mutex > > octet_;
// enum
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator enum_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator enum_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator enum_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator enum_const_iterator;
enum_iterator begin_enum ();
enum_iterator end_enum ();
enum_const_iterator begin_enum () const;
enum_const_iterator end_enum () const;
- void add_enum (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_enum ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_enum (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > enum_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > enum__;
// string
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator string_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator string_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator string_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator string_const_iterator;
string_iterator begin_string ();
string_iterator end_string ();
string_const_iterator begin_string () const;
string_const_iterator end_string () const;
- void add_string (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_string ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_string (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > string_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > string_;
// longlong
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::long_ >::iterator longlong_iterator;
- typedef ::std::list< ::XMLSchema::long_ >::const_iterator longlong_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > >::iterator longlong_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > >::const_iterator longlong_const_iterator;
longlong_iterator begin_longlong ();
longlong_iterator end_longlong ();
longlong_const_iterator begin_longlong () const;
longlong_const_iterator end_longlong () const;
- void add_longlong (::XMLSchema::long_ const& );
+ void add_longlong ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > const& );
size_t count_longlong (void) const;
protected:
- ::std::list< ::XMLSchema::long_ > longlong_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::long_, ACE_Null_Mutex > > longlong_;
// ulonglong
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::unsignedLong >::iterator ulonglong_iterator;
- typedef ::std::list< ::XMLSchema::unsignedLong >::const_iterator ulonglong_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > >::iterator ulonglong_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > >::const_iterator ulonglong_const_iterator;
ulonglong_iterator begin_ulonglong ();
ulonglong_iterator end_ulonglong ();
ulonglong_const_iterator begin_ulonglong () const;
ulonglong_const_iterator end_ulonglong () const;
- void add_ulonglong (::XMLSchema::unsignedLong const& );
+ void add_ulonglong ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > const& );
size_t count_ulonglong (void) const;
protected:
- ::std::list< ::XMLSchema::unsignedLong > ulonglong_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::unsignedLong, ACE_Null_Mutex > > ulonglong_;
// longdouble
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::double_ >::iterator longdouble_iterator;
- typedef ::std::list< ::XMLSchema::double_ >::const_iterator longdouble_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > >::iterator longdouble_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > >::const_iterator longdouble_const_iterator;
longdouble_iterator begin_longdouble ();
longdouble_iterator end_longdouble ();
longdouble_const_iterator begin_longdouble () const;
longdouble_const_iterator end_longdouble () const;
- void add_longdouble (::XMLSchema::double_ const& );
+ void add_longdouble ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > const& );
size_t count_longdouble (void) const;
protected:
- ::std::list< ::XMLSchema::double_ > longdouble_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::double_, ACE_Null_Mutex > > longdouble_;
// element
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::DataValue >::iterator element_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::DataValue >::const_iterator element_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > >::iterator element_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > >::const_iterator element_const_iterator;
element_iterator begin_element ();
element_iterator end_element ();
element_const_iterator begin_element () const;
element_const_iterator end_element () const;
- void add_element (::CIAO::Config_Handlers::DataValue const& );
+ void add_element ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > const& );
size_t count_element (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::DataValue > element_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::DataValue, ACE_Null_Mutex > > element_;
// member
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::NamedValue >::iterator member_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::NamedValue >::const_iterator member_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > >::iterator member_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > >::const_iterator member_const_iterator;
member_iterator begin_member ();
member_iterator end_member ();
member_const_iterator begin_member () const;
member_const_iterator end_member () const;
- void add_member (::CIAO::Config_Handlers::NamedValue const& );
+ void add_member ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > const& );
size_t count_member (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::NamedValue > member_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedValue, ACE_Null_Mutex > > member_;
public:
DataValue ();
@@ -522,8 +534,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < AliasType, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -532,7 +547,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// typeId
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& typeId () const;
void typeId (::XMLSchema::string< ACE_TCHAR > const& );
@@ -541,7 +556,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > typeId_;
// elementType
- //
+ //
public:
::CIAO::Config_Handlers::DataType const& elementType () const;
void elementType (::CIAO::Config_Handlers::DataType const& );
@@ -569,8 +584,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < EnumType, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -579,7 +597,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// typeId
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& typeId () const;
void typeId (::XMLSchema::string< ACE_TCHAR > const& );
@@ -588,23 +606,24 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > typeId_;
// member
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator member_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator member_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator member_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator member_const_iterator;
member_iterator begin_member ();
member_iterator end_member ();
member_const_iterator begin_member () const;
member_const_iterator end_member () const;
- void add_member (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_member ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_member (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > member_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > member_;
public:
EnumType (::XMLSchema::string< ACE_TCHAR > const& name__,
- ::XMLSchema::string< ACE_TCHAR > const& typeId__);
+ ::XMLSchema::string< ACE_TCHAR > const& typeId__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > const& member__);
EnumType (::XSCRT::XML::Element< ACE_TCHAR > const&);
EnumType (EnumType const& s);
@@ -621,8 +640,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < StructType, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -631,7 +653,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// typeId
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& typeId () const;
void typeId (::XMLSchema::string< ACE_TCHAR > const& );
@@ -640,19 +662,19 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > typeId_;
// member
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::StructMemberType >::iterator member_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::StructMemberType >::const_iterator member_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > >::iterator member_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > >::const_iterator member_const_iterator;
member_iterator begin_member ();
member_iterator end_member ();
member_const_iterator begin_member () const;
member_const_iterator end_member () const;
- void add_member (::CIAO::Config_Handlers::StructMemberType const& );
+ void add_member ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > const& );
size_t count_member (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::StructMemberType > member_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::StructMemberType, ACE_Null_Mutex > > member_;
public:
StructType (::XMLSchema::string< ACE_TCHAR > const& name__,
@@ -673,8 +695,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < StructMemberType, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -683,7 +708,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// type
- //
+ //
public:
::CIAO::Config_Handlers::DataType const& type () const;
void type (::CIAO::Config_Handlers::DataType const& );
@@ -710,8 +735,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ValueType, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -720,7 +748,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// typeId
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& typeId () const;
void typeId (::XMLSchema::string< ACE_TCHAR > const& );
@@ -729,7 +757,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > typeId_;
// modifier
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& modifier () const;
void modifier (::XMLSchema::string< ACE_TCHAR > const& );
@@ -738,7 +766,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > modifier_;
// baseType
- //
+ //
public:
::CIAO::Config_Handlers::DataType const& baseType () const;
void baseType (::CIAO::Config_Handlers::DataType const& );
@@ -747,19 +775,19 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::DataType > baseType_;
// member
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ValueMemberType >::iterator member_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ValueMemberType >::const_iterator member_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > >::iterator member_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > >::const_iterator member_const_iterator;
member_iterator begin_member ();
member_iterator end_member ();
member_const_iterator begin_member () const;
member_const_iterator end_member () const;
- void add_member (::CIAO::Config_Handlers::ValueMemberType const& );
+ void add_member ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > const& );
size_t count_member (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ValueMemberType > member_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ValueMemberType, ACE_Null_Mutex > > member_;
public:
ValueType (::XMLSchema::string< ACE_TCHAR > const& name__,
@@ -782,8 +810,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ValueMemberType, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -792,7 +823,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// visibility
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& visibility () const;
void visibility (::XMLSchema::string< ACE_TCHAR > const& );
@@ -801,7 +832,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > visibility_;
// type
- //
+ //
public:
::CIAO::Config_Handlers::DataType const& type () const;
void type (::CIAO::Config_Handlers::DataType const& );
@@ -829,8 +860,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < NamedValue, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -839,7 +873,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// value
- //
+ //
public:
::CIAO::Config_Handlers::DataValue const& value () const;
void value (::CIAO::Config_Handlers::DataValue const& );
@@ -866,8 +900,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SequenceType, ACE_Null_Mutex > _ptr;
+
// bound
- //
+ //
public:
bool bound_p () const;
::XMLSchema::unsignedInt const& bound () const;
@@ -877,7 +914,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::unsignedInt > bound_;
// elementType
- //
+ //
public:
::CIAO::Config_Handlers::DataType const& elementType () const;
void elementType (::CIAO::Config_Handlers::DataType const& );
@@ -903,8 +940,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Any, ACE_Null_Mutex > _ptr;
+
// type
- //
+ //
public:
::CIAO::Config_Handlers::DataType const& type () const;
void type (::CIAO::Config_Handlers::DataType const& );
@@ -913,7 +953,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::DataType > type_;
// value
- //
+ //
public:
::CIAO::Config_Handlers::DataValue const& value () const;
void value (::CIAO::Config_Handlers::DataValue const& );
@@ -940,8 +980,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Property, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -950,7 +993,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// value
- //
+ //
public:
::CIAO::Config_Handlers::Any const& value () const;
void value (::CIAO::Config_Handlers::Any const& );
@@ -995,10 +1038,10 @@ namespace CIAO
Value
integral () const;
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator== (SatisfierPropertyKind const& a, SatisfierPropertyKind const& b);
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator!= (SatisfierPropertyKind const& a, SatisfierPropertyKind const& b);
private:
@@ -1016,8 +1059,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SatisfierProperty, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1026,7 +1072,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// kind
- //
+ //
public:
::CIAO::Config_Handlers::SatisfierPropertyKind const& kind () const;
void kind (::CIAO::Config_Handlers::SatisfierPropertyKind const& );
@@ -1035,7 +1081,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::SatisfierPropertyKind > kind_;
// dynamic
- //
+ //
public:
::XMLSchema::boolean const& dynamic () const;
void dynamic (::XMLSchema::boolean const& );
@@ -1044,7 +1090,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::boolean > dynamic_;
// value
- //
+ //
public:
::CIAO::Config_Handlers::Any const& value () const;
void value (::CIAO::Config_Handlers::Any const& );
@@ -1073,8 +1119,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Resource, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1083,37 +1132,38 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// resourceType
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator resourceType_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator resourceType_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator resourceType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator resourceType_const_iterator;
resourceType_iterator begin_resourceType ();
resourceType_iterator end_resourceType ();
resourceType_const_iterator begin_resourceType () const;
resourceType_const_iterator end_resourceType () const;
- void add_resourceType (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_resourceType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_resourceType (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > resourceType_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > resourceType_;
// property
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::SatisfierProperty >::iterator property_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::SatisfierProperty >::const_iterator property_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > >::const_iterator property_const_iterator;
property_iterator begin_property ();
property_iterator end_property ();
property_const_iterator begin_property () const;
property_const_iterator end_property () const;
- void add_property (::CIAO::Config_Handlers::SatisfierProperty const& );
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > const& );
size_t count_property (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::SatisfierProperty > property_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > > property_;
public:
- Resource (::XMLSchema::string< ACE_TCHAR > const& name__);
+ Resource (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > const& resourceType__);
Resource (::XSCRT::XML::Element< ACE_TCHAR > const&);
Resource (Resource const& s);
@@ -1130,8 +1180,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Requirement, ACE_Null_Mutex > _ptr;
+
// resourceType
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& resourceType () const;
void resourceType (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1140,7 +1193,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceType_;
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1149,19 +1202,19 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// property
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator property_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator property_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
property_iterator begin_property ();
property_iterator end_property ();
property_const_iterator begin_property () const;
property_const_iterator end_property () const;
- void add_property (::CIAO::Config_Handlers::Property const& );
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_property (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > property_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
public:
Requirement (::XMLSchema::string< ACE_TCHAR > const& resourceType__,
@@ -1182,8 +1235,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ResourceDeploymentDescription, ACE_Null_Mutex > _ptr;
+
// requirementName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& requirementName () const;
void requirementName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1192,7 +1248,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requirementName_;
// resourceName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& resourceName () const;
void resourceName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1201,19 +1257,19 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceName_;
// property
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator property_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator property_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
property_iterator begin_property ();
property_iterator end_property ();
property_const_iterator begin_property () const;
property_const_iterator end_property () const;
- void add_property (::CIAO::Config_Handlers::Property const& );
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_property (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > property_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
public:
ResourceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& requirementName__,
@@ -1234,8 +1290,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ArtifactDeploymentDescription, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1244,22 +1303,22 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// source
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator source_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator source_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator source_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator source_const_iterator;
source_iterator begin_source ();
source_iterator end_source ();
source_const_iterator begin_source () const;
source_const_iterator end_source () const;
- void add_source (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_source ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_source (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > source_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > source_;
// node
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& node () const;
void node (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1268,75 +1327,75 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > node_;
// location
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator location_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator location_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator location_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator location_const_iterator;
location_iterator begin_location ();
location_iterator end_location ();
location_const_iterator begin_location () const;
location_const_iterator end_location () const;
- void add_location (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_location ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_location (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > location_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > location_;
// execParameter
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator execParameter_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator execParameter_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator execParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator execParameter_const_iterator;
execParameter_iterator begin_execParameter ();
execParameter_iterator end_execParameter ();
execParameter_const_iterator begin_execParameter () const;
execParameter_const_iterator end_execParameter () const;
- void add_execParameter (::CIAO::Config_Handlers::Property const& );
+ void add_execParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_execParameter (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > execParameter_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > execParameter_;
// deployRequirement
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::iterator deployRequirement_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::const_iterator deployRequirement_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
deployRequirement_iterator begin_deployRequirement ();
deployRequirement_iterator end_deployRequirement ();
deployRequirement_const_iterator begin_deployRequirement () const;
deployRequirement_const_iterator end_deployRequirement () const;
- void add_deployRequirement (::CIAO::Config_Handlers::Requirement const& );
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
size_t count_deployRequirement (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Requirement > deployRequirement_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
// deployedResource
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ResourceDeploymentDescription >::iterator deployedResource_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ResourceDeploymentDescription >::const_iterator deployedResource_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > >::iterator deployedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > >::const_iterator deployedResource_const_iterator;
deployedResource_iterator begin_deployedResource ();
deployedResource_iterator end_deployedResource ();
deployedResource_const_iterator begin_deployedResource () const;
deployedResource_const_iterator end_deployedResource () const;
- void add_deployedResource (::CIAO::Config_Handlers::ResourceDeploymentDescription const& );
+ void add_deployedResource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > const& );
size_t count_deployedResource (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ResourceDeploymentDescription > deployedResource_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ResourceDeploymentDescription, ACE_Null_Mutex > > deployedResource_;
- // xmi_id
- //
+ // id
+ //
public:
- bool xmi_id_p () const;
- ::XMLSchema::ID< ACE_TCHAR > const& xmi_id () const;
- ::XMLSchema::ID< ACE_TCHAR >& xmi_id ();
- void xmi_id (::XMLSchema::ID< ACE_TCHAR > const& );
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
protected:
- ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > xmi_id_;
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
public:
ArtifactDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
@@ -1357,8 +1416,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < MonolithicDeploymentDescription, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1367,75 +1429,75 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// source
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator source_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator source_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator source_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator source_const_iterator;
source_iterator begin_source ();
source_iterator end_source ();
source_const_iterator begin_source () const;
source_const_iterator end_source () const;
- void add_source (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_source ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_source (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > source_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > source_;
// artifact
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::IdRef >::iterator artifact_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::IdRef >::const_iterator artifact_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > >::iterator artifact_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > >::const_iterator artifact_const_iterator;
artifact_iterator begin_artifact ();
artifact_iterator end_artifact ();
artifact_const_iterator begin_artifact () const;
artifact_const_iterator end_artifact () const;
- void add_artifact (::CIAO::Config_Handlers::IdRef const& );
+ void add_artifact ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > const& );
size_t count_artifact (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::IdRef > artifact_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::IdRef, ACE_Null_Mutex > > artifact_;
// execParameter
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator execParameter_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator execParameter_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator execParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator execParameter_const_iterator;
execParameter_iterator begin_execParameter ();
execParameter_iterator end_execParameter ();
execParameter_const_iterator begin_execParameter () const;
execParameter_const_iterator end_execParameter () const;
- void add_execParameter (::CIAO::Config_Handlers::Property const& );
+ void add_execParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_execParameter (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > execParameter_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > execParameter_;
// deployRequirement
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::iterator deployRequirement_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::const_iterator deployRequirement_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
deployRequirement_iterator begin_deployRequirement ();
deployRequirement_iterator end_deployRequirement ();
deployRequirement_const_iterator begin_deployRequirement () const;
deployRequirement_const_iterator end_deployRequirement () const;
- void add_deployRequirement (::CIAO::Config_Handlers::Requirement const& );
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
size_t count_deployRequirement (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Requirement > deployRequirement_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
- // xmi_id
- //
+ // id
+ //
public:
- bool xmi_id_p () const;
- ::XMLSchema::ID< ACE_TCHAR > const& xmi_id () const;
- ::XMLSchema::ID< ACE_TCHAR >& xmi_id ();
- void xmi_id (::XMLSchema::ID< ACE_TCHAR > const& );
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
protected:
- ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > xmi_id_;
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
public:
MonolithicDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__);
@@ -1472,10 +1534,10 @@ namespace CIAO
Value
integral () const;
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator== (ResourceUsageKind const& a, ResourceUsageKind const& b);
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator!= (ResourceUsageKind const& a, ResourceUsageKind const& b);
private:
@@ -1493,8 +1555,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < InstanceResourceDeploymentDescription, ACE_Null_Mutex > _ptr;
+
// resourceUsage
- //
+ //
public:
::CIAO::Config_Handlers::ResourceUsageKind const& resourceUsage () const;
void resourceUsage (::CIAO::Config_Handlers::ResourceUsageKind const& );
@@ -1503,7 +1568,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::ResourceUsageKind > resourceUsage_;
// requirementName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& requirementName () const;
void requirementName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1512,7 +1577,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requirementName_;
// resourceName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& resourceName () const;
void resourceName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1521,19 +1586,19 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceName_;
// property
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator property_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator property_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
property_iterator begin_property ();
property_iterator end_property ();
property_const_iterator begin_property () const;
property_const_iterator end_property () const;
- void add_property (::CIAO::Config_Handlers::Property const& );
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_property (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > property_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
public:
InstanceResourceDeploymentDescription (::CIAO::Config_Handlers::ResourceUsageKind const& resourceUsage__,
@@ -1555,8 +1620,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < InstanceDeploymentDescription, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1565,7 +1633,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// node
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& node () const;
void node (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1574,7 +1642,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > node_;
// source
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& source () const;
void source (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1583,7 +1651,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > source_;
// implementation
- //
+ //
public:
::CIAO::Config_Handlers::IdRef const& implementation () const;
void implementation (::CIAO::Config_Handlers::IdRef const& );
@@ -1592,37 +1660,37 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::IdRef > implementation_;
// configProperty
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator configProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator configProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
configProperty_iterator begin_configProperty ();
configProperty_iterator end_configProperty ();
configProperty_const_iterator begin_configProperty () const;
configProperty_const_iterator end_configProperty () const;
- void add_configProperty (::CIAO::Config_Handlers::Property const& );
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_configProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > configProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
// deployedResource
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription >::iterator deployedResource_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription >::const_iterator deployedResource_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > >::iterator deployedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > >::const_iterator deployedResource_const_iterator;
deployedResource_iterator begin_deployedResource ();
deployedResource_iterator end_deployedResource ();
deployedResource_const_iterator begin_deployedResource () const;
deployedResource_const_iterator end_deployedResource () const;
- void add_deployedResource (::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& );
+ void add_deployedResource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > const& );
size_t count_deployedResource (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > deployedResource_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription, ACE_Null_Mutex > > deployedResource_;
// deployedSharedResource
- //
+ //
public:
bool deployedSharedResource_p () const;
::CIAO::Config_Handlers::InstanceResourceDeploymentDescription const& deployedSharedResource () const;
@@ -1631,16 +1699,16 @@ namespace CIAO
protected:
::std::auto_ptr< ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription > deployedSharedResource_;
- // xmi_id
- //
+ // id
+ //
public:
- bool xmi_id_p () const;
- ::XMLSchema::ID< ACE_TCHAR > const& xmi_id () const;
- ::XMLSchema::ID< ACE_TCHAR >& xmi_id ();
- void xmi_id (::XMLSchema::ID< ACE_TCHAR > const& );
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
protected:
- ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > xmi_id_;
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
public:
InstanceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& name__,
@@ -1681,10 +1749,10 @@ namespace CIAO
Value
integral () const;
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator== (CCMComponentPortKind const& a, CCMComponentPortKind const& b);
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator!= (CCMComponentPortKind const& a, CCMComponentPortKind const& b);
private:
@@ -1702,8 +1770,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPortDescription, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1712,7 +1783,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// specificType
- //
+ //
public:
bool specificType_p () const;
::XMLSchema::string< ACE_TCHAR > const& specificType () const;
@@ -1722,22 +1793,22 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > specificType_;
// supportedType
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator supportedType_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator supportedType_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator supportedType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator supportedType_const_iterator;
supportedType_iterator begin_supportedType ();
supportedType_iterator end_supportedType ();
supportedType_const_iterator begin_supportedType () const;
supportedType_const_iterator end_supportedType () const;
- void add_supportedType (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_supportedType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_supportedType (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > supportedType_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > supportedType_;
// provider
- //
+ //
public:
::XMLSchema::boolean const& provider () const;
void provider (::XMLSchema::boolean const& );
@@ -1746,7 +1817,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::boolean > provider_;
// exclusiveProvider
- //
+ //
public:
::XMLSchema::boolean const& exclusiveProvider () const;
void exclusiveProvider (::XMLSchema::boolean const& );
@@ -1755,7 +1826,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::boolean > exclusiveProvider_;
// exclusiveUser
- //
+ //
public:
::XMLSchema::boolean const& exclusiveUser () const;
void exclusiveUser (::XMLSchema::boolean const& );
@@ -1764,7 +1835,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::boolean > exclusiveUser_;
// optional
- //
+ //
public:
::XMLSchema::boolean const& optional () const;
void optional (::XMLSchema::boolean const& );
@@ -1773,7 +1844,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::boolean > optional_;
// kind
- //
+ //
public:
::CIAO::Config_Handlers::CCMComponentPortKind const& kind () const;
void kind (::CIAO::Config_Handlers::CCMComponentPortKind const& );
@@ -1804,8 +1875,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPropertyDescription, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1814,7 +1888,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// type
- //
+ //
public:
::CIAO::Config_Handlers::DataType const& type () const;
void type (::CIAO::Config_Handlers::DataType const& );
@@ -1841,8 +1915,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentExternalPortEndpoint, ACE_Null_Mutex > _ptr;
+
// portName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& portName () const;
void portName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1868,8 +1945,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PlanSubcomponentPortEndpoint, ACE_Null_Mutex > _ptr;
+
// portName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& portName () const;
void portName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1878,7 +1958,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > portName_;
// provider
- //
+ //
public:
bool provider_p () const;
::XMLSchema::string< ACE_TCHAR > const& provider () const;
@@ -1888,7 +1968,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > provider_;
// kind
- //
+ //
public:
::CIAO::Config_Handlers::CCMComponentPortKind const& kind () const;
void kind (::CIAO::Config_Handlers::CCMComponentPortKind const& );
@@ -1897,7 +1977,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::CCMComponentPortKind > kind_;
// instance
- //
+ //
public:
::CIAO::Config_Handlers::IdRef const& instance () const;
void instance (::CIAO::Config_Handlers::IdRef const& );
@@ -1925,8 +2005,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ExternalReferenceEndpoint, ACE_Null_Mutex > _ptr;
+
// location
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& location () const;
void location (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1935,7 +2018,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > location_;
// provider
- //
+ //
public:
::XMLSchema::boolean const& provider () const;
void provider (::XMLSchema::boolean const& );
@@ -1944,7 +2027,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::boolean > provider_;
// portName
- //
+ //
public:
bool portName_p () const;
::XMLSchema::string< ACE_TCHAR > const& portName () const;
@@ -1954,19 +2037,19 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > portName_;
// supportedType
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator supportedType_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator supportedType_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator supportedType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator supportedType_const_iterator;
supportedType_iterator begin_supportedType ();
supportedType_iterator end_supportedType ();
supportedType_const_iterator begin_supportedType () const;
supportedType_const_iterator end_supportedType () const;
- void add_supportedType (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_supportedType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_supportedType (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > supportedType_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > supportedType_;
public:
ExternalReferenceEndpoint (::XMLSchema::string< ACE_TCHAR > const& location__,
@@ -1987,8 +2070,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ConnectionResourceDeploymentDescription, ACE_Null_Mutex > _ptr;
+
// targetName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& targetName () const;
void targetName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -1997,7 +2083,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > targetName_;
// requirementName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& requirementName () const;
void requirementName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2006,7 +2092,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > requirementName_;
// resourceName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& resourceName () const;
void resourceName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2015,19 +2101,19 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceName_;
// property
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator property_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator property_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
property_iterator begin_property ();
property_iterator end_property ();
property_const_iterator begin_property () const;
property_const_iterator end_property () const;
- void add_property (::CIAO::Config_Handlers::Property const& );
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_property (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > property_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
public:
ConnectionResourceDeploymentDescription (::XMLSchema::string< ACE_TCHAR > const& targetName__,
@@ -2049,8 +2135,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PlanConnectionDescription, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2059,7 +2148,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// source
- //
+ //
public:
bool source_p () const;
::XMLSchema::string< ACE_TCHAR > const& source () const;
@@ -2069,79 +2158,79 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > source_;
// deployRequirement
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::iterator deployRequirement_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::const_iterator deployRequirement_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
deployRequirement_iterator begin_deployRequirement ();
deployRequirement_iterator end_deployRequirement ();
deployRequirement_const_iterator begin_deployRequirement () const;
deployRequirement_const_iterator end_deployRequirement () const;
- void add_deployRequirement (::CIAO::Config_Handlers::Requirement const& );
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
size_t count_deployRequirement (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Requirement > deployRequirement_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
// externalEndpoint
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ComponentExternalPortEndpoint >::iterator externalEndpoint_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ComponentExternalPortEndpoint >::const_iterator externalEndpoint_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > >::iterator externalEndpoint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > >::const_iterator externalEndpoint_const_iterator;
externalEndpoint_iterator begin_externalEndpoint ();
externalEndpoint_iterator end_externalEndpoint ();
externalEndpoint_const_iterator begin_externalEndpoint () const;
externalEndpoint_const_iterator end_externalEndpoint () const;
- void add_externalEndpoint (::CIAO::Config_Handlers::ComponentExternalPortEndpoint const& );
+ void add_externalEndpoint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > const& );
size_t count_externalEndpoint (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ComponentExternalPortEndpoint > externalEndpoint_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > > externalEndpoint_;
// internalEndpoint
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint >::iterator internalEndpoint_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint >::const_iterator internalEndpoint_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > >::iterator internalEndpoint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > >::const_iterator internalEndpoint_const_iterator;
internalEndpoint_iterator begin_internalEndpoint ();
internalEndpoint_iterator end_internalEndpoint ();
internalEndpoint_const_iterator begin_internalEndpoint () const;
internalEndpoint_const_iterator end_internalEndpoint () const;
- void add_internalEndpoint (::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint const& );
+ void add_internalEndpoint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > const& );
size_t count_internalEndpoint (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint > internalEndpoint_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint, ACE_Null_Mutex > > internalEndpoint_;
// externalReference
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ExternalReferenceEndpoint >::iterator externalReference_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ExternalReferenceEndpoint >::const_iterator externalReference_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > >::iterator externalReference_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > >::const_iterator externalReference_const_iterator;
externalReference_iterator begin_externalReference ();
externalReference_iterator end_externalReference ();
externalReference_const_iterator begin_externalReference () const;
externalReference_const_iterator end_externalReference () const;
- void add_externalReference (::CIAO::Config_Handlers::ExternalReferenceEndpoint const& );
+ void add_externalReference ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > const& );
size_t count_externalReference (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ExternalReferenceEndpoint > externalReference_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > > externalReference_;
// deployedResource
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription >::iterator deployedResource_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription >::const_iterator deployedResource_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > >::iterator deployedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > >::const_iterator deployedResource_const_iterator;
deployedResource_iterator begin_deployedResource ();
deployedResource_iterator end_deployedResource ();
deployedResource_const_iterator begin_deployedResource () const;
deployedResource_const_iterator end_deployedResource () const;
- void add_deployedResource (::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription const& );
+ void add_deployedResource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > const& );
size_t count_deployedResource (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription > deployedResource_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription, ACE_Null_Mutex > > deployedResource_;
public:
PlanConnectionDescription (::XMLSchema::string< ACE_TCHAR > const& name__);
@@ -2161,8 +2250,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ImplementationDependency, ACE_Null_Mutex > _ptr;
+
// requiredType
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& requiredType () const;
void requiredType (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2188,8 +2280,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Capability, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2198,34 +2293,34 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// resourceType
- //
+ //
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator resourceType_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator resourceType_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator resourceType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator resourceType_const_iterator;
resourceType_iterator begin_resourceType ();
resourceType_iterator end_resourceType ();
resourceType_const_iterator begin_resourceType () const;
resourceType_const_iterator end_resourceType () const;
- void add_resourceType (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_resourceType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_resourceType (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > resourceType_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > resourceType_;
// property
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::SatisfierProperty >::iterator property_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::SatisfierProperty >::const_iterator property_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > >::const_iterator property_const_iterator;
property_iterator begin_property ();
property_iterator end_property ();
property_const_iterator begin_property () const;
property_const_iterator end_property () const;
- void add_property (::CIAO::Config_Handlers::SatisfierProperty const& );
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > const& );
size_t count_property (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::SatisfierProperty > property_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SatisfierProperty, ACE_Null_Mutex > > property_;
public:
Capability (::XMLSchema::string< ACE_TCHAR > const& name__);
@@ -2245,8 +2340,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ImplementationRequirement, ACE_Null_Mutex > _ptr;
+
// resourceUsage
- //
+ //
public:
bool resourceUsage_p () const;
::CIAO::Config_Handlers::ResourceUsageKind const& resourceUsage () const;
@@ -2256,7 +2354,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::ResourceUsageKind > resourceUsage_;
// resourcePort
- //
+ //
public:
bool resourcePort_p () const;
::XMLSchema::string< ACE_TCHAR > const& resourcePort () const;
@@ -2266,7 +2364,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourcePort_;
// componentPort
- //
+ //
public:
bool componentPort_p () const;
::XMLSchema::string< ACE_TCHAR > const& componentPort () const;
@@ -2276,7 +2374,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > componentPort_;
// resourceType
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& resourceType () const;
void resourceType (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2285,7 +2383,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > resourceType_;
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2294,19 +2392,19 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// property
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator property_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator property_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator property_const_iterator;
property_iterator begin_property ();
property_iterator end_property ();
property_const_iterator begin_property () const;
property_const_iterator end_property () const;
- void add_property (::CIAO::Config_Handlers::Property const& );
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_property (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > property_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > property_;
public:
ImplementationRequirement (::XMLSchema::string< ACE_TCHAR > const& resourceType__,
@@ -2327,8 +2425,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SubcomponentPortEndpoint, ACE_Null_Mutex > _ptr;
+
// portName
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& portName () const;
void portName (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2337,7 +2438,7 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > portName_;
// instance
- //
+ //
public:
::CIAO::Config_Handlers::IdRef const& instance () const;
void instance (::CIAO::Config_Handlers::IdRef const& );
@@ -2364,8 +2465,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < AssemblyConnectionDescription, ACE_Null_Mutex > _ptr;
+
// name
- //
+ //
public:
::XMLSchema::string< ACE_TCHAR > const& name () const;
void name (::XMLSchema::string< ACE_TCHAR > const& );
@@ -2374,64 +2478,64 @@ namespace CIAO
::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > name_;
// deployRequirement
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::iterator deployRequirement_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::const_iterator deployRequirement_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
deployRequirement_iterator begin_deployRequirement ();
deployRequirement_iterator end_deployRequirement ();
deployRequirement_const_iterator begin_deployRequirement () const;
deployRequirement_const_iterator end_deployRequirement () const;
- void add_deployRequirement (::CIAO::Config_Handlers::Requirement const& );
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
size_t count_deployRequirement (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Requirement > deployRequirement_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
// internalEndpoint
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentPortEndpoint >::iterator internalEndpoint_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentPortEndpoint >::const_iterator internalEndpoint_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > >::iterator internalEndpoint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > >::const_iterator internalEndpoint_const_iterator;
internalEndpoint_iterator begin_internalEndpoint ();
internalEndpoint_iterator end_internalEndpoint ();
internalEndpoint_const_iterator begin_internalEndpoint () const;
internalEndpoint_const_iterator end_internalEndpoint () const;
- void add_internalEndpoint (::CIAO::Config_Handlers::SubcomponentPortEndpoint const& );
+ void add_internalEndpoint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > const& );
size_t count_internalEndpoint (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::SubcomponentPortEndpoint > internalEndpoint_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPortEndpoint, ACE_Null_Mutex > > internalEndpoint_;
// externalEndpoint
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ComponentExternalPortEndpoint >::iterator externalEndpoint_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ComponentExternalPortEndpoint >::const_iterator externalEndpoint_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > >::iterator externalEndpoint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > >::const_iterator externalEndpoint_const_iterator;
externalEndpoint_iterator begin_externalEndpoint ();
externalEndpoint_iterator end_externalEndpoint ();
externalEndpoint_const_iterator begin_externalEndpoint () const;
externalEndpoint_const_iterator end_externalEndpoint () const;
- void add_externalEndpoint (::CIAO::Config_Handlers::ComponentExternalPortEndpoint const& );
+ void add_externalEndpoint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > const& );
size_t count_externalEndpoint (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ComponentExternalPortEndpoint > externalEndpoint_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentExternalPortEndpoint, ACE_Null_Mutex > > externalEndpoint_;
// externalReference
- //
+ //
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ExternalReferenceEndpoint >::iterator externalReference_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ExternalReferenceEndpoint >::const_iterator externalReference_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > >::iterator externalReference_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > >::const_iterator externalReference_const_iterator;
externalReference_iterator begin_externalReference ();
externalReference_iterator end_externalReference ();
externalReference_const_iterator begin_externalReference () const;
externalReference_const_iterator end_externalReference () const;
- void add_externalReference (::CIAO::Config_Handlers::ExternalReferenceEndpoint const& );
+ void add_externalReference ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > const& );
size_t count_externalReference (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ExternalReferenceEndpoint > externalReference_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ExternalReferenceEndpoint, ACE_Null_Mutex > > externalReference_;
public:
AssemblyConnectionDescription (::XMLSchema::string< ACE_TCHAR > const& name__);
@@ -2466,10 +2570,10 @@ namespace CIAO
Value
integral () const;
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator== (PlanLocalityKind const& a, PlanLocalityKind const& b);
- friend bool XSC_XML_Handlers_Export
+ friend bool XSC_XML_Handlers_Export
operator!= (PlanLocalityKind const& a, PlanLocalityKind const& b);
private:
@@ -2487,8 +2591,11 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PlanLocality, ACE_Null_Mutex > _ptr;
+
// constraint
- //
+ //
public:
::CIAO::Config_Handlers::PlanLocalityKind const& constraint () const;
void constraint (::CIAO::Config_Handlers::PlanLocalityKind const& );
@@ -2497,7 +2604,7 @@ namespace CIAO
::std::auto_ptr< ::CIAO::Config_Handlers::PlanLocalityKind > constraint_;
// constrainedInstance
- //
+ //
public:
::CIAO::Config_Handlers::IdRef const& constrainedInstance () const;
void constrainedInstance (::CIAO::Config_Handlers::IdRef const& );
@@ -2666,16 +2773,16 @@ namespace CIAO
alias_none (Type const&);
virtual void
- xmi_id (Type&);
+ id (Type&);
virtual void
- xmi_id (Type const&);
+ id (Type const&);
virtual void
- xmi_id_none (Type&);
+ id_none (Type&);
virtual void
- xmi_id_none (Type const&);
+ id_none (Type const&);
virtual void
post (Type&);
@@ -3900,6 +4007,12 @@ namespace CIAO
source_post (Type const&);
virtual void
+ source_none (Type&);
+
+ virtual void
+ source_none (Type const&);
+
+ virtual void
node (Type&);
virtual void
@@ -3930,6 +4043,12 @@ namespace CIAO
location_post (Type const&);
virtual void
+ location_none (Type&);
+
+ virtual void
+ location_none (Type const&);
+
+ virtual void
execParameter (Type&);
virtual void
@@ -4020,16 +4139,16 @@ namespace CIAO
deployedResource_none (Type const&);
virtual void
- xmi_id (Type&);
+ id (Type&);
virtual void
- xmi_id (Type const&);
+ id (Type const&);
virtual void
- xmi_id_none (Type&);
+ id_none (Type&);
virtual void
- xmi_id_none (Type const&);
+ id_none (Type const&);
virtual void
post (Type&);
@@ -4083,6 +4202,12 @@ namespace CIAO
source_post (Type const&);
virtual void
+ source_none (Type&);
+
+ virtual void
+ source_none (Type const&);
+
+ virtual void
artifact (Type&);
virtual void
@@ -4107,6 +4232,12 @@ namespace CIAO
artifact_post (Type const&);
virtual void
+ artifact_none (Type&);
+
+ virtual void
+ artifact_none (Type const&);
+
+ virtual void
execParameter (Type&);
virtual void
@@ -4167,16 +4298,16 @@ namespace CIAO
deployRequirement_none (Type const&);
virtual void
- xmi_id (Type&);
+ id (Type&);
virtual void
- xmi_id (Type const&);
+ id (Type const&);
virtual void
- xmi_id_none (Type&);
+ id_none (Type&);
virtual void
- xmi_id_none (Type const&);
+ id_none (Type const&);
virtual void
post (Type&);
@@ -4369,16 +4500,16 @@ namespace CIAO
deployedSharedResource_none (Type const&);
virtual void
- xmi_id (Type&);
+ id (Type&);
virtual void
- xmi_id (Type const&);
+ id (Type const&);
virtual void
- xmi_id_none (Type&);
+ id_none (Type&);
virtual void
- xmi_id_none (Type const&);
+ id_none (Type const&);
virtual void
post (Type&);
@@ -4664,6 +4795,12 @@ namespace CIAO
supportedType_post (Type const&);
virtual void
+ supportedType_none (Type&);
+
+ virtual void
+ supportedType_none (Type const&);
+
+ virtual void
post (Type&);
virtual void
@@ -5000,6 +5137,12 @@ namespace CIAO
resourceType_post (Type const&);
virtual void
+ resourceType_none (Type&);
+
+ virtual void
+ resourceType_none (Type const&);
+
+ virtual void
property (Type&);
virtual void
@@ -5363,42 +5506,36 @@ namespace CIAO
{
namespace Writer
{
- struct IdRef : Traversal::IdRef,
+ struct IdRef : Traversal::IdRef,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::IdRef Type;
IdRef (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
href (Type &o)
{
-
this->href (const_cast <Type const &> (o));
}
-
virtual void
href (Type const&);
- virtual void
+ virtual void
idref (Type &o)
{
-
this->idref (const_cast <Type const &> (o));
}
-
virtual void
idref (Type const&);
@@ -5406,12 +5543,12 @@ namespace CIAO
IdRef ();
};
- struct TCKind : Traversal::TCKind,
+ struct TCKind : Traversal::TCKind,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
TCKind (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
this->traverse (const_cast <Type const &> (o));
@@ -5424,613 +5561,505 @@ namespace CIAO
TCKind ();
};
- struct DataType : Traversal::DataType,
+ struct DataType : Traversal::DataType,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::DataType Type;
DataType (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
kind (Type &o)
{
-
this->kind (const_cast <Type const &> (o));
}
-
virtual void
kind (Type const&);
- virtual void
+ virtual void
enum_ (Type &o)
{
-
this->enum_ (const_cast <Type const &> (o));
}
-
virtual void
enum_ (Type const&);
- virtual void
+ virtual void
struct_ (Type &o)
{
-
this->struct_ (const_cast <Type const &> (o));
}
-
virtual void
struct_ (Type const&);
- virtual void
+ virtual void
value (Type &o)
{
-
this->value (const_cast <Type const &> (o));
}
-
virtual void
value (Type const&);
- virtual void
+ virtual void
sequence (Type &o)
{
-
this->sequence (const_cast <Type const &> (o));
}
-
virtual void
sequence (Type const&);
- virtual void
+ virtual void
alias (Type &o)
{
-
this->alias (const_cast <Type const &> (o));
}
-
virtual void
alias (Type const&);
- virtual void
- xmi_id (Type &o)
+ virtual void
+ id (Type &o)
{
-
- this->xmi_id (const_cast <Type const &> (o));
+ this->id (const_cast <Type const &> (o));
}
-
virtual void
- xmi_id (Type const&);
+ id (Type const&);
protected:
DataType ();
};
- struct DataValue : Traversal::DataValue,
+ struct DataValue : Traversal::DataValue,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::DataValue Type;
DataValue (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
short_pre (Type &o)
{
-
this->short_pre (const_cast <Type const &> (o));
}
-
virtual void
short_pre (Type const&);
- virtual void
+ virtual void
short_next (Type &o)
{
-
this->short_next (const_cast <Type const &> (o));
}
-
virtual void
short_next (Type const&);
- virtual void
+ virtual void
short_post (Type &o)
{
-
this->short_post (const_cast <Type const &> (o));
}
-
virtual void
short_post (Type const&);
- virtual void
+ virtual void
long_pre (Type &o)
{
-
this->long_pre (const_cast <Type const &> (o));
}
-
virtual void
long_pre (Type const&);
- virtual void
+ virtual void
long_next (Type &o)
{
-
this->long_next (const_cast <Type const &> (o));
}
-
virtual void
long_next (Type const&);
- virtual void
+ virtual void
long_post (Type &o)
{
-
this->long_post (const_cast <Type const &> (o));
}
-
virtual void
long_post (Type const&);
- virtual void
+ virtual void
ushort_pre (Type &o)
{
-
this->ushort_pre (const_cast <Type const &> (o));
}
-
virtual void
ushort_pre (Type const&);
- virtual void
+ virtual void
ushort_next (Type &o)
{
-
this->ushort_next (const_cast <Type const &> (o));
}
-
virtual void
ushort_next (Type const&);
- virtual void
+ virtual void
ushort_post (Type &o)
{
-
this->ushort_post (const_cast <Type const &> (o));
}
-
virtual void
ushort_post (Type const&);
- virtual void
+ virtual void
ulong_pre (Type &o)
{
-
this->ulong_pre (const_cast <Type const &> (o));
}
-
virtual void
ulong_pre (Type const&);
- virtual void
+ virtual void
ulong_next (Type &o)
{
-
this->ulong_next (const_cast <Type const &> (o));
}
-
virtual void
ulong_next (Type const&);
- virtual void
+ virtual void
ulong_post (Type &o)
{
-
this->ulong_post (const_cast <Type const &> (o));
}
-
virtual void
ulong_post (Type const&);
- virtual void
+ virtual void
float_pre (Type &o)
{
-
this->float_pre (const_cast <Type const &> (o));
}
-
virtual void
float_pre (Type const&);
- virtual void
+ virtual void
float_next (Type &o)
{
-
this->float_next (const_cast <Type const &> (o));
}
-
virtual void
float_next (Type const&);
- virtual void
+ virtual void
float_post (Type &o)
{
-
this->float_post (const_cast <Type const &> (o));
}
-
virtual void
float_post (Type const&);
- virtual void
+ virtual void
double_pre (Type &o)
{
-
this->double_pre (const_cast <Type const &> (o));
}
-
virtual void
double_pre (Type const&);
- virtual void
+ virtual void
double_next (Type &o)
{
-
this->double_next (const_cast <Type const &> (o));
}
-
virtual void
double_next (Type const&);
- virtual void
+ virtual void
double_post (Type &o)
{
-
this->double_post (const_cast <Type const &> (o));
}
-
virtual void
double_post (Type const&);
- virtual void
+ virtual void
boolean_pre (Type &o)
{
-
this->boolean_pre (const_cast <Type const &> (o));
}
-
virtual void
boolean_pre (Type const&);
- virtual void
+ virtual void
boolean_next (Type &o)
{
-
this->boolean_next (const_cast <Type const &> (o));
}
-
virtual void
boolean_next (Type const&);
- virtual void
+ virtual void
boolean_post (Type &o)
{
-
this->boolean_post (const_cast <Type const &> (o));
}
-
virtual void
boolean_post (Type const&);
- virtual void
+ virtual void
octet_pre (Type &o)
{
-
this->octet_pre (const_cast <Type const &> (o));
}
-
virtual void
octet_pre (Type const&);
- virtual void
+ virtual void
octet_next (Type &o)
{
-
this->octet_next (const_cast <Type const &> (o));
}
-
virtual void
octet_next (Type const&);
- virtual void
+ virtual void
octet_post (Type &o)
{
-
this->octet_post (const_cast <Type const &> (o));
}
-
virtual void
octet_post (Type const&);
- virtual void
+ virtual void
enum_pre (Type &o)
{
-
this->enum_pre (const_cast <Type const &> (o));
}
-
virtual void
enum_pre (Type const&);
- virtual void
+ virtual void
enum_next (Type &o)
{
-
this->enum_next (const_cast <Type const &> (o));
}
-
virtual void
enum_next (Type const&);
- virtual void
+ virtual void
enum_post (Type &o)
{
-
this->enum_post (const_cast <Type const &> (o));
}
-
virtual void
enum_post (Type const&);
- virtual void
+ virtual void
string_pre (Type &o)
{
-
this->string_pre (const_cast <Type const &> (o));
}
-
virtual void
string_pre (Type const&);
- virtual void
+ virtual void
string_next (Type &o)
{
-
this->string_next (const_cast <Type const &> (o));
}
-
virtual void
string_next (Type const&);
- virtual void
+ virtual void
string_post (Type &o)
{
-
this->string_post (const_cast <Type const &> (o));
}
-
virtual void
string_post (Type const&);
- virtual void
+ virtual void
longlong_pre (Type &o)
{
-
this->longlong_pre (const_cast <Type const &> (o));
}
-
virtual void
longlong_pre (Type const&);
- virtual void
+ virtual void
longlong_next (Type &o)
{
-
this->longlong_next (const_cast <Type const &> (o));
}
-
virtual void
longlong_next (Type const&);
- virtual void
+ virtual void
longlong_post (Type &o)
{
-
this->longlong_post (const_cast <Type const &> (o));
}
-
virtual void
longlong_post (Type const&);
- virtual void
+ virtual void
ulonglong_pre (Type &o)
{
-
this->ulonglong_pre (const_cast <Type const &> (o));
}
-
virtual void
ulonglong_pre (Type const&);
- virtual void
+ virtual void
ulonglong_next (Type &o)
{
-
this->ulonglong_next (const_cast <Type const &> (o));
}
-
virtual void
ulonglong_next (Type const&);
- virtual void
+ virtual void
ulonglong_post (Type &o)
{
-
this->ulonglong_post (const_cast <Type const &> (o));
}
-
virtual void
ulonglong_post (Type const&);
- virtual void
+ virtual void
longdouble_pre (Type &o)
{
-
this->longdouble_pre (const_cast <Type const &> (o));
}
-
virtual void
longdouble_pre (Type const&);
- virtual void
+ virtual void
longdouble_next (Type &o)
{
-
this->longdouble_next (const_cast <Type const &> (o));
}
-
virtual void
longdouble_next (Type const&);
- virtual void
+ virtual void
longdouble_post (Type &o)
{
-
this->longdouble_post (const_cast <Type const &> (o));
}
-
virtual void
longdouble_post (Type const&);
- virtual void
+ virtual void
element_pre (Type &o)
{
-
this->element_pre (const_cast <Type const &> (o));
}
-
virtual void
element_pre (Type const&);
- virtual void
+ virtual void
element_next (Type &o)
{
-
this->element_next (const_cast <Type const &> (o));
}
-
virtual void
element_next (Type const&);
- virtual void
+ virtual void
element_post (Type &o)
{
-
this->element_post (const_cast <Type const &> (o));
}
-
virtual void
element_post (Type const&);
- virtual void
+ virtual void
member_pre (Type &o)
{
-
this->member_pre (const_cast <Type const &> (o));
}
-
virtual void
member_pre (Type const&);
- virtual void
+ virtual void
member_next (Type &o)
{
-
this->member_next (const_cast <Type const &> (o));
}
-
virtual void
member_next (Type const&);
- virtual void
+ virtual void
member_post (Type &o)
{
-
this->member_post (const_cast <Type const &> (o));
}
-
virtual void
member_post (Type const&);
@@ -6038,53 +6067,45 @@ namespace CIAO
DataValue ();
};
- struct AliasType : Traversal::AliasType,
+ struct AliasType : Traversal::AliasType,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::AliasType Type;
AliasType (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
typeId (Type &o)
{
-
this->typeId (const_cast <Type const &> (o));
}
-
virtual void
typeId (Type const&);
- virtual void
+ virtual void
elementType (Type &o)
{
-
this->elementType (const_cast <Type const &> (o));
}
-
virtual void
elementType (Type const&);
@@ -6092,75 +6113,63 @@ namespace CIAO
AliasType ();
};
- struct EnumType : Traversal::EnumType,
+ struct EnumType : Traversal::EnumType,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::EnumType Type;
EnumType (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
typeId (Type &o)
{
-
this->typeId (const_cast <Type const &> (o));
}
-
virtual void
typeId (Type const&);
- virtual void
+ virtual void
member_pre (Type &o)
{
-
this->member_pre (const_cast <Type const &> (o));
}
-
virtual void
member_pre (Type const&);
- virtual void
+ virtual void
member_next (Type &o)
{
-
this->member_next (const_cast <Type const &> (o));
}
-
virtual void
member_next (Type const&);
- virtual void
+ virtual void
member_post (Type &o)
{
-
this->member_post (const_cast <Type const &> (o));
}
-
virtual void
member_post (Type const&);
@@ -6168,75 +6177,63 @@ namespace CIAO
EnumType ();
};
- struct StructType : Traversal::StructType,
+ struct StructType : Traversal::StructType,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::StructType Type;
StructType (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
typeId (Type &o)
{
-
this->typeId (const_cast <Type const &> (o));
}
-
virtual void
typeId (Type const&);
- virtual void
+ virtual void
member_pre (Type &o)
{
-
this->member_pre (const_cast <Type const &> (o));
}
-
virtual void
member_pre (Type const&);
- virtual void
+ virtual void
member_next (Type &o)
{
-
this->member_next (const_cast <Type const &> (o));
}
-
virtual void
member_next (Type const&);
- virtual void
+ virtual void
member_post (Type &o)
{
-
this->member_post (const_cast <Type const &> (o));
}
-
virtual void
member_post (Type const&);
@@ -6244,42 +6241,36 @@ namespace CIAO
StructType ();
};
- struct StructMemberType : Traversal::StructMemberType,
+ struct StructMemberType : Traversal::StructMemberType,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::StructMemberType Type;
StructMemberType (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
type (Type &o)
{
-
this->type (const_cast <Type const &> (o));
}
-
virtual void
type (Type const&);
@@ -6287,97 +6278,81 @@ namespace CIAO
StructMemberType ();
};
- struct ValueType : Traversal::ValueType,
+ struct ValueType : Traversal::ValueType,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ValueType Type;
ValueType (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
typeId (Type &o)
{
-
this->typeId (const_cast <Type const &> (o));
}
-
virtual void
typeId (Type const&);
- virtual void
+ virtual void
modifier (Type &o)
{
-
this->modifier (const_cast <Type const &> (o));
}
-
virtual void
modifier (Type const&);
- virtual void
+ virtual void
baseType (Type &o)
{
-
this->baseType (const_cast <Type const &> (o));
}
-
virtual void
baseType (Type const&);
- virtual void
+ virtual void
member_pre (Type &o)
{
-
this->member_pre (const_cast <Type const &> (o));
}
-
virtual void
member_pre (Type const&);
- virtual void
+ virtual void
member_next (Type &o)
{
-
this->member_next (const_cast <Type const &> (o));
}
-
virtual void
member_next (Type const&);
- virtual void
+ virtual void
member_post (Type &o)
{
-
this->member_post (const_cast <Type const &> (o));
}
-
virtual void
member_post (Type const&);
@@ -6385,53 +6360,45 @@ namespace CIAO
ValueType ();
};
- struct ValueMemberType : Traversal::ValueMemberType,
+ struct ValueMemberType : Traversal::ValueMemberType,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ValueMemberType Type;
ValueMemberType (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
visibility (Type &o)
{
-
this->visibility (const_cast <Type const &> (o));
}
-
virtual void
visibility (Type const&);
- virtual void
+ virtual void
type (Type &o)
{
-
this->type (const_cast <Type const &> (o));
}
-
virtual void
type (Type const&);
@@ -6439,42 +6406,36 @@ namespace CIAO
ValueMemberType ();
};
- struct NamedValue : Traversal::NamedValue,
+ struct NamedValue : Traversal::NamedValue,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::NamedValue Type;
NamedValue (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
value (Type &o)
{
-
this->value (const_cast <Type const &> (o));
}
-
virtual void
value (Type const&);
@@ -6482,42 +6443,36 @@ namespace CIAO
NamedValue ();
};
- struct SequenceType : Traversal::SequenceType,
+ struct SequenceType : Traversal::SequenceType,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::SequenceType Type;
SequenceType (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
bound (Type &o)
{
-
this->bound (const_cast <Type const &> (o));
}
-
virtual void
bound (Type const&);
- virtual void
+ virtual void
elementType (Type &o)
{
-
this->elementType (const_cast <Type const &> (o));
}
-
virtual void
elementType (Type const&);
@@ -6525,42 +6480,36 @@ namespace CIAO
SequenceType ();
};
- struct Any : Traversal::Any,
+ struct Any : Traversal::Any,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::Any Type;
Any (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
type (Type &o)
{
-
this->type (const_cast <Type const &> (o));
}
-
virtual void
type (Type const&);
- virtual void
+ virtual void
value (Type &o)
{
-
this->value (const_cast <Type const &> (o));
}
-
virtual void
value (Type const&);
@@ -6568,42 +6517,36 @@ namespace CIAO
Any ();
};
- struct Property : Traversal::Property,
+ struct Property : Traversal::Property,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::Property Type;
Property (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
value (Type &o)
{
-
this->value (const_cast <Type const &> (o));
}
-
virtual void
value (Type const&);
@@ -6611,12 +6554,12 @@ namespace CIAO
Property ();
};
- struct SatisfierPropertyKind : Traversal::SatisfierPropertyKind,
+ struct SatisfierPropertyKind : Traversal::SatisfierPropertyKind,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
SatisfierPropertyKind (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
this->traverse (const_cast <Type const &> (o));
@@ -6629,64 +6572,54 @@ namespace CIAO
SatisfierPropertyKind ();
};
- struct SatisfierProperty : Traversal::SatisfierProperty,
+ struct SatisfierProperty : Traversal::SatisfierProperty,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::SatisfierProperty Type;
SatisfierProperty (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
kind (Type &o)
{
-
this->kind (const_cast <Type const &> (o));
}
-
virtual void
kind (Type const&);
- virtual void
+ virtual void
dynamic (Type &o)
{
-
this->dynamic (const_cast <Type const &> (o));
}
-
virtual void
dynamic (Type const&);
- virtual void
+ virtual void
value (Type &o)
{
-
this->value (const_cast <Type const &> (o));
}
-
virtual void
value (Type const&);
@@ -6694,97 +6627,81 @@ namespace CIAO
SatisfierProperty ();
};
- struct Resource : Traversal::Resource,
+ struct Resource : Traversal::Resource,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::Resource Type;
Resource (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
resourceType_pre (Type &o)
{
-
this->resourceType_pre (const_cast <Type const &> (o));
}
-
virtual void
resourceType_pre (Type const&);
- virtual void
+ virtual void
resourceType_next (Type &o)
{
-
this->resourceType_next (const_cast <Type const &> (o));
}
-
virtual void
resourceType_next (Type const&);
- virtual void
+ virtual void
resourceType_post (Type &o)
{
-
this->resourceType_post (const_cast <Type const &> (o));
}
-
virtual void
resourceType_post (Type const&);
- virtual void
+ virtual void
property_pre (Type &o)
{
-
this->property_pre (const_cast <Type const &> (o));
}
-
virtual void
property_pre (Type const&);
- virtual void
+ virtual void
property_next (Type &o)
{
-
this->property_next (const_cast <Type const &> (o));
}
-
virtual void
property_next (Type const&);
- virtual void
+ virtual void
property_post (Type &o)
{
-
this->property_post (const_cast <Type const &> (o));
}
-
virtual void
property_post (Type const&);
@@ -6792,75 +6709,63 @@ namespace CIAO
Resource ();
};
- struct Requirement : Traversal::Requirement,
+ struct Requirement : Traversal::Requirement,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::Requirement Type;
Requirement (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
resourceType (Type &o)
{
-
this->resourceType (const_cast <Type const &> (o));
}
-
virtual void
resourceType (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
property_pre (Type &o)
{
-
this->property_pre (const_cast <Type const &> (o));
}
-
virtual void
property_pre (Type const&);
- virtual void
+ virtual void
property_next (Type &o)
{
-
this->property_next (const_cast <Type const &> (o));
}
-
virtual void
property_next (Type const&);
- virtual void
+ virtual void
property_post (Type &o)
{
-
this->property_post (const_cast <Type const &> (o));
}
-
virtual void
property_post (Type const&);
@@ -6868,75 +6773,63 @@ namespace CIAO
Requirement ();
};
- struct ResourceDeploymentDescription : Traversal::ResourceDeploymentDescription,
+ struct ResourceDeploymentDescription : Traversal::ResourceDeploymentDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ResourceDeploymentDescription Type;
ResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
requirementName (Type &o)
{
-
this->requirementName (const_cast <Type const &> (o));
}
-
virtual void
requirementName (Type const&);
- virtual void
+ virtual void
resourceName (Type &o)
{
-
this->resourceName (const_cast <Type const &> (o));
}
-
virtual void
resourceName (Type const&);
- virtual void
+ virtual void
property_pre (Type &o)
{
-
this->property_pre (const_cast <Type const &> (o));
}
-
virtual void
property_pre (Type const&);
- virtual void
+ virtual void
property_next (Type &o)
{
-
this->property_next (const_cast <Type const &> (o));
}
-
virtual void
property_next (Type const&);
- virtual void
+ virtual void
property_post (Type &o)
{
-
this->property_post (const_cast <Type const &> (o));
}
-
virtual void
property_post (Type const&);
@@ -6944,406 +6837,338 @@ namespace CIAO
ResourceDeploymentDescription ();
};
- struct ArtifactDeploymentDescription : Traversal::ArtifactDeploymentDescription,
+ struct ArtifactDeploymentDescription : Traversal::ArtifactDeploymentDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ArtifactDeploymentDescription Type;
ArtifactDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
source_pre (Type &o)
{
-
this->source_pre (const_cast <Type const &> (o));
}
-
virtual void
source_pre (Type const&);
- virtual void
+ virtual void
source_next (Type &o)
{
-
this->source_next (const_cast <Type const &> (o));
}
-
virtual void
source_next (Type const&);
- virtual void
+ virtual void
source_post (Type &o)
{
-
this->source_post (const_cast <Type const &> (o));
}
-
virtual void
source_post (Type const&);
- virtual void
+ virtual void
node (Type &o)
{
-
this->node (const_cast <Type const &> (o));
}
-
virtual void
node (Type const&);
- virtual void
+ virtual void
location_pre (Type &o)
{
-
this->location_pre (const_cast <Type const &> (o));
}
-
virtual void
location_pre (Type const&);
- virtual void
+ virtual void
location_next (Type &o)
{
-
this->location_next (const_cast <Type const &> (o));
}
-
virtual void
location_next (Type const&);
- virtual void
+ virtual void
location_post (Type &o)
{
-
this->location_post (const_cast <Type const &> (o));
}
-
virtual void
location_post (Type const&);
- virtual void
+ virtual void
execParameter_pre (Type &o)
{
-
this->execParameter_pre (const_cast <Type const &> (o));
}
-
virtual void
execParameter_pre (Type const&);
- virtual void
+ virtual void
execParameter_next (Type &o)
{
-
this->execParameter_next (const_cast <Type const &> (o));
}
-
virtual void
execParameter_next (Type const&);
- virtual void
+ virtual void
execParameter_post (Type &o)
{
-
this->execParameter_post (const_cast <Type const &> (o));
}
-
virtual void
execParameter_post (Type const&);
- virtual void
+ virtual void
deployRequirement_pre (Type &o)
{
-
this->deployRequirement_pre (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_pre (Type const&);
- virtual void
+ virtual void
deployRequirement_next (Type &o)
{
-
this->deployRequirement_next (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_next (Type const&);
- virtual void
+ virtual void
deployRequirement_post (Type &o)
{
-
this->deployRequirement_post (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_post (Type const&);
- virtual void
+ virtual void
deployedResource_pre (Type &o)
{
-
this->deployedResource_pre (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_pre (Type const&);
- virtual void
+ virtual void
deployedResource_next (Type &o)
{
-
this->deployedResource_next (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_next (Type const&);
- virtual void
+ virtual void
deployedResource_post (Type &o)
{
-
this->deployedResource_post (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_post (Type const&);
- virtual void
- xmi_id (Type &o)
+ virtual void
+ id (Type &o)
{
-
- this->xmi_id (const_cast <Type const &> (o));
+ this->id (const_cast <Type const &> (o));
}
-
virtual void
- xmi_id (Type const&);
+ id (Type const&);
protected:
ArtifactDeploymentDescription ();
};
- struct MonolithicDeploymentDescription : Traversal::MonolithicDeploymentDescription,
+ struct MonolithicDeploymentDescription : Traversal::MonolithicDeploymentDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::MonolithicDeploymentDescription Type;
MonolithicDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
source_pre (Type &o)
{
-
this->source_pre (const_cast <Type const &> (o));
}
-
virtual void
source_pre (Type const&);
- virtual void
+ virtual void
source_next (Type &o)
{
-
this->source_next (const_cast <Type const &> (o));
}
-
virtual void
source_next (Type const&);
- virtual void
+ virtual void
source_post (Type &o)
{
-
this->source_post (const_cast <Type const &> (o));
}
-
virtual void
source_post (Type const&);
- virtual void
+ virtual void
artifact_pre (Type &o)
{
-
this->artifact_pre (const_cast <Type const &> (o));
}
-
virtual void
artifact_pre (Type const&);
- virtual void
+ virtual void
artifact_next (Type &o)
{
-
this->artifact_next (const_cast <Type const &> (o));
}
-
virtual void
artifact_next (Type const&);
- virtual void
+ virtual void
artifact_post (Type &o)
{
-
this->artifact_post (const_cast <Type const &> (o));
}
-
virtual void
artifact_post (Type const&);
- virtual void
+ virtual void
execParameter_pre (Type &o)
{
-
this->execParameter_pre (const_cast <Type const &> (o));
}
-
virtual void
execParameter_pre (Type const&);
- virtual void
+ virtual void
execParameter_next (Type &o)
{
-
this->execParameter_next (const_cast <Type const &> (o));
}
-
virtual void
execParameter_next (Type const&);
- virtual void
+ virtual void
execParameter_post (Type &o)
{
-
this->execParameter_post (const_cast <Type const &> (o));
}
-
virtual void
execParameter_post (Type const&);
- virtual void
+ virtual void
deployRequirement_pre (Type &o)
{
-
this->deployRequirement_pre (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_pre (Type const&);
- virtual void
+ virtual void
deployRequirement_next (Type &o)
{
-
this->deployRequirement_next (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_next (Type const&);
- virtual void
+ virtual void
deployRequirement_post (Type &o)
{
-
this->deployRequirement_post (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_post (Type const&);
- virtual void
- xmi_id (Type &o)
+ virtual void
+ id (Type &o)
{
-
- this->xmi_id (const_cast <Type const &> (o));
+ this->id (const_cast <Type const &> (o));
}
-
virtual void
- xmi_id (Type const&);
+ id (Type const&);
protected:
MonolithicDeploymentDescription ();
};
- struct ResourceUsageKind : Traversal::ResourceUsageKind,
+ struct ResourceUsageKind : Traversal::ResourceUsageKind,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
ResourceUsageKind (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
this->traverse (const_cast <Type const &> (o));
@@ -7356,86 +7181,72 @@ namespace CIAO
ResourceUsageKind ();
};
- struct InstanceResourceDeploymentDescription : Traversal::InstanceResourceDeploymentDescription,
+ struct InstanceResourceDeploymentDescription : Traversal::InstanceResourceDeploymentDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::InstanceResourceDeploymentDescription Type;
InstanceResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
resourceUsage (Type &o)
{
-
this->resourceUsage (const_cast <Type const &> (o));
}
-
virtual void
resourceUsage (Type const&);
- virtual void
+ virtual void
requirementName (Type &o)
{
-
this->requirementName (const_cast <Type const &> (o));
}
-
virtual void
requirementName (Type const&);
- virtual void
+ virtual void
resourceName (Type &o)
{
-
this->resourceName (const_cast <Type const &> (o));
}
-
virtual void
resourceName (Type const&);
- virtual void
+ virtual void
property_pre (Type &o)
{
-
this->property_pre (const_cast <Type const &> (o));
}
-
virtual void
property_pre (Type const&);
- virtual void
+ virtual void
property_next (Type &o)
{
-
this->property_next (const_cast <Type const &> (o));
}
-
virtual void
property_next (Type const&);
- virtual void
+ virtual void
property_post (Type &o)
{
-
this->property_post (const_cast <Type const &> (o));
}
-
virtual void
property_post (Type const&);
@@ -7443,165 +7254,139 @@ namespace CIAO
InstanceResourceDeploymentDescription ();
};
- struct InstanceDeploymentDescription : Traversal::InstanceDeploymentDescription,
+ struct InstanceDeploymentDescription : Traversal::InstanceDeploymentDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::InstanceDeploymentDescription Type;
InstanceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
node (Type &o)
{
-
this->node (const_cast <Type const &> (o));
}
-
virtual void
node (Type const&);
- virtual void
+ virtual void
source (Type &o)
{
-
this->source (const_cast <Type const &> (o));
}
-
virtual void
source (Type const&);
- virtual void
+ virtual void
implementation (Type &o)
{
-
this->implementation (const_cast <Type const &> (o));
}
-
virtual void
implementation (Type const&);
- virtual void
+ virtual void
configProperty_pre (Type &o)
{
-
this->configProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
configProperty_pre (Type const&);
- virtual void
+ virtual void
configProperty_next (Type &o)
{
-
this->configProperty_next (const_cast <Type const &> (o));
}
-
virtual void
configProperty_next (Type const&);
- virtual void
+ virtual void
configProperty_post (Type &o)
{
-
this->configProperty_post (const_cast <Type const &> (o));
}
-
virtual void
configProperty_post (Type const&);
- virtual void
+ virtual void
deployedResource_pre (Type &o)
{
-
this->deployedResource_pre (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_pre (Type const&);
- virtual void
+ virtual void
deployedResource_next (Type &o)
{
-
this->deployedResource_next (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_next (Type const&);
- virtual void
+ virtual void
deployedResource_post (Type &o)
{
-
this->deployedResource_post (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_post (Type const&);
- virtual void
+ virtual void
deployedSharedResource (Type &o)
{
-
this->deployedSharedResource (const_cast <Type const &> (o));
}
-
virtual void
deployedSharedResource (Type const&);
- virtual void
- xmi_id (Type &o)
+ virtual void
+ id (Type &o)
{
-
- this->xmi_id (const_cast <Type const &> (o));
+ this->id (const_cast <Type const &> (o));
}
-
virtual void
- xmi_id (Type const&);
+ id (Type const&);
protected:
InstanceDeploymentDescription ();
};
- struct CCMComponentPortKind : Traversal::CCMComponentPortKind,
+ struct CCMComponentPortKind : Traversal::CCMComponentPortKind,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
CCMComponentPortKind (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
this->traverse (const_cast <Type const &> (o));
@@ -7614,130 +7399,108 @@ namespace CIAO
CCMComponentPortKind ();
};
- struct ComponentPortDescription : Traversal::ComponentPortDescription,
+ struct ComponentPortDescription : Traversal::ComponentPortDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ComponentPortDescription Type;
ComponentPortDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
specificType (Type &o)
{
-
this->specificType (const_cast <Type const &> (o));
}
-
virtual void
specificType (Type const&);
- virtual void
+ virtual void
supportedType_pre (Type &o)
{
-
this->supportedType_pre (const_cast <Type const &> (o));
}
-
virtual void
supportedType_pre (Type const&);
- virtual void
+ virtual void
supportedType_next (Type &o)
{
-
this->supportedType_next (const_cast <Type const &> (o));
}
-
virtual void
supportedType_next (Type const&);
- virtual void
+ virtual void
supportedType_post (Type &o)
{
-
this->supportedType_post (const_cast <Type const &> (o));
}
-
virtual void
supportedType_post (Type const&);
- virtual void
+ virtual void
provider (Type &o)
{
-
this->provider (const_cast <Type const &> (o));
}
-
virtual void
provider (Type const&);
- virtual void
+ virtual void
exclusiveProvider (Type &o)
{
-
this->exclusiveProvider (const_cast <Type const &> (o));
}
-
virtual void
exclusiveProvider (Type const&);
- virtual void
+ virtual void
exclusiveUser (Type &o)
{
-
this->exclusiveUser (const_cast <Type const &> (o));
}
-
virtual void
exclusiveUser (Type const&);
- virtual void
+ virtual void
optional (Type &o)
{
-
this->optional (const_cast <Type const &> (o));
}
-
virtual void
optional (Type const&);
- virtual void
+ virtual void
kind (Type &o)
{
-
this->kind (const_cast <Type const &> (o));
}
-
virtual void
kind (Type const&);
@@ -7745,42 +7508,36 @@ namespace CIAO
ComponentPortDescription ();
};
- struct ComponentPropertyDescription : Traversal::ComponentPropertyDescription,
+ struct ComponentPropertyDescription : Traversal::ComponentPropertyDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ComponentPropertyDescription Type;
ComponentPropertyDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
type (Type &o)
{
-
this->type (const_cast <Type const &> (o));
}
-
virtual void
type (Type const&);
@@ -7788,31 +7545,27 @@ namespace CIAO
ComponentPropertyDescription ();
};
- struct ComponentExternalPortEndpoint : Traversal::ComponentExternalPortEndpoint,
+ struct ComponentExternalPortEndpoint : Traversal::ComponentExternalPortEndpoint,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ComponentExternalPortEndpoint Type;
ComponentExternalPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
portName (Type &o)
{
-
this->portName (const_cast <Type const &> (o));
}
-
virtual void
portName (Type const&);
@@ -7820,64 +7573,54 @@ namespace CIAO
ComponentExternalPortEndpoint ();
};
- struct PlanSubcomponentPortEndpoint : Traversal::PlanSubcomponentPortEndpoint,
+ struct PlanSubcomponentPortEndpoint : Traversal::PlanSubcomponentPortEndpoint,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::PlanSubcomponentPortEndpoint Type;
PlanSubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
portName (Type &o)
{
-
this->portName (const_cast <Type const &> (o));
}
-
virtual void
portName (Type const&);
- virtual void
+ virtual void
provider (Type &o)
{
-
this->provider (const_cast <Type const &> (o));
}
-
virtual void
provider (Type const&);
- virtual void
+ virtual void
kind (Type &o)
{
-
this->kind (const_cast <Type const &> (o));
}
-
virtual void
kind (Type const&);
- virtual void
+ virtual void
instance (Type &o)
{
-
this->instance (const_cast <Type const &> (o));
}
-
virtual void
instance (Type const&);
@@ -7885,86 +7628,72 @@ namespace CIAO
PlanSubcomponentPortEndpoint ();
};
- struct ExternalReferenceEndpoint : Traversal::ExternalReferenceEndpoint,
+ struct ExternalReferenceEndpoint : Traversal::ExternalReferenceEndpoint,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ExternalReferenceEndpoint Type;
ExternalReferenceEndpoint (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
location (Type &o)
{
-
this->location (const_cast <Type const &> (o));
}
-
virtual void
location (Type const&);
- virtual void
+ virtual void
provider (Type &o)
{
-
this->provider (const_cast <Type const &> (o));
}
-
virtual void
provider (Type const&);
- virtual void
+ virtual void
portName (Type &o)
{
-
this->portName (const_cast <Type const &> (o));
}
-
virtual void
portName (Type const&);
- virtual void
+ virtual void
supportedType_pre (Type &o)
{
-
this->supportedType_pre (const_cast <Type const &> (o));
}
-
virtual void
supportedType_pre (Type const&);
- virtual void
+ virtual void
supportedType_next (Type &o)
{
-
this->supportedType_next (const_cast <Type const &> (o));
}
-
virtual void
supportedType_next (Type const&);
- virtual void
+ virtual void
supportedType_post (Type &o)
{
-
this->supportedType_post (const_cast <Type const &> (o));
}
-
virtual void
supportedType_post (Type const&);
@@ -7972,86 +7701,72 @@ namespace CIAO
ExternalReferenceEndpoint ();
};
- struct ConnectionResourceDeploymentDescription : Traversal::ConnectionResourceDeploymentDescription,
+ struct ConnectionResourceDeploymentDescription : Traversal::ConnectionResourceDeploymentDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ConnectionResourceDeploymentDescription Type;
ConnectionResourceDeploymentDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
targetName (Type &o)
{
-
this->targetName (const_cast <Type const &> (o));
}
-
virtual void
targetName (Type const&);
- virtual void
+ virtual void
requirementName (Type &o)
{
-
this->requirementName (const_cast <Type const &> (o));
}
-
virtual void
requirementName (Type const&);
- virtual void
+ virtual void
resourceName (Type &o)
{
-
this->resourceName (const_cast <Type const &> (o));
}
-
virtual void
resourceName (Type const&);
- virtual void
+ virtual void
property_pre (Type &o)
{
-
this->property_pre (const_cast <Type const &> (o));
}
-
virtual void
property_pre (Type const&);
- virtual void
+ virtual void
property_next (Type &o)
{
-
this->property_next (const_cast <Type const &> (o));
}
-
virtual void
property_next (Type const&);
- virtual void
+ virtual void
property_post (Type &o)
{
-
this->property_post (const_cast <Type const &> (o));
}
-
virtual void
property_post (Type const&);
@@ -8059,207 +7774,171 @@ namespace CIAO
ConnectionResourceDeploymentDescription ();
};
- struct PlanConnectionDescription : Traversal::PlanConnectionDescription,
+ struct PlanConnectionDescription : Traversal::PlanConnectionDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::PlanConnectionDescription Type;
PlanConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
source (Type &o)
{
-
this->source (const_cast <Type const &> (o));
}
-
virtual void
source (Type const&);
- virtual void
+ virtual void
deployRequirement_pre (Type &o)
{
-
this->deployRequirement_pre (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_pre (Type const&);
- virtual void
+ virtual void
deployRequirement_next (Type &o)
{
-
this->deployRequirement_next (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_next (Type const&);
- virtual void
+ virtual void
deployRequirement_post (Type &o)
{
-
this->deployRequirement_post (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_post (Type const&);
- virtual void
+ virtual void
externalEndpoint_pre (Type &o)
{
-
this->externalEndpoint_pre (const_cast <Type const &> (o));
}
-
virtual void
externalEndpoint_pre (Type const&);
- virtual void
+ virtual void
externalEndpoint_next (Type &o)
{
-
this->externalEndpoint_next (const_cast <Type const &> (o));
}
-
virtual void
externalEndpoint_next (Type const&);
- virtual void
+ virtual void
externalEndpoint_post (Type &o)
{
-
this->externalEndpoint_post (const_cast <Type const &> (o));
}
-
virtual void
externalEndpoint_post (Type const&);
- virtual void
+ virtual void
internalEndpoint_pre (Type &o)
{
-
this->internalEndpoint_pre (const_cast <Type const &> (o));
}
-
virtual void
internalEndpoint_pre (Type const&);
- virtual void
+ virtual void
internalEndpoint_next (Type &o)
{
-
this->internalEndpoint_next (const_cast <Type const &> (o));
}
-
virtual void
internalEndpoint_next (Type const&);
- virtual void
+ virtual void
internalEndpoint_post (Type &o)
{
-
this->internalEndpoint_post (const_cast <Type const &> (o));
}
-
virtual void
internalEndpoint_post (Type const&);
- virtual void
+ virtual void
externalReference_pre (Type &o)
{
-
this->externalReference_pre (const_cast <Type const &> (o));
}
-
virtual void
externalReference_pre (Type const&);
- virtual void
+ virtual void
externalReference_next (Type &o)
{
-
this->externalReference_next (const_cast <Type const &> (o));
}
-
virtual void
externalReference_next (Type const&);
- virtual void
+ virtual void
externalReference_post (Type &o)
{
-
this->externalReference_post (const_cast <Type const &> (o));
}
-
virtual void
externalReference_post (Type const&);
- virtual void
+ virtual void
deployedResource_pre (Type &o)
{
-
this->deployedResource_pre (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_pre (Type const&);
- virtual void
+ virtual void
deployedResource_next (Type &o)
{
-
this->deployedResource_next (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_next (Type const&);
- virtual void
+ virtual void
deployedResource_post (Type &o)
{
-
this->deployedResource_post (const_cast <Type const &> (o));
}
-
virtual void
deployedResource_post (Type const&);
@@ -8267,31 +7946,27 @@ namespace CIAO
PlanConnectionDescription ();
};
- struct ImplementationDependency : Traversal::ImplementationDependency,
+ struct ImplementationDependency : Traversal::ImplementationDependency,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ImplementationDependency Type;
ImplementationDependency (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
requiredType (Type &o)
{
-
this->requiredType (const_cast <Type const &> (o));
}
-
virtual void
requiredType (Type const&);
@@ -8299,97 +7974,81 @@ namespace CIAO
ImplementationDependency ();
};
- struct Capability : Traversal::Capability,
+ struct Capability : Traversal::Capability,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::Capability Type;
Capability (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
resourceType_pre (Type &o)
{
-
this->resourceType_pre (const_cast <Type const &> (o));
}
-
virtual void
resourceType_pre (Type const&);
- virtual void
+ virtual void
resourceType_next (Type &o)
{
-
this->resourceType_next (const_cast <Type const &> (o));
}
-
virtual void
resourceType_next (Type const&);
- virtual void
+ virtual void
resourceType_post (Type &o)
{
-
this->resourceType_post (const_cast <Type const &> (o));
}
-
virtual void
resourceType_post (Type const&);
- virtual void
+ virtual void
property_pre (Type &o)
{
-
this->property_pre (const_cast <Type const &> (o));
}
-
virtual void
property_pre (Type const&);
- virtual void
+ virtual void
property_next (Type &o)
{
-
this->property_next (const_cast <Type const &> (o));
}
-
virtual void
property_next (Type const&);
- virtual void
+ virtual void
property_post (Type &o)
{
-
this->property_post (const_cast <Type const &> (o));
}
-
virtual void
property_post (Type const&);
@@ -8397,108 +8056,90 @@ namespace CIAO
Capability ();
};
- struct ImplementationRequirement : Traversal::ImplementationRequirement,
+ struct ImplementationRequirement : Traversal::ImplementationRequirement,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::ImplementationRequirement Type;
ImplementationRequirement (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
resourceUsage (Type &o)
{
-
this->resourceUsage (const_cast <Type const &> (o));
}
-
virtual void
resourceUsage (Type const&);
- virtual void
+ virtual void
resourcePort (Type &o)
{
-
this->resourcePort (const_cast <Type const &> (o));
}
-
virtual void
resourcePort (Type const&);
- virtual void
+ virtual void
componentPort (Type &o)
{
-
this->componentPort (const_cast <Type const &> (o));
}
-
virtual void
componentPort (Type const&);
- virtual void
+ virtual void
resourceType (Type &o)
{
-
this->resourceType (const_cast <Type const &> (o));
}
-
virtual void
resourceType (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
property_pre (Type &o)
{
-
this->property_pre (const_cast <Type const &> (o));
}
-
virtual void
property_pre (Type const&);
- virtual void
+ virtual void
property_next (Type &o)
{
-
this->property_next (const_cast <Type const &> (o));
}
-
virtual void
property_next (Type const&);
- virtual void
+ virtual void
property_post (Type &o)
{
-
this->property_post (const_cast <Type const &> (o));
}
-
virtual void
property_post (Type const&);
@@ -8506,42 +8147,36 @@ namespace CIAO
ImplementationRequirement ();
};
- struct SubcomponentPortEndpoint : Traversal::SubcomponentPortEndpoint,
+ struct SubcomponentPortEndpoint : Traversal::SubcomponentPortEndpoint,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::SubcomponentPortEndpoint Type;
SubcomponentPortEndpoint (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
portName (Type &o)
{
-
this->portName (const_cast <Type const &> (o));
}
-
virtual void
portName (Type const&);
- virtual void
+ virtual void
instance (Type &o)
{
-
this->instance (const_cast <Type const &> (o));
}
-
virtual void
instance (Type const&);
@@ -8549,163 +8184,135 @@ namespace CIAO
SubcomponentPortEndpoint ();
};
- struct AssemblyConnectionDescription : Traversal::AssemblyConnectionDescription,
+ struct AssemblyConnectionDescription : Traversal::AssemblyConnectionDescription,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::AssemblyConnectionDescription Type;
AssemblyConnectionDescription (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
- virtual void
+ virtual void
deployRequirement_pre (Type &o)
{
-
this->deployRequirement_pre (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_pre (Type const&);
- virtual void
+ virtual void
deployRequirement_next (Type &o)
{
-
this->deployRequirement_next (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_next (Type const&);
- virtual void
+ virtual void
deployRequirement_post (Type &o)
{
-
this->deployRequirement_post (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_post (Type const&);
- virtual void
+ virtual void
internalEndpoint_pre (Type &o)
{
-
this->internalEndpoint_pre (const_cast <Type const &> (o));
}
-
virtual void
internalEndpoint_pre (Type const&);
- virtual void
+ virtual void
internalEndpoint_next (Type &o)
{
-
this->internalEndpoint_next (const_cast <Type const &> (o));
}
-
virtual void
internalEndpoint_next (Type const&);
- virtual void
+ virtual void
internalEndpoint_post (Type &o)
{
-
this->internalEndpoint_post (const_cast <Type const &> (o));
}
-
virtual void
internalEndpoint_post (Type const&);
- virtual void
+ virtual void
externalEndpoint_pre (Type &o)
{
-
this->externalEndpoint_pre (const_cast <Type const &> (o));
}
-
virtual void
externalEndpoint_pre (Type const&);
- virtual void
+ virtual void
externalEndpoint_next (Type &o)
{
-
this->externalEndpoint_next (const_cast <Type const &> (o));
}
-
virtual void
externalEndpoint_next (Type const&);
- virtual void
+ virtual void
externalEndpoint_post (Type &o)
{
-
this->externalEndpoint_post (const_cast <Type const &> (o));
}
-
virtual void
externalEndpoint_post (Type const&);
- virtual void
+ virtual void
externalReference_pre (Type &o)
{
-
this->externalReference_pre (const_cast <Type const &> (o));
}
-
virtual void
externalReference_pre (Type const&);
- virtual void
+ virtual void
externalReference_next (Type &o)
{
-
this->externalReference_next (const_cast <Type const &> (o));
}
-
virtual void
externalReference_next (Type const&);
- virtual void
+ virtual void
externalReference_post (Type &o)
{
-
this->externalReference_post (const_cast <Type const &> (o));
}
-
virtual void
externalReference_post (Type const&);
@@ -8713,12 +8320,12 @@ namespace CIAO
AssemblyConnectionDescription ();
};
- struct PlanLocalityKind : Traversal::PlanLocalityKind,
+ struct PlanLocalityKind : Traversal::PlanLocalityKind,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
PlanLocalityKind (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
this->traverse (const_cast <Type const &> (o));
@@ -8731,42 +8338,36 @@ namespace CIAO
PlanLocalityKind ();
};
- struct PlanLocality : Traversal::PlanLocality,
+ struct PlanLocality : Traversal::PlanLocality,
virtual ::XSCRT::Writer< ACE_TCHAR >
{
typedef ::CIAO::Config_Handlers::PlanLocality Type;
PlanLocality (::XSCRT::XML::Element< ACE_TCHAR >&);
- virtual void
+ virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
- virtual void
+ virtual void
constraint (Type &o)
{
-
this->constraint (const_cast <Type const &> (o));
}
-
virtual void
constraint (Type const&);
- virtual void
+ virtual void
constrainedInstance (Type &o)
{
-
this->constrainedInstance (const_cast <Type const &> (o));
}
-
virtual void
constrainedInstance (Type const&);
diff --git a/CIAO/tools/Config_Handlers/CCD_Handler.cpp b/CIAO/tools/Config_Handlers/CCD_Handler.cpp
index 871cb5c44f1..df09051dd82 100644
--- a/CIAO/tools/Config_Handlers/CCD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/CCD_Handler.cpp
@@ -46,7 +46,7 @@ namespace CIAO
s != end;
++s)
{
- toconfig.supportedType[pos++] = s->c_str ();
+ toconfig.supportedType[pos++] = (*s)->c_str ();
}
ComponentInterfaceDescription::idlFile_const_iterator
@@ -58,7 +58,7 @@ namespace CIAO
sidl != eidl;
++sidl)
{
- toconfig.idlFile [pos++] = sidl->c_str ();
+ toconfig.idlFile [pos++] = (*sidl)->c_str ();
}
ComponentInterfaceDescription::configProperty_const_iterator pend =
@@ -70,8 +70,8 @@ namespace CIAO
pstart != pend;
++pstart)
{
- Property_Handler::handle_property (*pstart,
- toconfig.configProperty [pos++]);
+ Property_Handler::handle_property (*(*pstart),
+ toconfig.configProperty [pos++]);
}
pos = 0;
@@ -81,8 +81,8 @@ namespace CIAO
port != desc.end_port ();
++port)
{
- CPD_Handler::handle_component_port_description (*port,
- toconfig.port[pos++]);
+ CPD_Handler::handle_component_port_description (*(*port),
+ toconfig.port[pos++]);
}
pos = 0;
@@ -93,7 +93,7 @@ namespace CIAO
prop != desc.end_property();
prop++)
{
- ComponentPropertyDescription_Handler::component_property_description (*prop,
+ ComponentPropertyDescription_Handler::component_property_description (*(*prop),
toconfig.property[pos++]);
}
@@ -104,8 +104,8 @@ namespace CIAO
infoProp != desc.end_infoProperty();
infoProp++)
{
- Property_Handler::handle_property (*infoProp,
- toconfig.infoProperty[pos]);
+ Property_Handler::handle_property (*(*infoProp),
+ toconfig.infoProperty[pos]);
}
}
@@ -131,7 +131,7 @@ namespace CIAO
for (size_t i = 0; i < total; ++i)
{
XMLSchema::string< char > curr ((src.supportedType[i]));
- cid.add_supportedType (curr);
+ //cid.add_supportedType (new XMLSchema::string< ACE_TCHAR > (curr));
}
//Get the idlFile(s) and store them into the cid
@@ -139,23 +139,21 @@ namespace CIAO
for (size_t j = 0; j < total; ++j)
{
XMLSchema::string< char > curr ((src.idlFile[j]));
- cid.add_idlFile (curr);
+ //cid.add_idlFile (curr);
}
//Get the configProperty(ies) and store them into the cid
total = src.configProperty.length ();
for (size_t k = 0; k < total; ++k)
{
- cid.add_configProperty (
- Property_Handler::get_property (src.configProperty[k]));
+ //cid.add_configProperty (Property_Handler::get_property (src.configProperty[k]));
}
//Same drill for the component port description(s)
total = src.port.length ();
for (size_t l = 0; l < total; ++l)
{
- cid.add_port (
- CPD_Handler::component_port_description (src.port[l]));
+ //cid.add_port (CPD_Handler::component_port_description (src.port[l]));
}
@@ -165,9 +163,7 @@ namespace CIAO
m < total;
m++)
{
- cid.add_property(
- ComponentPropertyDescription_Handler::component_property_description (
- src.property[m]));
+ //cid.add_property(ComponentPropertyDescription_Handler::component_property_description (src.property[m]));
}
//Load up the infoProperty(s)
@@ -176,8 +172,7 @@ namespace CIAO
n < total;
n++)
{
- cid.add_infoProperty(
- Property_Handler::get_property (src.infoProperty[n]));
+ //cid.add_infoProperty(Property_Handler::get_property (src.infoProperty[n]));
}
return cid;
diff --git a/CIAO/tools/Config_Handlers/CEPE_Handler.cpp b/CIAO/tools/Config_Handlers/CEPE_Handler.cpp
index 4c93545f2c6..dd5144adbb1 100644
--- a/CIAO/tools/Config_Handlers/CEPE_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/CEPE_Handler.cpp
@@ -24,8 +24,8 @@ namespace CIAO
eeci_b != eeci_e;
++eeci_b)
{
- CEPE_Handler::handle_external_port_endpoint ((*eeci_b),
- dest[pos++]);
+ CEPE_Handler::handle_external_port_endpoint (*(*eeci_b),
+ dest[pos++]);
}
}
diff --git a/CIAO/tools/Config_Handlers/CPD_Handler.cpp b/CIAO/tools/Config_Handlers/CPD_Handler.cpp
index 97a9e50ae23..9ea3cc1ce45 100644
--- a/CIAO/tools/Config_Handlers/CPD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/CPD_Handler.cpp
@@ -140,8 +140,9 @@ namespace CIAO
name.c_str ()));
}
- for (CORBA::ULong i = 0; i < src.supportedType.length (); ++i)
- cpd.add_supportedType (XMLSchema::string< char > ((src.supportedType[i])));
+ for (CORBA::ULong i = 0; i < src.supportedType.length (); ++i);
+
+ //cpd.add_supportedType (XMLSchema::string< char > ((src.supportedType[i])));
return cpd;
}
diff --git a/CIAO/tools/Config_Handlers/CRDD_Handler.cpp b/CIAO/tools/Config_Handlers/CRDD_Handler.cpp
index 87d1b6511e5..7afd4b46de9 100644
--- a/CIAO/tools/Config_Handlers/CRDD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/CRDD_Handler.cpp
@@ -55,7 +55,7 @@ namespace CIAO
i != src.property.length ();
++i)
{
- crdd.add_property (Property_Handler::get_property (src.property[i]));
+ //crdd.add_property (Property_Handler::get_property (src.property[i]));
}
diff --git a/CIAO/tools/Config_Handlers/DD_Handler.cpp b/CIAO/tools/Config_Handlers/DD_Handler.cpp
index ee9fbd79012..c1a02dd4d0c 100644
--- a/CIAO/tools/Config_Handlers/DD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/DD_Handler.cpp
@@ -28,7 +28,7 @@ namespace CIAO
throw DD_Handler::NoDomain ();
Domain *dm =
- new Domain (domain (dom));
+ new Domain (reader::domain (dom));
// Domain d = domain (dom);
@@ -89,56 +89,56 @@ namespace CIAO
{
// Node* thisNode = (Node*)iter;
this->idl_domain_->node[i].name =
- CORBA::string_dup (iter->name ().c_str ());
+ CORBA::string_dup ((*iter)->name ().c_str ());
- if (iter->label_p ())
+ if ((*iter)->label_p ())
this->idl_domain_->node[i].label =
- CORBA::string_dup (iter->label ().c_str ());
+ CORBA::string_dup ((*iter)->label ().c_str ());
// length is hard-coded for now ...
// here iterate over the resources ...
- CORBA::ULong res_len = iter->count_resource ();
+ CORBA::ULong res_len = (*iter)->count_resource ();
this->idl_domain_->node[i].resource.length (res_len);
int res_id=0;
// FOR EACH RESOURCE ....
- for (Node::resource_const_iterator res_iter = iter->begin_resource ();
- res_iter != iter->end_resource ();
+ for (Node::resource_const_iterator res_iter = (*iter)->begin_resource ();
+ res_iter != (*iter)->end_resource ();
res_iter++, res_id++)
{
this->idl_domain_->node[i].resource[res_id].name =
- CORBA::string_dup (res_iter->name ().c_str ());
+ CORBA::string_dup ((*res_iter)->name ().c_str ());
- CORBA::ULong resource_type_len = res_iter->count_resourceType ();
+ CORBA::ULong resource_type_len = (*res_iter)->count_resourceType ();
this->idl_domain_->node[i].resource[res_id].resourceType.length (resource_type_len);
int res_type_id =0;
// FOR EACH RESOURCE TYPE
for (Resource::resourceType_const_iterator res_type_iter =
- res_iter->begin_resourceType ();
- res_type_iter != res_iter->end_resourceType ();
+ (*res_iter)->begin_resourceType ();
+ res_type_iter != (*res_iter)->end_resourceType ();
res_type_iter++, res_type_id++)
{
this->idl_domain_->node[i].resource[res_id].resourceType[res_type_id] =
- CORBA::string_dup (res_type_iter->c_str ());
+ CORBA::string_dup ((*res_type_iter)->c_str ());
}
- CORBA::ULong property_len = res_iter->count_property ();
+ CORBA::ULong property_len = (*res_iter)->count_property ();
this->idl_domain_->node[i].resource[res_id].property.length (property_len);
// int property_id =0;
- std::for_each (res_iter->begin_property (),
- res_iter->end_property (),
+ std::for_each ((*res_iter)->begin_property (),
+ (*res_iter)->end_property (),
SatisfierProperty_Functor (this->idl_domain_->node[i].resource[res_id].property));
/*
//FOR EACH PROPERTY
for (Resource::property_const_iterator property_iter =
- res_iter->begin_property ();
- property_iter != res_iter->end_property ();
+ (*res_iter)->begin_property ();
+ property_iter != (*res_iter)->end_property ();
property_iter++, property_id++)
{
this->idl_domain_->node[i].resource[res_id].property[property_id ].name =
diff --git a/CIAO/tools/Config_Handlers/DP_Handler.cpp b/CIAO/tools/Config_Handlers/DP_Handler.cpp
index 3ee8e394bf5..a325cff7d9c 100644
--- a/CIAO/tools/Config_Handlers/DP_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/DP_Handler.cpp
@@ -112,7 +112,7 @@ ACE_RCSID (Config_Handlers,
{
CORBA::ULong len = this->idl_dp_->dependsOn.length ();
this->idl_dp_->dependsOn.length (len + 1);
- ID_Handler::get_ImplementationDependency (*dstart,
+ ID_Handler::get_ImplementationDependency (*(*dstart),
this->idl_dp_->dependsOn [len]);
}
@@ -127,7 +127,7 @@ ACE_RCSID (Config_Handlers,
this->idl_dp_->infoProperty.length (len + 1);
- Property_Handler::handle_property (*pstart,
+ Property_Handler::handle_property (*(*pstart),
this->idl_dp_->infoProperty [len]);
}
@@ -194,9 +194,7 @@ ACE_RCSID (Config_Handlers,
j < len;
++j)
{
- this->xsc_dp_->add_dependsOn(
- ID_Handler::impl_dependency(
- plan.dependsOn[j]));
+ //this->xsc_dp_->add_dependsOn(ID_Handler::impl_dependency(plan.dependsOn[j]));
}
// ... And the property stuff
@@ -213,9 +211,7 @@ ACE_RCSID (Config_Handlers,
continue;
}
- this->xsc_dp_->add_infoProperty (
- Property_Handler::get_property (
- plan.infoProperty[q]));
+ //this->xsc_dp_->add_infoProperty (Property_Handler::get_property (plan.infoProperty[q]));
}
@@ -238,9 +234,7 @@ ACE_RCSID (Config_Handlers,
k < len;
k++)
{
- this->xsc_dp_->add_artifact (
- ADD_Handler::artifact_deployment_descr (
- plan.artifact[k]));
+ //this->xsc_dp_->add_artifact (ADD_Handler::artifact_deployment_descr (plan.artifact[k]));
}
//Take care of the implementation(s) if they exist
@@ -249,9 +243,7 @@ ACE_RCSID (Config_Handlers,
l < len;
l++)
{
- this->xsc_dp_->add_implementation (
- MDD_Handler::mono_deployment_description (
- plan.implementation[l]));
+ //this->xsc_dp_->add_implementation (MDD_Handler::mono_deployment_description (plan.implementation[l]));
}
//Ditto for the instance(s)
@@ -260,17 +252,14 @@ ACE_RCSID (Config_Handlers,
m < len;
m++)
{
- this->xsc_dp_->add_instance (
- IDD_Handler::instance_deployment_descr (
- plan.instance[m]));
+ //this->xsc_dp_->add_instance (IDD_Handler::instance_deployment_descr (plan.instance[m]));
}
//Finally, take care of the Connection Planning
len = plan.connection.length();
for(size_t n = 0; n < len; n++)
{
- this->xsc_dp_->add_connection (PCD_Handler::get_PlanConnectionDescription (
- plan.connection[n]));
+ //this->xsc_dp_->add_connection (PCD_Handler::get_PlanConnectionDescription (plan.connection[n]));
}
retval_ = true;
diff --git a/CIAO/tools/Config_Handlers/Deployment.cpp b/CIAO/tools/Config_Handlers/Deployment.cpp
index 8884b13c108..9d7ed2471f4 100644
--- a/CIAO/tools/Config_Handlers/Deployment.cpp
+++ b/CIAO/tools/Config_Handlers/Deployment.cpp
@@ -35,131 +35,155 @@ namespace CIAO
{
namespace Config_Handlers
{
- ::CIAO::Config_Handlers::Domain
- domain (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "domain")
+ ::CIAO::Config_Handlers::Domain
+ domain (xercesc::DOMDocument const* d)
{
- ::CIAO::Config_Handlers::Domain r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "domain")
+ {
+ ::CIAO::Config_Handlers::Domain r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
- ::CIAO::Config_Handlers::deploymentPlan
- DeploymentPlan (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "DeploymentPlan")
+ ::CIAO::Config_Handlers::deploymentPlan
+ DeploymentPlan (xercesc::DOMDocument const* d)
{
- ::CIAO::Config_Handlers::deploymentPlan r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "DeploymentPlan")
+ {
+ ::CIAO::Config_Handlers::deploymentPlan r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
- ::CIAO::Config_Handlers::ImplementationArtifactDescription
- implementationArtifactDescription (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "implementationArtifactDescription")
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription
+ implementationArtifactDescription (xercesc::DOMDocument const* d)
{
- ::CIAO::Config_Handlers::ImplementationArtifactDescription r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "implementationArtifactDescription")
+ {
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
- ::CIAO::Config_Handlers::ComponentInterfaceDescription
- componentInterfaceDescription (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "componentInterfaceDescription")
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription
+ componentInterfaceDescription (xercesc::DOMDocument const* d)
{
- ::CIAO::Config_Handlers::ComponentInterfaceDescription r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "componentInterfaceDescription")
+ {
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
- ::CIAO::Config_Handlers::ComponentImplementationDescription
- componentImplementationDescription (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "componentImplementationDescription")
+ ::CIAO::Config_Handlers::ComponentImplementationDescription
+ componentImplementationDescription (xercesc::DOMDocument const* d)
{
- ::CIAO::Config_Handlers::ComponentImplementationDescription r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "componentImplementationDescription")
+ {
+ ::CIAO::Config_Handlers::ComponentImplementationDescription r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
- ::CIAO::Config_Handlers::ComponentPackageDescription
- componentPackageDescription (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "componentPackageDescription")
+ ::CIAO::Config_Handlers::ComponentPackageDescription
+ componentPackageDescription (xercesc::DOMDocument const* d)
{
- ::CIAO::Config_Handlers::ComponentPackageDescription r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "componentPackageDescription")
+ {
+ ::CIAO::Config_Handlers::ComponentPackageDescription r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
- ::CIAO::Config_Handlers::PackageConfiguration
- packageConfiguration (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "packageConfiguration")
+ ::CIAO::Config_Handlers::PackageConfiguration
+ packageConfiguration (xercesc::DOMDocument const* d)
{
- ::CIAO::Config_Handlers::PackageConfiguration r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "packageConfiguration")
+ {
+ ::CIAO::Config_Handlers::PackageConfiguration r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
- ::CIAO::Config_Handlers::TopLevelPackageDescription
- topLevelPackageDescription (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "topLevelPackageDescription")
+ ::CIAO::Config_Handlers::TopLevelPackageDescription
+ topLevelPackageDescription (xercesc::DOMDocument const* d)
{
- ::CIAO::Config_Handlers::TopLevelPackageDescription r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "topLevelPackageDescription")
+ {
+ ::CIAO::Config_Handlers::TopLevelPackageDescription r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
}
@@ -202,530 +226,554 @@ namespace CIAO
{
namespace Config_Handlers
{
- void
- domain (::CIAO::Config_Handlers::Domain const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "domain")
+ void
+ domain (::CIAO::Config_Handlers::Domain const& s, xercesc::DOMDocument* d)
{
- throw 1;
- }
-
- struct W : virtual ::CIAO::Config_Handlers::Writer::Domain,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::Node,
- virtual ::CIAO::Config_Handlers::Writer::Interconnect,
- virtual ::CIAO::Config_Handlers::Writer::Bridge,
- virtual ::CIAO::Config_Handlers::Writer::Resource,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::Any,
- virtual ::CIAO::Config_Handlers::Writer::DataType,
- virtual ::CIAO::Config_Handlers::Writer::TCKind,
- virtual ::CIAO::Config_Handlers::Writer::EnumType,
- virtual ::CIAO::Config_Handlers::Writer::StructType,
- virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
- virtual ::CIAO::Config_Handlers::Writer::ValueType,
- virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
- virtual ::CIAO::Config_Handlers::Writer::SequenceType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::AliasType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::DataValue,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedValue,
- virtual ::CIAO::Config_Handlers::Writer::SharedResource,
- virtual ::CIAO::Config_Handlers::Writer::Property,
- virtual ::XSCRT::Writer< ACE_TCHAR >
- {
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "domain")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::CIAO::Config_Handlers::Writer::Domain,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::Node,
+ virtual ::CIAO::Config_Handlers::Writer::Interconnect,
+ virtual ::CIAO::Config_Handlers::Writer::Bridge,
+ virtual ::CIAO::Config_Handlers::Writer::Resource,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::SharedResource,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
- void
- DeploymentPlan (::CIAO::Config_Handlers::deploymentPlan const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "DeploymentPlan")
- {
- throw 1;
- }
-
- struct W : virtual ::CIAO::Config_Handlers::Writer::deploymentPlan,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
- virtual ::CIAO::Config_Handlers::Writer::Property,
- virtual ::CIAO::Config_Handlers::Writer::Any,
- virtual ::CIAO::Config_Handlers::Writer::DataType,
- virtual ::CIAO::Config_Handlers::Writer::TCKind,
- virtual ::CIAO::Config_Handlers::Writer::EnumType,
- virtual ::CIAO::Config_Handlers::Writer::StructType,
- virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
- virtual ::CIAO::Config_Handlers::Writer::ValueType,
- virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
- virtual ::CIAO::Config_Handlers::Writer::SequenceType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::AliasType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::DataValue,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedValue,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
- virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
- virtual ::CIAO::Config_Handlers::Writer::MonolithicDeploymentDescription,
- virtual ::CIAO::Config_Handlers::Writer::IdRef,
- virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::Requirement,
- virtual ::CIAO::Config_Handlers::Writer::InstanceDeploymentDescription,
- virtual ::CIAO::Config_Handlers::Writer::InstanceResourceDeploymentDescription,
- virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
- virtual ::CIAO::Config_Handlers::Writer::PlanConnectionDescription,
- virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::PlanSubcomponentPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::ConnectionResourceDeploymentDescription,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
- virtual ::CIAO::Config_Handlers::Writer::ArtifactDeploymentDescription,
- virtual ::CIAO::Config_Handlers::Writer::ResourceDeploymentDescription,
- virtual ::CIAO::Config_Handlers::Writer::PlanLocality,
- virtual ::CIAO::Config_Handlers::Writer::PlanLocalityKind,
- virtual ::XSCRT::Writer< ACE_TCHAR >
+ void
+ DeploymentPlan (::CIAO::Config_Handlers::deploymentPlan const& s, xercesc::DOMDocument* d)
{
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "DeploymentPlan")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::CIAO::Config_Handlers::Writer::deploymentPlan,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::InstanceDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::InstanceResourceDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::PlanConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::PlanSubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ConnectionResourceDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::CIAO::Config_Handlers::Writer::ArtifactDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceDeploymentDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PlanLocality,
+ virtual ::CIAO::Config_Handlers::Writer::PlanLocalityKind,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
- void
- implementationArtifactDescription (::CIAO::Config_Handlers::ImplementationArtifactDescription const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "implementationArtifactDescription")
- {
- throw 1;
- }
-
- struct W : virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
- virtual ::CIAO::Config_Handlers::Writer::Property,
- virtual ::CIAO::Config_Handlers::Writer::Any,
- virtual ::CIAO::Config_Handlers::Writer::DataType,
- virtual ::CIAO::Config_Handlers::Writer::TCKind,
- virtual ::CIAO::Config_Handlers::Writer::EnumType,
- virtual ::CIAO::Config_Handlers::Writer::StructType,
- virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
- virtual ::CIAO::Config_Handlers::Writer::ValueType,
- virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
- virtual ::CIAO::Config_Handlers::Writer::SequenceType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::AliasType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::DataValue,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedValue,
- virtual ::CIAO::Config_Handlers::Writer::Requirement,
- virtual ::XSCRT::Writer< ACE_TCHAR >
+ void
+ implementationArtifactDescription (::CIAO::Config_Handlers::ImplementationArtifactDescription const& s, xercesc::DOMDocument* d)
{
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "implementationArtifactDescription")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
- void
- componentInterfaceDescription (::CIAO::Config_Handlers::ComponentInterfaceDescription const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "componentInterfaceDescription")
- {
- throw 1;
- }
-
- struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::Property,
- virtual ::CIAO::Config_Handlers::Writer::Any,
- virtual ::CIAO::Config_Handlers::Writer::DataType,
- virtual ::CIAO::Config_Handlers::Writer::TCKind,
- virtual ::CIAO::Config_Handlers::Writer::EnumType,
- virtual ::CIAO::Config_Handlers::Writer::StructType,
- virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
- virtual ::CIAO::Config_Handlers::Writer::ValueType,
- virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
- virtual ::CIAO::Config_Handlers::Writer::SequenceType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::AliasType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::DataValue,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedValue,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
- virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
- virtual ::XSCRT::Writer< ACE_TCHAR >
+ void
+ componentInterfaceDescription (::CIAO::Config_Handlers::ComponentInterfaceDescription const& s, xercesc::DOMDocument* d)
{
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "componentInterfaceDescription")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
- void
- componentImplementationDescription (::CIAO::Config_Handlers::ComponentImplementationDescription const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "componentImplementationDescription")
- {
- throw 1;
- }
-
- struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
- virtual ::CIAO::Config_Handlers::Writer::Property,
- virtual ::CIAO::Config_Handlers::Writer::Any,
- virtual ::CIAO::Config_Handlers::Writer::DataType,
- virtual ::CIAO::Config_Handlers::Writer::TCKind,
- virtual ::CIAO::Config_Handlers::Writer::EnumType,
- virtual ::CIAO::Config_Handlers::Writer::StructType,
- virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
- virtual ::CIAO::Config_Handlers::Writer::ValueType,
- virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
- virtual ::CIAO::Config_Handlers::Writer::SequenceType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::AliasType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::DataValue,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedValue,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
- virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
- virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
- virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
- virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
- virtual ::CIAO::Config_Handlers::Writer::Requirement,
- virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::IdRef,
- virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
- virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
- virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
- virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
- virtual ::CIAO::Config_Handlers::Writer::Capability,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
- virtual ::XSCRT::Writer< ACE_TCHAR >
+ void
+ componentImplementationDescription (::CIAO::Config_Handlers::ComponentImplementationDescription const& s, xercesc::DOMDocument* d)
{
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "componentImplementationDescription")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
+ virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Capability,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
- void
- componentPackageDescription (::CIAO::Config_Handlers::ComponentPackageDescription const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "componentPackageDescription")
+ void
+ componentPackageDescription (::CIAO::Config_Handlers::ComponentPackageDescription const& s, xercesc::DOMDocument* d)
{
- throw 1;
- }
-
- struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
- virtual ::CIAO::Config_Handlers::Writer::Property,
- virtual ::CIAO::Config_Handlers::Writer::Any,
- virtual ::CIAO::Config_Handlers::Writer::DataType,
- virtual ::CIAO::Config_Handlers::Writer::TCKind,
- virtual ::CIAO::Config_Handlers::Writer::EnumType,
- virtual ::CIAO::Config_Handlers::Writer::StructType,
- virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
- virtual ::CIAO::Config_Handlers::Writer::ValueType,
- virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
- virtual ::CIAO::Config_Handlers::Writer::SequenceType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::AliasType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::DataValue,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedValue,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
- virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
- virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
- virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
- virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
- virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
- virtual ::CIAO::Config_Handlers::Writer::Requirement,
- virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::IdRef,
- virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
- virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
- virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
- virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
- virtual ::CIAO::Config_Handlers::Writer::Capability,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
- virtual ::XSCRT::Writer< ACE_TCHAR >
- {
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "componentPackageDescription")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Capability,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
- void
- packageConfiguration (::CIAO::Config_Handlers::PackageConfiguration const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "packageConfiguration")
- {
- throw 1;
- }
-
- struct W : virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
- virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
- virtual ::CIAO::Config_Handlers::Writer::Property,
- virtual ::CIAO::Config_Handlers::Writer::Any,
- virtual ::CIAO::Config_Handlers::Writer::DataType,
- virtual ::CIAO::Config_Handlers::Writer::TCKind,
- virtual ::CIAO::Config_Handlers::Writer::EnumType,
- virtual ::CIAO::Config_Handlers::Writer::StructType,
- virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
- virtual ::CIAO::Config_Handlers::Writer::ValueType,
- virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
- virtual ::CIAO::Config_Handlers::Writer::SequenceType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::AliasType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::DataValue,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedValue,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
- virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
- virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
- virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
- virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
- virtual ::CIAO::Config_Handlers::Writer::Requirement,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
- virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::IdRef,
- virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
- virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
- virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
- virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
- virtual ::CIAO::Config_Handlers::Writer::Capability,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
- virtual ::XSCRT::Writer< ACE_TCHAR >
+ void
+ packageConfiguration (::CIAO::Config_Handlers::PackageConfiguration const& s, xercesc::DOMDocument* d)
{
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "packageConfiguration")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Capability,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
- void
- topLevelPackageDescription (::CIAO::Config_Handlers::TopLevelPackageDescription const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "topLevelPackageDescription")
+ void
+ topLevelPackageDescription (::CIAO::Config_Handlers::TopLevelPackageDescription const& s, xercesc::DOMDocument* d)
{
- throw 1;
- }
-
- struct W : virtual ::CIAO::Config_Handlers::Writer::TopLevelPackageDescription,
- virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
- virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
- virtual ::CIAO::Config_Handlers::Writer::Property,
- virtual ::CIAO::Config_Handlers::Writer::Any,
- virtual ::CIAO::Config_Handlers::Writer::DataType,
- virtual ::CIAO::Config_Handlers::Writer::TCKind,
- virtual ::CIAO::Config_Handlers::Writer::EnumType,
- virtual ::CIAO::Config_Handlers::Writer::StructType,
- virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
- virtual ::CIAO::Config_Handlers::Writer::ValueType,
- virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
- virtual ::CIAO::Config_Handlers::Writer::SequenceType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::AliasType,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::DataValue,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::NamedValue,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
- virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
- virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
- virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
- virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
- virtual ::CIAO::Config_Handlers::Writer::Requirement,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
- virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
- virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::IdRef,
- virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
- virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
- virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
- virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
- virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
- virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
- virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
- virtual ::CIAO::Config_Handlers::Writer::Capability,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
- virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
- virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
- virtual ::XSCRT::Writer< ACE_TCHAR >
- {
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "topLevelPackageDescription")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::CIAO::Config_Handlers::Writer::TopLevelPackageDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackageConfiguration,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentInterfaceDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Property,
+ virtual ::CIAO::Config_Handlers::Writer::Any,
+ virtual ::CIAO::Config_Handlers::Writer::DataType,
+ virtual ::CIAO::Config_Handlers::Writer::TCKind,
+ virtual ::CIAO::Config_Handlers::Writer::EnumType,
+ virtual ::CIAO::Config_Handlers::Writer::StructType,
+ virtual ::CIAO::Config_Handlers::Writer::StructMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueType,
+ virtual ::CIAO::Config_Handlers::Writer::ValueMemberType,
+ virtual ::CIAO::Config_Handlers::Writer::SequenceType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedInt, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::AliasType,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::DataValue,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::short_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::int_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedShort, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::float_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::double_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::boolean, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedByte, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::long_, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::unsignedLong, ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::NamedValue,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPortDescription,
+ virtual ::CIAO::Config_Handlers::Writer::CCMComponentPortKind,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPropertyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::PackagedComponentImplementation,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentAssemblyDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentInstantiationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Requirement,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageReference,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentPackageImport,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyConnectionDescription,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::IdRef,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::CIAO::Config_Handlers::Writer::ComponentExternalPortEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::ExternalReferenceEndpoint,
+ virtual ::CIAO::Config_Handlers::Writer::AssemblyPropertyMapping,
+ virtual ::CIAO::Config_Handlers::Writer::SubcomponentPropertyReference,
+ virtual ::CIAO::Config_Handlers::Writer::MonolithicImplementationDescription,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationRequirement,
+ virtual ::CIAO::Config_Handlers::Writer::ResourceUsageKind,
+ virtual ::CIAO::Config_Handlers::Writer::NamedImplementationArtifact,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationArtifactDescription,
+ virtual ::CIAO::Config_Handlers::Writer::Capability,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierProperty,
+ virtual ::CIAO::Config_Handlers::Writer::SatisfierPropertyKind,
+ virtual ::CIAO::Config_Handlers::Writer::ImplementationDependency,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
}
}
diff --git a/CIAO/tools/Config_Handlers/Deployment.hpp b/CIAO/tools/Config_Handlers/Deployment.hpp
index d502c9b534a..14e8bf3e293 100644
--- a/CIAO/tools/Config_Handlers/Deployment.hpp
+++ b/CIAO/tools/Config_Handlers/Deployment.hpp
@@ -32,6 +32,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "Basic_Deployment_Data.hpp"
#include "cpd.hpp"
@@ -53,37 +56,68 @@ namespace CIAO
{
namespace Config_Handlers
{
- XSC_XML_Handlers_Export
- ::CIAO::Config_Handlers::Domain
- domain (xercesc::DOMDocument const*);
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::Domain
+ domain (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::deploymentPlan
+ DeploymentPlan (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription
+ implementationArtifactDescription (xercesc::DOMDocument const*);
+ }
+
- XSC_XML_Handlers_Export
- ::CIAO::Config_Handlers::deploymentPlan
- DeploymentPlan (xercesc::DOMDocument const*);
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription
+ componentInterfaceDescription (xercesc::DOMDocument const*);
+ }
+
+
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::ComponentImplementationDescription
+ componentImplementationDescription (xercesc::DOMDocument const*);
+ }
- XSC_XML_Handlers_Export
- ::CIAO::Config_Handlers::ImplementationArtifactDescription
- implementationArtifactDescription (xercesc::DOMDocument const*);
- XSC_XML_Handlers_Export
- ::CIAO::Config_Handlers::ComponentInterfaceDescription
- componentInterfaceDescription (xercesc::DOMDocument const*);
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::ComponentPackageDescription
+ componentPackageDescription (xercesc::DOMDocument const*);
+ }
- XSC_XML_Handlers_Export
- ::CIAO::Config_Handlers::ComponentImplementationDescription
- componentImplementationDescription (xercesc::DOMDocument const*);
- XSC_XML_Handlers_Export
- ::CIAO::Config_Handlers::ComponentPackageDescription
- componentPackageDescription (xercesc::DOMDocument const*);
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::PackageConfiguration
+ packageConfiguration (xercesc::DOMDocument const*);
+ }
- XSC_XML_Handlers_Export
- ::CIAO::Config_Handlers::PackageConfiguration
- packageConfiguration (xercesc::DOMDocument const*);
- XSC_XML_Handlers_Export
- ::CIAO::Config_Handlers::TopLevelPackageDescription
- topLevelPackageDescription (xercesc::DOMDocument const*);
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::CIAO::Config_Handlers::TopLevelPackageDescription
+ topLevelPackageDescription (xercesc::DOMDocument const*);
+ }
}
}
@@ -115,37 +149,68 @@ namespace CIAO
{
namespace Config_Handlers
{
- XSC_XML_Handlers_Export
- void
- domain (::CIAO::Config_Handlers::Domain const&, xercesc::DOMDocument*);
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ domain (::CIAO::Config_Handlers::Domain const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ DeploymentPlan (::CIAO::Config_Handlers::deploymentPlan const&, xercesc::DOMDocument*);
+ }
- XSC_XML_Handlers_Export
- void
- DeploymentPlan (::CIAO::Config_Handlers::deploymentPlan const&, xercesc::DOMDocument*);
- XSC_XML_Handlers_Export
- void
- implementationArtifactDescription (::CIAO::Config_Handlers::ImplementationArtifactDescription const&, xercesc::DOMDocument*);
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ implementationArtifactDescription (::CIAO::Config_Handlers::ImplementationArtifactDescription const&, xercesc::DOMDocument*);
+ }
- XSC_XML_Handlers_Export
- void
- componentInterfaceDescription (::CIAO::Config_Handlers::ComponentInterfaceDescription const&, xercesc::DOMDocument*);
- XSC_XML_Handlers_Export
- void
- componentImplementationDescription (::CIAO::Config_Handlers::ComponentImplementationDescription const&, xercesc::DOMDocument*);
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ componentInterfaceDescription (::CIAO::Config_Handlers::ComponentInterfaceDescription const&, xercesc::DOMDocument*);
+ }
- XSC_XML_Handlers_Export
- void
- componentPackageDescription (::CIAO::Config_Handlers::ComponentPackageDescription const&, xercesc::DOMDocument*);
- XSC_XML_Handlers_Export
- void
- packageConfiguration (::CIAO::Config_Handlers::PackageConfiguration const&, xercesc::DOMDocument*);
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ componentImplementationDescription (::CIAO::Config_Handlers::ComponentImplementationDescription const&, xercesc::DOMDocument*);
+ }
- XSC_XML_Handlers_Export
- void
- topLevelPackageDescription (::CIAO::Config_Handlers::TopLevelPackageDescription const&, xercesc::DOMDocument*);
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ componentPackageDescription (::CIAO::Config_Handlers::ComponentPackageDescription const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ packageConfiguration (::CIAO::Config_Handlers::PackageConfiguration const&, xercesc::DOMDocument*);
+ }
+
+
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ topLevelPackageDescription (::CIAO::Config_Handlers::TopLevelPackageDescription const&, xercesc::DOMDocument*);
+ }
}
}
diff --git a/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp b/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
index a4f8d2292f8..bdffee8ecfc 100644
--- a/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/DynAny_Handler/DynAny_Handler.cpp
@@ -68,22 +68,22 @@ namespace CIAO
case TCKind::tk_short_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_short);
- retval->insert_short (CORBA::Short (static_cast < ::XMLSchema::short_ const & > (*value.begin_short ())));
+ retval->insert_short (CORBA::Short (static_cast < ::XMLSchema::short_ const & > (*(*value.begin_short ()))));
break;
case TCKind::tk_long_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_long);
- retval->insert_long (CORBA::Long (static_cast < ::XMLSchema::int_ const& > (*value.begin_long ())));
+ retval->insert_long (CORBA::Long (static_cast < ::XMLSchema::int_ const& > (*(*value.begin_long ()))));
break;
case TCKind::tk_ushort_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_ushort);
- retval->insert_ushort (CORBA::UShort (static_cast< ::XMLSchema::unsignedShort const & > (*value.begin_ushort ())));
+ retval->insert_ushort (CORBA::UShort (static_cast< ::XMLSchema::unsignedShort const & > (*(*value.begin_ushort ()))));
break;
case TCKind::tk_ulong_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_ulong);
- retval->insert_ulong (CORBA::ULong (static_cast < ::XMLSchema::unsignedInt const& > (*value.begin_ulong ())));
+ retval->insert_ulong (CORBA::ULong (static_cast < ::XMLSchema::unsignedInt const& > (*(*value.begin_ulong ()))));
break;
case TCKind::tk_float_l:
@@ -98,37 +98,37 @@ namespace CIAO
case TCKind::tk_boolean_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_boolean);
- retval->insert_boolean (static_cast < ::XMLSchema::boolean const& > (*value.begin_boolean ()));
+ retval->insert_boolean (static_cast < ::XMLSchema::boolean const& > (*(*value.begin_boolean ())));
break;
case TCKind::tk_char_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_char);
- retval->insert_char (CORBA::Char (*value.begin_string ()->c_str ()));
+ retval->insert_char (CORBA::Char (*(*value.begin_string ())->c_str ()));
break;
case TCKind::tk_octet_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_octet);
- retval->insert_octet (static_cast <const unsigned char &> (*value.begin_octet ()));
+ retval->insert_octet (static_cast <const unsigned char &> (*(*(value.begin_octet ()))));
break;
case TCKind::tk_string_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_string);
- retval->insert_string (value.begin_string ()->c_str ());
+ retval->insert_string ((*value.begin_string ())->c_str ());
break;
case TCKind::tk_longlong_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_longlong);
- retval->insert_longlong (CORBA::LongLong (static_cast < ::XMLSchema::long_ const& > (*value.begin_longlong ())));
+ retval->insert_longlong (CORBA::LongLong (static_cast < ::XMLSchema::long_ const& > (*(*value.begin_longlong ()))));
break;
case TCKind::tk_ulonglong_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_ulonglong);
- retval->insert_ulonglong (CORBA::ULongLong (static_cast < ::XMLSchema::unsignedLong const& > (*value.begin_ulonglong ())));
+ retval->insert_ulonglong (CORBA::ULongLong (static_cast < ::XMLSchema::unsignedLong const& > (*(*value.begin_ulonglong ()))));
break;
case TCKind::tk_wchar_l:
if (!req_tc) retval = this->daf_->create_dyn_any_from_type_code (CORBA::_tc_wchar);
- retval->insert_wchar (CORBA::WChar (*value.begin_string ()->c_str ()));
+ retval->insert_wchar (CORBA::WChar (*(*value.begin_string ())->c_str ()));
break;
case TCKind::tk_enum_l:
@@ -174,7 +174,7 @@ namespace CIAO
DynamicAny::DynAny_var dyn = this->daf_->create_dyn_any (any);
DataValue val;
-
+#if 0
switch (dyn->type ()->kind ())
{
case CORBA::tk_short:
@@ -243,6 +243,9 @@ namespace CIAO
ACE_ERROR ((LM_ERROR, "DynAny_Handler: I have no idea how to perform a referse mapping.\n"));
throw Config_Error ("", "reverse mapping for this type not supported");
}
+#endif
+ Any retval (TCKind::tk_char, val);
+ return retval;
}
CORBA::TypeCode_ptr
diff --git a/CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp b/CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
index 0a525bf22d1..99986ed6a47 100644
--- a/CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/DynAny_Handler/DynEnum_Handler.cpp
@@ -35,7 +35,7 @@ namespace CIAO
DYNANY_HANDLER->daf ()->create_dyn_any_from_type_code (tc);
DynamicAny::DynEnum_var retval = DynamicAny::DynEnum::_narrow (temp.in ());
- retval->set_as_string (value.begin_enum ()->c_str ());
+ retval->set_as_string ((*value.begin_enum ())->c_str ());
return retval._retn ();
}
@@ -88,7 +88,7 @@ namespace CIAO
i != type.enum_ ().end_member ();
++i)
{
- members[index++] = CORBA::string_dup (i->c_str ());
+ members[index++] = CORBA::string_dup ((*i)->c_str ());
}
// @@ Leak this guy onto the heap to avoid a compile problem.
diff --git a/CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp b/CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp
index fa86fefef76..c1dbdac7093 100644
--- a/CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/DynAny_Handler/DynSequence_Handler.cpp
@@ -76,7 +76,7 @@ namespace CIAO
{
DynamicAny::DynAny_var dynany
(DYNANY_HANDLER->extract_into_dynany (type.sequence ().elementType (),
- *i));
+ **i));
dynseq[pos++] = dynany->copy ();
}
diff --git a/CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp b/CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
index 807cd72b53e..030e192dffe 100644
--- a/CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/DynAny_Handler/DynStruct_Handler.cpp
@@ -24,7 +24,7 @@ namespace CIAO
for (StructType::member_const_iterator i = type.struct_ ().begin_member ();
i != type.struct_ ().end_member (); ++i)
{
- dt_map[i->name ()] = &(i->type ());
+ dt_map[(*i)->name ()] = &((*i)->type ());
}
}
@@ -57,9 +57,9 @@ namespace CIAO
for (DataValue::member_const_iterator i = value.begin_member ();
i != value.end_member (); ++i)
{
- values[pos].id = i->name ().c_str ();
- values[pos].value = DYNANY_HANDLER->extract_into_dynany (*dt_map[i->name ()],
- i->value ());
+ values[pos].id = (*i)->name ().c_str ();
+ values[pos].value = DYNANY_HANDLER->extract_into_dynany (*dt_map[(*i)->name ()],
+ (*i)->value ());
pos++;
}
@@ -107,8 +107,8 @@ namespace CIAO
for (StructType::member_const_iterator i = type.struct_ ().begin_member ();
i != type.struct_ ().end_member (); ++i)
{
- members[pos].name = i->name ().c_str ();
- members[pos].type = DYNANY_HANDLER->create_typecode (i->type ());
+ members[pos].name = (*i)->name ().c_str ();
+ members[pos].type = DYNANY_HANDLER->create_typecode ((*i)->type ());
++pos;
}
diff --git a/CIAO/tools/Config_Handlers/ERE_Handler.cpp b/CIAO/tools/Config_Handlers/ERE_Handler.cpp
index 8a8a8f31666..5a077762111 100644
--- a/CIAO/tools/Config_Handlers/ERE_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/ERE_Handler.cpp
@@ -24,7 +24,7 @@ namespace CIAO
erep_b != erep_e;
++erep_b)
{
- ERE_Handler::handle_external_ref_endpoint ((*erep_b),
+ ERE_Handler::handle_external_ref_endpoint (*(*erep_b),
dest[pos++]);
}
}
diff --git a/CIAO/tools/Config_Handlers/ERE_Handler.h b/CIAO/tools/Config_Handlers/ERE_Handler.h
index 9d1fc412bce..5e4d1e1054e 100644
--- a/CIAO/tools/Config_Handlers/ERE_Handler.h
+++ b/CIAO/tools/Config_Handlers/ERE_Handler.h
@@ -55,13 +55,13 @@ namespace CIAO
const Deployment::ExternalReferenceEndpoint& src);
static void handle_external_ref_endpoint (const ExternalReferenceEndpoint &src,
- Deployment::ExternalReferenceEndpoint &dest);
+ Deployment::ExternalReferenceEndpoint &dest);
};
typedef Sequence_Handler < ExternalReferenceEndpoint,
- ::Deployment::ExternalReferenceEndpoints,
- ::Deployment::ExternalReferenceEndpoint,
- ERE_Handler::handle_external_ref_endpoint > ERE_Functor;
+ ::Deployment::ExternalReferenceEndpoints,
+ ::Deployment::ExternalReferenceEndpoint,
+ ERE_Handler::handle_external_ref_endpoint > ERE_Functor;
}
}
diff --git a/CIAO/tools/Config_Handlers/IDD_Handler.cpp b/CIAO/tools/Config_Handlers/IDD_Handler.cpp
index 5ea8f82952e..c768a86e307 100644
--- a/CIAO/tools/Config_Handlers/IDD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/IDD_Handler.cpp
@@ -31,7 +31,7 @@ namespace CIAO
idd_b != idd_e;
++idd_b)
{
- IDD_Handler::instance_deployment_descr ((*idd_b),
+ IDD_Handler::instance_deployment_descr (*(*idd_b),
dest[pos], pos);
pos++;
}
@@ -49,9 +49,9 @@ namespace CIAO
dest.name = src.name ().c_str ();
dest.node = src.node ().c_str ();
- if (src.xmi_id_p ())
+ if (src.id_p ())
{
- ACE_CString cstr (src.xmi_id ().c_str ());
+ ACE_CString cstr (src.id ().c_str ());
IDD_Handler::IDREF.bind_ref (cstr, pos);
}
else
@@ -132,16 +132,14 @@ namespace CIAO
size_t total = src.configProperty.length();
for(size_t j = 0; j < total; j++)
{
- idd.add_configProperty(
- Property_Handler::get_property (
- src.configProperty[j]));
+ //idd.add_configProperty(Property_Handler::get_property (src.configProperty[j]));
}
// Get and store the deployedResource(s)
size_t dp_total = src.deployedResource.length ();
for (size_t k = 0; k < dp_total; k++)
{
- idd.add_deployedResource (IRDD_Handler::instance_resource_deployment_descr (src.deployedResource[k]));
+ //idd.add_deployedResource (IRDD_Handler::instance_resource_deployment_descr (src.deployedResource[k]));
}
//Check if there is a deployedSharedResource, if so store it
@@ -159,7 +157,7 @@ namespace CIAO
// Bind the ref and set it in the IDD
IDD_Handler::IDREF.bind_next_available (idd_id);
- idd.xmi_id (xml_id);
+ idd.id (xml_id);
return idd;
}
diff --git a/CIAO/tools/Config_Handlers/IRDD_Handler.cpp b/CIAO/tools/Config_Handlers/IRDD_Handler.cpp
index f834fcbd192..b4bc662fb02 100644
--- a/CIAO/tools/Config_Handlers/IRDD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/IRDD_Handler.cpp
@@ -107,7 +107,7 @@ namespace CIAO
for (CORBA::ULong i = 0; i < src.property.length (); ++i)
{
- irdd.add_property (Property_Handler::get_property (src.property[i]));
+ //irdd.add_property (Property_Handler::get_property (src.property[i]));
}
diff --git a/CIAO/tools/Config_Handlers/IRDD_Handler.h b/CIAO/tools/Config_Handlers/IRDD_Handler.h
index af641813e26..dc4955988ee 100644
--- a/CIAO/tools/Config_Handlers/IRDD_Handler.h
+++ b/CIAO/tools/Config_Handlers/IRDD_Handler.h
@@ -12,8 +12,8 @@
#define CIAO_CONFIG_HANDLERS_IRDD_Handler_H
#include /**/ "ace/pre.h"
-#include "Common.h"
#include "Config_Handlers_Export.h"
+#include "Common.h"
#include "ace/config-lite.h"
#include "Utils/Functors.h"
diff --git a/CIAO/tools/Config_Handlers/MDD_Handler.cpp b/CIAO/tools/Config_Handlers/MDD_Handler.cpp
index 36ce5d55e69..97ab2b4055e 100644
--- a/CIAO/tools/Config_Handlers/MDD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/MDD_Handler.cpp
@@ -30,7 +30,7 @@ namespace CIAO
imp_b != imp_e;
++imp_b)
{
- MDD_Handler::mono_deployment_description (*imp_b,
+ MDD_Handler::mono_deployment_description (*(*imp_b),
dest[pos],
pos);
pos++;
@@ -56,7 +56,7 @@ namespace CIAO
++se)
{
toconfig.source[len++] =
- CORBA::string_dup ((*se).c_str ());
+ CORBA::string_dup ((*se)->c_str ());
}
MonolithicDeploymentDescription::artifact_const_iterator ae =
@@ -70,7 +70,7 @@ namespace CIAO
{
CORBA::ULong tmp = 0;
- ADD_Handler::IDREF.find_ref (ACE_CString (ab->idref ().id ().c_str ()),
+ ADD_Handler::IDREF.find_ref (ACE_CString ((*ab)->idref ().id ().c_str ()),
tmp);
toconfig.artifactRef[len++] = tmp;
@@ -85,8 +85,8 @@ namespace CIAO
epcb != epce;
++epcb)
{
- Property_Handler::handle_property ((*epcb),
- toconfig.execParameter[len++]);
+ Property_Handler::handle_property (*(*epcb),
+ toconfig.execParameter[len++]);
}
toconfig.deployRequirement.length (desc.count_deployRequirement ());
@@ -95,9 +95,9 @@ namespace CIAO
Requirement_Functor (toconfig.deployRequirement));
// Handle the idref
- if (desc.xmi_id_p ())
+ if (desc.id_p ())
{
- ACE_CString cstr (desc.xmi_id ().c_str ());
+ ACE_CString cstr (desc.id ().c_str ());
MDD_Handler::IDREF.bind_ref (cstr, pos);
}
@@ -125,7 +125,7 @@ namespace CIAO
for(size_t i = 0; i < total; i++)
{
XMLSchema::string< char > curr ((src.source[i]));
- mdd.add_source(curr);
+ //mdd.add_source(curr);
}
//Get the artifactRef(s) from the IDL and store them
@@ -136,23 +136,21 @@ namespace CIAO
ADD_Handler::IDREF.find_ref(src.artifactRef[j], tmp);
IdRef idref;
idref.idref (tmp.c_str ());
- mdd.add_artifact (idref);
+ //mdd.add_artifact (idref);
}
//Get the execParameter(s) from the IDL and store them
total = src.execParameter.length();
for(size_t k = 0; k < total; k++)
{
- mdd.add_execParameter (
- Property_Handler::get_property (src.execParameter[k]));
+ //mdd.add_execParameter (Property_Handler::get_property (src.execParameter[k]));
}
//Get the deployRequirement(s) from the IDL and store them
total = src.deployRequirement.length();
for(size_t l = 0; l < total; l++)
{
- mdd.add_deployRequirement(
- Req_Handler::get_requirement (src.deployRequirement[l]));
+ //mdd.add_deployRequirement(Req_Handler::get_requirement (src.deployRequirement[l]));
}
// Generate a UUID to use for the IDREF.
@@ -166,7 +164,7 @@ namespace CIAO
// Bind the ref and set it in the IDD
MDD_Handler::IDREF.bind_next_available (mdd_id);
- mdd.xmi_id (xml_id);
+ mdd.id (xml_id);
return mdd;
}
diff --git a/CIAO/tools/Config_Handlers/PCD_Handler.cpp b/CIAO/tools/Config_Handlers/PCD_Handler.cpp
index 071194d778a..52b36784713 100644
--- a/CIAO/tools/Config_Handlers/PCD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/PCD_Handler.cpp
@@ -73,7 +73,7 @@ namespace CIAO
res++)
{
crddhandler.get_ConnectionResourceDeploymentDescription (toconfig.deployedResource[pos++],
- *res);
+ *(*res));
}
}
@@ -98,40 +98,35 @@ namespace CIAO
size_t total = src.externalEndpoint.length();
for(size_t i = 0; i < total; i++)
{
- pcd.add_externalEndpoint(
- CEPE_Handler::external_port_endpoint(src.externalEndpoint[i]));
+ //pcd.add_externalEndpoint(CEPE_Handler::external_port_endpoint(src.externalEndpoint[i]));
}
//Get any externalReference(s) and store them
total = src.externalReference.length();
for(size_t j = 0; j < total; j++)
{
- pcd.add_externalReference(
- ERE_Handler::external_ref_endpoint(src.externalReference[j]));
+ //pcd.add_externalReference(ERE_Handler::external_ref_endpoint(src.externalReference[j]));
}
//Get any internalEndpoint(s) and store them
total = src.internalEndpoint.length();
for(size_t k = 0; k < total; k++)
{
- pcd.add_internalEndpoint(
- PSPE_Handler::sub_component_port_endpoint(src.internalEndpoint[k]));
+ //pcd.add_internalEndpoint(PSPE_Handler::sub_component_port_endpoint(src.internalEndpoint[k]));
}
//Get any deployedResource(s) and store them
total = src.deployedResource.length();
for(size_t l = 0; l < total; l++)
{
- pcd.add_deployedResource(
- CRDD_Handler::connection_resource_depl_desc(src.deployedResource[l]));
+ //pcd.add_deployedResource(CRDD_Handler::connection_resource_depl_desc(src.deployedResource[l]));
}
//Get any deployRequirement(s) and store them
total = src.deployRequirement.length();
for(size_t m = 0; m < total; m++)
{
- pcd.add_deployRequirement(
- Req_Handler::get_requirement(src.deployRequirement[m]));
+ //pcd.add_deployRequirement(Req_Handler::get_requirement(src.deployRequirement[m]));
}
return pcd;
diff --git a/CIAO/tools/Config_Handlers/PSPE_Handler.cpp b/CIAO/tools/Config_Handlers/PSPE_Handler.cpp
index 221ec4fa7d9..1cb225f0759 100644
--- a/CIAO/tools/Config_Handlers/PSPE_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/PSPE_Handler.cpp
@@ -26,7 +26,7 @@ namespace CIAO
iei_b != iei_e;
++iei_b)
{
- PSPE_Handler::sub_component_port_endpoint ((*iei_b),
+ PSPE_Handler::sub_component_port_endpoint (*(*iei_b),
dest[pos++]);
}
}
diff --git a/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp b/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
index a3041db909c..8bf88e3e770 100644
--- a/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/Package_Handlers/CAD_Handler.cpp
@@ -70,16 +70,16 @@ namespace CIAO
toconfig.internalEndpoint.length (desc.count_internalEndpoint ());
SEQ_HAND_GCC_BUG_WORKAROUND (SPE_Handler::handle_spe,
- desc.begin_internalEndpoint (),
- toconfig.internalEndpoint);
+ (*desc.begin_internalEndpoint ()),
+ toconfig.internalEndpoint);
std::for_each (desc.begin_internalEndpoint (),
desc.end_internalEndpoint (),
SPE_Functor (toconfig.internalEndpoint));
toconfig.externalEndpoint.length (desc.count_externalEndpoint ());
std::for_each (desc.begin_externalEndpoint (),
- desc.end_externalEndpoint (),
- CEPE_Functor (toconfig.externalEndpoint));
+ desc.end_externalEndpoint (),
+ CEPE_Functor (toconfig.externalEndpoint));
toconfig.externalReference.length (desc.count_externalReference ());
std::for_each (desc.begin_externalReference (),
@@ -94,10 +94,9 @@ namespace CIAO
CIAO_TRACE("ACD_Handler::get_acd - reverse");
AssemblyConnectionDescription retval (src.name.in ());
-
+#if 0
for (CORBA::ULong i = 0; i < src.deployRequirement.length (); ++i)
- retval.add_deployRequirement
- (Req_Handler::get_requirement (src.deployRequirement[i]));
+ retval.add_deployRequirement (Req_Handler::get_requirement (src.deployRequirement[i]));
for (CORBA::ULong i = 0; i < src.internalEndpoint.length (); ++i)
retval.add_internalEndpoint
@@ -110,7 +109,7 @@ namespace CIAO
for (CORBA::ULong i = 0; i < src.externalReference.length (); ++i)
retval.add_externalReference
(ERE_Handler::external_ref_endpoint (src.externalReference[i]));
-
+#endif
return retval;
}
};
@@ -170,8 +169,8 @@ namespace CIAO
toconfig.delegatesTo.length (desc.count_delegatesTo ());
SEQ_HAND_GCC_BUG_WORKAROUND (SPR_Handler::handle_spr,
- desc.begin_delegatesTo (),
- toconfig.delegatesTo);
+ (*desc.begin_delegatesTo ()),
+ toconfig.delegatesTo);
std::for_each (desc.begin_delegatesTo (),
desc.end_delegatesTo (),
SPR_Functor (toconfig.delegatesTo));
@@ -184,10 +183,10 @@ namespace CIAO
AssemblyPropertyMapping retval (src.name.in (),
src.externalName.in ());
-
+#if 0
for (CORBA::ULong i = 0; i < src.delegatesTo.length (); ++i)
retval.add_delegatesTo (SPR_Handler::get_spr (src.delegatesTo[i]));
-
+#endif
return retval;
}
};
@@ -211,29 +210,29 @@ namespace CIAO
/* @@ MAJO: Implement Locality */
toconfig.connection.length (desc.count_connection ());
- SEQ_HAND_GCC_BUG_WORKAROUND (ACD_Handler::handle_acd,
- desc.begin_connection (),
- toconfig.connection);
+ SEQ_HAND_GCC_BUG_WORKAROUND (ACD_Handler::handle_acd,
+ (*desc.begin_connection ()),
+ toconfig.connection);
std::for_each (desc.begin_connection (),
desc.end_connection (),
ACD_Functor (toconfig.connection));
toconfig.externalProperty.length (desc.count_externalProperty ());
- SEQ_HAND_GCC_BUG_WORKAROUND (APM_Handler::handle_apm,
- desc.begin_externalProperty (),
- toconfig.externalProperty);
+ SEQ_HAND_GCC_BUG_WORKAROUND (APM_Handler::handle_apm,
+ (*desc.begin_externalProperty ()),
+ toconfig.externalProperty);
std::for_each (desc.begin_externalProperty (),
desc.end_externalProperty (),
APM_Functor (toconfig.externalProperty));
}
ComponentAssemblyDescription
- CAD_Handler::component_assem_descr (const ::Deployment::ComponentAssemblyDescription &src)
+ CAD_Handler::component_assem_descr (const ::Deployment::ComponentAssemblyDescription &/*src*/)
{
CIAO_TRACE("CAD_Handler::component_assem_descr - reverse");
ComponentAssemblyDescription retval;
-
+#if 0
for (CORBA::ULong i = 0; i < src.instance.length (); ++i)
retval.add_instance
(SID_Handler::sub_comp_inst_descr (src.instance[i]));
@@ -243,7 +242,7 @@ namespace CIAO
for (CORBA::ULong i = 0; i < src.externalProperty.length (); ++i)
retval.add_externalProperty (APM_Handler::get_apm (src.externalProperty[i]));
-
+#endif
return retval;
}
diff --git a/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp b/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
index f4bca5f8248..63551fdf16a 100644
--- a/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/Package_Handlers/CID_Handler.cpp
@@ -52,13 +52,13 @@ namespace CIAO
CIAO_TRACE ("Capability_Handler::get_capability - reverse");
Capability retval (src.name.in ());
-
+#if 0
for (CORBA::ULong i = 0; i < src.resourceType.length (); ++i)
- retval.add_resourceType (src.resourceType[i].in ());
+ retval.add_resourceType (src.resourceType[i].in ());
for (CORBA::ULong i = 0; i < src.property.length (); ++i)
retval.add_property (SatisfierProperty_Handler::get_sat_property (src.property[i]));
-
+#endif
return retval;
}
};
@@ -160,10 +160,10 @@ namespace CIAO
retval.resourcePort (src.resourcePort.in ());
retval.componentPort (src.componentPort.in ());
-
+#if 0
for (CORBA::ULong i = 0; i < src.property.length (); ++i)
retval.add_property (Property_Handler::get_property (src.property[i]));
-
+#endif
return retval;
}
};
@@ -193,8 +193,8 @@ namespace CIAO
toconfig.deployRequirement.length (desc.count_deployRequirement ());
while (0)
{
- IR_Handler::handle_ir (*desc.begin_deployRequirement (),
- toconfig.deployRequirement[0]);
+ IR_Handler::handle_ir (*(*desc.begin_deployRequirement ()),
+ toconfig.deployRequirement[0]);
}
std::for_each (desc.begin_deployRequirement (),
desc.end_deployRequirement (),
@@ -202,20 +202,20 @@ namespace CIAO
toconfig.primaryArtifact.length (desc.count_primaryArtifact ());
SEQ_HAND_GCC_BUG_WORKAROUND (NIA_Handler::handle_nia,
- desc.begin_primaryArtifact (),
- toconfig.primaryArtifact);
+ (*desc.begin_primaryArtifact ()),
+ toconfig.primaryArtifact);
std::for_each (desc.begin_primaryArtifact (),
desc.end_primaryArtifact (),
NIA_Functor (toconfig.primaryArtifact));
}
static MonolithicImplementationDescription
- get_mid (const ::Deployment::MonolithicImplementationDescription &src)
+ get_mid (const ::Deployment::MonolithicImplementationDescription &/*src*/)
{
CIAO_TRACE ("MID_Handler::get_mid - reverse");
MonolithicImplementationDescription retval;
-
+#if 0
for (CORBA::ULong i = 0; i < src.nodeExecParameter.length (); ++i)
retval.add_nodeExecParameter
(Property_Handler::get_property (src.nodeExecParameter[i]));
@@ -231,7 +231,7 @@ namespace CIAO
for (CORBA::ULong i = 0; i < src.primaryArtifact.length (); ++i)
retval.add_primaryArtifact
(NIA_Handler::get_nia (src.primaryArtifact[i]));
-
+#endif
return retval;
}
@@ -297,9 +297,9 @@ namespace CIAO
// capability
toconfig.capability.length (cid->count_capability ());
- SEQ_HAND_GCC_BUG_WORKAROUND (Capability_Handler::handle_capability,
- cid->begin_capability (),
- toconfig.capability);
+ SEQ_HAND_GCC_BUG_WORKAROUND (Capability_Handler::handle_capability,
+ (*cid->begin_capability ()),
+ toconfig.capability);
std::for_each (cid->begin_capability (),
cid->end_capability (),
Capability_Functor (toconfig.capability));
@@ -310,7 +310,7 @@ namespace CIAO
for (ComponentImplementationDescription::dependsOn_const_iterator i = cid->begin_dependsOn ();
i != cid->end_dependsOn ();
++i)
- toconfig.dependsOn[pos++].requiredType = i->requiredType ().c_str ();
+ toconfig.dependsOn[pos++].requiredType = (*i)->requiredType ().c_str ();
// infoProperty
toconfig.infoProperty.length (cid->count_infoProperty ());
@@ -345,7 +345,7 @@ namespace CIAO
else
ACE_DEBUG ((LM_WARNING, "Warning: ComponentImplementationDescription lacks "
"either a required assemblyImpl or monolithicImpl, or has too many"));
-
+#if 0
for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i)
{
retval.add_configProperty (
@@ -362,7 +362,7 @@ namespace CIAO
retval.add_infoProperty (
Property_Handler::get_property (src.infoProperty[i]));
}
-
+#endif
return retval;
}
@@ -378,7 +378,7 @@ namespace CIAO
try {
return new ComponentImplementationDescription
- (componentImplementationDescription (dom));
+ (reader::componentImplementationDescription (dom));
}
catch (...) {
throw Parse_Error ("Unable to create XSC structure for CID");
diff --git a/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp b/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
index e39d5ced065..1a801263e06 100644
--- a/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/Package_Handlers/CPD_Handler.cpp
@@ -81,9 +81,9 @@ namespace CIAO
// Packaged Component Implementations
toconfig.implementation.length ( cpd->count_implementation ());
- SEQ_HAND_GCC_BUG_WORKAROUND (PCI_Handler::handle_pci,
- cpd->begin_implementation (),
- toconfig.implementation);
+ SEQ_HAND_GCC_BUG_WORKAROUND (PCI_Handler::handle_pci,
+ (*cpd->begin_implementation ()),
+ toconfig.implementation);
std::for_each (cpd->begin_implementation (),
cpd->end_implementation (),
PCI_Functor (toconfig.implementation));
@@ -111,7 +111,7 @@ namespace CIAO
toconfig.realizes
(Comp_Intf_Descr_Handler::comp_intf_descr (src.realizes));
}
-
+#if 0
for (size_t i = 0; i < src.configProperty.length (); ++i)
{
toconfig.add_configProperty (
@@ -129,7 +129,7 @@ namespace CIAO
toconfig.add_infoProperty (
Property_Handler::get_property (src.infoProperty[i]));
}
-
+#endif
return toconfig;
}
@@ -147,7 +147,7 @@ namespace CIAO
try {
//ACE_ERROR ((LM_ERROR, "Creating new CPD XSC Object\n"));
- return new ComponentPackageDescription (componentPackageDescription (dom));
+ return new ComponentPackageDescription (reader::componentPackageDescription (dom));
}
catch (...) {
throw Parse_Error ("Unable to create XSC structure for CID");
diff --git a/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp b/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
index 06264e649c9..564d3e99448 100644
--- a/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/Package_Handlers/Comp_Intf_Descr_Handler.cpp
@@ -94,9 +94,9 @@ namespace CIAO
CIAO::Config_Handlers::CPD_Functor (toconfig.port));
toconfig.property.length (cid->count_property ());
- SEQ_HAND_GCC_BUG_WORKAROUND (Comp_Prop_Handler::handle_cpd,
- cid->begin_property (),
- toconfig.property);
+ SEQ_HAND_GCC_BUG_WORKAROUND (Comp_Prop_Handler::handle_cpd,
+ (*cid->begin_property ()),
+ toconfig.property);
std::for_each (cid->begin_property (),
cid->end_property (),
Comp_Prop_Functor (toconfig.property));
@@ -118,7 +118,7 @@ namespace CIAO
retval.label (src.label.in ());
retval.UUID (src.UUID.in ());
retval.specificType (src.specificType.in ());
-
+#if 0
for (CORBA::ULong i = 0; i < src.supportedType.length (); ++i)
retval.add_supportedType (src.supportedType[i].in ());
@@ -139,7 +139,7 @@ namespace CIAO
for (CORBA::ULong i = 0; i < src.infoProperty.length (); ++i)
retval.add_infoProperty (
Property_Handler::get_property (src.infoProperty[i]));
-
+#endif
return retval;
}
@@ -155,7 +155,7 @@ namespace CIAO
try {
return new ComponentInterfaceDescription
- (componentInterfaceDescription (dom));
+ (reader::componentInterfaceDescription (dom));
}
catch (...) {
throw Parse_Error ("Unable to create XSC structure for Component Interface Description");
diff --git a/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp b/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp
index e16a5c63ae8..8509c6f5925 100644
--- a/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/Package_Handlers/IAD_Handler.cpp
@@ -48,9 +48,9 @@ namespace CIAO
String_Seq_Functor (toconfig.location));
toconfig.dependsOn.length (iad->count_dependsOn ());
- SEQ_HAND_GCC_BUG_WORKAROUND (NIA_Handler::handle_nia,
- desc.begin_dependsOn (),
- toconfig.dependsOn);
+ SEQ_HAND_GCC_BUG_WORKAROUND (NIA_Handler::handle_nia,
+ (*desc.begin_dependsOn ()),
+ toconfig.dependsOn);
std::for_each (iad->begin_dependsOn (),
iad->end_dependsOn (),
NIA_Functor (toconfig.dependsOn));
@@ -79,7 +79,7 @@ namespace CIAO
retval.label (src.label.in ());
retval.UUID (src.UUID.in ());
-
+#if 0
for (CORBA::ULong i = 0; i < src.location.length (); ++i)
retval.add_location (src.location[i].in ());
@@ -97,7 +97,7 @@ namespace CIAO
for (CORBA::ULong i = 0; i < src.deployRequirement.length (); ++i)
retval.add_deployRequirement
(Req_Handler::get_requirement (src.deployRequirement[i]));
-
+#endif
return retval;
}
@@ -112,7 +112,7 @@ namespace CIAO
try {
return new ImplementationArtifactDescription
- (implementationArtifactDescription (dom));
+ (reader::implementationArtifactDescription (dom));
}
catch (...) {
throw Parse_Error ("Unable to create XSC structure for IAD");
diff --git a/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp b/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
index c7e82624f3d..ac92284fde6 100644
--- a/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/Package_Handlers/PCD_Handler.cpp
@@ -41,15 +41,15 @@ namespace CIAO
{
TopLevelPackageDescription tpd;
- tpd = topLevelPackageDescription (dom);
+ tpd = reader::topLevelPackageDescription (dom);
- PCD_Handler::package_config (*tpd.begin_basePackage (),
+ PCD_Handler::package_config (*(*tpd.begin_basePackage ()),
toconfig);
}
else if (root == XStr ("Deployment:packageConfiguration"))
{
PackageConfiguration pcd;
- pcd = packageConfiguration (dom);
+ pcd = reader::packageConfiguration (dom);
PCD_Handler::package_config (pcd, toconfig);
}
else
@@ -130,14 +130,14 @@ namespace CIAO
ACE_DEBUG ((LM_DEBUG, "5\n"));
pcd.basePackage (CPD_Handler::component_package_descr (src.basePackage[0]));
}
-
+#if 0
// @@ MAJO: Support other elements present here.
for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i)
pcd.add_configProperty (Property_Handler::get_property (src.configProperty[i]));
for (CORBA::ULong i = 0; i < src.selectRequirement.length (); ++i)
pcd.add_selectRequirement (Req_Handler::get_requirement (src.selectRequirement[i]));
-
+#endif
return pcd;
}
@@ -151,7 +151,7 @@ namespace CIAO
throw Parse_Error ("Unable to create DOM for PackageConfiguration");
try {
- return new PackageConfiguration (packageConfiguration (dom));
+ return new PackageConfiguration (reader::packageConfiguration (dom));
}
catch (...) {
throw Parse_Error ("Unable to create XSC structure for PackageConfiguration");
diff --git a/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp b/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
index b6d9673bef0..08e16b6ec56 100644
--- a/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/Package_Handlers/SID_Handler.cpp
@@ -100,10 +100,10 @@ namespace CIAO
else if (src.importedPackage.length () == 1)
{
ComponentPackageImport ci;
-
+#if 0
for (CORBA::ULong i = 0; i < src.importedPackage[0].location.length (); ++i)
ci.add_location (src.importedPackage[0].location[i].in ());
-
+#endif
retval.importedPackage (ci);
}
else if (src.referencedPackage.length () == 1)
@@ -114,7 +114,7 @@ namespace CIAO
retval.referencedPackage (cpr);
}
-
+#if 0
for (CORBA::ULong i = 0; i < src.selectRequirement.length (); ++i)
retval.add_selectRequirement
(Req_Handler::get_requirement (src.selectRequirement[i]));
@@ -122,7 +122,7 @@ namespace CIAO
for (CORBA::ULong i = 0; i < src.configProperty.length (); ++i)
retval.add_configProperty
(Property_Handler::get_property (src.configProperty[i]));
-
+#endif
// @@MAJO This is not a good way of binding reverse IDREFS.
std::auto_ptr <ACE_Utils::UUID> safe_uuid (
ACE_Utils::UUID_GENERATOR::instance ()->generate_UUID ());
diff --git a/CIAO/tools/Config_Handlers/RDD_Handler.cpp b/CIAO/tools/Config_Handlers/RDD_Handler.cpp
index 28ddc5ec7cf..7d73dbe484c 100644
--- a/CIAO/tools/Config_Handlers/RDD_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/RDD_Handler.cpp
@@ -45,7 +45,7 @@ namespace CIAO
i != src.property.length ();
++i)
{
- rdd.add_property (Property_Handler::get_property (src.property[i]));
+ //rdd.add_property (Property_Handler::get_property (src.property[i]));
}
return rdd;
diff --git a/CIAO/tools/Config_Handlers/Req_Handler.cpp b/CIAO/tools/Config_Handlers/Req_Handler.cpp
index f8bb5b90fec..fcc4f81f17c 100644
--- a/CIAO/tools/Config_Handlers/Req_Handler.cpp
+++ b/CIAO/tools/Config_Handlers/Req_Handler.cpp
@@ -48,7 +48,7 @@ namespace CIAO
for (CORBA::ULong i = 0; i < src.property.length (); ++i)
{
- req.add_property (Property_Handler::get_property (src.property[i]));
+ //req.add_property (Property_Handler::get_property (src.property[i]));
}
return req;
diff --git a/CIAO/tools/Config_Handlers/Utils/Functors.h b/CIAO/tools/Config_Handlers/Utils/Functors.h
index c72478311a9..a14519b53a6 100644
--- a/CIAO/tools/Config_Handlers/Utils/Functors.h
+++ b/CIAO/tools/Config_Handlers/Utils/Functors.h
@@ -20,7 +20,7 @@ namespace CIAO
template <typename Source,
typename Dest,
typename Dest_Type,
-#if defined (__BORLANDC__) && (__BORLANDC__ == 0x564)
+#if defined (__BORLANDC__) // && (__BORLANDC__ == 0x564)
void (Func)(const Source &, Dest_Type &)>
#else
void (&Func)(const Source &, Dest_Type &)>
@@ -33,9 +33,9 @@ namespace CIAO
{
}
- void operator() (const Source &src)
+ void operator() (const ACE_Refcounted_Auto_Ptr <Source, ACE_Null_Mutex> &src)
{
- Func (src, dest_[pos_++]);
+ Func (*src, dest_[pos_++]);
}
private:
@@ -68,9 +68,9 @@ namespace CIAO
{
}
- void operator() (const ::XMLSchema::string<ACE_TCHAR> &src)
+ void operator() (const ACE_Refcounted_Auto_Ptr < ::XMLSchema::string<ACE_TCHAR>, ACE_Null_Mutex> &src)
{
- dest_[pos_++] = src.c_str ();
+ dest_[pos_++] = src->c_str ();
}
private:
diff --git a/CIAO/tools/Config_Handlers/XMI.cpp b/CIAO/tools/Config_Handlers/XMI.cpp
index ce54bf47d87..97bb755b431 100644
--- a/CIAO/tools/Config_Handlers/XMI.cpp
+++ b/CIAO/tools/Config_Handlers/XMI.cpp
@@ -30,10 +30,10 @@ namespace XMI
}
Extension::
- Extension (::XMI::Extension const& s)
- :
+ Extension (Extension const& s)
+ :
XSCRT::Type (),
- xmi_id_ (s.xmi_id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.xmi_id_) : 0),
+ id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
uuid_ (s.uuid_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.uuid_) : 0),
href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
@@ -43,7 +43,7 @@ namespace XMI
extenderID_ (s.extenderID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.extenderID_) : 0),
regulator__ ()
{
- if (xmi_id_.get ()) xmi_id_->container (this);
+ if (id_.get ()) id_->container (this);
if (label_.get ()) label_->container (this);
if (uuid_.get ()) uuid_->container (this);
if (href_.get ()) href_->container (this);
@@ -53,11 +53,11 @@ namespace XMI
if (extenderID_.get ()) extenderID_->container (this);
}
- ::XMI::Extension& Extension::
- operator= (::XMI::Extension const& s)
+ Extension& Extension::
+ operator= (Extension const& s)
{
- if (s.xmi_id_.get ()) xmi_id (*(s.xmi_id_));
- else xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
+ if (s.id_.get ()) id (*(s.id_));
+ else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
if (s.label_.get ()) label (*(s.label_));
else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
@@ -87,35 +87,35 @@ namespace XMI
// Extension
//
bool Extension::
- xmi_id_p () const
+ id_p () const
{
- return xmi_id_.get () != 0;
+ return id_.get () != 0;
}
::XMLSchema::ID< ACE_TCHAR > const& Extension::
- xmi_id () const
+ id () const
{
- return *xmi_id_;
+ return *id_;
}
::XMLSchema::ID< ACE_TCHAR >& Extension::
- xmi_id ()
+ id ()
{
- return *xmi_id_;
+ return *id_;
}
void Extension::
- xmi_id (::XMLSchema::ID< ACE_TCHAR > const& e)
+ id (::XMLSchema::ID< ACE_TCHAR > const& e)
{
- if (xmi_id_.get ())
+ if (id_.get ())
{
- *xmi_id_ = e;
+ *id_ = e;
}
else
{
- xmi_id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
- xmi_id_->container (this);
+ id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (new ::XMLSchema::ID< ACE_TCHAR > (e));
+ id_->container (this);
}
}
@@ -381,10 +381,10 @@ namespace XMI
{
::XSCRT::XML::Attribute< ACE_TCHAR > a (p.next_attribute ());
::std::basic_string< ACE_TCHAR > n (::XSCRT::XML::uq_name (a.name ()));
- if (n == "xmi_id")
+ if (n == "id")
{
::XMLSchema::ID< ACE_TCHAR > t (a);
- xmi_id (t);
+ id (t);
}
else if (n == "label")
@@ -438,19 +438,22 @@ namespace XMI
namespace XMI
{
- ::XMI::Extension
- extension (xercesc::DOMDocument const* d)
+ namespace reader
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () == "extension")
+ ::XMI::Extension
+ extension (xercesc::DOMDocument const* d)
{
- ::XMI::Extension r (e);
- return r;
- }
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () == "extension")
+ {
+ ::XMI::Extension r (e);
+ return r;
+ }
- else
- {
- throw 1;
+ else
+ {
+ throw 1;
+ }
}
}
}
@@ -467,7 +470,7 @@ namespace XMI
{
ExtensionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Extension));
+ ::XSCRT::TypeId id (typeid (::XMI::Extension));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -491,8 +494,8 @@ namespace XMI
traverse (Type& o)
{
pre (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
if (o.label_p ()) label (o);
else label_none (o);
if (o.uuid_p ()) uuid (o);
@@ -514,8 +517,8 @@ namespace XMI
traverse (Type const& o)
{
pre (o);
- if (o.xmi_id_p ()) xmi_id (o);
- else xmi_id_none (o);
+ if (o.id_p ()) id (o);
+ else id_none (o);
if (o.label_p ()) label (o);
else label_none (o);
if (o.uuid_p ()) uuid (o);
@@ -544,24 +547,24 @@ namespace XMI
}
void Extension::
- xmi_id (Type& o)
+ id (Type& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void Extension::
- xmi_id (Type const& o)
+ id (Type const& o)
{
- dispatch (o.xmi_id ());
+ dispatch (o.id ());
}
void Extension::
- xmi_id_none (Type&)
+ id_none (Type&)
{
}
void Extension::
- xmi_id_none (Type const&)
+ id_none (Type const&)
{
}
@@ -757,11 +760,11 @@ namespace XMI
}
void Extension::
- xmi_id (Type const& o)
+ id (Type const& o)
{
- ::XSCRT::XML::Attribute< ACE_TCHAR > a ("xmi_id", "http://www.omg.org/XMI", "", top_ ());
+ ::XSCRT::XML::Attribute< ACE_TCHAR > a ("id", "http://www.omg.org/XMI", "", top_ ());
attr_ (&a);
- Traversal::Extension::xmi_id (o);
+ Traversal::Extension::id (o);
attr_ (0);
}
@@ -832,29 +835,32 @@ namespace XMI
namespace XMI
{
- void
- extension (::XMI::Extension const& s, xercesc::DOMDocument* d)
+ namespace writer
{
- ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
- if (e.name () != "extension")
+ void
+ extension (::XMI::Extension const& s, xercesc::DOMDocument* d)
{
- throw 1;
- }
-
- struct W : virtual ::XMI::Writer::Extension,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
- virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
- virtual ::XSCRT::Writer< ACE_TCHAR >
- {
- W (::XSCRT::XML::Element< ACE_TCHAR >& e)
- : ::XSCRT::Writer< ACE_TCHAR > (e)
+ ::XSCRT::XML::Element< ACE_TCHAR > e (d->getDocumentElement ());
+ if (e.name () != "extension")
{
+ throw 1;
}
- };
- W w (e);
- w.dispatch (s);
+ struct W : virtual ::XMI::Writer::Extension,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::ID< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::FundamentalType< ::XMLSchema::string< ACE_TCHAR >, ACE_TCHAR >,
+ virtual ::XMLSchema::Writer::IDREF< ACE_TCHAR >,
+ virtual ::XSCRT::Writer< ACE_TCHAR >
+ {
+ W (::XSCRT::XML::Element< ACE_TCHAR >& e)
+ : ::XSCRT::Writer< ACE_TCHAR > (e)
+ {
+ }
+ };
+
+ W w (e);
+ w.dispatch (s);
+ }
}
}
diff --git a/CIAO/tools/Config_Handlers/XMI.hpp b/CIAO/tools/Config_Handlers/XMI.hpp
index e1ac06ab52c..c0b5aeb7e31 100644
--- a/CIAO/tools/Config_Handlers/XMI.hpp
+++ b/CIAO/tools/Config_Handlers/XMI.hpp
@@ -30,22 +30,28 @@ namespace XMI
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
namespace XMI
{
class XSC_XML_Handlers_Export Extension : public ::XSCRT::Type
{
typedef ::XSCRT::Type Base;
- // xmi_id
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Extension, ACE_Null_Mutex > _ptr;
+
+ // id
//
public:
- bool xmi_id_p () const;
- ::XMLSchema::ID< ACE_TCHAR > const& xmi_id () const;
- ::XMLSchema::ID< ACE_TCHAR >& xmi_id ();
- void xmi_id (::XMLSchema::ID< ACE_TCHAR > const& );
+ bool id_p () const;
+ ::XMLSchema::ID< ACE_TCHAR > const& id () const;
+ ::XMLSchema::ID< ACE_TCHAR >& id ();
+ void id (::XMLSchema::ID< ACE_TCHAR > const& );
protected:
- ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > xmi_id_;
+ ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > id_;
// label
//
@@ -140,9 +146,12 @@ namespace XMI
namespace XMI
{
- XSC_XML_Handlers_Export
- ::XMI::Extension
- extension (xercesc::DOMDocument const*);
+ namespace reader
+ {
+ XSC_XML_Handlers_Export
+ ::XMI::Extension
+ extension (xercesc::DOMDocument const*);
+ }
}
#include "XMLSchema/Traversal.hpp"
@@ -166,16 +175,16 @@ namespace XMI
pre (Type const&);
virtual void
- xmi_id (Type&);
+ id (Type&);
virtual void
- xmi_id (Type const&);
+ id (Type const&);
virtual void
- xmi_id_none (Type&);
+ id_none (Type&);
virtual void
- xmi_id_none (Type const&);
+ id_none (Type const&);
virtual void
label (Type&);
@@ -285,99 +294,81 @@ namespace XMI
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
- xmi_id (Type &o)
+ id (Type &o)
{
-
- this->xmi_id (const_cast <Type const &> (o));
+ this->id (const_cast <Type const &> (o));
}
-
virtual void
- xmi_id (Type const&);
+ id (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
uuid (Type &o)
{
-
this->uuid (const_cast <Type const &> (o));
}
-
virtual void
uuid (Type const&);
virtual void
href (Type &o)
{
-
this->href (const_cast <Type const &> (o));
}
-
virtual void
href (Type const&);
virtual void
idref (Type &o)
{
-
this->idref (const_cast <Type const &> (o));
}
-
virtual void
idref (Type const&);
virtual void
version (Type &o)
{
-
this->version (const_cast <Type const &> (o));
}
-
virtual void
version (Type const&);
virtual void
extender (Type &o)
{
-
this->extender (const_cast <Type const &> (o));
}
-
virtual void
extender (Type const&);
virtual void
extenderID (Type &o)
{
-
this->extenderID (const_cast <Type const &> (o));
}
-
virtual void
extenderID (Type const&);
@@ -389,9 +380,12 @@ namespace XMI
namespace XMI
{
- XSC_XML_Handlers_Export
- void
- extension (::XMI::Extension const&, xercesc::DOMDocument*);
+ namespace writer
+ {
+ XSC_XML_Handlers_Export
+ void
+ extension (::XMI::Extension const&, xercesc::DOMDocument*);
+ }
}
#endif // XMI_HPP
diff --git a/CIAO/tools/Config_Handlers/XMLSchema/Types.hpp b/CIAO/tools/Config_Handlers/XMLSchema/Types.hpp
index 16cd2c9d766..c27c20731d2 100644
--- a/CIAO/tools/Config_Handlers/XMLSchema/Types.hpp
+++ b/CIAO/tools/Config_Handlers/XMLSchema/Types.hpp
@@ -57,9 +57,10 @@ namespace XMLSchema
{
protected:
typedef basic_string<C> Base__ ;
-
+
public:
-
+ // typedef ACE_Refcounted_Auto_Ptr < string, ACE_Null_Mutex > _ptr;
+
//@@ VC6 does not inject XSCRT::Type into the scope so I have
// to qualify it all the time.
//
diff --git a/CIAO/tools/Config_Handlers/XML_File_Intf.cpp b/CIAO/tools/Config_Handlers/XML_File_Intf.cpp
index f591abc89f0..274628f2aaf 100644
--- a/CIAO/tools/Config_Handlers/XML_File_Intf.cpp
+++ b/CIAO/tools/Config_Handlers/XML_File_Intf.cpp
@@ -49,7 +49,7 @@ namespace CIAO
CIAO_DEBUG ((LM_TRACE, CLINFO "XML_File_Intf::read_process_file - "
"Parsing XML file with XSC\n"));
deploymentPlan dp =
- DeploymentPlan (dom);
+ CIAO::Config_Handlers::reader::DeploymentPlan (dom);
CIAO_DEBUG ((LM_TRACE, CLINFO "XML_File_Intf::read_process_file - "
"Processing using config handlers\n"));
diff --git a/CIAO/tools/Config_Handlers/XSCRT/Elements.hpp b/CIAO/tools/Config_Handlers/XSCRT/Elements.hpp
index e91e855c594..2a3198b9201 100644
--- a/CIAO/tools/Config_Handlers/XSCRT/Elements.hpp
+++ b/CIAO/tools/Config_Handlers/XSCRT/Elements.hpp
@@ -12,6 +12,7 @@
// #include <iostream> //@@ tmp
#include "XSCRT/Parser.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
namespace XSCRT
{
@@ -220,6 +221,8 @@ namespace XSCRT
class FundamentalType : public Type
{
public:
+ // typedef ACE_Refcounted_Auto_Ptr < FundamentalType, ACE_Null_Mutex > _ptr;
+
FundamentalType ()
{
}
@@ -269,7 +272,7 @@ namespace XSCRT
};
#if ((defined (__GNUC__) && (__GNUC__ == 3 && (__GNUC_MINOR__ < 3))) || \
- (defined (__BORLANDC__) && (__BORLANDC__ == 0x610)) || \
+ (defined (__BORLANDC__) && (__BORLANDC__ < 0x620)) || \
(defined (__SUNPRO_CC) && (__SUNPRO_CC <= 0x570)))
// Stuff for broken gcc < 3.3. Don't like what you see - use better
diff --git a/CIAO/tools/Config_Handlers/ccd.cpp b/CIAO/tools/Config_Handlers/ccd.cpp
index 64e40b82567..e2dd1d03262 100644
--- a/CIAO/tools/Config_Handlers/ccd.cpp
+++ b/CIAO/tools/Config_Handlers/ccd.cpp
@@ -33,12 +33,18 @@ namespace CIAO
}
ComponentInterfaceDescription::
- ComponentInterfaceDescription (::CIAO::Config_Handlers::ComponentInterfaceDescription const& s)
+ ComponentInterfaceDescription (ComponentInterfaceDescription const& s)
:
::XSCRT::Type (),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
specificType_ (s.specificType_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.specificType_) : 0),
+ supportedType_ (s.supportedType_),
+ idlFile_ (s.idlFile_),
+ configProperty_ (s.configProperty_),
+ port_ (s.port_),
+ property_ (s.property_),
+ infoProperty_ (s.infoProperty_),
contentLocation_ (s.contentLocation_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.contentLocation_) : 0),
href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
regulator__ ()
@@ -46,78 +52,44 @@ namespace CIAO
if (label_.get ()) label_->container (this);
if (UUID_.get ()) UUID_->container (this);
if (specificType_.get ()) specificType_->container (this);
- {
- for (supportedType_const_iterator i (s.supportedType_.begin ());i != s.supportedType_.end ();++i) add_supportedType (*i);
- }
-
- {
- for (idlFile_const_iterator i (s.idlFile_.begin ());i != s.idlFile_.end ();++i) add_idlFile (*i);
- }
-
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
-
- {
- for (port_const_iterator i (s.port_.begin ());i != s.port_.end ();++i) add_port (*i);
- }
-
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
-
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
-
if (contentLocation_.get ()) contentLocation_->container (this);
if (href_.get ()) href_->container (this);
}
- ::CIAO::Config_Handlers::ComponentInterfaceDescription& ComponentInterfaceDescription::
- operator= (::CIAO::Config_Handlers::ComponentInterfaceDescription const& s)
+ ComponentInterfaceDescription& ComponentInterfaceDescription::
+ operator= (ComponentInterfaceDescription const& s)
{
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- if (s.UUID_.get ()) UUID (*(s.UUID_));
- else UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
- if (s.specificType_.get ()) specificType (*(s.specificType_));
- else specificType_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.specificType_.get ())
+ specificType (*(s.specificType_));
+ else
+ specificType_.reset (0);
- supportedType_.clear ();
- {
- for (supportedType_const_iterator i (s.supportedType_.begin ());i != s.supportedType_.end ();++i) add_supportedType (*i);
- }
+ supportedType_ = s.supportedType_;
- idlFile_.clear ();
- {
- for (idlFile_const_iterator i (s.idlFile_.begin ());i != s.idlFile_.end ();++i) add_idlFile (*i);
- }
+ idlFile_ = s.idlFile_;
- configProperty_.clear ();
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
+ configProperty_ = s.configProperty_;
- port_.clear ();
- {
- for (port_const_iterator i (s.port_.begin ());i != s.port_.end ();++i) add_port (*i);
- }
+ port_ = s.port_;
- property_.clear ();
- {
- for (property_const_iterator i (s.property_.begin ());i != s.property_.end ();++i) add_property (*i);
- }
+ property_ = s.property_;
- infoProperty_.clear ();
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
+ infoProperty_ = s.infoProperty_;
- if (s.contentLocation_.get ()) contentLocation (*(s.contentLocation_));
- else contentLocation_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.contentLocation_.get ())
+ contentLocation (*(s.contentLocation_));
+ else
+ contentLocation_.reset (0);
if (s.href_.get ()) href (*(s.href_));
else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
@@ -240,7 +212,7 @@ namespace CIAO
}
void ComponentInterfaceDescription::
- add_supportedType (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_supportedType (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
supportedType_.push_back (e);
}
@@ -278,7 +250,7 @@ namespace CIAO
}
void ComponentInterfaceDescription::
- add_idlFile (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_idlFile (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
idlFile_.push_back (e);
}
@@ -316,7 +288,7 @@ namespace CIAO
}
void ComponentInterfaceDescription::
- add_configProperty (::CIAO::Config_Handlers::Property const& e)
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
configProperty_.push_back (e);
}
@@ -354,7 +326,7 @@ namespace CIAO
}
void ComponentInterfaceDescription::
- add_port (::CIAO::Config_Handlers::ComponentPortDescription const& e)
+ add_port (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > const& e)
{
port_.push_back (e);
}
@@ -392,7 +364,7 @@ namespace CIAO
}
void ComponentInterfaceDescription::
- add_property (::CIAO::Config_Handlers::ComponentPropertyDescription const& e)
+ add_property (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > const& e)
{
property_.push_back (e);
}
@@ -430,7 +402,7 @@ namespace CIAO
}
void ComponentInterfaceDescription::
- add_infoProperty (::CIAO::Config_Handlers::Property const& e)
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
infoProperty_.push_back (e);
}
@@ -546,37 +518,37 @@ namespace CIAO
else if (n == "supportedType")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_supportedType (t);
}
else if (n == "idlFile")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_idlFile (t);
}
else if (n == "configProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_configProperty (t);
}
else if (n == "port")
{
- ::CIAO::Config_Handlers::ComponentPortDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ComponentPortDescription (e));
add_port (t);
}
else if (n == "property")
{
- ::CIAO::Config_Handlers::ComponentPropertyDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ComponentPropertyDescription (e));
add_property (t);
}
else if (n == "infoProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_infoProperty (t);
}
@@ -630,7 +602,7 @@ namespace CIAO
{
ComponentInterfaceDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentInterfaceDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentInterfaceDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -780,14 +752,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::supportedType_iterator b (o.begin_supportedType()), e (o.end_supportedType());
if (b != e)
{
supportedType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) supportedType_next (o);
}
@@ -802,14 +774,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::supportedType_const_iterator b (o.begin_supportedType()), e (o.end_supportedType());
if (b != e)
{
supportedType_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) supportedType_next (o);
}
@@ -864,14 +836,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::idlFile_iterator b (o.begin_idlFile()), e (o.end_idlFile());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::idlFile_iterator b (o.begin_idlFile()), e (o.end_idlFile());
if (b != e)
{
idlFile_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) idlFile_next (o);
}
@@ -886,14 +858,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::idlFile_const_iterator b (o.begin_idlFile()), e (o.end_idlFile());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::idlFile_const_iterator b (o.begin_idlFile()), e (o.end_idlFile());
if (b != e)
{
idlFile_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) idlFile_next (o);
}
@@ -948,14 +920,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -970,14 +942,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -1032,14 +1004,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::port_iterator b (o.begin_port()), e (o.end_port());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::port_iterator b (o.begin_port()), e (o.end_port());
if (b != e)
{
port_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) port_next (o);
}
@@ -1054,14 +1026,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::port_const_iterator b (o.begin_port()), e (o.end_port());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::port_const_iterator b (o.begin_port()), e (o.end_port());
if (b != e)
{
port_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) port_next (o);
}
@@ -1116,14 +1088,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::property_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::property_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -1138,14 +1110,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::property_const_iterator b (o.begin_property()), e (o.end_property());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::property_const_iterator b (o.begin_property()), e (o.end_property());
if (b != e)
{
property_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) property_next (o);
}
@@ -1200,14 +1172,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -1222,14 +1194,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentInterfaceDescription::Type::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::ComponentInterfaceDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
diff --git a/CIAO/tools/Config_Handlers/ccd.hpp b/CIAO/tools/Config_Handlers/ccd.hpp
index bb3832af5a6..011ae66c01f 100644
--- a/CIAO/tools/Config_Handlers/ccd.hpp
+++ b/CIAO/tools/Config_Handlers/ccd.hpp
@@ -33,6 +33,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "Basic_Deployment_Data.hpp"
namespace CIAO
@@ -43,6 +46,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentInterfaceDescription, ACE_Null_Mutex > _ptr;
+
// label
//
public:
@@ -76,92 +82,92 @@ namespace CIAO
// supportedType
//
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator supportedType_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator supportedType_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator supportedType_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator supportedType_const_iterator;
supportedType_iterator begin_supportedType ();
supportedType_iterator end_supportedType ();
supportedType_const_iterator begin_supportedType () const;
supportedType_const_iterator end_supportedType () const;
- void add_supportedType (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_supportedType ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_supportedType (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > supportedType_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > supportedType_;
// idlFile
//
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator idlFile_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator idlFile_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator idlFile_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator idlFile_const_iterator;
idlFile_iterator begin_idlFile ();
idlFile_iterator end_idlFile ();
idlFile_const_iterator begin_idlFile () const;
idlFile_const_iterator end_idlFile () const;
- void add_idlFile (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_idlFile ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_idlFile (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > idlFile_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > idlFile_;
// configProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator configProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator configProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
configProperty_iterator begin_configProperty ();
configProperty_iterator end_configProperty ();
configProperty_const_iterator begin_configProperty () const;
configProperty_const_iterator end_configProperty () const;
- void add_configProperty (::CIAO::Config_Handlers::Property const& );
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_configProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > configProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
// port
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ComponentPortDescription >::iterator port_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ComponentPortDescription >::const_iterator port_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > >::iterator port_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > >::const_iterator port_const_iterator;
port_iterator begin_port ();
port_iterator end_port ();
port_const_iterator begin_port () const;
port_const_iterator end_port () const;
- void add_port (::CIAO::Config_Handlers::ComponentPortDescription const& );
+ void add_port ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > const& );
size_t count_port (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ComponentPortDescription > port_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPortDescription, ACE_Null_Mutex > > port_;
// property
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ComponentPropertyDescription >::iterator property_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ComponentPropertyDescription >::const_iterator property_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > >::iterator property_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > >::const_iterator property_const_iterator;
property_iterator begin_property ();
property_iterator end_property ();
property_const_iterator begin_property () const;
property_const_iterator end_property () const;
- void add_property (::CIAO::Config_Handlers::ComponentPropertyDescription const& );
+ void add_property ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > const& );
size_t count_property (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ComponentPropertyDescription > property_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ComponentPropertyDescription, ACE_Null_Mutex > > property_;
// infoProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator infoProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator infoProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
infoProperty_iterator begin_infoProperty ();
infoProperty_iterator end_infoProperty ();
infoProperty_const_iterator begin_infoProperty () const;
infoProperty_const_iterator end_infoProperty () const;
- void add_infoProperty (::CIAO::Config_Handlers::Property const& );
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_infoProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > infoProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
// contentLocation
//
@@ -495,264 +501,216 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
UUID (Type &o)
{
-
this->UUID (const_cast <Type const &> (o));
}
-
virtual void
UUID (Type const&);
virtual void
specificType (Type &o)
{
-
this->specificType (const_cast <Type const &> (o));
}
-
virtual void
specificType (Type const&);
virtual void
supportedType_pre (Type &o)
{
-
this->supportedType_pre (const_cast <Type const &> (o));
}
-
virtual void
supportedType_pre (Type const&);
virtual void
supportedType_next (Type &o)
{
-
this->supportedType_next (const_cast <Type const &> (o));
}
-
virtual void
supportedType_next (Type const&);
virtual void
supportedType_post (Type &o)
{
-
this->supportedType_post (const_cast <Type const &> (o));
}
-
virtual void
supportedType_post (Type const&);
virtual void
idlFile_pre (Type &o)
{
-
this->idlFile_pre (const_cast <Type const &> (o));
}
-
virtual void
idlFile_pre (Type const&);
virtual void
idlFile_next (Type &o)
{
-
this->idlFile_next (const_cast <Type const &> (o));
}
-
virtual void
idlFile_next (Type const&);
virtual void
idlFile_post (Type &o)
{
-
this->idlFile_post (const_cast <Type const &> (o));
}
-
virtual void
idlFile_post (Type const&);
virtual void
configProperty_pre (Type &o)
{
-
this->configProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
configProperty_pre (Type const&);
virtual void
configProperty_next (Type &o)
{
-
this->configProperty_next (const_cast <Type const &> (o));
}
-
virtual void
configProperty_next (Type const&);
virtual void
configProperty_post (Type &o)
{
-
this->configProperty_post (const_cast <Type const &> (o));
}
-
virtual void
configProperty_post (Type const&);
virtual void
port_pre (Type &o)
{
-
this->port_pre (const_cast <Type const &> (o));
}
-
virtual void
port_pre (Type const&);
virtual void
port_next (Type &o)
{
-
this->port_next (const_cast <Type const &> (o));
}
-
virtual void
port_next (Type const&);
virtual void
port_post (Type &o)
{
-
this->port_post (const_cast <Type const &> (o));
}
-
virtual void
port_post (Type const&);
virtual void
property_pre (Type &o)
{
-
this->property_pre (const_cast <Type const &> (o));
}
-
virtual void
property_pre (Type const&);
virtual void
property_next (Type &o)
{
-
this->property_next (const_cast <Type const &> (o));
}
-
virtual void
property_next (Type const&);
virtual void
property_post (Type &o)
{
-
this->property_post (const_cast <Type const &> (o));
}
-
virtual void
property_post (Type const&);
virtual void
infoProperty_pre (Type &o)
{
-
this->infoProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_pre (Type const&);
virtual void
infoProperty_next (Type &o)
{
-
this->infoProperty_next (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_next (Type const&);
virtual void
infoProperty_post (Type &o)
{
-
this->infoProperty_post (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_post (Type const&);
virtual void
contentLocation (Type &o)
{
-
this->contentLocation (const_cast <Type const &> (o));
}
-
virtual void
contentLocation (Type const&);
virtual void
href (Type &o)
{
-
this->href (const_cast <Type const &> (o));
}
-
virtual void
href (Type const&);
diff --git a/CIAO/tools/Config_Handlers/cdd.cpp b/CIAO/tools/Config_Handlers/cdd.cpp
index 799ad5ebec7..97b272f1a72 100644
--- a/CIAO/tools/Config_Handlers/cdd.cpp
+++ b/CIAO/tools/Config_Handlers/cdd.cpp
@@ -25,77 +25,53 @@ namespace CIAO
//
Domain::
- Domain ()
+ Domain (::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > const& node__)
:
::XSCRT::Type (),
+ node_ (node__),
regulator__ ()
{
}
Domain::
- Domain (::CIAO::Config_Handlers::Domain const& s)
+ Domain (Domain const& s)
:
::XSCRT::Type (),
UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ node_ (s.node_),
+ interconnect_ (s.interconnect_),
+ bridge_ (s.bridge_),
+ sharedResource_ (s.sharedResource_),
+ infoProperty_ (s.infoProperty_),
regulator__ ()
{
if (UUID_.get ()) UUID_->container (this);
if (label_.get ()) label_->container (this);
- {
- for (node_const_iterator i (s.node_.begin ());i != s.node_.end ();++i) add_node (*i);
- }
-
- {
- for (interconnect_const_iterator i (s.interconnect_.begin ());i != s.interconnect_.end ();++i) add_interconnect (*i);
- }
-
- {
- for (bridge_const_iterator i (s.bridge_.begin ());i != s.bridge_.end ();++i) add_bridge (*i);
- }
-
- {
- for (sharedResource_const_iterator i (s.sharedResource_.begin ());i != s.sharedResource_.end ();++i) add_sharedResource (*i);
- }
-
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
}
- ::CIAO::Config_Handlers::Domain& Domain::
- operator= (::CIAO::Config_Handlers::Domain const& s)
+ Domain& Domain::
+ operator= (Domain const& s)
{
- if (s.UUID_.get ()) UUID (*(s.UUID_));
- else UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- node_.clear ();
- {
- for (node_const_iterator i (s.node_.begin ());i != s.node_.end ();++i) add_node (*i);
- }
+ node_ = s.node_;
- interconnect_.clear ();
- {
- for (interconnect_const_iterator i (s.interconnect_.begin ());i != s.interconnect_.end ();++i) add_interconnect (*i);
- }
+ interconnect_ = s.interconnect_;
- bridge_.clear ();
- {
- for (bridge_const_iterator i (s.bridge_.begin ());i != s.bridge_.end ();++i) add_bridge (*i);
- }
+ bridge_ = s.bridge_;
- sharedResource_.clear ();
- {
- for (sharedResource_const_iterator i (s.sharedResource_.begin ());i != s.sharedResource_.end ();++i) add_sharedResource (*i);
- }
+ sharedResource_ = s.sharedResource_;
- infoProperty_.clear ();
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
+ infoProperty_ = s.infoProperty_;
return *this;
}
@@ -186,7 +162,7 @@ namespace CIAO
}
void Domain::
- add_node (::CIAO::Config_Handlers::Node const& e)
+ add_node (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > const& e)
{
node_.push_back (e);
}
@@ -224,7 +200,7 @@ namespace CIAO
}
void Domain::
- add_interconnect (::CIAO::Config_Handlers::Interconnect const& e)
+ add_interconnect (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& e)
{
interconnect_.push_back (e);
}
@@ -262,7 +238,7 @@ namespace CIAO
}
void Domain::
- add_bridge (::CIAO::Config_Handlers::Bridge const& e)
+ add_bridge (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > const& e)
{
bridge_.push_back (e);
}
@@ -300,7 +276,7 @@ namespace CIAO
}
void Domain::
- add_sharedResource (::CIAO::Config_Handlers::SharedResource const& e)
+ add_sharedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > const& e)
{
sharedResource_.push_back (e);
}
@@ -338,7 +314,7 @@ namespace CIAO
}
void Domain::
- add_infoProperty (::CIAO::Config_Handlers::Property const& e)
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
infoProperty_.push_back (e);
}
@@ -354,51 +330,43 @@ namespace CIAO
//
Bridge::
- Bridge (::XMLSchema::string< ACE_TCHAR > const& name__)
+ Bridge (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > const& connect__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ connect_ (connect__),
regulator__ ()
{
name_->container (this);
}
Bridge::
- Bridge (::CIAO::Config_Handlers::Bridge const& s)
+ Bridge (Bridge const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ connect_ (s.connect_),
+ resource_ (s.resource_),
regulator__ ()
{
name_->container (this);
if (label_.get ()) label_->container (this);
- {
- for (connect_const_iterator i (s.connect_.begin ());i != s.connect_.end ();++i) add_connect (*i);
- }
-
- {
- for (resource_const_iterator i (s.resource_.begin ());i != s.resource_.end ();++i) add_resource (*i);
- }
}
- ::CIAO::Config_Handlers::Bridge& Bridge::
- operator= (::CIAO::Config_Handlers::Bridge const& s)
+ Bridge& Bridge::
+ operator= (Bridge const& s)
{
- name (s.name ());
+ name (*s.name_);
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- connect_.clear ();
- {
- for (connect_const_iterator i (s.connect_.begin ());i != s.connect_.end ();++i) add_connect (*i);
- }
+ connect_ = s.connect_;
- resource_.clear ();
- {
- for (resource_const_iterator i (s.resource_.begin ());i != s.resource_.end ();++i) add_resource (*i);
- }
+ resource_ = s.resource_;
return *this;
}
@@ -474,7 +442,7 @@ namespace CIAO
}
void Bridge::
- add_connect (::CIAO::Config_Handlers::Interconnect const& e)
+ add_connect (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& e)
{
connect_.push_back (e);
}
@@ -512,7 +480,7 @@ namespace CIAO
}
void Bridge::
- add_resource (::CIAO::Config_Handlers::Resource const& e)
+ add_resource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& e)
{
resource_.push_back (e);
}
@@ -528,60 +496,46 @@ namespace CIAO
//
Interconnect::
- Interconnect (::XMLSchema::string< ACE_TCHAR > const& name__)
+ Interconnect (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > const& connect__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
+ connect_ (connect__),
regulator__ ()
{
name_->container (this);
}
Interconnect::
- Interconnect (::CIAO::Config_Handlers::Interconnect const& s)
+ Interconnect (Interconnect const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ connection_ (s.connection_),
+ connect_ (s.connect_),
+ resource_ (s.resource_),
regulator__ ()
{
name_->container (this);
if (label_.get ()) label_->container (this);
- {
- for (connection_const_iterator i (s.connection_.begin ());i != s.connection_.end ();++i) add_connection (*i);
- }
-
- {
- for (connect_const_iterator i (s.connect_.begin ());i != s.connect_.end ();++i) add_connect (*i);
- }
-
- {
- for (resource_const_iterator i (s.resource_.begin ());i != s.resource_.end ();++i) add_resource (*i);
- }
}
- ::CIAO::Config_Handlers::Interconnect& Interconnect::
- operator= (::CIAO::Config_Handlers::Interconnect const& s)
+ Interconnect& Interconnect::
+ operator= (Interconnect const& s)
{
- name (s.name ());
+ name (*s.name_);
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- connection_.clear ();
- {
- for (connection_const_iterator i (s.connection_.begin ());i != s.connection_.end ();++i) add_connection (*i);
- }
+ connection_ = s.connection_;
- connect_.clear ();
- {
- for (connect_const_iterator i (s.connect_.begin ());i != s.connect_.end ();++i) add_connect (*i);
- }
+ connect_ = s.connect_;
- resource_.clear ();
- {
- for (resource_const_iterator i (s.resource_.begin ());i != s.resource_.end ();++i) add_resource (*i);
- }
+ resource_ = s.resource_;
return *this;
}
@@ -657,7 +611,7 @@ namespace CIAO
}
void Interconnect::
- add_connection (::CIAO::Config_Handlers::Bridge const& e)
+ add_connection (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > const& e)
{
connection_.push_back (e);
}
@@ -695,7 +649,7 @@ namespace CIAO
}
void Interconnect::
- add_connect (::CIAO::Config_Handlers::Node const& e)
+ add_connect (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > const& e)
{
connect_.push_back (e);
}
@@ -733,7 +687,7 @@ namespace CIAO
}
void Interconnect::
- add_resource (::CIAO::Config_Handlers::Resource const& e)
+ add_resource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& e)
{
resource_.push_back (e);
}
@@ -751,7 +705,6 @@ namespace CIAO
Node::
Node (::XMLSchema::string< ACE_TCHAR > const& name__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
regulator__ ()
{
@@ -759,50 +712,35 @@ namespace CIAO
}
Node::
- Node (::CIAO::Config_Handlers::Node const& s)
+ Node (Node const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
+ connection_ (s.connection_),
+ sharedResource_ (s.sharedResource_),
+ resource_ (s.resource_),
regulator__ ()
{
name_->container (this);
if (label_.get ()) label_->container (this);
- {
- for (connection_const_iterator i (s.connection_.begin ());i != s.connection_.end ();++i) add_connection (*i);
- }
-
- {
- for (sharedResource_const_iterator i (s.sharedResource_.begin ());i != s.sharedResource_.end ();++i) add_sharedResource (*i);
- }
-
- {
- for (resource_const_iterator i (s.resource_.begin ());i != s.resource_.end ();++i) add_resource (*i);
- }
}
- ::CIAO::Config_Handlers::Node& Node::
- operator= (::CIAO::Config_Handlers::Node const& s)
+ Node& Node::
+ operator= (Node const& s)
{
- name (s.name ());
+ name (*s.name_);
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- connection_.clear ();
- {
- for (connection_const_iterator i (s.connection_.begin ());i != s.connection_.end ();++i) add_connection (*i);
- }
+ connection_ = s.connection_;
- sharedResource_.clear ();
- {
- for (sharedResource_const_iterator i (s.sharedResource_.begin ());i != s.sharedResource_.end ();++i) add_sharedResource (*i);
- }
+ sharedResource_ = s.sharedResource_;
- resource_.clear ();
- {
- for (resource_const_iterator i (s.resource_.begin ());i != s.resource_.end ();++i) add_resource (*i);
- }
+ resource_ = s.resource_;
return *this;
}
@@ -878,7 +816,7 @@ namespace CIAO
}
void Node::
- add_connection (::CIAO::Config_Handlers::Interconnect const& e)
+ add_connection (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& e)
{
connection_.push_back (e);
}
@@ -916,7 +854,7 @@ namespace CIAO
}
void Node::
- add_sharedResource (::CIAO::Config_Handlers::SharedResource const& e)
+ add_sharedResource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > const& e)
{
sharedResource_.push_back (e);
}
@@ -954,7 +892,7 @@ namespace CIAO
}
void Node::
- add_resource (::CIAO::Config_Handlers::Resource const& e)
+ add_resource (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& e)
{
resource_.push_back (e);
}
@@ -975,7 +913,6 @@ namespace CIAO
::CIAO::Config_Handlers::Node const& node__,
::CIAO::Config_Handlers::SatisfierProperty const& property__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
resourceType_ (new ::XMLSchema::string< ACE_TCHAR > (resourceType__)),
node_ (new ::CIAO::Config_Handlers::Node (node__)),
@@ -989,7 +926,7 @@ namespace CIAO
}
SharedResource::
- SharedResource (::CIAO::Config_Handlers::SharedResource const& s)
+ SharedResource (SharedResource const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -1004,16 +941,16 @@ namespace CIAO
property_->container (this);
}
- ::CIAO::Config_Handlers::SharedResource& SharedResource::
- operator= (::CIAO::Config_Handlers::SharedResource const& s)
+ SharedResource& SharedResource::
+ operator= (SharedResource const& s)
{
- name (s.name ());
+ name (*s.name_);
- resourceType (s.resourceType ());
+ resourceType (*s.resourceType_);
- node (s.node ());
+ node (*s.node_);
- property (s.property ());
+ property (*s.property_);
return *this;
}
@@ -1110,31 +1047,31 @@ namespace CIAO
else if (n == "node")
{
- ::CIAO::Config_Handlers::Node t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Node (e));
add_node (t);
}
else if (n == "interconnect")
{
- ::CIAO::Config_Handlers::Interconnect t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Interconnect (e));
add_interconnect (t);
}
else if (n == "bridge")
{
- ::CIAO::Config_Handlers::Bridge t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Bridge (e));
add_bridge (t);
}
else if (n == "sharedResource")
{
- ::CIAO::Config_Handlers::SharedResource t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SharedResource (e));
add_sharedResource (t);
}
else if (n == "infoProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_infoProperty (t);
}
@@ -1173,13 +1110,13 @@ namespace CIAO
else if (n == "connect")
{
- ::CIAO::Config_Handlers::Interconnect t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Interconnect (e));
add_connect (t);
}
else if (n == "resource")
{
- ::CIAO::Config_Handlers::Resource t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Resource (e));
add_resource (t);
}
@@ -1218,19 +1155,19 @@ namespace CIAO
else if (n == "connection")
{
- ::CIAO::Config_Handlers::Bridge t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Bridge (e));
add_connection (t);
}
else if (n == "connect")
{
- ::CIAO::Config_Handlers::Node t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Node (e));
add_connect (t);
}
else if (n == "resource")
{
- ::CIAO::Config_Handlers::Resource t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Resource (e));
add_resource (t);
}
@@ -1269,19 +1206,19 @@ namespace CIAO
else if (n == "connection")
{
- ::CIAO::Config_Handlers::Interconnect t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Interconnect (e));
add_connection (t);
}
else if (n == "sharedResource")
{
- ::CIAO::Config_Handlers::SharedResource t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SharedResource (e));
add_sharedResource (t);
}
else if (n == "resource")
{
- ::CIAO::Config_Handlers::Resource t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Resource (e));
add_resource (t);
}
@@ -1359,7 +1296,7 @@ namespace CIAO
{
DomainTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Domain));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Domain));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1373,7 +1310,7 @@ namespace CIAO
{
BridgeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Bridge));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Bridge));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1387,7 +1324,7 @@ namespace CIAO
{
InterconnectTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Interconnect));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Interconnect));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1401,7 +1338,7 @@ namespace CIAO
{
NodeTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (Node));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::Node));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1415,7 +1352,7 @@ namespace CIAO
{
SharedResourceTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (SharedResource));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SharedResource));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1529,14 +1466,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::node_iterator b (o.begin_node()), e (o.end_node());
+ ::CIAO::Config_Handlers::Domain::node_iterator b (o.begin_node()), e (o.end_node());
if (b != e)
{
node_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) node_next (o);
}
@@ -1549,14 +1486,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::node_const_iterator b (o.begin_node()), e (o.end_node());
+ ::CIAO::Config_Handlers::Domain::node_const_iterator b (o.begin_node()), e (o.end_node());
if (b != e)
{
node_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) node_next (o);
}
@@ -1599,14 +1536,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::interconnect_iterator b (o.begin_interconnect()), e (o.end_interconnect());
+ ::CIAO::Config_Handlers::Domain::interconnect_iterator b (o.begin_interconnect()), e (o.end_interconnect());
if (b != e)
{
interconnect_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) interconnect_next (o);
}
@@ -1621,14 +1558,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::interconnect_const_iterator b (o.begin_interconnect()), e (o.end_interconnect());
+ ::CIAO::Config_Handlers::Domain::interconnect_const_iterator b (o.begin_interconnect()), e (o.end_interconnect());
if (b != e)
{
interconnect_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) interconnect_next (o);
}
@@ -1683,14 +1620,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::bridge_iterator b (o.begin_bridge()), e (o.end_bridge());
+ ::CIAO::Config_Handlers::Domain::bridge_iterator b (o.begin_bridge()), e (o.end_bridge());
if (b != e)
{
bridge_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) bridge_next (o);
}
@@ -1705,14 +1642,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::bridge_const_iterator b (o.begin_bridge()), e (o.end_bridge());
+ ::CIAO::Config_Handlers::Domain::bridge_const_iterator b (o.begin_bridge()), e (o.end_bridge());
if (b != e)
{
bridge_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) bridge_next (o);
}
@@ -1767,14 +1704,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::sharedResource_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
+ ::CIAO::Config_Handlers::Domain::sharedResource_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
if (b != e)
{
sharedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) sharedResource_next (o);
}
@@ -1789,14 +1726,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::sharedResource_const_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
+ ::CIAO::Config_Handlers::Domain::sharedResource_const_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
if (b != e)
{
sharedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) sharedResource_next (o);
}
@@ -1851,14 +1788,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::Domain::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -1873,14 +1810,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Domain::Type::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::Domain::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -2017,14 +1954,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Bridge::Type::connect_iterator b (o.begin_connect()), e (o.end_connect());
+ ::CIAO::Config_Handlers::Bridge::connect_iterator b (o.begin_connect()), e (o.end_connect());
if (b != e)
{
connect_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connect_next (o);
}
@@ -2037,14 +1974,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Bridge::Type::connect_const_iterator b (o.begin_connect()), e (o.end_connect());
+ ::CIAO::Config_Handlers::Bridge::connect_const_iterator b (o.begin_connect()), e (o.end_connect());
if (b != e)
{
connect_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connect_next (o);
}
@@ -2087,14 +2024,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Bridge::Type::resource_iterator b (o.begin_resource()), e (o.end_resource());
+ ::CIAO::Config_Handlers::Bridge::resource_iterator b (o.begin_resource()), e (o.end_resource());
if (b != e)
{
resource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resource_next (o);
}
@@ -2109,14 +2046,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Bridge::Type::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
+ ::CIAO::Config_Handlers::Bridge::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
if (b != e)
{
resource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resource_next (o);
}
@@ -2255,14 +2192,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Interconnect::Type::connection_iterator b (o.begin_connection()), e (o.end_connection());
+ ::CIAO::Config_Handlers::Interconnect::connection_iterator b (o.begin_connection()), e (o.end_connection());
if (b != e)
{
connection_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connection_next (o);
}
@@ -2277,14 +2214,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Interconnect::Type::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
+ ::CIAO::Config_Handlers::Interconnect::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
if (b != e)
{
connection_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connection_next (o);
}
@@ -2339,14 +2276,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Interconnect::Type::connect_iterator b (o.begin_connect()), e (o.end_connect());
+ ::CIAO::Config_Handlers::Interconnect::connect_iterator b (o.begin_connect()), e (o.end_connect());
if (b != e)
{
connect_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connect_next (o);
}
@@ -2359,14 +2296,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Interconnect::Type::connect_const_iterator b (o.begin_connect()), e (o.end_connect());
+ ::CIAO::Config_Handlers::Interconnect::connect_const_iterator b (o.begin_connect()), e (o.end_connect());
if (b != e)
{
connect_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connect_next (o);
}
@@ -2409,14 +2346,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Interconnect::Type::resource_iterator b (o.begin_resource()), e (o.end_resource());
+ ::CIAO::Config_Handlers::Interconnect::resource_iterator b (o.begin_resource()), e (o.end_resource());
if (b != e)
{
resource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resource_next (o);
}
@@ -2431,14 +2368,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Interconnect::Type::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
+ ::CIAO::Config_Handlers::Interconnect::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
if (b != e)
{
resource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resource_next (o);
}
@@ -2577,14 +2514,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Node::Type::connection_iterator b (o.begin_connection()), e (o.end_connection());
+ ::CIAO::Config_Handlers::Node::connection_iterator b (o.begin_connection()), e (o.end_connection());
if (b != e)
{
connection_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connection_next (o);
}
@@ -2599,14 +2536,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Node::Type::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
+ ::CIAO::Config_Handlers::Node::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
if (b != e)
{
connection_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connection_next (o);
}
@@ -2661,14 +2598,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Node::Type::sharedResource_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
+ ::CIAO::Config_Handlers::Node::sharedResource_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
if (b != e)
{
sharedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) sharedResource_next (o);
}
@@ -2683,14 +2620,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Node::Type::sharedResource_const_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
+ ::CIAO::Config_Handlers::Node::sharedResource_const_iterator b (o.begin_sharedResource()), e (o.end_sharedResource());
if (b != e)
{
sharedResource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) sharedResource_next (o);
}
@@ -2745,14 +2682,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Node::Type::resource_iterator b (o.begin_resource()), e (o.end_resource());
+ ::CIAO::Config_Handlers::Node::resource_iterator b (o.begin_resource()), e (o.end_resource());
if (b != e)
{
resource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resource_next (o);
}
@@ -2767,14 +2704,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- Node::Type::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
+ ::CIAO::Config_Handlers::Node::resource_const_iterator b (o.begin_resource()), e (o.end_resource());
if (b != e)
{
resource_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) resource_next (o);
}
diff --git a/CIAO/tools/Config_Handlers/cdd.hpp b/CIAO/tools/Config_Handlers/cdd.hpp
index 65c90942c53..2f0cb37e250 100644
--- a/CIAO/tools/Config_Handlers/cdd.hpp
+++ b/CIAO/tools/Config_Handlers/cdd.hpp
@@ -37,6 +37,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "Basic_Deployment_Data.hpp"
namespace CIAO
@@ -47,6 +50,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Domain, ACE_Null_Mutex > _ptr;
+
// UUID
//
public:
@@ -70,80 +76,80 @@ namespace CIAO
// node
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Node >::iterator node_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Node >::const_iterator node_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > >::iterator node_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > >::const_iterator node_const_iterator;
node_iterator begin_node ();
node_iterator end_node ();
node_const_iterator begin_node () const;
node_const_iterator end_node () const;
- void add_node (::CIAO::Config_Handlers::Node const& );
+ void add_node ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > const& );
size_t count_node (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Node > node_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > node_;
// interconnect
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Interconnect >::iterator interconnect_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Interconnect >::const_iterator interconnect_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::iterator interconnect_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::const_iterator interconnect_const_iterator;
interconnect_iterator begin_interconnect ();
interconnect_iterator end_interconnect ();
interconnect_const_iterator begin_interconnect () const;
interconnect_const_iterator end_interconnect () const;
- void add_interconnect (::CIAO::Config_Handlers::Interconnect const& );
+ void add_interconnect ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& );
size_t count_interconnect (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Interconnect > interconnect_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > interconnect_;
// bridge
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Bridge >::iterator bridge_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Bridge >::const_iterator bridge_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > >::iterator bridge_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > >::const_iterator bridge_const_iterator;
bridge_iterator begin_bridge ();
bridge_iterator end_bridge ();
bridge_const_iterator begin_bridge () const;
bridge_const_iterator end_bridge () const;
- void add_bridge (::CIAO::Config_Handlers::Bridge const& );
+ void add_bridge ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > const& );
size_t count_bridge (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Bridge > bridge_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > > bridge_;
// sharedResource
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::SharedResource >::iterator sharedResource_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::SharedResource >::const_iterator sharedResource_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > >::iterator sharedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > >::const_iterator sharedResource_const_iterator;
sharedResource_iterator begin_sharedResource ();
sharedResource_iterator end_sharedResource ();
sharedResource_const_iterator begin_sharedResource () const;
sharedResource_const_iterator end_sharedResource () const;
- void add_sharedResource (::CIAO::Config_Handlers::SharedResource const& );
+ void add_sharedResource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > const& );
size_t count_sharedResource (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::SharedResource > sharedResource_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > > sharedResource_;
// infoProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator infoProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator infoProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
infoProperty_iterator begin_infoProperty ();
infoProperty_iterator end_infoProperty ();
infoProperty_const_iterator begin_infoProperty () const;
infoProperty_const_iterator end_infoProperty () const;
- void add_infoProperty (::CIAO::Config_Handlers::Property const& );
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_infoProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > infoProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
public:
- Domain ();
+ Domain (::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > const& node__);
Domain (::XSCRT::XML::Element< ACE_TCHAR > const&);
Domain (Domain const& s);
@@ -160,6 +166,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Bridge, ACE_Null_Mutex > _ptr;
+
// name
//
public:
@@ -182,35 +191,36 @@ namespace CIAO
// connect
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Interconnect >::iterator connect_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Interconnect >::const_iterator connect_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::iterator connect_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::const_iterator connect_const_iterator;
connect_iterator begin_connect ();
connect_iterator end_connect ();
connect_const_iterator begin_connect () const;
connect_const_iterator end_connect () const;
- void add_connect (::CIAO::Config_Handlers::Interconnect const& );
+ void add_connect ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& );
size_t count_connect (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Interconnect > connect_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > connect_;
// resource
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Resource >::iterator resource_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Resource >::const_iterator resource_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::iterator resource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::const_iterator resource_const_iterator;
resource_iterator begin_resource ();
resource_iterator end_resource ();
resource_const_iterator begin_resource () const;
resource_const_iterator end_resource () const;
- void add_resource (::CIAO::Config_Handlers::Resource const& );
+ void add_resource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& );
size_t count_resource (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Resource > resource_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > > resource_;
public:
- Bridge (::XMLSchema::string< ACE_TCHAR > const& name__);
+ Bridge (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > const& connect__);
Bridge (::XSCRT::XML::Element< ACE_TCHAR > const&);
Bridge (Bridge const& s);
@@ -227,6 +237,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Interconnect, ACE_Null_Mutex > _ptr;
+
// name
//
public:
@@ -249,50 +262,51 @@ namespace CIAO
// connection
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Bridge >::iterator connection_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Bridge >::const_iterator connection_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > >::iterator connection_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > >::const_iterator connection_const_iterator;
connection_iterator begin_connection ();
connection_iterator end_connection ();
connection_const_iterator begin_connection () const;
connection_const_iterator end_connection () const;
- void add_connection (::CIAO::Config_Handlers::Bridge const& );
+ void add_connection ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > const& );
size_t count_connection (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Bridge > connection_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Bridge, ACE_Null_Mutex > > connection_;
// connect
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Node >::iterator connect_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Node >::const_iterator connect_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > >::iterator connect_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > >::const_iterator connect_const_iterator;
connect_iterator begin_connect ();
connect_iterator end_connect ();
connect_const_iterator begin_connect () const;
connect_const_iterator end_connect () const;
- void add_connect (::CIAO::Config_Handlers::Node const& );
+ void add_connect ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > const& );
size_t count_connect (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Node > connect_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > connect_;
// resource
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Resource >::iterator resource_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Resource >::const_iterator resource_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::iterator resource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::const_iterator resource_const_iterator;
resource_iterator begin_resource ();
resource_iterator end_resource ();
resource_const_iterator begin_resource () const;
resource_const_iterator end_resource () const;
- void add_resource (::CIAO::Config_Handlers::Resource const& );
+ void add_resource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& );
size_t count_resource (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Resource > resource_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > > resource_;
public:
- Interconnect (::XMLSchema::string< ACE_TCHAR > const& name__);
+ Interconnect (::XMLSchema::string< ACE_TCHAR > const& name__,
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Node, ACE_Null_Mutex > > const& connect__);
Interconnect (::XSCRT::XML::Element< ACE_TCHAR > const&);
Interconnect (Interconnect const& s);
@@ -309,6 +323,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < Node, ACE_Null_Mutex > _ptr;
+
// name
//
public:
@@ -331,47 +348,47 @@ namespace CIAO
// connection
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Interconnect >::iterator connection_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Interconnect >::const_iterator connection_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::iterator connection_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > >::const_iterator connection_const_iterator;
connection_iterator begin_connection ();
connection_iterator end_connection ();
connection_const_iterator begin_connection () const;
connection_const_iterator end_connection () const;
- void add_connection (::CIAO::Config_Handlers::Interconnect const& );
+ void add_connection ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > const& );
size_t count_connection (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Interconnect > connection_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Interconnect, ACE_Null_Mutex > > connection_;
// sharedResource
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::SharedResource >::iterator sharedResource_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::SharedResource >::const_iterator sharedResource_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > >::iterator sharedResource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > >::const_iterator sharedResource_const_iterator;
sharedResource_iterator begin_sharedResource ();
sharedResource_iterator end_sharedResource ();
sharedResource_const_iterator begin_sharedResource () const;
sharedResource_const_iterator end_sharedResource () const;
- void add_sharedResource (::CIAO::Config_Handlers::SharedResource const& );
+ void add_sharedResource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > const& );
size_t count_sharedResource (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::SharedResource > sharedResource_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SharedResource, ACE_Null_Mutex > > sharedResource_;
// resource
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Resource >::iterator resource_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Resource >::const_iterator resource_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::iterator resource_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > >::const_iterator resource_const_iterator;
resource_iterator begin_resource ();
resource_iterator end_resource ();
resource_const_iterator begin_resource () const;
resource_const_iterator end_resource () const;
- void add_resource (::CIAO::Config_Handlers::Resource const& );
+ void add_resource ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > const& );
size_t count_resource (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Resource > resource_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Resource, ACE_Null_Mutex > > resource_;
public:
Node (::XMLSchema::string< ACE_TCHAR > const& name__);
@@ -391,6 +408,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SharedResource, ACE_Null_Mutex > _ptr;
+
// name
//
public:
@@ -1059,198 +1079,162 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
UUID (Type &o)
{
-
this->UUID (const_cast <Type const &> (o));
}
-
virtual void
UUID (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
node_pre (Type &o)
{
-
this->node_pre (const_cast <Type const &> (o));
}
-
virtual void
node_pre (Type const&);
virtual void
node_next (Type &o)
{
-
this->node_next (const_cast <Type const &> (o));
}
-
virtual void
node_next (Type const&);
virtual void
node_post (Type &o)
{
-
this->node_post (const_cast <Type const &> (o));
}
-
virtual void
node_post (Type const&);
virtual void
interconnect_pre (Type &o)
{
-
this->interconnect_pre (const_cast <Type const &> (o));
}
-
virtual void
interconnect_pre (Type const&);
virtual void
interconnect_next (Type &o)
{
-
this->interconnect_next (const_cast <Type const &> (o));
}
-
virtual void
interconnect_next (Type const&);
virtual void
interconnect_post (Type &o)
{
-
this->interconnect_post (const_cast <Type const &> (o));
}
-
virtual void
interconnect_post (Type const&);
virtual void
bridge_pre (Type &o)
{
-
this->bridge_pre (const_cast <Type const &> (o));
}
-
virtual void
bridge_pre (Type const&);
virtual void
bridge_next (Type &o)
{
-
this->bridge_next (const_cast <Type const &> (o));
}
-
virtual void
bridge_next (Type const&);
virtual void
bridge_post (Type &o)
{
-
this->bridge_post (const_cast <Type const &> (o));
}
-
virtual void
bridge_post (Type const&);
virtual void
sharedResource_pre (Type &o)
{
-
this->sharedResource_pre (const_cast <Type const &> (o));
}
-
virtual void
sharedResource_pre (Type const&);
virtual void
sharedResource_next (Type &o)
{
-
this->sharedResource_next (const_cast <Type const &> (o));
}
-
virtual void
sharedResource_next (Type const&);
virtual void
sharedResource_post (Type &o)
{
-
this->sharedResource_post (const_cast <Type const &> (o));
}
-
virtual void
sharedResource_post (Type const&);
virtual void
infoProperty_pre (Type &o)
{
-
this->infoProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_pre (Type const&);
virtual void
infoProperty_next (Type &o)
{
-
this->infoProperty_next (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_next (Type const&);
virtual void
infoProperty_post (Type &o)
{
-
this->infoProperty_post (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_post (Type const&);
@@ -1267,99 +1251,81 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
connect_pre (Type &o)
{
-
this->connect_pre (const_cast <Type const &> (o));
}
-
virtual void
connect_pre (Type const&);
virtual void
connect_next (Type &o)
{
-
this->connect_next (const_cast <Type const &> (o));
}
-
virtual void
connect_next (Type const&);
virtual void
connect_post (Type &o)
{
-
this->connect_post (const_cast <Type const &> (o));
}
-
virtual void
connect_post (Type const&);
virtual void
resource_pre (Type &o)
{
-
this->resource_pre (const_cast <Type const &> (o));
}
-
virtual void
resource_pre (Type const&);
virtual void
resource_next (Type &o)
{
-
this->resource_next (const_cast <Type const &> (o));
}
-
virtual void
resource_next (Type const&);
virtual void
resource_post (Type &o)
{
-
this->resource_post (const_cast <Type const &> (o));
}
-
virtual void
resource_post (Type const&);
@@ -1376,132 +1342,108 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
connection_pre (Type &o)
{
-
this->connection_pre (const_cast <Type const &> (o));
}
-
virtual void
connection_pre (Type const&);
virtual void
connection_next (Type &o)
{
-
this->connection_next (const_cast <Type const &> (o));
}
-
virtual void
connection_next (Type const&);
virtual void
connection_post (Type &o)
{
-
this->connection_post (const_cast <Type const &> (o));
}
-
virtual void
connection_post (Type const&);
virtual void
connect_pre (Type &o)
{
-
this->connect_pre (const_cast <Type const &> (o));
}
-
virtual void
connect_pre (Type const&);
virtual void
connect_next (Type &o)
{
-
this->connect_next (const_cast <Type const &> (o));
}
-
virtual void
connect_next (Type const&);
virtual void
connect_post (Type &o)
{
-
this->connect_post (const_cast <Type const &> (o));
}
-
virtual void
connect_post (Type const&);
virtual void
resource_pre (Type &o)
{
-
this->resource_pre (const_cast <Type const &> (o));
}
-
virtual void
resource_pre (Type const&);
virtual void
resource_next (Type &o)
{
-
this->resource_next (const_cast <Type const &> (o));
}
-
virtual void
resource_next (Type const&);
virtual void
resource_post (Type &o)
{
-
this->resource_post (const_cast <Type const &> (o));
}
-
virtual void
resource_post (Type const&);
@@ -1518,132 +1460,108 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
connection_pre (Type &o)
{
-
this->connection_pre (const_cast <Type const &> (o));
}
-
virtual void
connection_pre (Type const&);
virtual void
connection_next (Type &o)
{
-
this->connection_next (const_cast <Type const &> (o));
}
-
virtual void
connection_next (Type const&);
virtual void
connection_post (Type &o)
{
-
this->connection_post (const_cast <Type const &> (o));
}
-
virtual void
connection_post (Type const&);
virtual void
sharedResource_pre (Type &o)
{
-
this->sharedResource_pre (const_cast <Type const &> (o));
}
-
virtual void
sharedResource_pre (Type const&);
virtual void
sharedResource_next (Type &o)
{
-
this->sharedResource_next (const_cast <Type const &> (o));
}
-
virtual void
sharedResource_next (Type const&);
virtual void
sharedResource_post (Type &o)
{
-
this->sharedResource_post (const_cast <Type const &> (o));
}
-
virtual void
sharedResource_post (Type const&);
virtual void
resource_pre (Type &o)
{
-
this->resource_pre (const_cast <Type const &> (o));
}
-
virtual void
resource_pre (Type const&);
virtual void
resource_next (Type &o)
{
-
this->resource_next (const_cast <Type const &> (o));
}
-
virtual void
resource_next (Type const&);
virtual void
resource_post (Type &o)
{
-
this->resource_post (const_cast <Type const &> (o));
}
-
virtual void
resource_post (Type const&);
@@ -1660,55 +1578,45 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
virtual void
resourceType (Type &o)
{
-
this->resourceType (const_cast <Type const &> (o));
}
-
virtual void
resourceType (Type const&);
virtual void
node (Type &o)
{
-
this->node (const_cast <Type const &> (o));
}
-
virtual void
node (Type const&);
virtual void
property (Type &o)
{
-
this->property (const_cast <Type const &> (o));
}
-
virtual void
property (Type const&);
diff --git a/CIAO/tools/Config_Handlers/cdp.cpp b/CIAO/tools/Config_Handlers/cdp.cpp
index 7200d3e3a74..b151e209ce1 100644
--- a/CIAO/tools/Config_Handlers/cdp.cpp
+++ b/CIAO/tools/Config_Handlers/cdp.cpp
@@ -33,92 +33,57 @@ namespace CIAO
}
deploymentPlan::
- deploymentPlan (::CIAO::Config_Handlers::deploymentPlan const& s)
+ deploymentPlan (deploymentPlan const& s)
:
::XSCRT::Type (),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
realizes_ (s.realizes_.get () ? new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.realizes_) : 0),
+ implementation_ (s.implementation_),
+ instance_ (s.instance_),
+ connection_ (s.connection_),
+ dependsOn_ (s.dependsOn_),
+ artifact_ (s.artifact_),
+ infoProperty_ (s.infoProperty_),
+ localityConstraint_ (s.localityConstraint_),
regulator__ ()
{
if (label_.get ()) label_->container (this);
if (UUID_.get ()) UUID_->container (this);
if (realizes_.get ()) realizes_->container (this);
- {
- for (implementation_const_iterator i (s.implementation_.begin ());i != s.implementation_.end ();++i) add_implementation (*i);
- }
-
- {
- for (instance_const_iterator i (s.instance_.begin ());i != s.instance_.end ();++i) add_instance (*i);
- }
-
- {
- for (connection_const_iterator i (s.connection_.begin ());i != s.connection_.end ();++i) add_connection (*i);
- }
-
- {
- for (dependsOn_const_iterator i (s.dependsOn_.begin ());i != s.dependsOn_.end ();++i) add_dependsOn (*i);
- }
-
- {
- for (artifact_const_iterator i (s.artifact_.begin ());i != s.artifact_.end ();++i) add_artifact (*i);
- }
-
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
-
- {
- for (localityConstraint_const_iterator i (s.localityConstraint_.begin ());i != s.localityConstraint_.end ();++i) add_localityConstraint (*i);
- }
}
- ::CIAO::Config_Handlers::deploymentPlan& deploymentPlan::
- operator= (::CIAO::Config_Handlers::deploymentPlan const& s)
+ deploymentPlan& deploymentPlan::
+ operator= (deploymentPlan const& s)
{
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- if (s.UUID_.get ()) UUID (*(s.UUID_));
- else UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
- if (s.realizes_.get ()) realizes (*(s.realizes_));
- else realizes_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (0);
+ if (s.realizes_.get ())
+ realizes (*(s.realizes_));
+ else
+ realizes_.reset (0);
- implementation_.clear ();
- {
- for (implementation_const_iterator i (s.implementation_.begin ());i != s.implementation_.end ();++i) add_implementation (*i);
- }
+ implementation_ = s.implementation_;
- instance_.clear ();
- {
- for (instance_const_iterator i (s.instance_.begin ());i != s.instance_.end ();++i) add_instance (*i);
- }
+ instance_ = s.instance_;
- connection_.clear ();
- {
- for (connection_const_iterator i (s.connection_.begin ());i != s.connection_.end ();++i) add_connection (*i);
- }
+ connection_ = s.connection_;
- dependsOn_.clear ();
- {
- for (dependsOn_const_iterator i (s.dependsOn_.begin ());i != s.dependsOn_.end ();++i) add_dependsOn (*i);
- }
+ dependsOn_ = s.dependsOn_;
- artifact_.clear ();
- {
- for (artifact_const_iterator i (s.artifact_.begin ());i != s.artifact_.end ();++i) add_artifact (*i);
- }
+ artifact_ = s.artifact_;
- infoProperty_.clear ();
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
+ infoProperty_ = s.infoProperty_;
- localityConstraint_.clear ();
- {
- for (localityConstraint_const_iterator i (s.localityConstraint_.begin ());i != s.localityConstraint_.end ();++i) add_localityConstraint (*i);
- }
+ localityConstraint_ = s.localityConstraint_;
return *this;
}
@@ -238,7 +203,7 @@ namespace CIAO
}
void deploymentPlan::
- add_implementation (::CIAO::Config_Handlers::MonolithicDeploymentDescription const& e)
+ add_implementation (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > const& e)
{
implementation_.push_back (e);
}
@@ -276,7 +241,7 @@ namespace CIAO
}
void deploymentPlan::
- add_instance (::CIAO::Config_Handlers::InstanceDeploymentDescription const& e)
+ add_instance (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > const& e)
{
instance_.push_back (e);
}
@@ -314,7 +279,7 @@ namespace CIAO
}
void deploymentPlan::
- add_connection (::CIAO::Config_Handlers::PlanConnectionDescription const& e)
+ add_connection (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > const& e)
{
connection_.push_back (e);
}
@@ -352,7 +317,7 @@ namespace CIAO
}
void deploymentPlan::
- add_dependsOn (::CIAO::Config_Handlers::ImplementationDependency const& e)
+ add_dependsOn (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& e)
{
dependsOn_.push_back (e);
}
@@ -390,7 +355,7 @@ namespace CIAO
}
void deploymentPlan::
- add_artifact (::CIAO::Config_Handlers::ArtifactDeploymentDescription const& e)
+ add_artifact (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > const& e)
{
artifact_.push_back (e);
}
@@ -428,7 +393,7 @@ namespace CIAO
}
void deploymentPlan::
- add_infoProperty (::CIAO::Config_Handlers::Property const& e)
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
infoProperty_.push_back (e);
}
@@ -466,7 +431,7 @@ namespace CIAO
}
void deploymentPlan::
- add_localityConstraint (::CIAO::Config_Handlers::PlanLocality const& e)
+ add_localityConstraint (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > const& e)
{
localityConstraint_.push_back (e);
}
@@ -518,43 +483,43 @@ namespace CIAO
else if (n == "implementation")
{
- ::CIAO::Config_Handlers::MonolithicDeploymentDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::MonolithicDeploymentDescription (e));
add_implementation (t);
}
else if (n == "instance")
{
- ::CIAO::Config_Handlers::InstanceDeploymentDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::InstanceDeploymentDescription (e));
add_instance (t);
}
else if (n == "connection")
{
- ::CIAO::Config_Handlers::PlanConnectionDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PlanConnectionDescription (e));
add_connection (t);
}
else if (n == "dependsOn")
{
- ::CIAO::Config_Handlers::ImplementationDependency t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ImplementationDependency (e));
add_dependsOn (t);
}
else if (n == "artifact")
{
- ::CIAO::Config_Handlers::ArtifactDeploymentDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ArtifactDeploymentDescription (e));
add_artifact (t);
}
else if (n == "infoProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_infoProperty (t);
}
else if (n == "localityConstraint")
{
- ::CIAO::Config_Handlers::PlanLocality t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PlanLocality (e));
add_localityConstraint (t);
}
@@ -587,7 +552,7 @@ namespace CIAO
{
deploymentPlanTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (deploymentPlan));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::deploymentPlan));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -731,14 +696,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::implementation_iterator b (o.begin_implementation()), e (o.end_implementation());
+ ::CIAO::Config_Handlers::deploymentPlan::implementation_iterator b (o.begin_implementation()), e (o.end_implementation());
if (b != e)
{
implementation_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) implementation_next (o);
}
@@ -753,14 +718,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::implementation_const_iterator b (o.begin_implementation()), e (o.end_implementation());
+ ::CIAO::Config_Handlers::deploymentPlan::implementation_const_iterator b (o.begin_implementation()), e (o.end_implementation());
if (b != e)
{
implementation_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) implementation_next (o);
}
@@ -815,14 +780,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::instance_iterator b (o.begin_instance()), e (o.end_instance());
+ ::CIAO::Config_Handlers::deploymentPlan::instance_iterator b (o.begin_instance()), e (o.end_instance());
if (b != e)
{
instance_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) instance_next (o);
}
@@ -837,14 +802,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::instance_const_iterator b (o.begin_instance()), e (o.end_instance());
+ ::CIAO::Config_Handlers::deploymentPlan::instance_const_iterator b (o.begin_instance()), e (o.end_instance());
if (b != e)
{
instance_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) instance_next (o);
}
@@ -899,14 +864,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::connection_iterator b (o.begin_connection()), e (o.end_connection());
+ ::CIAO::Config_Handlers::deploymentPlan::connection_iterator b (o.begin_connection()), e (o.end_connection());
if (b != e)
{
connection_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connection_next (o);
}
@@ -921,14 +886,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
+ ::CIAO::Config_Handlers::deploymentPlan::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
if (b != e)
{
connection_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connection_next (o);
}
@@ -983,14 +948,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+ ::CIAO::Config_Handlers::deploymentPlan::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
if (b != e)
{
dependsOn_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) dependsOn_next (o);
}
@@ -1005,14 +970,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+ ::CIAO::Config_Handlers::deploymentPlan::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
if (b != e)
{
dependsOn_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) dependsOn_next (o);
}
@@ -1067,14 +1032,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::artifact_iterator b (o.begin_artifact()), e (o.end_artifact());
+ ::CIAO::Config_Handlers::deploymentPlan::artifact_iterator b (o.begin_artifact()), e (o.end_artifact());
if (b != e)
{
artifact_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) artifact_next (o);
}
@@ -1089,14 +1054,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::artifact_const_iterator b (o.begin_artifact()), e (o.end_artifact());
+ ::CIAO::Config_Handlers::deploymentPlan::artifact_const_iterator b (o.begin_artifact()), e (o.end_artifact());
if (b != e)
{
artifact_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) artifact_next (o);
}
@@ -1151,14 +1116,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::deploymentPlan::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -1173,14 +1138,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::deploymentPlan::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -1235,14 +1200,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::localityConstraint_iterator b (o.begin_localityConstraint()), e (o.end_localityConstraint());
+ ::CIAO::Config_Handlers::deploymentPlan::localityConstraint_iterator b (o.begin_localityConstraint()), e (o.end_localityConstraint());
if (b != e)
{
localityConstraint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) localityConstraint_next (o);
}
@@ -1257,14 +1222,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- deploymentPlan::Type::localityConstraint_const_iterator b (o.begin_localityConstraint()), e (o.end_localityConstraint());
+ ::CIAO::Config_Handlers::deploymentPlan::localityConstraint_const_iterator b (o.begin_localityConstraint()), e (o.end_localityConstraint());
if (b != e)
{
localityConstraint_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) localityConstraint_next (o);
}
diff --git a/CIAO/tools/Config_Handlers/cdp.hpp b/CIAO/tools/Config_Handlers/cdp.hpp
index 4e734efe6fb..47598acfaac 100644
--- a/CIAO/tools/Config_Handlers/cdp.hpp
+++ b/CIAO/tools/Config_Handlers/cdp.hpp
@@ -33,6 +33,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "ccd.hpp"
namespace CIAO
@@ -43,6 +46,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < deploymentPlan, ACE_Null_Mutex > _ptr;
+
// label
//
public:
@@ -76,107 +82,107 @@ namespace CIAO
// implementation
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::MonolithicDeploymentDescription >::iterator implementation_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::MonolithicDeploymentDescription >::const_iterator implementation_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > >::iterator implementation_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > >::const_iterator implementation_const_iterator;
implementation_iterator begin_implementation ();
implementation_iterator end_implementation ();
implementation_const_iterator begin_implementation () const;
implementation_const_iterator end_implementation () const;
- void add_implementation (::CIAO::Config_Handlers::MonolithicDeploymentDescription const& );
+ void add_implementation ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > const& );
size_t count_implementation (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::MonolithicDeploymentDescription > implementation_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::MonolithicDeploymentDescription, ACE_Null_Mutex > > implementation_;
// instance
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::InstanceDeploymentDescription >::iterator instance_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::InstanceDeploymentDescription >::const_iterator instance_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > >::iterator instance_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > >::const_iterator instance_const_iterator;
instance_iterator begin_instance ();
instance_iterator end_instance ();
instance_const_iterator begin_instance () const;
instance_const_iterator end_instance () const;
- void add_instance (::CIAO::Config_Handlers::InstanceDeploymentDescription const& );
+ void add_instance ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > const& );
size_t count_instance (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::InstanceDeploymentDescription > instance_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::InstanceDeploymentDescription, ACE_Null_Mutex > > instance_;
// connection
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::PlanConnectionDescription >::iterator connection_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::PlanConnectionDescription >::const_iterator connection_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > >::iterator connection_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > >::const_iterator connection_const_iterator;
connection_iterator begin_connection ();
connection_iterator end_connection ();
connection_const_iterator begin_connection () const;
connection_const_iterator end_connection () const;
- void add_connection (::CIAO::Config_Handlers::PlanConnectionDescription const& );
+ void add_connection ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > const& );
size_t count_connection (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::PlanConnectionDescription > connection_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanConnectionDescription, ACE_Null_Mutex > > connection_;
// dependsOn
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ImplementationDependency >::iterator dependsOn_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ImplementationDependency >::const_iterator dependsOn_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::iterator dependsOn_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::const_iterator dependsOn_const_iterator;
dependsOn_iterator begin_dependsOn ();
dependsOn_iterator end_dependsOn ();
dependsOn_const_iterator begin_dependsOn () const;
dependsOn_const_iterator end_dependsOn () const;
- void add_dependsOn (::CIAO::Config_Handlers::ImplementationDependency const& );
+ void add_dependsOn ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& );
size_t count_dependsOn (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ImplementationDependency > dependsOn_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > > dependsOn_;
// artifact
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ArtifactDeploymentDescription >::iterator artifact_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ArtifactDeploymentDescription >::const_iterator artifact_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > >::iterator artifact_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > >::const_iterator artifact_const_iterator;
artifact_iterator begin_artifact ();
artifact_iterator end_artifact ();
artifact_const_iterator begin_artifact () const;
artifact_const_iterator end_artifact () const;
- void add_artifact (::CIAO::Config_Handlers::ArtifactDeploymentDescription const& );
+ void add_artifact ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > const& );
size_t count_artifact (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ArtifactDeploymentDescription > artifact_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ArtifactDeploymentDescription, ACE_Null_Mutex > > artifact_;
// infoProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator infoProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator infoProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
infoProperty_iterator begin_infoProperty ();
infoProperty_iterator end_infoProperty ();
infoProperty_const_iterator begin_infoProperty () const;
infoProperty_const_iterator end_infoProperty () const;
- void add_infoProperty (::CIAO::Config_Handlers::Property const& );
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_infoProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > infoProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
// localityConstraint
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::PlanLocality >::iterator localityConstraint_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::PlanLocality >::const_iterator localityConstraint_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > >::iterator localityConstraint_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > >::const_iterator localityConstraint_const_iterator;
localityConstraint_iterator begin_localityConstraint ();
localityConstraint_iterator end_localityConstraint ();
localityConstraint_const_iterator begin_localityConstraint () const;
localityConstraint_const_iterator end_localityConstraint () const;
- void add_localityConstraint (::CIAO::Config_Handlers::PlanLocality const& );
+ void add_localityConstraint ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > const& );
size_t count_localityConstraint (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::PlanLocality > localityConstraint_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PlanLocality, ACE_Null_Mutex > > localityConstraint_;
public:
deploymentPlan ();
@@ -495,275 +501,225 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
UUID (Type &o)
{
-
this->UUID (const_cast <Type const &> (o));
}
-
virtual void
UUID (Type const&);
virtual void
realizes (Type &o)
{
-
this->realizes (const_cast <Type const &> (o));
}
-
virtual void
realizes (Type const&);
virtual void
implementation_pre (Type &o)
{
-
this->implementation_pre (const_cast <Type const &> (o));
}
-
virtual void
implementation_pre (Type const&);
virtual void
implementation_next (Type &o)
{
-
this->implementation_next (const_cast <Type const &> (o));
}
-
virtual void
implementation_next (Type const&);
virtual void
implementation_post (Type &o)
{
-
this->implementation_post (const_cast <Type const &> (o));
}
-
virtual void
implementation_post (Type const&);
virtual void
instance_pre (Type &o)
{
-
this->instance_pre (const_cast <Type const &> (o));
}
-
virtual void
instance_pre (Type const&);
virtual void
instance_next (Type &o)
{
-
this->instance_next (const_cast <Type const &> (o));
}
-
virtual void
instance_next (Type const&);
virtual void
instance_post (Type &o)
{
-
this->instance_post (const_cast <Type const &> (o));
}
-
virtual void
instance_post (Type const&);
virtual void
connection_pre (Type &o)
{
-
this->connection_pre (const_cast <Type const &> (o));
}
-
virtual void
connection_pre (Type const&);
virtual void
connection_next (Type &o)
{
-
this->connection_next (const_cast <Type const &> (o));
}
-
virtual void
connection_next (Type const&);
virtual void
connection_post (Type &o)
{
-
this->connection_post (const_cast <Type const &> (o));
}
-
virtual void
connection_post (Type const&);
virtual void
dependsOn_pre (Type &o)
{
-
this->dependsOn_pre (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_pre (Type const&);
virtual void
dependsOn_next (Type &o)
{
-
this->dependsOn_next (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_next (Type const&);
virtual void
dependsOn_post (Type &o)
{
-
this->dependsOn_post (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_post (Type const&);
virtual void
artifact_pre (Type &o)
{
-
this->artifact_pre (const_cast <Type const &> (o));
}
-
virtual void
artifact_pre (Type const&);
virtual void
artifact_next (Type &o)
{
-
this->artifact_next (const_cast <Type const &> (o));
}
-
virtual void
artifact_next (Type const&);
virtual void
artifact_post (Type &o)
{
-
this->artifact_post (const_cast <Type const &> (o));
}
-
virtual void
artifact_post (Type const&);
virtual void
infoProperty_pre (Type &o)
{
-
this->infoProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_pre (Type const&);
virtual void
infoProperty_next (Type &o)
{
-
this->infoProperty_next (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_next (Type const&);
virtual void
infoProperty_post (Type &o)
{
-
this->infoProperty_post (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_post (Type const&);
virtual void
localityConstraint_pre (Type &o)
{
-
this->localityConstraint_pre (const_cast <Type const &> (o));
}
-
virtual void
localityConstraint_pre (Type const&);
virtual void
localityConstraint_next (Type &o)
{
-
this->localityConstraint_next (const_cast <Type const &> (o));
}
-
virtual void
localityConstraint_next (Type const&);
virtual void
localityConstraint_post (Type &o)
{
-
this->localityConstraint_post (const_cast <Type const &> (o));
}
-
virtual void
localityConstraint_post (Type const&);
diff --git a/CIAO/tools/Config_Handlers/cid.cpp b/CIAO/tools/Config_Handlers/cid.cpp
index ff69d6d8473..e7fa670bd03 100644
--- a/CIAO/tools/Config_Handlers/cid.cpp
+++ b/CIAO/tools/Config_Handlers/cid.cpp
@@ -35,7 +35,7 @@ namespace CIAO
}
ComponentPackageReference::
- ComponentPackageReference (::CIAO::Config_Handlers::ComponentPackageReference const& s)
+ ComponentPackageReference (ComponentPackageReference const& s)
:
::XSCRT::Type (),
requiredUUID_ (s.requiredUUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.requiredUUID_) : 0),
@@ -48,16 +48,20 @@ namespace CIAO
requiredType_->container (this);
}
- ::CIAO::Config_Handlers::ComponentPackageReference& ComponentPackageReference::
- operator= (::CIAO::Config_Handlers::ComponentPackageReference const& s)
+ ComponentPackageReference& ComponentPackageReference::
+ operator= (ComponentPackageReference const& s)
{
- if (s.requiredUUID_.get ()) requiredUUID (*(s.requiredUUID_));
- else requiredUUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.requiredUUID_.get ())
+ requiredUUID (*(s.requiredUUID_));
+ else
+ requiredUUID_.reset (0);
- if (s.requiredName_.get ()) requiredName (*(s.requiredName_));
- else requiredName_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.requiredName_.get ())
+ requiredName (*(s.requiredName_));
+ else
+ requiredName_.reset (0);
- requiredType (s.requiredType ());
+ requiredType (*s.requiredType_);
return *this;
}
@@ -142,7 +146,6 @@ namespace CIAO
SubcomponentInstantiationDescription::
SubcomponentInstantiationDescription (::XMLSchema::string< ACE_TCHAR > const& name__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
regulator__ ()
{
@@ -150,12 +153,14 @@ namespace CIAO
}
SubcomponentInstantiationDescription::
- SubcomponentInstantiationDescription (::CIAO::Config_Handlers::SubcomponentInstantiationDescription const& s)
+ SubcomponentInstantiationDescription (SubcomponentInstantiationDescription const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
basePackage_ (s.basePackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageDescription (*s.basePackage_) : 0),
specializedConfig_ (s.specializedConfig_.get () ? new ::CIAO::Config_Handlers::PackageConfiguration (*s.specializedConfig_) : 0),
+ selectRequirement_ (s.selectRequirement_),
+ configProperty_ (s.configProperty_),
referencedPackage_ (s.referencedPackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageReference (*s.referencedPackage_) : 0),
importedPackage_ (s.importedPackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageImport (*s.importedPackage_) : 0),
id_ (s.id_.get () ? new ::XMLSchema::ID< ACE_TCHAR > (*s.id_) : 0),
@@ -164,45 +169,39 @@ namespace CIAO
name_->container (this);
if (basePackage_.get ()) basePackage_->container (this);
if (specializedConfig_.get ()) specializedConfig_->container (this);
- {
- for (selectRequirement_const_iterator i (s.selectRequirement_.begin ());i != s.selectRequirement_.end ();++i) add_selectRequirement (*i);
- }
-
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
-
if (referencedPackage_.get ()) referencedPackage_->container (this);
if (importedPackage_.get ()) importedPackage_->container (this);
if (id_.get ()) id_->container (this);
}
- ::CIAO::Config_Handlers::SubcomponentInstantiationDescription& SubcomponentInstantiationDescription::
- operator= (::CIAO::Config_Handlers::SubcomponentInstantiationDescription const& s)
+ SubcomponentInstantiationDescription& SubcomponentInstantiationDescription::
+ operator= (SubcomponentInstantiationDescription const& s)
{
- name (s.name ());
+ name (*s.name_);
- if (s.basePackage_.get ()) basePackage (*(s.basePackage_));
- else basePackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageDescription > (0);
+ if (s.basePackage_.get ())
+ basePackage (*(s.basePackage_));
+ else
+ basePackage_.reset (0);
- if (s.specializedConfig_.get ()) specializedConfig (*(s.specializedConfig_));
- else specializedConfig_ = ::std::auto_ptr< ::CIAO::Config_Handlers::PackageConfiguration > (0);
+ if (s.specializedConfig_.get ())
+ specializedConfig (*(s.specializedConfig_));
+ else
+ specializedConfig_.reset (0);
- selectRequirement_.clear ();
- {
- for (selectRequirement_const_iterator i (s.selectRequirement_.begin ());i != s.selectRequirement_.end ();++i) add_selectRequirement (*i);
- }
+ selectRequirement_ = s.selectRequirement_;
- configProperty_.clear ();
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
+ configProperty_ = s.configProperty_;
- if (s.referencedPackage_.get ()) referencedPackage (*(s.referencedPackage_));
- else referencedPackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageReference > (0);
+ if (s.referencedPackage_.get ())
+ referencedPackage (*(s.referencedPackage_));
+ else
+ referencedPackage_.reset (0);
- if (s.importedPackage_.get ()) importedPackage (*(s.importedPackage_));
- else importedPackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageImport > (0);
+ if (s.importedPackage_.get ())
+ importedPackage (*(s.importedPackage_));
+ else
+ importedPackage_.reset (0);
if (s.id_.get ()) id (*(s.id_));
else id_ = ::std::auto_ptr< ::XMLSchema::ID< ACE_TCHAR > > (0);
@@ -310,7 +309,7 @@ namespace CIAO
}
void SubcomponentInstantiationDescription::
- add_selectRequirement (::CIAO::Config_Handlers::Requirement const& e)
+ add_selectRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
{
selectRequirement_.push_back (e);
}
@@ -348,7 +347,7 @@ namespace CIAO
}
void SubcomponentInstantiationDescription::
- add_configProperty (::CIAO::Config_Handlers::Property const& e)
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
configProperty_.push_back (e);
}
@@ -460,7 +459,6 @@ namespace CIAO
SubcomponentPropertyReference (::XMLSchema::string< ACE_TCHAR > const& propertyName__,
::CIAO::Config_Handlers::IdRef const& instance__)
:
- ::XSCRT::Type (),
propertyName_ (new ::XMLSchema::string< ACE_TCHAR > (propertyName__)),
instance_ (new ::CIAO::Config_Handlers::IdRef (instance__)),
regulator__ ()
@@ -470,7 +468,7 @@ namespace CIAO
}
SubcomponentPropertyReference::
- SubcomponentPropertyReference (::CIAO::Config_Handlers::SubcomponentPropertyReference const& s)
+ SubcomponentPropertyReference (SubcomponentPropertyReference const& s)
:
::XSCRT::Type (),
propertyName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.propertyName_)),
@@ -481,12 +479,12 @@ namespace CIAO
instance_->container (this);
}
- ::CIAO::Config_Handlers::SubcomponentPropertyReference& SubcomponentPropertyReference::
- operator= (::CIAO::Config_Handlers::SubcomponentPropertyReference const& s)
+ SubcomponentPropertyReference& SubcomponentPropertyReference::
+ operator= (SubcomponentPropertyReference const& s)
{
- propertyName (s.propertyName ());
+ propertyName (*s.propertyName_);
- instance (s.instance ());
+ instance (*s.instance_);
return *this;
}
@@ -528,7 +526,6 @@ namespace CIAO
AssemblyPropertyMapping (::XMLSchema::string< ACE_TCHAR > const& name__,
::XMLSchema::string< ACE_TCHAR > const& externalName__)
:
- ::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (name__)),
externalName_ (new ::XMLSchema::string< ACE_TCHAR > (externalName__)),
regulator__ ()
@@ -538,31 +535,26 @@ namespace CIAO
}
AssemblyPropertyMapping::
- AssemblyPropertyMapping (::CIAO::Config_Handlers::AssemblyPropertyMapping const& s)
+ AssemblyPropertyMapping (AssemblyPropertyMapping const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
externalName_ (new ::XMLSchema::string< ACE_TCHAR > (*s.externalName_)),
+ delegatesTo_ (s.delegatesTo_),
regulator__ ()
{
name_->container (this);
externalName_->container (this);
- {
- for (delegatesTo_const_iterator i (s.delegatesTo_.begin ());i != s.delegatesTo_.end ();++i) add_delegatesTo (*i);
- }
}
- ::CIAO::Config_Handlers::AssemblyPropertyMapping& AssemblyPropertyMapping::
- operator= (::CIAO::Config_Handlers::AssemblyPropertyMapping const& s)
+ AssemblyPropertyMapping& AssemblyPropertyMapping::
+ operator= (AssemblyPropertyMapping const& s)
{
- name (s.name ());
+ name (*s.name_);
- externalName (s.externalName ());
+ externalName (*s.externalName_);
- delegatesTo_.clear ();
- {
- for (delegatesTo_const_iterator i (s.delegatesTo_.begin ());i != s.delegatesTo_.end ();++i) add_delegatesTo (*i);
- }
+ delegatesTo_ = s.delegatesTo_;
return *this;
}
@@ -623,7 +615,7 @@ namespace CIAO
}
void AssemblyPropertyMapping::
- add_delegatesTo (::CIAO::Config_Handlers::SubcomponentPropertyReference const& e)
+ add_delegatesTo (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > const& e)
{
delegatesTo_.push_back (e);
}
@@ -641,47 +633,29 @@ namespace CIAO
ComponentAssemblyDescription::
ComponentAssemblyDescription ()
:
- ::XSCRT::Type (),
regulator__ ()
{
}
ComponentAssemblyDescription::
- ComponentAssemblyDescription (::CIAO::Config_Handlers::ComponentAssemblyDescription const& s)
+ ComponentAssemblyDescription (ComponentAssemblyDescription const& s)
:
::XSCRT::Type (),
+ instance_ (s.instance_),
+ connection_ (s.connection_),
+ externalProperty_ (s.externalProperty_),
regulator__ ()
{
- {
- for (instance_const_iterator i (s.instance_.begin ());i != s.instance_.end ();++i) add_instance (*i);
- }
-
- {
- for (connection_const_iterator i (s.connection_.begin ());i != s.connection_.end ();++i) add_connection (*i);
- }
-
- {
- for (externalProperty_const_iterator i (s.externalProperty_.begin ());i != s.externalProperty_.end ();++i) add_externalProperty (*i);
- }
}
- ::CIAO::Config_Handlers::ComponentAssemblyDescription& ComponentAssemblyDescription::
- operator= (::CIAO::Config_Handlers::ComponentAssemblyDescription const& s)
+ ComponentAssemblyDescription& ComponentAssemblyDescription::
+ operator= (ComponentAssemblyDescription const& s)
{
- instance_.clear ();
- {
- for (instance_const_iterator i (s.instance_.begin ());i != s.instance_.end ();++i) add_instance (*i);
- }
+ instance_ = s.instance_;
- connection_.clear ();
- {
- for (connection_const_iterator i (s.connection_.begin ());i != s.connection_.end ();++i) add_connection (*i);
- }
+ connection_ = s.connection_;
- externalProperty_.clear ();
- {
- for (externalProperty_const_iterator i (s.externalProperty_.begin ());i != s.externalProperty_.end ();++i) add_externalProperty (*i);
- }
+ externalProperty_ = s.externalProperty_;
return *this;
}
@@ -714,7 +688,7 @@ namespace CIAO
}
void ComponentAssemblyDescription::
- add_instance (::CIAO::Config_Handlers::SubcomponentInstantiationDescription const& e)
+ add_instance (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > const& e)
{
instance_.push_back (e);
}
@@ -752,7 +726,7 @@ namespace CIAO
}
void ComponentAssemblyDescription::
- add_connection (::CIAO::Config_Handlers::AssemblyConnectionDescription const& e)
+ add_connection (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > const& e)
{
connection_.push_back (e);
}
@@ -790,7 +764,7 @@ namespace CIAO
}
void ComponentAssemblyDescription::
- add_externalProperty (::CIAO::Config_Handlers::AssemblyPropertyMapping const& e)
+ add_externalProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > const& e)
{
externalProperty_.push_back (e);
}
@@ -808,56 +782,32 @@ namespace CIAO
MonolithicImplementationDescription::
MonolithicImplementationDescription ()
:
- ::XSCRT::Type (),
regulator__ ()
{
}
MonolithicImplementationDescription::
- MonolithicImplementationDescription (::CIAO::Config_Handlers::MonolithicImplementationDescription const& s)
+ MonolithicImplementationDescription (MonolithicImplementationDescription const& s)
:
::XSCRT::Type (),
+ nodeExecParameter_ (s.nodeExecParameter_),
+ componentExecParameter_ (s.componentExecParameter_),
+ deployRequirement_ (s.deployRequirement_),
+ primaryArtifact_ (s.primaryArtifact_),
regulator__ ()
{
- {
- for (nodeExecParameter_const_iterator i (s.nodeExecParameter_.begin ());i != s.nodeExecParameter_.end ();++i) add_nodeExecParameter (*i);
- }
-
- {
- for (componentExecParameter_const_iterator i (s.componentExecParameter_.begin ());i != s.componentExecParameter_.end ();++i) add_componentExecParameter (*i);
- }
-
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
-
- {
- for (primaryArtifact_const_iterator i (s.primaryArtifact_.begin ());i != s.primaryArtifact_.end ();++i) add_primaryArtifact (*i);
- }
}
- ::CIAO::Config_Handlers::MonolithicImplementationDescription& MonolithicImplementationDescription::
- operator= (::CIAO::Config_Handlers::MonolithicImplementationDescription const& s)
+ MonolithicImplementationDescription& MonolithicImplementationDescription::
+ operator= (MonolithicImplementationDescription const& s)
{
- nodeExecParameter_.clear ();
- {
- for (nodeExecParameter_const_iterator i (s.nodeExecParameter_.begin ());i != s.nodeExecParameter_.end ();++i) add_nodeExecParameter (*i);
- }
+ nodeExecParameter_ = s.nodeExecParameter_;
- componentExecParameter_.clear ();
- {
- for (componentExecParameter_const_iterator i (s.componentExecParameter_.begin ());i != s.componentExecParameter_.end ();++i) add_componentExecParameter (*i);
- }
+ componentExecParameter_ = s.componentExecParameter_;
- deployRequirement_.clear ();
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
+ deployRequirement_ = s.deployRequirement_;
- primaryArtifact_.clear ();
- {
- for (primaryArtifact_const_iterator i (s.primaryArtifact_.begin ());i != s.primaryArtifact_.end ();++i) add_primaryArtifact (*i);
- }
+ primaryArtifact_ = s.primaryArtifact_;
return *this;
}
@@ -890,7 +840,7 @@ namespace CIAO
}
void MonolithicImplementationDescription::
- add_nodeExecParameter (::CIAO::Config_Handlers::Property const& e)
+ add_nodeExecParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
nodeExecParameter_.push_back (e);
}
@@ -928,7 +878,7 @@ namespace CIAO
}
void MonolithicImplementationDescription::
- add_componentExecParameter (::CIAO::Config_Handlers::Property const& e)
+ add_componentExecParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
componentExecParameter_.push_back (e);
}
@@ -966,7 +916,7 @@ namespace CIAO
}
void MonolithicImplementationDescription::
- add_deployRequirement (::CIAO::Config_Handlers::ImplementationRequirement const& e)
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > const& e)
{
deployRequirement_.push_back (e);
}
@@ -1004,7 +954,7 @@ namespace CIAO
}
void MonolithicImplementationDescription::
- add_primaryArtifact (::CIAO::Config_Handlers::NamedImplementationArtifact const& e)
+ add_primaryArtifact (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > const& e)
{
primaryArtifact_.push_back (e);
}
@@ -1022,13 +972,12 @@ namespace CIAO
ComponentImplementationDescription::
ComponentImplementationDescription ()
:
- ::XSCRT::Type (),
regulator__ ()
{
}
ComponentImplementationDescription::
- ComponentImplementationDescription (::CIAO::Config_Handlers::ComponentImplementationDescription const& s)
+ ComponentImplementationDescription (ComponentImplementationDescription const& s)
:
::XSCRT::Type (),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
@@ -1036,6 +985,10 @@ namespace CIAO
implements_ (s.implements_.get () ? new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.implements_) : 0),
assemblyImpl_ (s.assemblyImpl_.get () ? new ::CIAO::Config_Handlers::ComponentAssemblyDescription (*s.assemblyImpl_) : 0),
monolithicImpl_ (s.monolithicImpl_.get () ? new ::CIAO::Config_Handlers::MonolithicImplementationDescription (*s.monolithicImpl_) : 0),
+ configProperty_ (s.configProperty_),
+ capability_ (s.capability_),
+ dependsOn_ (s.dependsOn_),
+ infoProperty_ (s.infoProperty_),
contentLocation_ (s.contentLocation_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.contentLocation_) : 0),
href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
regulator__ ()
@@ -1045,66 +998,50 @@ namespace CIAO
if (implements_.get ()) implements_->container (this);
if (assemblyImpl_.get ()) assemblyImpl_->container (this);
if (monolithicImpl_.get ()) monolithicImpl_->container (this);
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
-
- {
- for (capability_const_iterator i (s.capability_.begin ());i != s.capability_.end ();++i) add_capability (*i);
- }
-
- {
- for (dependsOn_const_iterator i (s.dependsOn_.begin ());i != s.dependsOn_.end ();++i) add_dependsOn (*i);
- }
-
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
-
if (contentLocation_.get ()) contentLocation_->container (this);
if (href_.get ()) href_->container (this);
}
- ::CIAO::Config_Handlers::ComponentImplementationDescription& ComponentImplementationDescription::
- operator= (::CIAO::Config_Handlers::ComponentImplementationDescription const& s)
+ ComponentImplementationDescription& ComponentImplementationDescription::
+ operator= (ComponentImplementationDescription const& s)
{
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- if (s.UUID_.get ()) UUID (*(s.UUID_));
- else UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
- if (s.implements_.get ()) implements (*(s.implements_));
- else implements_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (0);
+ if (s.implements_.get ())
+ implements (*(s.implements_));
+ else
+ implements_.reset (0);
- if (s.assemblyImpl_.get ()) assemblyImpl (*(s.assemblyImpl_));
- else assemblyImpl_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentAssemblyDescription > (0);
+ if (s.assemblyImpl_.get ())
+ assemblyImpl (*(s.assemblyImpl_));
+ else
+ assemblyImpl_.reset (0);
- if (s.monolithicImpl_.get ()) monolithicImpl (*(s.monolithicImpl_));
- else monolithicImpl_ = ::std::auto_ptr< ::CIAO::Config_Handlers::MonolithicImplementationDescription > (0);
+ if (s.monolithicImpl_.get ())
+ monolithicImpl (*(s.monolithicImpl_));
+ else
+ monolithicImpl_.reset (0);
- configProperty_.clear ();
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
+ configProperty_ = s.configProperty_;
- capability_.clear ();
- {
- for (capability_const_iterator i (s.capability_.begin ());i != s.capability_.end ();++i) add_capability (*i);
- }
+ capability_ = s.capability_;
- dependsOn_.clear ();
- {
- for (dependsOn_const_iterator i (s.dependsOn_.begin ());i != s.dependsOn_.end ();++i) add_dependsOn (*i);
- }
+ dependsOn_ = s.dependsOn_;
- infoProperty_.clear ();
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
+ infoProperty_ = s.infoProperty_;
- if (s.contentLocation_.get ()) contentLocation (*(s.contentLocation_));
- else contentLocation_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.contentLocation_.get ())
+ contentLocation (*(s.contentLocation_));
+ else
+ contentLocation_.reset (0);
if (s.href_.get ()) href (*(s.href_));
else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
@@ -1285,7 +1222,7 @@ namespace CIAO
}
void ComponentImplementationDescription::
- add_configProperty (::CIAO::Config_Handlers::Property const& e)
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
configProperty_.push_back (e);
}
@@ -1323,7 +1260,7 @@ namespace CIAO
}
void ComponentImplementationDescription::
- add_capability (::CIAO::Config_Handlers::Capability const& e)
+ add_capability (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > const& e)
{
capability_.push_back (e);
}
@@ -1361,7 +1298,7 @@ namespace CIAO
}
void ComponentImplementationDescription::
- add_dependsOn (::CIAO::Config_Handlers::ImplementationDependency const& e)
+ add_dependsOn (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& e)
{
dependsOn_.push_back (e);
}
@@ -1399,7 +1336,7 @@ namespace CIAO
}
void ComponentImplementationDescription::
- add_infoProperty (::CIAO::Config_Handlers::Property const& e)
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
infoProperty_.push_back (e);
}
@@ -1554,13 +1491,13 @@ namespace CIAO
else if (n == "selectRequirement")
{
- ::CIAO::Config_Handlers::Requirement t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
add_selectRequirement (t);
}
else if (n == "configProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_configProperty (t);
}
@@ -1659,7 +1596,7 @@ namespace CIAO
else if (n == "delegatesTo")
{
- ::CIAO::Config_Handlers::SubcomponentPropertyReference t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SubcomponentPropertyReference (e));
add_delegatesTo (t);
}
@@ -1686,19 +1623,19 @@ namespace CIAO
if (n == "instance")
{
- ::CIAO::Config_Handlers::SubcomponentInstantiationDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::SubcomponentInstantiationDescription (e));
add_instance (t);
}
else if (n == "connection")
{
- ::CIAO::Config_Handlers::AssemblyConnectionDescription t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::AssemblyConnectionDescription (e));
add_connection (t);
}
else if (n == "externalProperty")
{
- ::CIAO::Config_Handlers::AssemblyPropertyMapping t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::AssemblyPropertyMapping (e));
add_externalProperty (t);
}
@@ -1725,25 +1662,25 @@ namespace CIAO
if (n == "nodeExecParameter")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_nodeExecParameter (t);
}
else if (n == "componentExecParameter")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_componentExecParameter (t);
}
else if (n == "deployRequirement")
{
- ::CIAO::Config_Handlers::ImplementationRequirement t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ImplementationRequirement (e));
add_deployRequirement (t);
}
else if (n == "primaryArtifact")
{
- ::CIAO::Config_Handlers::NamedImplementationArtifact t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::NamedImplementationArtifact (e));
add_primaryArtifact (t);
}
@@ -1800,25 +1737,25 @@ namespace CIAO
else if (n == "configProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_configProperty (t);
}
else if (n == "capability")
{
- ::CIAO::Config_Handlers::Capability t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Capability (e));
add_capability (t);
}
else if (n == "dependsOn")
{
- ::CIAO::Config_Handlers::ImplementationDependency t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::ImplementationDependency (e));
add_dependsOn (t);
}
else if (n == "infoProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_infoProperty (t);
}
@@ -1872,7 +1809,7 @@ namespace CIAO
{
ComponentPackageReferenceTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentPackageReference));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPackageReference));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1886,7 +1823,7 @@ namespace CIAO
{
SubcomponentInstantiationDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (SubcomponentInstantiationDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SubcomponentInstantiationDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1900,7 +1837,7 @@ namespace CIAO
{
SubcomponentPropertyReferenceTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (SubcomponentPropertyReference));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::SubcomponentPropertyReference));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1914,7 +1851,7 @@ namespace CIAO
{
AssemblyPropertyMappingTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (AssemblyPropertyMapping));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::AssemblyPropertyMapping));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1928,7 +1865,7 @@ namespace CIAO
{
ComponentAssemblyDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentAssemblyDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentAssemblyDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1942,7 +1879,7 @@ namespace CIAO
{
MonolithicImplementationDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (MonolithicImplementationDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::MonolithicImplementationDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -1956,7 +1893,7 @@ namespace CIAO
{
ComponentImplementationDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentImplementationDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentImplementationDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -2194,14 +2131,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- SubcomponentInstantiationDescription::Type::selectRequirement_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
+ ::CIAO::Config_Handlers::SubcomponentInstantiationDescription::selectRequirement_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
if (b != e)
{
selectRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) selectRequirement_next (o);
}
@@ -2216,14 +2153,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- SubcomponentInstantiationDescription::Type::selectRequirement_const_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
+ ::CIAO::Config_Handlers::SubcomponentInstantiationDescription::selectRequirement_const_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
if (b != e)
{
selectRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) selectRequirement_next (o);
}
@@ -2278,14 +2215,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- SubcomponentInstantiationDescription::Type::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::SubcomponentInstantiationDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -2300,14 +2237,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- SubcomponentInstantiationDescription::Type::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::SubcomponentInstantiationDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -2562,19 +2499,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyPropertyMapping::Type::delegatesTo_iterator b (o.begin_delegatesTo()), e (o.end_delegatesTo());
+ ::CIAO::Config_Handlers::AssemblyPropertyMapping::delegatesTo_iterator b (o.begin_delegatesTo()), e (o.end_delegatesTo());
if (b != e)
{
delegatesTo_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) delegatesTo_next (o);
}
delegatesTo_post (o);
}
+
+ else delegatesTo_none (o);
}
void AssemblyPropertyMapping::
@@ -2582,19 +2521,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- AssemblyPropertyMapping::Type::delegatesTo_const_iterator b (o.begin_delegatesTo()), e (o.end_delegatesTo());
+ ::CIAO::Config_Handlers::AssemblyPropertyMapping::delegatesTo_const_iterator b (o.begin_delegatesTo()), e (o.end_delegatesTo());
if (b != e)
{
delegatesTo_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) delegatesTo_next (o);
}
delegatesTo_post (o);
}
+
+ else delegatesTo_none (o);
}
void AssemblyPropertyMapping::
@@ -2628,6 +2569,16 @@ namespace CIAO
}
void AssemblyPropertyMapping::
+ delegatesTo_none (Type&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
+ delegatesTo_none (Type const&)
+ {
+ }
+
+ void AssemblyPropertyMapping::
post (Type&)
{
}
@@ -2676,19 +2627,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentAssemblyDescription::Type::instance_iterator b (o.begin_instance()), e (o.end_instance());
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::instance_iterator b (o.begin_instance()), e (o.end_instance());
if (b != e)
{
instance_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) instance_next (o);
}
instance_post (o);
}
+
+ else instance_none (o);
}
void ComponentAssemblyDescription::
@@ -2696,19 +2649,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentAssemblyDescription::Type::instance_const_iterator b (o.begin_instance()), e (o.end_instance());
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::instance_const_iterator b (o.begin_instance()), e (o.end_instance());
if (b != e)
{
instance_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) instance_next (o);
}
instance_post (o);
}
+
+ else instance_none (o);
}
void ComponentAssemblyDescription::
@@ -2742,18 +2697,28 @@ namespace CIAO
}
void ComponentAssemblyDescription::
+ instance_none (Type&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
+ instance_none (Type const&)
+ {
+ }
+
+ void ComponentAssemblyDescription::
connection (Type& o)
{
// VC6 anathema strikes again
//
- ComponentAssemblyDescription::Type::connection_iterator b (o.begin_connection()), e (o.end_connection());
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::connection_iterator b (o.begin_connection()), e (o.end_connection());
if (b != e)
{
connection_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connection_next (o);
}
@@ -2768,14 +2733,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentAssemblyDescription::Type::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::connection_const_iterator b (o.begin_connection()), e (o.end_connection());
if (b != e)
{
connection_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) connection_next (o);
}
@@ -2830,14 +2795,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentAssemblyDescription::Type::externalProperty_iterator b (o.begin_externalProperty()), e (o.end_externalProperty());
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::externalProperty_iterator b (o.begin_externalProperty()), e (o.end_externalProperty());
if (b != e)
{
externalProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalProperty_next (o);
}
@@ -2852,14 +2817,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentAssemblyDescription::Type::externalProperty_const_iterator b (o.begin_externalProperty()), e (o.end_externalProperty());
+ ::CIAO::Config_Handlers::ComponentAssemblyDescription::externalProperty_const_iterator b (o.begin_externalProperty()), e (o.end_externalProperty());
if (b != e)
{
externalProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) externalProperty_next (o);
}
@@ -2960,14 +2925,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicImplementationDescription::Type::nodeExecParameter_iterator b (o.begin_nodeExecParameter()), e (o.end_nodeExecParameter());
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::nodeExecParameter_iterator b (o.begin_nodeExecParameter()), e (o.end_nodeExecParameter());
if (b != e)
{
nodeExecParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) nodeExecParameter_next (o);
}
@@ -2982,14 +2947,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicImplementationDescription::Type::nodeExecParameter_const_iterator b (o.begin_nodeExecParameter()), e (o.end_nodeExecParameter());
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::nodeExecParameter_const_iterator b (o.begin_nodeExecParameter()), e (o.end_nodeExecParameter());
if (b != e)
{
nodeExecParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) nodeExecParameter_next (o);
}
@@ -3044,14 +3009,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicImplementationDescription::Type::componentExecParameter_iterator b (o.begin_componentExecParameter()), e (o.end_componentExecParameter());
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::componentExecParameter_iterator b (o.begin_componentExecParameter()), e (o.end_componentExecParameter());
if (b != e)
{
componentExecParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) componentExecParameter_next (o);
}
@@ -3066,14 +3031,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicImplementationDescription::Type::componentExecParameter_const_iterator b (o.begin_componentExecParameter()), e (o.end_componentExecParameter());
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::componentExecParameter_const_iterator b (o.begin_componentExecParameter()), e (o.end_componentExecParameter());
if (b != e)
{
componentExecParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) componentExecParameter_next (o);
}
@@ -3128,14 +3093,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicImplementationDescription::Type::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -3150,14 +3115,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicImplementationDescription::Type::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -3212,19 +3177,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicImplementationDescription::Type::primaryArtifact_iterator b (o.begin_primaryArtifact()), e (o.end_primaryArtifact());
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::primaryArtifact_iterator b (o.begin_primaryArtifact()), e (o.end_primaryArtifact());
if (b != e)
{
primaryArtifact_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) primaryArtifact_next (o);
}
primaryArtifact_post (o);
}
+
+ else primaryArtifact_none (o);
}
void MonolithicImplementationDescription::
@@ -3232,19 +3199,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- MonolithicImplementationDescription::Type::primaryArtifact_const_iterator b (o.begin_primaryArtifact()), e (o.end_primaryArtifact());
+ ::CIAO::Config_Handlers::MonolithicImplementationDescription::primaryArtifact_const_iterator b (o.begin_primaryArtifact()), e (o.end_primaryArtifact());
if (b != e)
{
primaryArtifact_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) primaryArtifact_next (o);
}
primaryArtifact_post (o);
}
+
+ else primaryArtifact_none (o);
}
void MonolithicImplementationDescription::
@@ -3278,6 +3247,16 @@ namespace CIAO
}
void MonolithicImplementationDescription::
+ primaryArtifact_none (Type&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
+ primaryArtifact_none (Type const&)
+ {
+ }
+
+ void MonolithicImplementationDescription::
post (Type&)
{
}
@@ -3466,14 +3445,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentImplementationDescription::Type::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -3488,14 +3467,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentImplementationDescription::Type::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -3550,14 +3529,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentImplementationDescription::Type::capability_iterator b (o.begin_capability()), e (o.end_capability());
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::capability_iterator b (o.begin_capability()), e (o.end_capability());
if (b != e)
{
capability_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) capability_next (o);
}
@@ -3572,14 +3551,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentImplementationDescription::Type::capability_const_iterator b (o.begin_capability()), e (o.end_capability());
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::capability_const_iterator b (o.begin_capability()), e (o.end_capability());
if (b != e)
{
capability_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) capability_next (o);
}
@@ -3634,14 +3613,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentImplementationDescription::Type::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
if (b != e)
{
dependsOn_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) dependsOn_next (o);
}
@@ -3656,14 +3635,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentImplementationDescription::Type::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
if (b != e)
{
dependsOn_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) dependsOn_next (o);
}
@@ -3718,14 +3697,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentImplementationDescription::Type::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -3740,14 +3719,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentImplementationDescription::Type::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::ComponentImplementationDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
diff --git a/CIAO/tools/Config_Handlers/cid.hpp b/CIAO/tools/Config_Handlers/cid.hpp
index 5e02b1729ed..58169418bb5 100644
--- a/CIAO/tools/Config_Handlers/cid.hpp
+++ b/CIAO/tools/Config_Handlers/cid.hpp
@@ -39,6 +39,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "Basic_Deployment_Data.hpp"
#include "ccd.hpp"
@@ -55,6 +58,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPackageReference, ACE_Null_Mutex > _ptr;
+
// requiredUUID
//
public:
@@ -102,6 +108,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SubcomponentInstantiationDescription, ACE_Null_Mutex > _ptr;
+
// name
//
public:
@@ -134,32 +143,32 @@ namespace CIAO
// selectRequirement
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::iterator selectRequirement_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::const_iterator selectRequirement_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator selectRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator selectRequirement_const_iterator;
selectRequirement_iterator begin_selectRequirement ();
selectRequirement_iterator end_selectRequirement ();
selectRequirement_const_iterator begin_selectRequirement () const;
selectRequirement_const_iterator end_selectRequirement () const;
- void add_selectRequirement (::CIAO::Config_Handlers::Requirement const& );
+ void add_selectRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
size_t count_selectRequirement (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Requirement > selectRequirement_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > selectRequirement_;
// configProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator configProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator configProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
configProperty_iterator begin_configProperty ();
configProperty_iterator end_configProperty ();
configProperty_const_iterator begin_configProperty () const;
configProperty_const_iterator end_configProperty () const;
- void add_configProperty (::CIAO::Config_Handlers::Property const& );
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_configProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > configProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
// referencedPackage
//
@@ -210,6 +219,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < SubcomponentPropertyReference, ACE_Null_Mutex > _ptr;
+
// propertyName
//
public:
@@ -247,6 +259,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < AssemblyPropertyMapping, ACE_Null_Mutex > _ptr;
+
// name
//
public:
@@ -268,17 +283,17 @@ namespace CIAO
// delegatesTo
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentPropertyReference >::iterator delegatesTo_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentPropertyReference >::const_iterator delegatesTo_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > >::iterator delegatesTo_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > >::const_iterator delegatesTo_const_iterator;
delegatesTo_iterator begin_delegatesTo ();
delegatesTo_iterator end_delegatesTo ();
delegatesTo_const_iterator begin_delegatesTo () const;
delegatesTo_const_iterator end_delegatesTo () const;
- void add_delegatesTo (::CIAO::Config_Handlers::SubcomponentPropertyReference const& );
+ void add_delegatesTo ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > const& );
size_t count_delegatesTo (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::SubcomponentPropertyReference > delegatesTo_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentPropertyReference, ACE_Null_Mutex > > delegatesTo_;
public:
AssemblyPropertyMapping (::XMLSchema::string< ACE_TCHAR > const& name__,
@@ -299,50 +314,53 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentAssemblyDescription, ACE_Null_Mutex > _ptr;
+
// instance
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentInstantiationDescription >::iterator instance_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::SubcomponentInstantiationDescription >::const_iterator instance_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > >::iterator instance_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > >::const_iterator instance_const_iterator;
instance_iterator begin_instance ();
instance_iterator end_instance ();
instance_const_iterator begin_instance () const;
instance_const_iterator end_instance () const;
- void add_instance (::CIAO::Config_Handlers::SubcomponentInstantiationDescription const& );
+ void add_instance ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > const& );
size_t count_instance (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::SubcomponentInstantiationDescription > instance_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::SubcomponentInstantiationDescription, ACE_Null_Mutex > > instance_;
// connection
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::AssemblyConnectionDescription >::iterator connection_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::AssemblyConnectionDescription >::const_iterator connection_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > >::iterator connection_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > >::const_iterator connection_const_iterator;
connection_iterator begin_connection ();
connection_iterator end_connection ();
connection_const_iterator begin_connection () const;
connection_const_iterator end_connection () const;
- void add_connection (::CIAO::Config_Handlers::AssemblyConnectionDescription const& );
+ void add_connection ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > const& );
size_t count_connection (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::AssemblyConnectionDescription > connection_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyConnectionDescription, ACE_Null_Mutex > > connection_;
// externalProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::AssemblyPropertyMapping >::iterator externalProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::AssemblyPropertyMapping >::const_iterator externalProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > >::iterator externalProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > >::const_iterator externalProperty_const_iterator;
externalProperty_iterator begin_externalProperty ();
externalProperty_iterator end_externalProperty ();
externalProperty_const_iterator begin_externalProperty () const;
externalProperty_const_iterator end_externalProperty () const;
- void add_externalProperty (::CIAO::Config_Handlers::AssemblyPropertyMapping const& );
+ void add_externalProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > const& );
size_t count_externalProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::AssemblyPropertyMapping > externalProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::AssemblyPropertyMapping, ACE_Null_Mutex > > externalProperty_;
public:
ComponentAssemblyDescription ();
@@ -362,65 +380,68 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < MonolithicImplementationDescription, ACE_Null_Mutex > _ptr;
+
// nodeExecParameter
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator nodeExecParameter_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator nodeExecParameter_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator nodeExecParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator nodeExecParameter_const_iterator;
nodeExecParameter_iterator begin_nodeExecParameter ();
nodeExecParameter_iterator end_nodeExecParameter ();
nodeExecParameter_const_iterator begin_nodeExecParameter () const;
nodeExecParameter_const_iterator end_nodeExecParameter () const;
- void add_nodeExecParameter (::CIAO::Config_Handlers::Property const& );
+ void add_nodeExecParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_nodeExecParameter (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > nodeExecParameter_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > nodeExecParameter_;
// componentExecParameter
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator componentExecParameter_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator componentExecParameter_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator componentExecParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator componentExecParameter_const_iterator;
componentExecParameter_iterator begin_componentExecParameter ();
componentExecParameter_iterator end_componentExecParameter ();
componentExecParameter_const_iterator begin_componentExecParameter () const;
componentExecParameter_const_iterator end_componentExecParameter () const;
- void add_componentExecParameter (::CIAO::Config_Handlers::Property const& );
+ void add_componentExecParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_componentExecParameter (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > componentExecParameter_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > componentExecParameter_;
// deployRequirement
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ImplementationRequirement >::iterator deployRequirement_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ImplementationRequirement >::const_iterator deployRequirement_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
deployRequirement_iterator begin_deployRequirement ();
deployRequirement_iterator end_deployRequirement ();
deployRequirement_const_iterator begin_deployRequirement () const;
deployRequirement_const_iterator end_deployRequirement () const;
- void add_deployRequirement (::CIAO::Config_Handlers::ImplementationRequirement const& );
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > const& );
size_t count_deployRequirement (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ImplementationRequirement > deployRequirement_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationRequirement, ACE_Null_Mutex > > deployRequirement_;
// primaryArtifact
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact >::iterator primaryArtifact_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact >::const_iterator primaryArtifact_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > >::iterator primaryArtifact_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > >::const_iterator primaryArtifact_const_iterator;
primaryArtifact_iterator begin_primaryArtifact ();
primaryArtifact_iterator end_primaryArtifact ();
primaryArtifact_const_iterator begin_primaryArtifact () const;
primaryArtifact_const_iterator end_primaryArtifact () const;
- void add_primaryArtifact (::CIAO::Config_Handlers::NamedImplementationArtifact const& );
+ void add_primaryArtifact ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > const& );
size_t count_primaryArtifact (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact > primaryArtifact_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > > primaryArtifact_;
public:
MonolithicImplementationDescription ();
@@ -440,6 +461,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentImplementationDescription, ACE_Null_Mutex > _ptr;
+
// label
//
public:
@@ -493,62 +517,62 @@ namespace CIAO
// configProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator configProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator configProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
configProperty_iterator begin_configProperty ();
configProperty_iterator end_configProperty ();
configProperty_const_iterator begin_configProperty () const;
configProperty_const_iterator end_configProperty () const;
- void add_configProperty (::CIAO::Config_Handlers::Property const& );
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_configProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > configProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
// capability
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Capability >::iterator capability_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Capability >::const_iterator capability_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > >::iterator capability_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > >::const_iterator capability_const_iterator;
capability_iterator begin_capability ();
capability_iterator end_capability ();
capability_const_iterator begin_capability () const;
capability_const_iterator end_capability () const;
- void add_capability (::CIAO::Config_Handlers::Capability const& );
+ void add_capability ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > const& );
size_t count_capability (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Capability > capability_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Capability, ACE_Null_Mutex > > capability_;
// dependsOn
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::ImplementationDependency >::iterator dependsOn_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::ImplementationDependency >::const_iterator dependsOn_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::iterator dependsOn_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > >::const_iterator dependsOn_const_iterator;
dependsOn_iterator begin_dependsOn ();
dependsOn_iterator end_dependsOn ();
dependsOn_const_iterator begin_dependsOn () const;
dependsOn_const_iterator end_dependsOn () const;
- void add_dependsOn (::CIAO::Config_Handlers::ImplementationDependency const& );
+ void add_dependsOn ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > const& );
size_t count_dependsOn (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::ImplementationDependency > dependsOn_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::ImplementationDependency, ACE_Null_Mutex > > dependsOn_;
// infoProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator infoProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator infoProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
infoProperty_iterator begin_infoProperty ();
infoProperty_iterator end_infoProperty ();
infoProperty_const_iterator begin_infoProperty () const;
infoProperty_const_iterator end_infoProperty () const;
- void add_infoProperty (::CIAO::Config_Handlers::Property const& );
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_infoProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > infoProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
// contentLocation
//
@@ -883,6 +907,12 @@ namespace CIAO
delegatesTo_post (Type const&);
virtual void
+ delegatesTo_none (Type&);
+
+ virtual void
+ delegatesTo_none (Type const&);
+
+ virtual void
post (Type&);
virtual void
@@ -928,6 +958,12 @@ namespace CIAO
instance_post (Type const&);
virtual void
+ instance_none (Type&);
+
+ virtual void
+ instance_none (Type const&);
+
+ virtual void
connection (Type&);
virtual void
@@ -1123,6 +1159,12 @@ namespace CIAO
primaryArtifact_post (Type const&);
virtual void
+ primaryArtifact_none (Type&);
+
+ virtual void
+ primaryArtifact_none (Type const&);
+
+ virtual void
post (Type&);
virtual void
@@ -1374,44 +1416,36 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
requiredUUID (Type &o)
{
-
this->requiredUUID (const_cast <Type const &> (o));
}
-
virtual void
requiredUUID (Type const&);
virtual void
requiredName (Type &o)
{
-
this->requiredName (const_cast <Type const &> (o));
}
-
virtual void
requiredName (Type const&);
virtual void
requiredType (Type &o)
{
-
this->requiredType (const_cast <Type const &> (o));
}
-
virtual void
requiredType (Type const&);
@@ -1428,143 +1462,117 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
virtual void
basePackage (Type &o)
{
-
this->basePackage (const_cast <Type const &> (o));
}
-
virtual void
basePackage (Type const&);
virtual void
specializedConfig (Type &o)
{
-
this->specializedConfig (const_cast <Type const &> (o));
}
-
virtual void
specializedConfig (Type const&);
virtual void
selectRequirement_pre (Type &o)
{
-
this->selectRequirement_pre (const_cast <Type const &> (o));
}
-
virtual void
selectRequirement_pre (Type const&);
virtual void
selectRequirement_next (Type &o)
{
-
this->selectRequirement_next (const_cast <Type const &> (o));
}
-
virtual void
selectRequirement_next (Type const&);
virtual void
selectRequirement_post (Type &o)
{
-
this->selectRequirement_post (const_cast <Type const &> (o));
}
-
virtual void
selectRequirement_post (Type const&);
virtual void
configProperty_pre (Type &o)
{
-
this->configProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
configProperty_pre (Type const&);
virtual void
configProperty_next (Type &o)
{
-
this->configProperty_next (const_cast <Type const &> (o));
}
-
virtual void
configProperty_next (Type const&);
virtual void
configProperty_post (Type &o)
{
-
this->configProperty_post (const_cast <Type const &> (o));
}
-
virtual void
configProperty_post (Type const&);
virtual void
referencedPackage (Type &o)
{
-
this->referencedPackage (const_cast <Type const &> (o));
}
-
virtual void
referencedPackage (Type const&);
virtual void
importedPackage (Type &o)
{
-
this->importedPackage (const_cast <Type const &> (o));
}
-
virtual void
importedPackage (Type const&);
virtual void
id (Type &o)
{
-
this->id (const_cast <Type const &> (o));
}
-
virtual void
id (Type const&);
@@ -1581,33 +1589,27 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
propertyName (Type &o)
{
-
this->propertyName (const_cast <Type const &> (o));
}
-
virtual void
propertyName (Type const&);
virtual void
instance (Type &o)
{
-
this->instance (const_cast <Type const &> (o));
}
-
virtual void
instance (Type const&);
@@ -1624,66 +1626,54 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
virtual void
externalName (Type &o)
{
-
this->externalName (const_cast <Type const &> (o));
}
-
virtual void
externalName (Type const&);
virtual void
delegatesTo_pre (Type &o)
{
-
this->delegatesTo_pre (const_cast <Type const &> (o));
}
-
virtual void
delegatesTo_pre (Type const&);
virtual void
delegatesTo_next (Type &o)
{
-
this->delegatesTo_next (const_cast <Type const &> (o));
}
-
virtual void
delegatesTo_next (Type const&);
virtual void
delegatesTo_post (Type &o)
{
-
this->delegatesTo_post (const_cast <Type const &> (o));
}
-
virtual void
delegatesTo_post (Type const&);
@@ -1700,110 +1690,90 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
instance_pre (Type &o)
{
-
this->instance_pre (const_cast <Type const &> (o));
}
-
virtual void
instance_pre (Type const&);
virtual void
instance_next (Type &o)
{
-
this->instance_next (const_cast <Type const &> (o));
}
-
virtual void
instance_next (Type const&);
virtual void
instance_post (Type &o)
{
-
this->instance_post (const_cast <Type const &> (o));
}
-
virtual void
instance_post (Type const&);
virtual void
connection_pre (Type &o)
{
-
this->connection_pre (const_cast <Type const &> (o));
}
-
virtual void
connection_pre (Type const&);
virtual void
connection_next (Type &o)
{
-
this->connection_next (const_cast <Type const &> (o));
}
-
virtual void
connection_next (Type const&);
virtual void
connection_post (Type &o)
{
-
this->connection_post (const_cast <Type const &> (o));
}
-
virtual void
connection_post (Type const&);
virtual void
externalProperty_pre (Type &o)
{
-
this->externalProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
externalProperty_pre (Type const&);
virtual void
externalProperty_next (Type &o)
{
-
this->externalProperty_next (const_cast <Type const &> (o));
}
-
virtual void
externalProperty_next (Type const&);
virtual void
externalProperty_post (Type &o)
{
-
this->externalProperty_post (const_cast <Type const &> (o));
}
-
virtual void
externalProperty_post (Type const&);
@@ -1820,143 +1790,117 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
nodeExecParameter_pre (Type &o)
{
-
this->nodeExecParameter_pre (const_cast <Type const &> (o));
}
-
virtual void
nodeExecParameter_pre (Type const&);
virtual void
nodeExecParameter_next (Type &o)
{
-
this->nodeExecParameter_next (const_cast <Type const &> (o));
}
-
virtual void
nodeExecParameter_next (Type const&);
virtual void
nodeExecParameter_post (Type &o)
{
-
this->nodeExecParameter_post (const_cast <Type const &> (o));
}
-
virtual void
nodeExecParameter_post (Type const&);
virtual void
componentExecParameter_pre (Type &o)
{
-
this->componentExecParameter_pre (const_cast <Type const &> (o));
}
-
virtual void
componentExecParameter_pre (Type const&);
virtual void
componentExecParameter_next (Type &o)
{
-
this->componentExecParameter_next (const_cast <Type const &> (o));
}
-
virtual void
componentExecParameter_next (Type const&);
virtual void
componentExecParameter_post (Type &o)
{
-
this->componentExecParameter_post (const_cast <Type const &> (o));
}
-
virtual void
componentExecParameter_post (Type const&);
virtual void
deployRequirement_pre (Type &o)
{
-
this->deployRequirement_pre (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_pre (Type const&);
virtual void
deployRequirement_next (Type &o)
{
-
this->deployRequirement_next (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_next (Type const&);
virtual void
deployRequirement_post (Type &o)
{
-
this->deployRequirement_post (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_post (Type const&);
virtual void
primaryArtifact_pre (Type &o)
{
-
this->primaryArtifact_pre (const_cast <Type const &> (o));
}
-
virtual void
primaryArtifact_pre (Type const&);
virtual void
primaryArtifact_next (Type &o)
{
-
this->primaryArtifact_next (const_cast <Type const &> (o));
}
-
virtual void
primaryArtifact_next (Type const&);
virtual void
primaryArtifact_post (Type &o)
{
-
this->primaryArtifact_post (const_cast <Type const &> (o));
}
-
virtual void
primaryArtifact_post (Type const&);
@@ -1973,220 +1917,180 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
UUID (Type &o)
{
-
this->UUID (const_cast <Type const &> (o));
}
-
virtual void
UUID (Type const&);
virtual void
implements (Type &o)
{
-
this->implements (const_cast <Type const &> (o));
}
-
virtual void
implements (Type const&);
virtual void
assemblyImpl (Type &o)
{
-
this->assemblyImpl (const_cast <Type const &> (o));
}
-
virtual void
assemblyImpl (Type const&);
virtual void
monolithicImpl (Type &o)
{
-
this->monolithicImpl (const_cast <Type const &> (o));
}
-
virtual void
monolithicImpl (Type const&);
virtual void
configProperty_pre (Type &o)
{
-
this->configProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
configProperty_pre (Type const&);
virtual void
configProperty_next (Type &o)
{
-
this->configProperty_next (const_cast <Type const &> (o));
}
-
virtual void
configProperty_next (Type const&);
virtual void
configProperty_post (Type &o)
{
-
this->configProperty_post (const_cast <Type const &> (o));
}
-
virtual void
configProperty_post (Type const&);
virtual void
capability_pre (Type &o)
{
-
this->capability_pre (const_cast <Type const &> (o));
}
-
virtual void
capability_pre (Type const&);
virtual void
capability_next (Type &o)
{
-
this->capability_next (const_cast <Type const &> (o));
}
-
virtual void
capability_next (Type const&);
virtual void
capability_post (Type &o)
{
-
this->capability_post (const_cast <Type const &> (o));
}
-
virtual void
capability_post (Type const&);
virtual void
dependsOn_pre (Type &o)
{
-
this->dependsOn_pre (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_pre (Type const&);
virtual void
dependsOn_next (Type &o)
{
-
this->dependsOn_next (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_next (Type const&);
virtual void
dependsOn_post (Type &o)
{
-
this->dependsOn_post (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_post (Type const&);
virtual void
infoProperty_pre (Type &o)
{
-
this->infoProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_pre (Type const&);
virtual void
infoProperty_next (Type &o)
{
-
this->infoProperty_next (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_next (Type const&);
virtual void
infoProperty_post (Type &o)
{
-
this->infoProperty_post (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_post (Type const&);
virtual void
contentLocation (Type &o)
{
-
this->contentLocation (const_cast <Type const &> (o));
}
-
virtual void
contentLocation (Type const&);
virtual void
href (Type &o)
{
-
this->href (const_cast <Type const &> (o));
}
-
virtual void
href (Type const&);
diff --git a/CIAO/tools/Config_Handlers/cpd.cpp b/CIAO/tools/Config_Handlers/cpd.cpp
index c59e5e18fef..9c19c9c714f 100644
--- a/CIAO/tools/Config_Handlers/cpd.cpp
+++ b/CIAO/tools/Config_Handlers/cpd.cpp
@@ -38,7 +38,7 @@ namespace CIAO
}
PackagedComponentImplementation::
- PackagedComponentImplementation (::CIAO::Config_Handlers::PackagedComponentImplementation const& s)
+ PackagedComponentImplementation (PackagedComponentImplementation const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -49,12 +49,12 @@ namespace CIAO
referencedImplementation_->container (this);
}
- ::CIAO::Config_Handlers::PackagedComponentImplementation& PackagedComponentImplementation::
- operator= (::CIAO::Config_Handlers::PackagedComponentImplementation const& s)
+ PackagedComponentImplementation& PackagedComponentImplementation::
+ operator= (PackagedComponentImplementation const& s)
{
- name (s.name ());
+ name (*s.name_);
- referencedImplementation (s.referencedImplementation ());
+ referencedImplementation (*s.referencedImplementation_);
return *this;
}
@@ -95,18 +95,20 @@ namespace CIAO
ComponentPackageDescription::
ComponentPackageDescription ()
:
- ::XSCRT::Type (),
regulator__ ()
{
}
ComponentPackageDescription::
- ComponentPackageDescription (::CIAO::Config_Handlers::ComponentPackageDescription const& s)
+ ComponentPackageDescription (ComponentPackageDescription const& s)
:
::XSCRT::Type (),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
realizes_ (s.realizes_.get () ? new ::CIAO::Config_Handlers::ComponentInterfaceDescription (*s.realizes_) : 0),
+ configProperty_ (s.configProperty_),
+ implementation_ (s.implementation_),
+ infoProperty_ (s.infoProperty_),
contentLocation_ (s.contentLocation_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.contentLocation_) : 0),
href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
regulator__ ()
@@ -114,51 +116,38 @@ namespace CIAO
if (label_.get ()) label_->container (this);
if (UUID_.get ()) UUID_->container (this);
if (realizes_.get ()) realizes_->container (this);
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
-
- {
- for (implementation_const_iterator i (s.implementation_.begin ());i != s.implementation_.end ();++i) add_implementation (*i);
- }
-
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
-
if (contentLocation_.get ()) contentLocation_->container (this);
if (href_.get ()) href_->container (this);
}
- ::CIAO::Config_Handlers::ComponentPackageDescription& ComponentPackageDescription::
- operator= (::CIAO::Config_Handlers::ComponentPackageDescription const& s)
+ ComponentPackageDescription& ComponentPackageDescription::
+ operator= (ComponentPackageDescription const& s)
{
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- if (s.UUID_.get ()) UUID (*(s.UUID_));
- else UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
- if (s.realizes_.get ()) realizes (*(s.realizes_));
- else realizes_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentInterfaceDescription > (0);
+ if (s.realizes_.get ())
+ realizes (*(s.realizes_));
+ else
+ realizes_.reset (0);
- configProperty_.clear ();
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
+ configProperty_ = s.configProperty_;
- implementation_.clear ();
- {
- for (implementation_const_iterator i (s.implementation_.begin ());i != s.implementation_.end ();++i) add_implementation (*i);
- }
+ implementation_ = s.implementation_;
- infoProperty_.clear ();
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
+ infoProperty_ = s.infoProperty_;
- if (s.contentLocation_.get ()) contentLocation (*(s.contentLocation_));
- else contentLocation_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.contentLocation_.get ())
+ contentLocation (*(s.contentLocation_));
+ else
+ contentLocation_.reset (0);
if (s.href_.get ()) href (*(s.href_));
else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
@@ -281,7 +270,7 @@ namespace CIAO
}
void ComponentPackageDescription::
- add_configProperty (::CIAO::Config_Handlers::Property const& e)
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
configProperty_.push_back (e);
}
@@ -319,7 +308,7 @@ namespace CIAO
}
void ComponentPackageDescription::
- add_implementation (::CIAO::Config_Handlers::PackagedComponentImplementation const& e)
+ add_implementation (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > const& e)
{
implementation_.push_back (e);
}
@@ -357,7 +346,7 @@ namespace CIAO
}
void ComponentPackageDescription::
- add_infoProperty (::CIAO::Config_Handlers::Property const& e)
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
infoProperty_.push_back (e);
}
@@ -506,19 +495,19 @@ namespace CIAO
else if (n == "configProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_configProperty (t);
}
else if (n == "implementation")
{
- ::CIAO::Config_Handlers::PackagedComponentImplementation t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PackagedComponentImplementation (e));
add_implementation (t);
}
else if (n == "infoProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_infoProperty (t);
}
@@ -572,7 +561,7 @@ namespace CIAO
{
PackagedComponentImplementationTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (PackagedComponentImplementation));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PackagedComponentImplementation));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -586,7 +575,7 @@ namespace CIAO
{
ComponentPackageDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentPackageDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPackageDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -796,14 +785,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPackageDescription::Type::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::ComponentPackageDescription::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -818,14 +807,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPackageDescription::Type::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::ComponentPackageDescription::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -880,14 +869,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPackageDescription::Type::implementation_iterator b (o.begin_implementation()), e (o.end_implementation());
+ ::CIAO::Config_Handlers::ComponentPackageDescription::implementation_iterator b (o.begin_implementation()), e (o.end_implementation());
if (b != e)
{
implementation_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) implementation_next (o);
}
@@ -902,14 +891,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPackageDescription::Type::implementation_const_iterator b (o.begin_implementation()), e (o.end_implementation());
+ ::CIAO::Config_Handlers::ComponentPackageDescription::implementation_const_iterator b (o.begin_implementation()), e (o.end_implementation());
if (b != e)
{
implementation_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) implementation_next (o);
}
@@ -964,14 +953,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPackageDescription::Type::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::ComponentPackageDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -986,14 +975,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPackageDescription::Type::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::ComponentPackageDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
diff --git a/CIAO/tools/Config_Handlers/cpd.hpp b/CIAO/tools/Config_Handlers/cpd.hpp
index 301c15ec126..9bf950fa162 100644
--- a/CIAO/tools/Config_Handlers/cpd.hpp
+++ b/CIAO/tools/Config_Handlers/cpd.hpp
@@ -34,6 +34,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "cid.hpp"
namespace CIAO
@@ -44,6 +47,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PackagedComponentImplementation, ACE_Null_Mutex > _ptr;
+
// name
//
public:
@@ -81,6 +87,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPackageDescription, ACE_Null_Mutex > _ptr;
+
// label
//
public:
@@ -114,47 +123,47 @@ namespace CIAO
// configProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator configProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator configProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
configProperty_iterator begin_configProperty ();
configProperty_iterator end_configProperty ();
configProperty_const_iterator begin_configProperty () const;
configProperty_const_iterator end_configProperty () const;
- void add_configProperty (::CIAO::Config_Handlers::Property const& );
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_configProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > configProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
// implementation
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::PackagedComponentImplementation >::iterator implementation_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::PackagedComponentImplementation >::const_iterator implementation_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > >::iterator implementation_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > >::const_iterator implementation_const_iterator;
implementation_iterator begin_implementation ();
implementation_iterator end_implementation ();
implementation_const_iterator begin_implementation () const;
implementation_const_iterator end_implementation () const;
- void add_implementation (::CIAO::Config_Handlers::PackagedComponentImplementation const& );
+ void add_implementation ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > const& );
size_t count_implementation (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::PackagedComponentImplementation > implementation_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackagedComponentImplementation, ACE_Null_Mutex > > implementation_;
// infoProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator infoProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator infoProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
infoProperty_iterator begin_infoProperty ();
infoProperty_iterator end_infoProperty ();
infoProperty_const_iterator begin_infoProperty () const;
infoProperty_const_iterator end_infoProperty () const;
- void add_infoProperty (::CIAO::Config_Handlers::Property const& );
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_infoProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > infoProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
// contentLocation
//
@@ -431,33 +440,27 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
virtual void
referencedImplementation (Type &o)
{
-
this->referencedImplementation (const_cast <Type const &> (o));
}
-
virtual void
referencedImplementation (Type const&);
@@ -474,165 +477,135 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
UUID (Type &o)
{
-
this->UUID (const_cast <Type const &> (o));
}
-
virtual void
UUID (Type const&);
virtual void
realizes (Type &o)
{
-
this->realizes (const_cast <Type const &> (o));
}
-
virtual void
realizes (Type const&);
virtual void
configProperty_pre (Type &o)
{
-
this->configProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
configProperty_pre (Type const&);
virtual void
configProperty_next (Type &o)
{
-
this->configProperty_next (const_cast <Type const &> (o));
}
-
virtual void
configProperty_next (Type const&);
virtual void
configProperty_post (Type &o)
{
-
this->configProperty_post (const_cast <Type const &> (o));
}
-
virtual void
configProperty_post (Type const&);
virtual void
implementation_pre (Type &o)
{
-
this->implementation_pre (const_cast <Type const &> (o));
}
-
virtual void
implementation_pre (Type const&);
virtual void
implementation_next (Type &o)
{
-
this->implementation_next (const_cast <Type const &> (o));
}
-
virtual void
implementation_next (Type const&);
virtual void
implementation_post (Type &o)
{
-
this->implementation_post (const_cast <Type const &> (o));
}
-
virtual void
implementation_post (Type const&);
virtual void
infoProperty_pre (Type &o)
{
-
this->infoProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_pre (Type const&);
virtual void
infoProperty_next (Type &o)
{
-
this->infoProperty_next (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_next (Type const&);
virtual void
infoProperty_post (Type &o)
{
-
this->infoProperty_post (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_post (Type const&);
virtual void
contentLocation (Type &o)
{
-
this->contentLocation (const_cast <Type const &> (o));
}
-
virtual void
contentLocation (Type const&);
virtual void
href (Type &o)
{
-
this->href (const_cast <Type const &> (o));
}
-
virtual void
href (Type const&);
diff --git a/CIAO/tools/Config_Handlers/iad.cpp b/CIAO/tools/Config_Handlers/iad.cpp
index e05cc1272b1..35df98a5fe3 100644
--- a/CIAO/tools/Config_Handlers/iad.cpp
+++ b/CIAO/tools/Config_Handlers/iad.cpp
@@ -38,7 +38,7 @@ namespace CIAO
}
NamedImplementationArtifact::
- NamedImplementationArtifact (::CIAO::Config_Handlers::NamedImplementationArtifact const& s)
+ NamedImplementationArtifact (NamedImplementationArtifact const& s)
:
::XSCRT::Type (),
name_ (new ::XMLSchema::string< ACE_TCHAR > (*s.name_)),
@@ -49,12 +49,12 @@ namespace CIAO
referencedArtifact_->container (this);
}
- ::CIAO::Config_Handlers::NamedImplementationArtifact& NamedImplementationArtifact::
- operator= (::CIAO::Config_Handlers::NamedImplementationArtifact const& s)
+ NamedImplementationArtifact& NamedImplementationArtifact::
+ operator= (NamedImplementationArtifact const& s)
{
- name (s.name ());
+ name (*s.name_);
- referencedArtifact (s.referencedArtifact ());
+ referencedArtifact (*s.referencedArtifact_);
return *this;
}
@@ -95,83 +95,58 @@ namespace CIAO
ImplementationArtifactDescription::
ImplementationArtifactDescription ()
:
- ::XSCRT::Type (),
regulator__ ()
{
}
ImplementationArtifactDescription::
- ImplementationArtifactDescription (::CIAO::Config_Handlers::ImplementationArtifactDescription const& s)
+ ImplementationArtifactDescription (ImplementationArtifactDescription const& s)
:
::XSCRT::Type (),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
UUID_ (s.UUID_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.UUID_) : 0),
+ location_ (s.location_),
+ dependsOn_ (s.dependsOn_),
+ execParameter_ (s.execParameter_),
+ infoProperty_ (s.infoProperty_),
+ deployRequirement_ (s.deployRequirement_),
contentLocation_ (s.contentLocation_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.contentLocation_) : 0),
href_ (s.href_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.href_) : 0),
regulator__ ()
{
if (label_.get ()) label_->container (this);
if (UUID_.get ()) UUID_->container (this);
- {
- for (location_const_iterator i (s.location_.begin ());i != s.location_.end ();++i) add_location (*i);
- }
-
- {
- for (dependsOn_const_iterator i (s.dependsOn_.begin ());i != s.dependsOn_.end ();++i) add_dependsOn (*i);
- }
-
- {
- for (execParameter_const_iterator i (s.execParameter_.begin ());i != s.execParameter_.end ();++i) add_execParameter (*i);
- }
-
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
-
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
-
if (contentLocation_.get ()) contentLocation_->container (this);
if (href_.get ()) href_->container (this);
}
- ::CIAO::Config_Handlers::ImplementationArtifactDescription& ImplementationArtifactDescription::
- operator= (::CIAO::Config_Handlers::ImplementationArtifactDescription const& s)
+ ImplementationArtifactDescription& ImplementationArtifactDescription::
+ operator= (ImplementationArtifactDescription const& s)
{
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- if (s.UUID_.get ()) UUID (*(s.UUID_));
- else UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
- location_.clear ();
- {
- for (location_const_iterator i (s.location_.begin ());i != s.location_.end ();++i) add_location (*i);
- }
+ location_ = s.location_;
- dependsOn_.clear ();
- {
- for (dependsOn_const_iterator i (s.dependsOn_.begin ());i != s.dependsOn_.end ();++i) add_dependsOn (*i);
- }
+ dependsOn_ = s.dependsOn_;
- execParameter_.clear ();
- {
- for (execParameter_const_iterator i (s.execParameter_.begin ());i != s.execParameter_.end ();++i) add_execParameter (*i);
- }
+ execParameter_ = s.execParameter_;
- infoProperty_.clear ();
- {
- for (infoProperty_const_iterator i (s.infoProperty_.begin ());i != s.infoProperty_.end ();++i) add_infoProperty (*i);
- }
+ infoProperty_ = s.infoProperty_;
- deployRequirement_.clear ();
- {
- for (deployRequirement_const_iterator i (s.deployRequirement_.begin ());i != s.deployRequirement_.end ();++i) add_deployRequirement (*i);
- }
+ deployRequirement_ = s.deployRequirement_;
- if (s.contentLocation_.get ()) contentLocation (*(s.contentLocation_));
- else contentLocation_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.contentLocation_.get ())
+ contentLocation (*(s.contentLocation_));
+ else
+ contentLocation_.reset (0);
if (s.href_.get ()) href (*(s.href_));
else href_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
@@ -265,7 +240,7 @@ namespace CIAO
}
void ImplementationArtifactDescription::
- add_location (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_location (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
location_.push_back (e);
}
@@ -303,7 +278,7 @@ namespace CIAO
}
void ImplementationArtifactDescription::
- add_dependsOn (::CIAO::Config_Handlers::NamedImplementationArtifact const& e)
+ add_dependsOn (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > const& e)
{
dependsOn_.push_back (e);
}
@@ -341,7 +316,7 @@ namespace CIAO
}
void ImplementationArtifactDescription::
- add_execParameter (::CIAO::Config_Handlers::Property const& e)
+ add_execParameter (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
execParameter_.push_back (e);
}
@@ -379,7 +354,7 @@ namespace CIAO
}
void ImplementationArtifactDescription::
- add_infoProperty (::CIAO::Config_Handlers::Property const& e)
+ add_infoProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
infoProperty_.push_back (e);
}
@@ -417,7 +392,7 @@ namespace CIAO
}
void ImplementationArtifactDescription::
- add_deployRequirement (::CIAO::Config_Handlers::Requirement const& e)
+ add_deployRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
{
deployRequirement_.push_back (e);
}
@@ -560,31 +535,31 @@ namespace CIAO
else if (n == "location")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_location (t);
}
else if (n == "dependsOn")
{
- ::CIAO::Config_Handlers::NamedImplementationArtifact t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::NamedImplementationArtifact (e));
add_dependsOn (t);
}
else if (n == "execParameter")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_execParameter (t);
}
else if (n == "infoProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_infoProperty (t);
}
else if (n == "deployRequirement")
{
- ::CIAO::Config_Handlers::Requirement t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
add_deployRequirement (t);
}
@@ -638,7 +613,7 @@ namespace CIAO
{
NamedImplementationArtifactTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (NamedImplementationArtifact));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::NamedImplementationArtifact));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -652,7 +627,7 @@ namespace CIAO
{
ImplementationArtifactDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ImplementationArtifactDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ImplementationArtifactDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -840,14 +815,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::location_iterator b (o.begin_location()), e (o.end_location());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::location_iterator b (o.begin_location()), e (o.end_location());
if (b != e)
{
location_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) location_next (o);
}
@@ -862,14 +837,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::location_const_iterator b (o.begin_location()), e (o.end_location());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::location_const_iterator b (o.begin_location()), e (o.end_location());
if (b != e)
{
location_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) location_next (o);
}
@@ -924,14 +899,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::dependsOn_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
if (b != e)
{
dependsOn_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) dependsOn_next (o);
}
@@ -946,14 +921,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::dependsOn_const_iterator b (o.begin_dependsOn()), e (o.end_dependsOn());
if (b != e)
{
dependsOn_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) dependsOn_next (o);
}
@@ -1008,14 +983,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::execParameter_iterator b (o.begin_execParameter()), e (o.end_execParameter());
if (b != e)
{
execParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) execParameter_next (o);
}
@@ -1030,14 +1005,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::execParameter_const_iterator b (o.begin_execParameter()), e (o.end_execParameter());
if (b != e)
{
execParameter_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) execParameter_next (o);
}
@@ -1092,14 +1067,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::infoProperty_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -1114,14 +1089,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::infoProperty_const_iterator b (o.begin_infoProperty()), e (o.end_infoProperty());
if (b != e)
{
infoProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) infoProperty_next (o);
}
@@ -1176,14 +1151,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::deployRequirement_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
@@ -1198,14 +1173,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ImplementationArtifactDescription::Type::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
+ ::CIAO::Config_Handlers::ImplementationArtifactDescription::deployRequirement_const_iterator b (o.begin_deployRequirement()), e (o.end_deployRequirement());
if (b != e)
{
deployRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) deployRequirement_next (o);
}
diff --git a/CIAO/tools/Config_Handlers/iad.hpp b/CIAO/tools/Config_Handlers/iad.hpp
index 85366d71951..9a334f46970 100644
--- a/CIAO/tools/Config_Handlers/iad.hpp
+++ b/CIAO/tools/Config_Handlers/iad.hpp
@@ -34,6 +34,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "Basic_Deployment_Data.hpp"
namespace CIAO
@@ -44,6 +47,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < NamedImplementationArtifact, ACE_Null_Mutex > _ptr;
+
// name
//
public:
@@ -81,6 +87,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ImplementationArtifactDescription, ACE_Null_Mutex > _ptr;
+
// label
//
public:
@@ -104,77 +113,77 @@ namespace CIAO
// location
//
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator location_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator location_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator location_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator location_const_iterator;
location_iterator begin_location ();
location_iterator end_location ();
location_const_iterator begin_location () const;
location_const_iterator end_location () const;
- void add_location (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_location ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_location (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > location_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > location_;
// dependsOn
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact >::iterator dependsOn_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact >::const_iterator dependsOn_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > >::iterator dependsOn_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > >::const_iterator dependsOn_const_iterator;
dependsOn_iterator begin_dependsOn ();
dependsOn_iterator end_dependsOn ();
dependsOn_const_iterator begin_dependsOn () const;
dependsOn_const_iterator end_dependsOn () const;
- void add_dependsOn (::CIAO::Config_Handlers::NamedImplementationArtifact const& );
+ void add_dependsOn ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > const& );
size_t count_dependsOn (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::NamedImplementationArtifact > dependsOn_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::NamedImplementationArtifact, ACE_Null_Mutex > > dependsOn_;
// execParameter
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator execParameter_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator execParameter_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator execParameter_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator execParameter_const_iterator;
execParameter_iterator begin_execParameter ();
execParameter_iterator end_execParameter ();
execParameter_const_iterator begin_execParameter () const;
execParameter_const_iterator end_execParameter () const;
- void add_execParameter (::CIAO::Config_Handlers::Property const& );
+ void add_execParameter ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_execParameter (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > execParameter_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > execParameter_;
// infoProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator infoProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator infoProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator infoProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator infoProperty_const_iterator;
infoProperty_iterator begin_infoProperty ();
infoProperty_iterator end_infoProperty ();
infoProperty_const_iterator begin_infoProperty () const;
infoProperty_const_iterator end_infoProperty () const;
- void add_infoProperty (::CIAO::Config_Handlers::Property const& );
+ void add_infoProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_infoProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > infoProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > infoProperty_;
// deployRequirement
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::iterator deployRequirement_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::const_iterator deployRequirement_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator deployRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator deployRequirement_const_iterator;
deployRequirement_iterator begin_deployRequirement ();
deployRequirement_iterator end_deployRequirement ();
deployRequirement_const_iterator begin_deployRequirement () const;
deployRequirement_const_iterator end_deployRequirement () const;
- void add_deployRequirement (::CIAO::Config_Handlers::Requirement const& );
+ void add_deployRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
size_t count_deployRequirement (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Requirement > deployRequirement_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > deployRequirement_;
// contentLocation
//
@@ -499,33 +508,27 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
name (Type &o)
{
-
this->name (const_cast <Type const &> (o));
}
-
virtual void
name (Type const&);
virtual void
referencedArtifact (Type &o)
{
-
this->referencedArtifact (const_cast <Type const &> (o));
}
-
virtual void
referencedArtifact (Type const&);
@@ -542,220 +545,180 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
UUID (Type &o)
{
-
this->UUID (const_cast <Type const &> (o));
}
-
virtual void
UUID (Type const&);
virtual void
location_pre (Type &o)
{
-
this->location_pre (const_cast <Type const &> (o));
}
-
virtual void
location_pre (Type const&);
virtual void
location_next (Type &o)
{
-
this->location_next (const_cast <Type const &> (o));
}
-
virtual void
location_next (Type const&);
virtual void
location_post (Type &o)
{
-
this->location_post (const_cast <Type const &> (o));
}
-
virtual void
location_post (Type const&);
virtual void
dependsOn_pre (Type &o)
{
-
this->dependsOn_pre (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_pre (Type const&);
virtual void
dependsOn_next (Type &o)
{
-
this->dependsOn_next (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_next (Type const&);
virtual void
dependsOn_post (Type &o)
{
-
this->dependsOn_post (const_cast <Type const &> (o));
}
-
virtual void
dependsOn_post (Type const&);
virtual void
execParameter_pre (Type &o)
{
-
this->execParameter_pre (const_cast <Type const &> (o));
}
-
virtual void
execParameter_pre (Type const&);
virtual void
execParameter_next (Type &o)
{
-
this->execParameter_next (const_cast <Type const &> (o));
}
-
virtual void
execParameter_next (Type const&);
virtual void
execParameter_post (Type &o)
{
-
this->execParameter_post (const_cast <Type const &> (o));
}
-
virtual void
execParameter_post (Type const&);
virtual void
infoProperty_pre (Type &o)
{
-
this->infoProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_pre (Type const&);
virtual void
infoProperty_next (Type &o)
{
-
this->infoProperty_next (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_next (Type const&);
virtual void
infoProperty_post (Type &o)
{
-
this->infoProperty_post (const_cast <Type const &> (o));
}
-
virtual void
infoProperty_post (Type const&);
virtual void
deployRequirement_pre (Type &o)
{
-
this->deployRequirement_pre (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_pre (Type const&);
virtual void
deployRequirement_next (Type &o)
{
-
this->deployRequirement_next (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_next (Type const&);
virtual void
deployRequirement_post (Type &o)
{
-
this->deployRequirement_post (const_cast <Type const &> (o));
}
-
virtual void
deployRequirement_post (Type const&);
virtual void
contentLocation (Type &o)
{
-
this->contentLocation (const_cast <Type const &> (o));
}
-
virtual void
contentLocation (Type const&);
virtual void
href (Type &o)
{
-
this->href (const_cast <Type const &> (o));
}
-
virtual void
href (Type const&);
diff --git a/CIAO/tools/Config_Handlers/pcd.cpp b/CIAO/tools/Config_Handlers/pcd.cpp
index b74723f1265..722f4635bc2 100644
--- a/CIAO/tools/Config_Handlers/pcd.cpp
+++ b/CIAO/tools/Config_Handlers/pcd.cpp
@@ -33,23 +33,18 @@ namespace CIAO
}
ComponentPackageImport::
- ComponentPackageImport (::CIAO::Config_Handlers::ComponentPackageImport const& s)
+ ComponentPackageImport (ComponentPackageImport const& s)
:
::XSCRT::Type (),
+ location_ (s.location_),
regulator__ ()
{
- {
- for (location_const_iterator i (s.location_.begin ());i != s.location_.end ();++i) add_location (*i);
- }
}
- ::CIAO::Config_Handlers::ComponentPackageImport& ComponentPackageImport::
- operator= (::CIAO::Config_Handlers::ComponentPackageImport const& s)
+ ComponentPackageImport& ComponentPackageImport::
+ operator= (ComponentPackageImport const& s)
{
- location_.clear ();
- {
- for (location_const_iterator i (s.location_.begin ());i != s.location_.end ();++i) add_location (*i);
- }
+ location_ = s.location_;
return *this;
}
@@ -82,7 +77,7 @@ namespace CIAO
}
void ComponentPackageImport::
- add_location (::XMLSchema::string< ACE_TCHAR > const& e)
+ add_location (ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& e)
{
location_.push_back (e);
}
@@ -100,13 +95,12 @@ namespace CIAO
PackageConfiguration::
PackageConfiguration ()
:
- ::XSCRT::Type (),
regulator__ ()
{
}
PackageConfiguration::
- PackageConfiguration (::CIAO::Config_Handlers::PackageConfiguration const& s)
+ PackageConfiguration (PackageConfiguration const& s)
:
::XSCRT::Type (),
label_ (s.label_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.label_) : 0),
@@ -115,6 +109,8 @@ namespace CIAO
specializedConfig_ (s.specializedConfig_.get () ? new ::CIAO::Config_Handlers::PackageConfiguration (*s.specializedConfig_) : 0),
importedPackage_ (s.importedPackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageImport (*s.importedPackage_) : 0),
referencedPackage_ (s.referencedPackage_.get () ? new ::CIAO::Config_Handlers::ComponentPackageReference (*s.referencedPackage_) : 0),
+ selectRequirement_ (s.selectRequirement_),
+ configProperty_ (s.configProperty_),
contentLocation_ (s.contentLocation_.get () ? new ::XMLSchema::string< ACE_TCHAR > (*s.contentLocation_) : 0),
regulator__ ()
{
@@ -124,50 +120,50 @@ namespace CIAO
if (specializedConfig_.get ()) specializedConfig_->container (this);
if (importedPackage_.get ()) importedPackage_->container (this);
if (referencedPackage_.get ()) referencedPackage_->container (this);
- {
- for (selectRequirement_const_iterator i (s.selectRequirement_.begin ());i != s.selectRequirement_.end ();++i) add_selectRequirement (*i);
- }
-
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
-
if (contentLocation_.get ()) contentLocation_->container (this);
}
- ::CIAO::Config_Handlers::PackageConfiguration& PackageConfiguration::
- operator= (::CIAO::Config_Handlers::PackageConfiguration const& s)
+ PackageConfiguration& PackageConfiguration::
+ operator= (PackageConfiguration const& s)
{
- if (s.label_.get ()) label (*(s.label_));
- else label_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.label_.get ())
+ label (*(s.label_));
+ else
+ label_.reset (0);
- if (s.UUID_.get ()) UUID (*(s.UUID_));
- else UUID_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.UUID_.get ())
+ UUID (*(s.UUID_));
+ else
+ UUID_.reset (0);
- if (s.basePackage_.get ()) basePackage (*(s.basePackage_));
- else basePackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageDescription > (0);
+ if (s.basePackage_.get ())
+ basePackage (*(s.basePackage_));
+ else
+ basePackage_.reset (0);
- if (s.specializedConfig_.get ()) specializedConfig (*(s.specializedConfig_));
- else specializedConfig_ = ::std::auto_ptr< ::CIAO::Config_Handlers::PackageConfiguration > (0);
+ if (s.specializedConfig_.get ())
+ specializedConfig (*(s.specializedConfig_));
+ else
+ specializedConfig_.reset (0);
- if (s.importedPackage_.get ()) importedPackage (*(s.importedPackage_));
- else importedPackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageImport > (0);
+ if (s.importedPackage_.get ())
+ importedPackage (*(s.importedPackage_));
+ else
+ importedPackage_.reset (0);
- if (s.referencedPackage_.get ()) referencedPackage (*(s.referencedPackage_));
- else referencedPackage_ = ::std::auto_ptr< ::CIAO::Config_Handlers::ComponentPackageReference > (0);
+ if (s.referencedPackage_.get ())
+ referencedPackage (*(s.referencedPackage_));
+ else
+ referencedPackage_.reset (0);
- selectRequirement_.clear ();
- {
- for (selectRequirement_const_iterator i (s.selectRequirement_.begin ());i != s.selectRequirement_.end ();++i) add_selectRequirement (*i);
- }
+ selectRequirement_ = s.selectRequirement_;
- configProperty_.clear ();
- {
- for (configProperty_const_iterator i (s.configProperty_.begin ());i != s.configProperty_.end ();++i) add_configProperty (*i);
- }
+ configProperty_ = s.configProperty_;
- if (s.contentLocation_.get ()) contentLocation (*(s.contentLocation_));
- else contentLocation_ = ::std::auto_ptr< ::XMLSchema::string< ACE_TCHAR > > (0);
+ if (s.contentLocation_.get ())
+ contentLocation (*(s.contentLocation_));
+ else
+ contentLocation_.reset (0);
return *this;
}
@@ -374,7 +370,7 @@ namespace CIAO
}
void PackageConfiguration::
- add_selectRequirement (::CIAO::Config_Handlers::Requirement const& e)
+ add_selectRequirement (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& e)
{
selectRequirement_.push_back (e);
}
@@ -412,7 +408,7 @@ namespace CIAO
}
void PackageConfiguration::
- add_configProperty (::CIAO::Config_Handlers::Property const& e)
+ add_configProperty (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& e)
{
configProperty_.push_back (e);
}
@@ -475,7 +471,7 @@ namespace CIAO
if (n == "location")
{
- ::XMLSchema::string< ACE_TCHAR > t (e);
+ ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > t (new ::XMLSchema::string< ACE_TCHAR > (e));
add_location (t);
}
@@ -538,13 +534,13 @@ namespace CIAO
else if (n == "selectRequirement")
{
- ::CIAO::Config_Handlers::Requirement t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Requirement (e));
add_selectRequirement (t);
}
else if (n == "configProperty")
{
- ::CIAO::Config_Handlers::Property t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::Property (e));
add_configProperty (t);
}
@@ -583,7 +579,7 @@ namespace CIAO
{
ComponentPackageImportTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (ComponentPackageImport));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::ComponentPackageImport));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -597,7 +593,7 @@ namespace CIAO
{
PackageConfigurationTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (PackageConfiguration));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::PackageConfiguration));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -651,19 +647,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPackageImport::Type::location_iterator b (o.begin_location()), e (o.end_location());
+ ::CIAO::Config_Handlers::ComponentPackageImport::location_iterator b (o.begin_location()), e (o.end_location());
if (b != e)
{
location_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) location_next (o);
}
location_post (o);
}
+
+ else location_none (o);
}
void ComponentPackageImport::
@@ -671,19 +669,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- ComponentPackageImport::Type::location_const_iterator b (o.begin_location()), e (o.end_location());
+ ::CIAO::Config_Handlers::ComponentPackageImport::location_const_iterator b (o.begin_location()), e (o.end_location());
if (b != e)
{
location_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) location_next (o);
}
location_post (o);
}
+
+ else location_none (o);
}
void ComponentPackageImport::
@@ -717,6 +717,16 @@ namespace CIAO
}
void ComponentPackageImport::
+ location_none (Type&)
+ {
+ }
+
+ void ComponentPackageImport::
+ location_none (Type const&)
+ {
+ }
+
+ void ComponentPackageImport::
post (Type&)
{
}
@@ -923,14 +933,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PackageConfiguration::Type::selectRequirement_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
+ ::CIAO::Config_Handlers::PackageConfiguration::selectRequirement_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
if (b != e)
{
selectRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) selectRequirement_next (o);
}
@@ -945,14 +955,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PackageConfiguration::Type::selectRequirement_const_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
+ ::CIAO::Config_Handlers::PackageConfiguration::selectRequirement_const_iterator b (o.begin_selectRequirement()), e (o.end_selectRequirement());
if (b != e)
{
selectRequirement_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) selectRequirement_next (o);
}
@@ -1007,14 +1017,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PackageConfiguration::Type::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::PackageConfiguration::configProperty_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
@@ -1029,14 +1039,14 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- PackageConfiguration::Type::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
+ ::CIAO::Config_Handlers::PackageConfiguration::configProperty_const_iterator b (o.begin_configProperty()), e (o.end_configProperty());
if (b != e)
{
configProperty_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) configProperty_next (o);
}
diff --git a/CIAO/tools/Config_Handlers/pcd.hpp b/CIAO/tools/Config_Handlers/pcd.hpp
index d18119a5fc4..be5c2bcdde5 100644
--- a/CIAO/tools/Config_Handlers/pcd.hpp
+++ b/CIAO/tools/Config_Handlers/pcd.hpp
@@ -34,6 +34,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "Basic_Deployment_Data.hpp"
#include "cpd.hpp"
@@ -46,20 +49,23 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < ComponentPackageImport, ACE_Null_Mutex > _ptr;
+
// location
//
public:
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::iterator location_iterator;
- typedef ::std::list< ::XMLSchema::string< ACE_TCHAR > >::const_iterator location_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::iterator location_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > >::const_iterator location_const_iterator;
location_iterator begin_location ();
location_iterator end_location ();
location_const_iterator begin_location () const;
location_const_iterator end_location () const;
- void add_location (::XMLSchema::string< ACE_TCHAR > const& );
+ void add_location ( ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > const& );
size_t count_location (void) const;
protected:
- ::std::list< ::XMLSchema::string< ACE_TCHAR > > location_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::XMLSchema::string< ACE_TCHAR >, ACE_Null_Mutex > > location_;
public:
ComponentPackageImport ();
@@ -79,6 +85,9 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < PackageConfiguration, ACE_Null_Mutex > _ptr;
+
// label
//
public:
@@ -142,32 +151,32 @@ namespace CIAO
// selectRequirement
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::iterator selectRequirement_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Requirement >::const_iterator selectRequirement_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::iterator selectRequirement_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > >::const_iterator selectRequirement_const_iterator;
selectRequirement_iterator begin_selectRequirement ();
selectRequirement_iterator end_selectRequirement ();
selectRequirement_const_iterator begin_selectRequirement () const;
selectRequirement_const_iterator end_selectRequirement () const;
- void add_selectRequirement (::CIAO::Config_Handlers::Requirement const& );
+ void add_selectRequirement ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > const& );
size_t count_selectRequirement (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Requirement > selectRequirement_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Requirement, ACE_Null_Mutex > > selectRequirement_;
// configProperty
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::iterator configProperty_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::Property >::const_iterator configProperty_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::iterator configProperty_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > >::const_iterator configProperty_const_iterator;
configProperty_iterator begin_configProperty ();
configProperty_iterator end_configProperty ();
configProperty_const_iterator begin_configProperty () const;
configProperty_const_iterator end_configProperty () const;
- void add_configProperty (::CIAO::Config_Handlers::Property const& );
+ void add_configProperty ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > const& );
size_t count_configProperty (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::Property > configProperty_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::Property, ACE_Null_Mutex > > configProperty_;
// contentLocation
//
@@ -248,6 +257,12 @@ namespace CIAO
location_post (Type const&);
virtual void
+ location_none (Type&);
+
+ virtual void
+ location_none (Type const&);
+
+ virtual void
post (Type&);
virtual void
@@ -439,44 +454,36 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
location_pre (Type &o)
{
-
this->location_pre (const_cast <Type const &> (o));
}
-
virtual void
location_pre (Type const&);
virtual void
location_next (Type &o)
{
-
this->location_next (const_cast <Type const &> (o));
}
-
virtual void
location_next (Type const&);
virtual void
location_post (Type &o)
{
-
this->location_post (const_cast <Type const &> (o));
}
-
virtual void
location_post (Type const&);
@@ -493,154 +500,126 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
label (Type &o)
{
-
this->label (const_cast <Type const &> (o));
}
-
virtual void
label (Type const&);
virtual void
UUID (Type &o)
{
-
this->UUID (const_cast <Type const &> (o));
}
-
virtual void
UUID (Type const&);
virtual void
basePackage (Type &o)
{
-
this->basePackage (const_cast <Type const &> (o));
}
-
virtual void
basePackage (Type const&);
virtual void
specializedConfig (Type &o)
{
-
this->specializedConfig (const_cast <Type const &> (o));
}
-
virtual void
specializedConfig (Type const&);
virtual void
importedPackage (Type &o)
{
-
this->importedPackage (const_cast <Type const &> (o));
}
-
virtual void
importedPackage (Type const&);
virtual void
referencedPackage (Type &o)
{
-
this->referencedPackage (const_cast <Type const &> (o));
}
-
virtual void
referencedPackage (Type const&);
virtual void
selectRequirement_pre (Type &o)
{
-
this->selectRequirement_pre (const_cast <Type const &> (o));
}
-
virtual void
selectRequirement_pre (Type const&);
virtual void
selectRequirement_next (Type &o)
{
-
this->selectRequirement_next (const_cast <Type const &> (o));
}
-
virtual void
selectRequirement_next (Type const&);
virtual void
selectRequirement_post (Type &o)
{
-
this->selectRequirement_post (const_cast <Type const &> (o));
}
-
virtual void
selectRequirement_post (Type const&);
virtual void
configProperty_pre (Type &o)
{
-
this->configProperty_pre (const_cast <Type const &> (o));
}
-
virtual void
configProperty_pre (Type const&);
virtual void
configProperty_next (Type &o)
{
-
this->configProperty_next (const_cast <Type const &> (o));
}
-
virtual void
configProperty_next (Type const&);
virtual void
configProperty_post (Type &o)
{
-
this->configProperty_post (const_cast <Type const &> (o));
}
-
virtual void
configProperty_post (Type const&);
virtual void
contentLocation (Type &o)
{
-
this->contentLocation (const_cast <Type const &> (o));
}
-
virtual void
contentLocation (Type const&);
diff --git a/CIAO/tools/Config_Handlers/toplevel.cpp b/CIAO/tools/Config_Handlers/toplevel.cpp
index 4a06443d8fb..45f35831f9f 100644
--- a/CIAO/tools/Config_Handlers/toplevel.cpp
+++ b/CIAO/tools/Config_Handlers/toplevel.cpp
@@ -33,23 +33,18 @@ namespace CIAO
}
TopLevelPackageDescription::
- TopLevelPackageDescription (::CIAO::Config_Handlers::TopLevelPackageDescription const& s)
+ TopLevelPackageDescription (TopLevelPackageDescription const& s)
:
::XSCRT::Type (),
+ basePackage_ (s.basePackage_),
regulator__ ()
{
- {
- for (basePackage_const_iterator i (s.basePackage_.begin ());i != s.basePackage_.end ();++i) add_basePackage (*i);
- }
}
- ::CIAO::Config_Handlers::TopLevelPackageDescription& TopLevelPackageDescription::
- operator= (::CIAO::Config_Handlers::TopLevelPackageDescription const& s)
+ TopLevelPackageDescription& TopLevelPackageDescription::
+ operator= (TopLevelPackageDescription const& s)
{
- basePackage_.clear ();
- {
- for (basePackage_const_iterator i (s.basePackage_.begin ());i != s.basePackage_.end ();++i) add_basePackage (*i);
- }
+ basePackage_ = s.basePackage_;
return *this;
}
@@ -82,7 +77,7 @@ namespace CIAO
}
void TopLevelPackageDescription::
- add_basePackage (::CIAO::Config_Handlers::PackageConfiguration const& e)
+ add_basePackage (ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > const& e)
{
basePackage_.push_back (e);
}
@@ -116,7 +111,7 @@ namespace CIAO
if (n == "basePackage")
{
- ::CIAO::Config_Handlers::PackageConfiguration t (e);
+ ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > t (new ::CIAO::Config_Handlers::PackageConfiguration (e));
add_basePackage (t);
}
@@ -149,7 +144,7 @@ namespace CIAO
{
TopLevelPackageDescriptionTypeInfoInitializer ()
{
- ::XSCRT::TypeId id (typeid (TopLevelPackageDescription));
+ ::XSCRT::TypeId id (typeid (::CIAO::Config_Handlers::TopLevelPackageDescription));
::XSCRT::ExtendedTypeInfo nf (id);
nf.add_base (::XSCRT::ExtendedTypeInfo::Access::public_, false, typeid (::XSCRT::Type));
@@ -203,19 +198,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- TopLevelPackageDescription::Type::basePackage_iterator b (o.begin_basePackage()), e (o.end_basePackage());
+ ::CIAO::Config_Handlers::TopLevelPackageDescription::basePackage_iterator b (o.begin_basePackage()), e (o.end_basePackage());
if (b != e)
{
basePackage_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) basePackage_next (o);
}
basePackage_post (o);
}
+
+ else basePackage_none (o);
}
void TopLevelPackageDescription::
@@ -223,19 +220,21 @@ namespace CIAO
{
// VC6 anathema strikes again
//
- TopLevelPackageDescription::Type::basePackage_const_iterator b (o.begin_basePackage()), e (o.end_basePackage());
+ ::CIAO::Config_Handlers::TopLevelPackageDescription::basePackage_const_iterator b (o.begin_basePackage()), e (o.end_basePackage());
if (b != e)
{
basePackage_pre (o);
for (; b != e;)
{
- dispatch (*b);
+ dispatch (*(*b));
if (++b != e) basePackage_next (o);
}
basePackage_post (o);
}
+
+ else basePackage_none (o);
}
void TopLevelPackageDescription::
@@ -269,6 +268,16 @@ namespace CIAO
}
void TopLevelPackageDescription::
+ basePackage_none (Type&)
+ {
+ }
+
+ void TopLevelPackageDescription::
+ basePackage_none (Type const&)
+ {
+ }
+
+ void TopLevelPackageDescription::
post (Type&)
{
}
diff --git a/CIAO/tools/Config_Handlers/toplevel.hpp b/CIAO/tools/Config_Handlers/toplevel.hpp
index 468b927cc59..0ce830082e4 100644
--- a/CIAO/tools/Config_Handlers/toplevel.hpp
+++ b/CIAO/tools/Config_Handlers/toplevel.hpp
@@ -33,6 +33,9 @@ namespace CIAO
#include <list>
#include "XMLSchema/Types.hpp"
+#include "ace/Refcounted_Auto_Ptr.h"
+#include "ace/Null_Mutex.h"
+
#include "pcd.hpp"
namespace CIAO
@@ -43,20 +46,23 @@ namespace CIAO
{
typedef ::XSCRT::Type Base;
+ public:
+ typedef ACE_Refcounted_Auto_Ptr < TopLevelPackageDescription, ACE_Null_Mutex > _ptr;
+
// basePackage
//
public:
- typedef ::std::list< ::CIAO::Config_Handlers::PackageConfiguration >::iterator basePackage_iterator;
- typedef ::std::list< ::CIAO::Config_Handlers::PackageConfiguration >::const_iterator basePackage_const_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > >::iterator basePackage_iterator;
+ typedef ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > >::const_iterator basePackage_const_iterator;
basePackage_iterator begin_basePackage ();
basePackage_iterator end_basePackage ();
basePackage_const_iterator begin_basePackage () const;
basePackage_const_iterator end_basePackage () const;
- void add_basePackage (::CIAO::Config_Handlers::PackageConfiguration const& );
+ void add_basePackage ( ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > const& );
size_t count_basePackage (void) const;
protected:
- ::std::list< ::CIAO::Config_Handlers::PackageConfiguration > basePackage_;
+ ::std::list< ACE_Refcounted_Auto_Ptr < ::CIAO::Config_Handlers::PackageConfiguration, ACE_Null_Mutex > > basePackage_;
public:
TopLevelPackageDescription ();
@@ -127,6 +133,12 @@ namespace CIAO
basePackage_post (Type const&);
virtual void
+ basePackage_none (Type&);
+
+ virtual void
+ basePackage_none (Type const&);
+
+ virtual void
post (Type&);
virtual void
@@ -153,44 +165,36 @@ namespace CIAO
virtual void
traverse (Type &o)
{
-
this->traverse (const_cast <Type const &> (o));
}
-
virtual void
traverse (Type const&);
virtual void
basePackage_pre (Type &o)
{
-
this->basePackage_pre (const_cast <Type const &> (o));
}
-
virtual void
basePackage_pre (Type const&);
virtual void
basePackage_next (Type &o)
{
-
this->basePackage_next (const_cast <Type const &> (o));
}
-
virtual void
basePackage_next (Type const&);
virtual void
basePackage_post (Type &o)
{
-
this->basePackage_post (const_cast <Type const &> (o));
}
-
virtual void
basePackage_post (Type const&);
diff --git a/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp b/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp
index e0d6ff98a1e..b0bd198761b 100644
--- a/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp
+++ b/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.cpp
@@ -48,6 +48,7 @@
#include <sstream>
#include "xercesc/dom/DOM.hpp"
+#include "xercesc/util/XMLChar.hpp"
#include "XML/XML_Helper.h"
@@ -56,6 +57,7 @@ using XERCES_CPP_NAMESPACE::DOMAttr;
using XERCES_CPP_NAMESPACE::DOMElement;
using XERCES_CPP_NAMESPACE::DOMText;
using XERCES_CPP_NAMESPACE::DOMDocumentType;
+using XERCES_CPP_NAMESPACE::XMLChar1_1;
using CIAO::XML::XStr;
@@ -105,6 +107,34 @@ namespace CIAO
return ACE::strnew (LITERALS[CAPS_FALSE]);
}
+ template <>
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::number_to_string (char val)
+ {
+ // There is no way to convert any char to xml encoding nicely
+ // so we convert it to a decimal integer. This will preserve at
+ // least a correct char value instead of some non-printable xml.
+ std::stringstream str;
+
+ str << static_cast<unsigned int>(static_cast<unsigned char> (val));
+
+ return ACE::strnew (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ }
+
+ template <>
+ ACE_TCHAR *
+ idl3_to_xmi_visitor::number_to_string (wchar_t val)
+ {
+ // There is no way to convert any char to xml encoding nicely
+ // so we convert it to a decimal integer. This will preserve at
+ // least a correct char value instead of some non-printable xml.
+ std::stringstream str;
+
+ str << static_cast<unsigned long>(static_cast<wchar_t> (val));
+
+ return ACE::strnew (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ }
+
idl3_to_xmi_visitor::idl3_to_xmi_visitor (bool skip_imported)
: dom_ (0),
root_ (0),
@@ -112,6 +142,7 @@ namespace CIAO
associations_ (0),
base_id_ (idl3_to_xmi_visitor::gen_xmi_id ()),
skip_imported_ (skip_imported),
+ visiting_enum_ (false),
union_disc_ (0)
{
}
@@ -168,15 +199,22 @@ namespace CIAO
}
int
- idl3_to_xmi_visitor::visit_predefined_type (AST_PredefinedType *t)
+ idl3_to_xmi_visitor::visit_predefined_type (AST_PredefinedType *node)
{
XMI_TRACE ("predef type");
- ACE_DEBUG ((LM_DEBUG, "pdt: %s\n", t->repoID ()));
- switch (t->pt ())
+ char const *local_name = 0;
+ switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
- this->create_and_store_xmi_id (t);
+ // Only a limited number of predefined pseudo types
+ // needs our attention.
+ local_name = node->original_local_name ()->get_string ();
+ if (ACE_OS::strcmp (local_name, "TypeCode") == 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node, LITERALS[ST_TC]);
+ }
default:
break;
}
@@ -190,6 +228,16 @@ namespace CIAO
try
{
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) == 0)
+ {
+ // If the module is reopened then put it on the stack.
+ ES_Guard (ele, this);
+ this->visit_scope (node);
+ // And don't do anything more.
+ return 0;
+ }
+
ES_Guard package_guard (LITERALS[PACKAGE_TAG], this);
this->gen_common_elements (node, LITERALS[ST_MODULE]);
@@ -197,6 +245,13 @@ namespace CIAO
{
NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
ES_Guard owned_guard (LITERALS[OWNEDELEMENT_TAG], this);
+
+ // Save ownedElement to add to it later if the module
+ // will be reopened.
+ DOMElement *ele = 0;
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+
this->visit_scope (node);
}
}
@@ -222,10 +277,19 @@ namespace CIAO
try
{
- ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
- this->gen_common_elements (node, LITERALS[ST_INTF]);
+ this->gen_common_elements (node, LITERALS[ST_INTF]);
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
+
+ ES_Guard class_guard (ele, this);
NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
{ // Operations.
@@ -238,10 +302,10 @@ namespace CIAO
// Inheritance
for (long i = 0; i < node->n_inherits (); ++i)
{
- XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->inherits ()[i]->repoID ())));
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->inherits ()[i]->repoID ())));
}
-
}
catch (Error &err)
{
@@ -259,7 +323,17 @@ namespace CIAO
try
{
- this->create_and_store_xmi_id (node);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_INTF]);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
}
catch (Error &err)
{
@@ -276,7 +350,9 @@ namespace CIAO
XMI_TRACE ("valuebox");
if (this->skip_imported_ && node->imported ())
- return 0;
+ {
+ return 0;
+ }
try
{
@@ -284,8 +360,9 @@ namespace CIAO
this->gen_common_elements (node, LITERALS[ST_BOXVALUE]);
// add a generalization for the value we box
- XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->boxed_type ()->repoID ())));
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->boxed_type ()->repoID ())));
}
catch (Error &err)
{
@@ -309,9 +386,21 @@ namespace CIAO
try
{
- ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
- this->visit_valuetype_impl (node, LITERALS[ST_VALUE]);
+ this->gen_common_elements (node, LITERALS[ST_VALUE]);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
+
+ ES_Guard class_guard (ele, this);
+
+ this->visit_valuetype_impl (node);
}
catch (Error &err)
{
@@ -323,27 +412,34 @@ namespace CIAO
}
void
- idl3_to_xmi_visitor::visit_valuetype_impl (AST_ValueType *node, const ACE_TCHAR *stereo)
+ idl3_to_xmi_visitor::visit_valuetype_impl (AST_ValueType *node)
{
try
{
- this->gen_common_elements (node, stereo);
-
// isAbstract
if (node->is_abstract ())
- this->set_attribute (LITERALS[ABSTRACT], LITERALS[_TRUE]);
- else this->set_attribute (LITERALS[ABSTRACT], LITERALS[_FALSE]);
+ {
+ this->set_attribute (LITERALS[ABSTRACT], LITERALS[_TRUE]);
+ }
+ else
+ {
+ this->set_attribute (LITERALS[ABSTRACT], LITERALS[_FALSE]);
+ }
NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
if (node->inherits_concrete () != 0)
- XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->inherits_concrete ()->repoID ())));
+ {
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->inherits_concrete ()->repoID ())));
+ }
for (long i = 0; i < node->n_supports (); ++i)
{
- XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
}
/* NOTE: CDMW XMI generator ignores supports specifications.
@@ -354,7 +450,9 @@ namespace CIAO
ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+ this->cached_type_ = node;
this->visit_scope (node);
+ this->cached_type_ = 0;
}
catch (Error &err)
{
@@ -370,7 +468,17 @@ namespace CIAO
try
{
- this->create_and_store_xmi_id (node);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_VALUE]);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
}
catch (Error &err)
{
@@ -394,51 +502,66 @@ namespace CIAO
try
{
- ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
- this->gen_common_elements (node, LITERALS[ST_COMP]);
+ this->gen_common_elements (node, LITERALS[ST_COMP]);
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
+
+ ES_Guard class_guard (ele, this);
NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
for (long i = 0; i < node->n_supports (); ++i)
{
- XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
}
if (node->base_component () != 0)
{
- XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->base_component ()->repoID ())));
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->base_component ()->repoID ())));
}
// Component ports
- this->gen_component_ports (node->provides (),
- ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- LITERALS[ST_PROVIDES],
- ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
-
- this->gen_component_ports (node->uses (),
- ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- LITERALS[ST_USES],
- ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
-
- this->gen_component_ports (node->emits (),
- ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- LITERALS[ST_EMITS],
- ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
-
- this->gen_component_ports (node->publishes (),
- ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- LITERALS[ST_PUBLISH],
- ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
-
- this->gen_component_ports (node->consumes (),
- ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- LITERALS[ST_CONSUMES],
- ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
-
+ this->gen_component_ports (
+ node->provides (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_PROVIDES],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+ this->gen_component_ports (
+ node->uses (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_USES],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+ this->gen_component_ports (
+ node->emits (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_EMITS],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+ this->gen_component_ports (
+ node->publishes (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_PUBLISH],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
+
+ this->gen_component_ports (
+ node->consumes (),
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ LITERALS[ST_CONSUMES],
+ ACE_TEXT_CHAR_TO_TCHAR (node->file_name ().c_str ()));
ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
@@ -463,7 +586,17 @@ namespace CIAO
try
{
- this->create_and_store_xmi_id (node);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_COMP]);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
}
catch (Error &err)
{
@@ -487,9 +620,21 @@ namespace CIAO
try
{
- ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
- this->visit_valuetype_impl (node, LITERALS[ST_EVENT]);
+ this->gen_common_elements (node, LITERALS[ST_EVENT]);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
+
+ ES_Guard class_guard (ele, this);
+
+ this->visit_valuetype_impl (node);
}
catch (Error &err)
{
@@ -515,7 +660,6 @@ namespace CIAO
{
XMI_TRACE ("home");
-
if (this->skip_imported_ && node->imported ())
{
this->visit_scope (node);
@@ -532,15 +676,16 @@ namespace CIAO
for (long i = 0; i < node->n_supports (); ++i)
{
- XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
-
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->supports ()[i]->repoID ())));
}
if (node->base_home () != 0)
{
- XStr xid (this->add_generalization (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->base_home ()->repoID ())));
+ XStr xid (this->add_generalization (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->base_home ()->repoID ())));
}
if (node->factories ().size () != 0)
@@ -557,13 +702,14 @@ namespace CIAO
if (node->finders () .size () != 0)
throw Error ("home finders not supported", node);
- this->add_managed_component (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
- ACE_TEXT_CHAR_TO_TCHAR (node->managed_component ()->repoID ()));
+ this->add_managed_component (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ ACE_TEXT_CHAR_TO_TCHAR (node->managed_component ()->repoID ()));
ES_Guard noe_guard (LITERALS[OWNEDELEMENT_TAG], this);
- this->cached_type_ = node;
// attributes in scope.
+ this->cached_type_ = node;
this->visit_scope (node);
this->cached_type_ = 0;
}
@@ -580,8 +726,12 @@ namespace CIAO
idl3_to_xmi_visitor::visit_factory (AST_Factory *node)
{
XMI_TRACE ("factory");
+
if (this->skip_imported_ && node->imported ())
- return 0;
+ {
+ return 0;
+ }
+
throw Error ("Factories not supported", node);
return 0;
@@ -592,7 +742,6 @@ namespace CIAO
{
XMI_TRACE ("structure");
-
if (this->skip_imported_ && node->imported ())
{
this->visit_scope (node);
@@ -601,9 +750,21 @@ namespace CIAO
try
{
- ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
- this->visit_struct_impl (node, LITERALS[ST_STRUCT]);
+ this->gen_common_elements (node, LITERALS[ST_STRUCT]);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
+
+ ES_Guard class_guard (ele, this);
+
+ this->visit_struct_impl (node);
}
catch (Error &err)
{
@@ -615,11 +776,10 @@ namespace CIAO
}
void
- idl3_to_xmi_visitor::visit_struct_impl (AST_Structure *node, const ACE_TCHAR *stereotype)
+ idl3_to_xmi_visitor::visit_struct_impl (AST_Structure *node)
{
try
{
- this->gen_common_elements (node, stereotype);
ES_Guard ns_oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
this->visit_scope (node);
@@ -638,7 +798,17 @@ namespace CIAO
try
{
- this->create_and_store_xmi_id (node);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_STRUCT]);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
}
catch (Error &err)
{
@@ -662,9 +832,21 @@ namespace CIAO
try
{
- ES_Guard class_guard (LITERALS[EXCEPTION_TAG], this);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[EXCEPTION_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_EX]);
- this->visit_struct_impl (node, LITERALS[ST_EX]);
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
+
+ ES_Guard class_guard (ele, this);
+
+ this->visit_struct_impl (node);
}
catch (Error &err)
{
@@ -704,7 +886,9 @@ namespace CIAO
NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
+ this->visiting_enum_ = true;
this->visit_scope (node);
+ this->visiting_enum_ = false;
}
catch (Error &err)
{
@@ -716,8 +900,11 @@ namespace CIAO
}
void
- idl3_to_xmi_visitor::visit_operation_impl (AST_Operation *op, const ACE_TCHAR *stereotype)
+ idl3_to_xmi_visitor::visit_operation_impl (AST_Operation *op,
+ const ACE_TCHAR *stereotype)
{
+ XMI_TRACE ("operation");
+
if (this->skip_imported_ && op->imported ())
{
this->visit_scope (op);
@@ -730,8 +917,9 @@ namespace CIAO
ES_Guard op_guard (LITERALS[OP_TAG], this);
// name and visiblity
- this->set_attribute (LITERALS[NAME],
- ACE_TEXT_CHAR_TO_TCHAR (op->original_local_name ()->get_string ()));
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (op->original_local_name ()->get_string ()));
this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
@@ -768,8 +956,9 @@ namespace CIAO
{
ES_Guard tv_guard (LITERALS[TV_TAG], this);
this->set_attribute (LITERALS[TAG], LITERALS[RAISES]);
- this->set_attribute (LITERALS[VALUE],
- ACE_TEXT_CHAR_TO_TCHAR (ei.item ()->full_name ()));
+ this->set_attribute (
+ LITERALS[VALUE],
+ ACE_TEXT_CHAR_TO_TCHAR (ei.item ()->full_name ()));
}
}
}
@@ -837,13 +1026,31 @@ namespace CIAO
{
ES_Guard attr_guard (LITERALS[ATTR_TAG], this);
+ if (node->field_type ()->node_type () == AST_Decl::NT_sequence)
+ {
+ AST_Sequence* sequence =
+ AST_Sequence::narrow_from_decl (node->field_type ());
+ sequence->ast_accept (this);
+ // There is no need to proceed any further.
+ return 0;
+ }
+ else if (node->field_type ()->node_type () == AST_Decl::NT_array)
+ {
+ AST_Array* array =
+ AST_Array::narrow_from_decl (node->field_type ());
+ array->ast_accept (this);
+ // There is no need to proceed any further.
+ return 0;
+ }
+
// I don't think anything else can refer to the parameter by
// xid, so I won't store it.
XStr xid = this->gen_xmi_id (node);
this->set_attribute (LITERALS[XMI_ID], xid);
- this->set_attribute (LITERALS[NAME],
- ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
switch (node->visibility ())
{
@@ -866,8 +1073,6 @@ namespace CIAO
xid = this->lookup_type_xid (node->field_type ());
this->set_attribute (LITERALS[TYPE],
xid);
-
-
}
catch (Error &err)
{
@@ -892,8 +1097,9 @@ namespace CIAO
{
ES_Guard param_guard (LITERALS[PARAM_TAG], this);
- this->set_attribute (LITERALS[NAME],
- ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
// I don't think anything else can refer to the parameter by
// xid, so I won't store it.
@@ -947,7 +1153,7 @@ namespace CIAO
if (this->cached_type_ == 0)
{
- ACE_DEBUG ((LM_DEBUG, "Zounds! %d\n",
+ ACE_ERROR ((LM_ERROR, "Zounds! %d\n",
this->cached_type_));
throw Error ("Internal error - attribute expected "
"to have a cached type, but didn't");
@@ -958,31 +1164,33 @@ namespace CIAO
// ***
NS_Guard global_ns (ACE_TEXT ("::"), this);
ES_Guard assoc_group (this->associations_, this);
- ES_Guard attr_guard (LITERALS[ASSOC_TAG], this);
+ ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
- this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
- if (node->readonly ())
- this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
- LITERALS[ST_RO]);
- this->set_containing_element (LITERALS[OWNER]);
// I don't think anything else can refer to the attribute by
// xid, so I won't store it.
XStr xid = this->gen_xmi_id (node);
this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+ if (node->readonly ())
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_RO]);
ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
{ // Containing type
ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
- this->find_and_set_xid_as_attr (LITERALS[TYPE],
- ACE_TEXT_CHAR_TO_TCHAR (this->cached_type_->repoID ()));
+ this->find_and_set_xid_as_attr (
+ LITERALS[TYPE],
+ ACE_TEXT_CHAR_TO_TCHAR (this->cached_type_->repoID ()));
}
{
ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
- this->set_attribute (LITERALS[NAME],
- ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
this->set_attribute (LITERALS[MULT], ACE_TEXT ("1"));
xid = this->lookup_type_xid (node->field_type ());
this->set_attribute (LITERALS[TYPE], xid);
@@ -1009,16 +1217,26 @@ namespace CIAO
try
{
- ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
- this->gen_common_elements (node, LITERALS[ST_UNION]);
+ this->gen_common_elements (node, LITERALS[ST_UNION]);
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
+
+ ES_Guard class_guard (ele, this);
NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
ES_Guard oe_guard (LITERALS[OWNEDELEMENT_TAG], this);
// Set discriminator type
this->union_disc_ = node->disc_type ();
this->visit_scope (node);
+ this->union_disc_ = 0;
}
catch (Error &err)
{
@@ -1035,10 +1253,19 @@ namespace CIAO
{
XMI_TRACE ("union_fwd");
-
try
{
- this->create_and_store_xmi_id (node);
+ DOMElement * ele = 0;
+ if (this->repo_id_map_.find (node->repoID (), ele) != 0)
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_UNION]);
+
+ // Save in order not to generate same element later.
+ this->stack_.top (ele);
+ this->repo_id_map_.bind (node->repoID (), ele);
+ }
}
catch (Error &err)
{
@@ -1064,8 +1291,9 @@ namespace CIAO
this->set_attribute (LITERALS[XMI_ID], xid);
// name
- this->set_attribute (LITERALS[NAME],
- ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
// visiblity
this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
@@ -1115,13 +1343,12 @@ namespace CIAO
// @@TODO: Yuck, there has got to be a better way....
AST_Expression::AST_ExprValue *ev = exp->ev ();
- const size_t bool_length = 6;
if (exp->ec () != AST_Expression::EC_symbol ||
this->union_disc_->node_type () == AST_Decl::NT_typedef ||
this->union_disc_->node_type () == AST_Decl::NT_pre_defined)
{
- /* AST_Expression::ExprType type;
+ /*AST_Expression::ExprType type;
if (this->union_disc_->node_type () == AST_Decl::NT_typedef)
{
@@ -1130,46 +1357,26 @@ namespace CIAO
}
else type = ev->et;*/
- // We have a non-enum discriminator
- // Allocate memory
- switch (ev->et)
- {
- case AST_Expression::EV_bool:
- ACE_DEBUG ((LM_DEBUG, "bool disc\n"));
- buffer.reset (new ACE_TCHAR [bool_length]); // length of 'false' + 1
- break;
- case AST_Expression::EV_char:
- ACE_DEBUG ((LM_DEBUG, "char disc\n"));
- buffer.reset (new ACE_TCHAR[1]);
- break;
- default:
- ACE_DEBUG ((LM_DEBUG, "numberic?disc\n"));
- // don't need to allocate room for numerics, handled by
- // number_to_string
- break;
- }
-
// Decode the type
switch (ev->et)
{
case AST_Expression::EV_long:
- buffer.reset (this->number_to_string(ev->u.lval));
+ buffer.reset (this->number_to_string (ev->u.lval));
break;
case AST_Expression::EV_ulong:
- buffer.reset (this->number_to_string(ev->u.ulval));
+ buffer.reset (this->number_to_string (ev->u.ulval));
break;
case AST_Expression::EV_short:
- buffer.reset (this->number_to_string(ev->u.sval));
+ buffer.reset (this->number_to_string (ev->u.sval));
break;
case AST_Expression::EV_ushort:
- buffer.reset (this->number_to_string(ev->u.usval));
+ buffer.reset (this->number_to_string (ev->u.usval));
break;
-
case AST_Expression::EV_bool:
buffer.reset (this->number_to_string (ev->u.bval));
break;
case AST_Expression::EV_char:
- *buffer.get () = ev->u.cval;
+ buffer.reset (this->number_to_string (ev->u.cval));
break;
default:
throw Error ("Unknown union union label type");
@@ -1226,7 +1433,7 @@ namespace CIAO
}
int
- idl3_to_xmi_visitor::visit_constant (AST_Constant *node)
+ idl3_to_xmi_visitor::visit_constant (AST_Constant *node)
{
XMI_TRACE ("constant");
@@ -1339,7 +1546,7 @@ namespace CIAO
{
ES_Guard tv (LITERALS[TV_TAG], this);
this->set_attribute (LITERALS[TAG], LITERALS[INIT_VAL]);
- this->set_attribute (LITERALS[VALUE], str_value. get ());
+ this->set_attribute (LITERALS[VALUE], str_value.get ());
}
}
}
@@ -1355,20 +1562,29 @@ namespace CIAO
int
idl3_to_xmi_visitor::visit_enum_val (AST_EnumVal *node)
{
+ XMI_TRACE ("enum val");
if (this->skip_imported_ && node->imported ())
{
return 0;
}
+ if (!this->visiting_enum_)
+ {
+ // It makes sence only to process enumvals in enum "scope".
+ return 0;
+ }
+
try
{
- XMI_TRACE ("enum val");
ES_Guard att_guard (LITERALS[ATTR_TAG], this);
- this->create_and_store_xmi_id (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
- this->set_attribute (LITERALS[NAME],
- ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->create_and_store_xmi_id (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()),
+ node);
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
// I think this is fixed.
this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
@@ -1400,14 +1616,7 @@ namespace CIAO
idl3_to_xmi_visitor::visit_array (AST_Array *node)
{
XMI_TRACE ("array val");
- throw Error ("Arrays not supported", node);
- return 0;
- }
- int
- idl3_to_xmi_visitor::visit_sequence (AST_Sequence *node)
- {
- XMI_TRACE ("sequence val");
if (this->skip_imported_ && node->imported ())
{
return 0;
@@ -1415,263 +1624,256 @@ namespace CIAO
try
{
- ES_Guard class_guard (LITERALS[CLASS_TAG], this);
-
this->gen_common_elements (node,
- LITERALS[ST_SEQ]);
+ LITERALS[ST_ARR]);
- // Generate the bounds and type on the sequence, which is an
- // association in the association tree.
- NS_Guard global_ns (ACE_TEXT ("::"), this);
- ES_Guard assoc_group (this->associations_, this);
- ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
+ this->gen_array_associations (node, node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
- // I don't think anything else can refer to this association
- // xid, so I won't store it.
- XStr xid = this->gen_xmi_id (node);
- this->set_attribute (LITERALS[XMI_ID], xid);
- this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
- this->set_containing_element (LITERALS[NS]);
+ return 0;
+ }
- ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
+ void
+ idl3_to_xmi_visitor::gen_array_associations (AST_Decl *node,
+ AST_Array *array)
+ {
+ // <UML:Namespace.ownedElement>
+ NS_Guard global_ns (ACE_TEXT ("::"), this);
+
+ // <UML:Association xmi.id="xmi.1210085542354"
+ // visibility="public" namespace="xmi.1210085542350">
+ ES_Guard assoc_group (this->associations_, this);
+ ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
+
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
+ // <UML:Association.connection>
+ ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
- { // Bounds
- ES_Guard assocend (LITERALS[ASSOC_END_TAG], this);
+ {
+ // <UML:AssociationEnd multiplicity="0..1" type="xmi.1210085542353">
+ ES_Guard assocend (LITERALS[ASSOC_END_TAG], this);
- this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
- xid = this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
- this->set_attribute (LITERALS[TYPE], xid);
+ xid = this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ this->set_attribute (LITERALS[TYPE], xid);
- ES_Guard assoc_qual (LITERALS[ASSOC_END_QUAL_TAG], this);
+ // <UML:AssociationEnd.qualifier>
+ ES_Guard assoc_qual (LITERALS[ASSOC_END_QUAL_TAG], this);
+
+ for (unsigned long i = 0;
+ array != 0 && i < array->n_dims ();
+ ++i)
+ {
+ // <UML:Attribute xmi.id="xmi.1210085542355"
+ // name="index0" type='xmi.1210085542329'>
+ // N.B. that type is long.
ES_Guard attr (LITERALS[ATTR_TAG], this);
xid = this->gen_xmi_id (node);
this->set_attribute (LITERALS[XMI_ID], xid);
- this->set_attribute (LITERALS[NAME], LITERALS[INDEX]);
- this->set_attribute (LITERALS[TYPE], LITERALS[ST_LONG]);
+ std::stringstream str;
+ str << LITERALS[INDEX];
+ str << i;
+
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
+ xid = this->lookup_xid (LITERALS[ST_LONG]);
+ this->set_attribute (LITERALS[TYPE], xid);
+
+ // <UML:ModelElement.constraint>
ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
+
+ // <UML:Constraint xmi.id="xmi.1210085542356">
ES_Guard cons (LITERALS[CONSTRAINT], this);
+
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+
+ // <UML:ModelElement.taggedValue>
ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+
+ // <UML:TaggedValue tag="constraintUpperValue" value="4"/>
ES_Guard tv (LITERALS[TV_TAG], this);
this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
- // @@TODO: need to extract bound from node.
- if (node->unbounded ())
- this->set_attribute (LITERALS[CONST_UPPER], LITERALS[UNBOUNDED_SEQ]);
- else
- { // bounded sequence
- // convert the array bound to a string
- // need a buffer, with a little safety padding
- ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer
- (this->number_to_string (node->max_size ()->ev ()->u.ulval));
-
- this->set_attribute (LITERALS[CONST_UPPER], buffer.get ());
- }
- }
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
+ this->number_to_string (array->dims ()[i]->ev ()->u.ulval));
- // Sequence type
- ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
- this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
-
- XStr seq_type = this->lookup_type_xid (node->base_type ());
- this->set_attribute (LITERALS[TYPE],
- seq_type);
- }
- catch (Error &err)
- {
- err.node (node);
- throw;
- }
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+ }
- return 0;
- }
+ // <UML:AssociationEnd multiplicity="1..1"
+ // type="xmi.1210085542346"/> - type is Char for this IDL
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
- int
- idl3_to_xmi_visitor::visit_string (AST_String *)
- {
- XMI_TRACE ("string");
- return 0;
+ XStr arr_type = this->lookup_type_xid (array->base_type ());
+ this->set_attribute (LITERALS[TYPE], arr_type);
}
int
- idl3_to_xmi_visitor::visit_typedef (AST_Typedef *node)
+ idl3_to_xmi_visitor::visit_sequence (AST_Sequence *node)
{
- XMI_TRACE ("typedef");
+ XMI_TRACE ("sequence val");
if (this->skip_imported_ && node->imported ())
+ {
return 0;
+ }
try
{
- ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+ this->gen_common_elements (node,
+ LITERALS[ST_SEQ]);
- AST_Decl *base (node->base_type ());
- if (base->node_type () == AST_Decl::NT_sequence ||
- base->node_type () == AST_Decl::NT_array)
- {
- // Anonymous Sequences and arrays appear to be a special case
- const ACE_TCHAR *stereo (0);
- switch (base->node_type ())
- {
- case AST_Decl::NT_sequence:
- stereo = LITERALS[ST_SEQ];
- break;
- case AST_Decl::NT_array:
- stereo = LITERALS[ST_ARR];
- break;
- default:
- throw Error ("Unsupported anonymous type inside typedef.",
- node);
- }
- this->gen_common_elements (node, stereo);
+ // Generate the bounds and type on the sequence, which is an
+ // association in the association tree.
+ this->gen_sequence_associations (node, node);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
- // Hopefully we have hit something like:
- // typedef char AirportName[4];
- AST_Array* the_array = 0;
- AST_Sequence* the_sequence = 0;
- if (base->node_type () == AST_Decl::NT_array)
- {
- the_array = AST_Array::narrow_from_decl (base);
- }
- else
- {
- the_sequence = AST_Sequence::narrow_from_decl (base);
- }
+ return 0;
+ }
- // <UML:Namespace.ownedElement>
- NS_Guard global_ns (ACE_TEXT ("::"), this);
+ void
+ idl3_to_xmi_visitor::gen_sequence_associations (AST_Decl *node,
+ AST_Sequence *sequence)
+ {
+ // <UML:Namespace.ownedElement>
+ NS_Guard global_ns (ACE_TEXT ("::"), this);
- // <UML:Association xmi.id="xmi.1210085542354" visibility="public" namespace="xmi.1210085542350">
- ES_Guard assoc_group (this->associations_, this);
- ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
+ // <UML:Association xmi.id="xmi.1210085542354"
+ // visibility="public" namespace="xmi.1210085542350">
+ ES_Guard assoc_group (this->associations_, this);
+ ES_Guard assoc_g (LITERALS[ASSOC_TAG], this);
- XStr xid = this->gen_xmi_id (node);
- this->set_attribute (LITERALS[XMI_ID], xid);
- this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
- this->set_containing_element (LITERALS[NS]);
+ XStr xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
+ this->set_containing_element (LITERALS[NS]);
- // <UML:Association.connection>
- ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
+ // <UML:Association.connection>
+ ES_Guard assoc_conn (LITERALS[ASSOC_CONN_TAG], this);
- {
- // <UML:AssociationEnd multiplicity="0..1" type="xmi.1210085542353">
- ES_Guard assocend (LITERALS[ASSOC_END_TAG], this);
+ {
+ // <UML:AssociationEnd multiplicity="0..1" type="xmi.1210085542353">
+ ES_Guard assocend (LITERALS[ASSOC_END_TAG], this);
- this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_ZTO]);
- xid =
- this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
- this->set_attribute (LITERALS[TYPE], xid);
+ xid = this->lookup_xid (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()));
+ this->set_attribute (LITERALS[TYPE], xid);
- // <UML:AssociationEnd.qualifier>
- ES_Guard assoc_qual (LITERALS[ASSOC_END_QUAL_TAG], this);
+ // <UML:AssociationEnd.qualifier>
+ ES_Guard assoc_qual (LITERALS[ASSOC_END_QUAL_TAG], this);
- for (unsigned long i = 0;
- the_array != 0 && i < the_array->n_dims ();
- ++i)
- {
- // <UML:Attribute xmi.id="xmi.1210085542355" name="index0" type='xmi.1210085542329'> - N.B. that type is long.
- ES_Guard attr (LITERALS[ATTR_TAG], this);
+ ES_Guard attr (LITERALS[ATTR_TAG], this);
- xid = this->gen_xmi_id (node);
- this->set_attribute (LITERALS[XMI_ID], xid);
+ xid = this->gen_xmi_id (node);
+ this->set_attribute (LITERALS[XMI_ID], xid);
+ this->set_attribute (LITERALS[NAME], LITERALS[INDEX]);
+ xid = this->lookup_xid (LITERALS[ST_LONG]);
+ this->set_attribute (LITERALS[TYPE], xid);
- std::stringstream str;
- str << LITERALS[INDEX];
- str << i;
+ ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
+ ES_Guard cons (LITERALS[CONSTRAINT], this);
+ ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+ ES_Guard tv (LITERALS[TV_TAG], this);
- this->set_attribute (
- LITERALS[NAME],
- ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
- xid = this->lookup_xid (LITERALS[ST_LONG]);
- this->set_attribute (LITERALS[TYPE], xid);
+ this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
- // <UML:ModelElement.constraint>
- ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
+ // @@TODO: need to extract bound from node.
+ if (sequence->unbounded ())
+ {
+ this->set_attribute (LITERALS[VALUE],
+ LITERALS[UNBOUNDED_SEQ]);
+ }
+ else
+ { // bounded sequence
+ // convert the array bound to a string
+ // need a buffer, with a little safety padding
+ ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
+ this->number_to_string (sequence->max_size ()->ev ()->u.ulval));
+
+ this->set_attribute (LITERALS[VALUE], buffer.get ());
+ }
+ }
- // <UML:Constraint xmi.id="xmi.1210085542356">
- ES_Guard cons (LITERALS[CONSTRAINT], this);
+ // <UML:AssociationEnd multiplicity="1..1"
+ // type="xmi.1210085542346"/> - type is Char for this IDL
+ ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
+ this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
- xid = this->gen_xmi_id (node);
- this->set_attribute (LITERALS[XMI_ID], xid);
+ XStr seq_type = this->lookup_type_xid (sequence->base_type ());
+ this->set_attribute (LITERALS[TYPE], seq_type);
+ }
- // <UML:ModelElement.taggedValue>
- ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
+ int
+ idl3_to_xmi_visitor::visit_string (AST_String *)
+ {
+ XMI_TRACE ("string");
+ return 0;
+ }
- // <UML:TaggedValue tag="constraintUpperValue" value="4"/>
- ES_Guard tv (LITERALS[TV_TAG], this);
+ int
+ idl3_to_xmi_visitor::visit_typedef (AST_Typedef *node)
+ {
+ XMI_TRACE ("typedef");
- this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
- ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
- this->number_to_string (
- the_array->dims ()[i]->ev ()->u.ulval));
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
- this->set_attribute (LITERALS[VALUE], buffer.get ());
- }
+ // Anonymous Sequences and arrays appear to be a special case
+ AST_Decl *base (node->base_type ());
+ if (base->node_type () == AST_Decl::NT_sequence)
+ {
+ this->gen_common_elements (node, LITERALS[ST_SEQ]);
- if (the_sequence)
- {
- ES_Guard attr (LITERALS[ATTR_TAG], this);
-
- xid = this->gen_xmi_id (node);
- this->set_attribute (LITERALS[XMI_ID], xid);
- this->set_attribute (LITERALS[NAME], LITERALS[INDEX]);
- xid = this->lookup_xid (LITERALS[ST_LONG]);
- this->set_attribute (LITERALS[TYPE], xid);
-
-
- ES_Guard me_c (LITERALS[ME_CONS_TAG], this);
- ES_Guard cons (LITERALS[CONSTRAINT], this);
- ES_Guard me_tv (LITERALS[ME_TV_TAG], this);
- ES_Guard tv (LITERALS[TV_TAG], this);
-
- this->set_attribute (LITERALS[TAG], LITERALS[CONST_UPPER]);
-
- // @@TODO: need to extract bound from node.
- if (the_sequence->unbounded ())
- {
- this->set_attribute (LITERALS[CONST_UPPER],
- LITERALS[UNBOUNDED_SEQ]);
- }
- else
- { // bounded sequence
- // convert the array bound to a string
- // need a buffer, with a little safety padding
- ACE_Auto_Basic_Array_Ptr<ACE_TCHAR> buffer (
- this->number_to_string (
- the_sequence->max_size ()->ev ()->u.ulval));
-
- this->set_attribute (LITERALS[CONST_UPPER],
- buffer.get ());
- }
- }
+ AST_Sequence* sequence =
+ AST_Sequence::narrow_from_decl (base);
+ this->gen_sequence_associations (node, sequence);
+ }
+ else if (base->node_type () == AST_Decl::NT_array)
+ {
+ this->gen_common_elements (node, LITERALS[ST_ARR]);
- // <UML:AssociationEnd multiplicity="1..1" type="xmi.1210085542346"/> - type is Char for this IDL
- ES_Guard assoc_end (LITERALS[ASSOC_END_TAG], this);
- this->set_attribute (LITERALS[MULT], LITERALS[MULT_OTO]);
-
- XStr seq_type =
- this->lookup_type_xid (
- (the_array ?
- the_array->base_type () :
- the_sequence->base_type ()));
- this->set_attribute (LITERALS[TYPE],
- seq_type);
- }
+ AST_Array* array =
+ AST_Array::narrow_from_decl (base);
+ this->gen_array_associations (node, array);
}
else
{
this->gen_common_elements (node,
LITERALS[ST_TYPEDEF]);
- // Generalization
- XStr xid (this->add_generalization (node,
- node->base_type ()));
+ // Generalization. Assignment required for memory management.
+ XStr xid = this->add_generalization (node,
+ node->base_type ());
+ ACE_UNUSED_ARG (xid);
}
}
catch (Error &err)
@@ -1709,9 +1911,6 @@ namespace CIAO
target_name += fn;
- ACE_DEBUG ((LM_DEBUG, "Opening %C\n",
- target_name.c_str ()));
-
CIAO::XML::NoOp_Resolver res_func;
CIAO::XML::XML_Schema_Resolver<> resolver (res_func);
CIAO::XML::XML_Error_Handler handler;
@@ -1765,8 +1964,10 @@ namespace CIAO
// Create generalizations and associations elements, but don't join
// them to the tree yet
- this->associations_ = this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
- this->generalizations_ = this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+ this->associations_ =
+ this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+ this->generalizations_ =
+ this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
if (this->visit_scope (node) != 0)
{
@@ -1804,9 +2005,27 @@ namespace CIAO
}
int
- idl3_to_xmi_visitor::visit_native (AST_Native *)
+ idl3_to_xmi_visitor::visit_native (AST_Native *node)
{
XMI_TRACE ("native");
+
+ if (this->skip_imported_ && node->imported ())
+ {
+ return 0;
+ }
+
+ try
+ {
+ ES_Guard class_guard (LITERALS[CLASS_TAG], this);
+
+ this->gen_common_elements (node, LITERALS[ST_NATIVE]);
+ }
+ catch (Error &err)
+ {
+ err.node (node);
+ throw;
+ }
+
return 0;
}
@@ -1857,7 +2076,8 @@ namespace CIAO
DOMElement *
idl3_to_xmi_visitor::generate_stereotypes (void)
{
- DOMElement *retval = this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
+ DOMElement *retval =
+ this->dom_->createElement (XStr (LITERALS[OWNEDELEMENT_TAG]));
// put it on the stack to subsequent create_element calls refer to it.
this->stack_.push (retval);
@@ -1868,8 +2088,8 @@ namespace CIAO
this->add_stereotype (ST_UNION, CLASS);
this->add_stereotype (ST_USES, ASSOC);
this->add_stereotype (ST_SEQ, CLASS);
- this->add_stereotype (ST_ROE, _NULL);
- this->add_stereotype (ST_RO, _NULL);
+ this->add_stereotype (ST_ROE, __NULL);
+ this->add_stereotype (ST_RO, __NULL);
this->add_stereotype (ST_OBJ, DATATYPE);
this->add_stereotype (ST_STR, DATATYPE);
this->add_stereotype (ST_LD, DATATYPE);
@@ -1916,6 +2136,7 @@ namespace CIAO
this->add_stereotype (ST_INTF, CLASS);
this->add_stereotype (ST_PRI_KEY, CLASS);
this->add_stereotype (ST_ANY, DATATYPE);
+ this->add_stereotype (ST_NATIVE, CLASS);
this->stack_.pop (retval);
@@ -1949,7 +2170,23 @@ namespace CIAO
current_id_ = rand ();
}
std::stringstream str;
- str << name << ':' << line << '.' << current_id_++;
+ // Skip all characters that cannot be a first name char in xmi.id.
+ while (name && *name && !XMLChar1_1::isFirstNameChar(*name)) ++name;
+ // Since we use a file path as name then let's change all non-name
+ // chars for '_'.
+ while (name && *name)
+ {
+ if (XMLChar1_1::isNameChar (*name))
+ {
+ str << *name;
+ }
+ else
+ {
+ str << '_';
+ }
+ ++name;
+ }
+ str << ':' << line << '.' << current_id_++;
XStr retval (ACE_TEXT_CHAR_TO_TCHAR (str.str ().c_str ()));
return retval.release ();
@@ -1996,7 +2233,8 @@ namespace CIAO
{
try
{
- this->create_and_store_xmi_id (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), node);
+ this->create_and_store_xmi_id (
+ ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), node);
}
catch (Error &ex)
{
@@ -2006,7 +2244,8 @@ namespace CIAO
}
void
- idl3_to_xmi_visitor::create_and_store_xmi_id (const ACE_TCHAR *name, AST_Decl *node)
+ idl3_to_xmi_visitor::create_and_store_xmi_id (
+ const ACE_TCHAR *name, AST_Decl *node)
{
XStr xid = this->gen_xmi_id (node);
@@ -2119,7 +2358,8 @@ namespace CIAO
}
XMLCh *
- idl3_to_xmi_visitor::add_generalization (const ACE_TCHAR *sub, const ACE_TCHAR *super)
+ idl3_to_xmi_visitor::add_generalization (const ACE_TCHAR *sub,
+ const ACE_TCHAR *super)
{
return this->add_generalization (XStr (this->lookup_xid (sub)),
XStr (this->lookup_xid (super)));
@@ -2133,9 +2373,11 @@ namespace CIAO
}
XMLCh *
- idl3_to_xmi_visitor::add_generalization (const XMLCh *sub, const XMLCh *super)
+ idl3_to_xmi_visitor::add_generalization (const XMLCh *sub,
+ const XMLCh *super)
{
- XStr xid;
+ // Generate XMI ID
+ XStr xid (this->gen_xmi_id ());
{ // add generalization to the 'generalizations' set
ES_Guard es_guard (this->generalizations_, this);
@@ -2143,8 +2385,6 @@ namespace CIAO
ES_Guard gen_guard (LITERALS[GEN_TAG], this);
- // Generate XMI ID
- xid = this->gen_xmi_id ();
this->set_attribute (LITERALS[XMI_ID], xid);
this->set_containing_element (LITERALS[NS]);
@@ -2226,30 +2466,35 @@ namespace CIAO
XStr xid (this->gen_xmi_id ());
this->set_attribute (LITERALS[XMI_ID], xid);
this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
- this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR], LITERALS[ST_MANAGES]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_MANAGES]);
this->set_containing_element (LITERALS[NS]);
ES_Guard conn_guard (LITERALS[ASSOC_CONN_TAG], this);
{ // home end
ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
- this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR], LITERALS[ST_HOME]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_HOME]);
this->find_and_set_xid_as_attr (LITERALS[TYPE], home);
}
{ // component end
ES_Guard end_guard (LITERALS[ASSOC_END_TAG], this);
- this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR], LITERALS[ST_COMP]);
+ this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
+ LITERALS[ST_COMP]);
this->find_and_set_xid_as_attr (LITERALS[TYPE], component);
}
}
void
- idl3_to_xmi_visitor::gen_common_elements (AST_Decl *node, const ACE_TCHAR *stereotype)
+ idl3_to_xmi_visitor::gen_common_elements (AST_Decl *node,
+ const ACE_TCHAR *stereotype)
{
this->create_and_store_xmi_id (node);
- this->set_attribute (LITERALS[NAME],
- ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
+ this->set_attribute (
+ LITERALS[NAME],
+ ACE_TEXT_CHAR_TO_TCHAR (node->original_local_name ()->get_string ()));
this->set_attribute (LITERALS[VISIBIL], LITERALS[PUBLIC]);
this->set_containing_element (LITERALS[NS]);
this->find_and_set_xid_as_attr (LITERALS[STEREO_ATTR],
@@ -2258,6 +2503,7 @@ namespace CIAO
NS_Guard ns_guard (ACE_TEXT_CHAR_TO_TCHAR (node->repoID ()), this);
this->gen_tagged_value (node);
}
+
void
idl3_to_xmi_visitor::gen_component_ports (PORTS &ports,
const ACE_TCHAR *component,
@@ -2278,14 +2524,16 @@ namespace CIAO
}
}
- idl3_to_xmi_visitor::ES_Guard::ES_Guard (const ACE_TCHAR *name, idl3_to_xmi_visitor *vis)
+ idl3_to_xmi_visitor::ES_Guard::ES_Guard (const ACE_TCHAR *name,
+ idl3_to_xmi_visitor *vis)
: vis_ (*vis)
{
if (vis_.stack_.push (vis_.create_element (name)))
throw Error ("element stack error");
}
- idl3_to_xmi_visitor::ES_Guard::ES_Guard (DOMElement *ele, idl3_to_xmi_visitor *vis)
+ idl3_to_xmi_visitor::ES_Guard::ES_Guard (DOMElement *ele,
+ idl3_to_xmi_visitor *vis)
: vis_ (*vis)
{
if (vis_.stack_.push (ele) != 0)
@@ -2302,7 +2550,8 @@ namespace CIAO
}
}
- idl3_to_xmi_visitor::NS_Guard::NS_Guard (const ACE_TCHAR *name, idl3_to_xmi_visitor *vis)
+ idl3_to_xmi_visitor::NS_Guard::NS_Guard (const ACE_TCHAR *name,
+ idl3_to_xmi_visitor *vis)
: vis_ (*vis)
{
int res = vis_.namespace_.push (name);
diff --git a/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h b/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h
index 210d814ffa0..3b2657fb0c7 100644
--- a/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h
+++ b/CIAO/tools/IDL3_to_XMI/IDL3_to_XMI_visitor.h
@@ -27,6 +27,7 @@
#include "Literals.h"
#include "XML/XercesString.h"
#include "CIAO_IDL3_TO_XMI_Export.h"
+
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
@@ -124,10 +125,16 @@ namespace CIAO
/// implementation for elements common to both eventtypes
/// and valuetypes
- void visit_valuetype_impl (AST_ValueType *, const ACE_TCHAR *stereotype);
+ void visit_valuetype_impl (AST_ValueType *node);
/// implementation of elements common to exceptions and structures.
- void visit_struct_impl (AST_Structure *, const ACE_TCHAR *stereotype);
+ void visit_struct_impl (AST_Structure *node);
+
+ /// Generation of common associations of anonymous and typedefed arrays.
+ void gen_array_associations (AST_Decl *node, AST_Array *array);
+
+ /// Generation of common associations of anonymous and typedefed sequences.
+ void gen_sequence_associations (AST_Decl *node, AST_Sequence *sequence);
/// sets an attribute on the element at the top of the stack.
void set_attribute (const ACE_TCHAR *name,
@@ -238,6 +245,16 @@ namespace CIAO
/// element.
ELEMENT_STACK stack_;
+ typedef ACE_Hash_Map_Manager_Ex< ACE_TString,
+ XERCES_CPP_NAMESPACE::DOMElement *,
+ ACE_Hash <ACE_TString>,
+ ACE_Equal_To <ACE_TString>,
+ ACE_Null_Mutex > REPO_ID_MAP;
+
+ /// Stores elements that were forward declared. Also stores modules that can
+ /// be reopened.
+ REPO_ID_MAP repo_id_map_;
+
/// Provides a "protected" push that is popped when the current scope
/// is exited.
struct ES_Guard
@@ -285,6 +302,9 @@ namespace CIAO
bool skip_imported_;
+ /// true if we are in enum "scope".
+ bool visiting_enum_;
+
/// Used to determine IDL ordering of union labels.
size_t order_;
@@ -296,4 +316,5 @@ namespace CIAO
};
}
}
+
#endif
diff --git a/CIAO/tools/IDL3_to_XMI/Literals.cpp b/CIAO/tools/IDL3_to_XMI/Literals.cpp
index 90596146b47..2a11c065aeb 100644
--- a/CIAO/tools/IDL3_to_XMI/Literals.cpp
+++ b/CIAO/tools/IDL3_to_XMI/Literals.cpp
@@ -27,10 +27,10 @@ namespace CIAO
ACE_TEXT("UML:ModelElement.constraint"), // ME_CONS_TAG
ACE_TEXT("UML:Constraint"), // CONSTRAINT
ACE_TEXT("UML:TaggedValue"), // TV_TAG
- ACE_TEXT("UML:Stereotype"), // STEREOTYPE_TAG
- ACE_TEXT("UML:Class"), // CLASS_TAG
+ ACE_TEXT("UML:Stereotype"), // STEREOTYPE_TAG
+ ACE_TEXT("UML:Class"), // CLASS_TAG
ACE_TEXT("UML:Operation"), // OP_TAG
- ACE_TEXT("UML:BehavioralFeature.parameter"), // BFP_TAG
+ ACE_TEXT("UML:BehavioralFeature.parameter"), // BFP_TAG
ACE_TEXT("UML:Parameter"), // PARAM_TAG
ACE_TEXT("UML:BehavioralFeature.raisedException"), // BF_RE_TAG
ACE_TEXT("UML:Exception"), // EXCEPT_TAG
@@ -50,9 +50,9 @@ namespace CIAO
ACE_TEXT("tag"), // TAG
ACE_TEXT("value"), // VALUE
ACE_TEXT("name"), // NAME
- ACE_TEXT("baseClass"), // BASEC
+ ACE_TEXT("baseClass"), // BASEC
ACE_TEXT("visibility"), // VISIBIL
- ACE_TEXT("stereotype"), //STEREO_ATTR
+ ACE_TEXT("stereotype"), // STEREO_ATTR
ACE_TEXT("namespace"), // NS
ACE_TEXT("owner"), // OWNER
ACE_TEXT("kind"), // KIND
@@ -71,8 +71,8 @@ namespace CIAO
ACE_TEXT("Package"), // PACKAGE
ACE_TEXT("null"), // NULL
ACE_TEXT("Attribute"), // ATTR
- ACE_TEXT("public"), // PUBLIC
- ACE_TEXT("private"), // _PRIVATE
+ ACE_TEXT("public"), // PUBLIC
+ ACE_TEXT("private"), // _PRIVATE
ACE_TEXT("typeid"), // TYPEID
ACE_TEXT("raises"), // RAISES
ACE_TEXT("return"), // RETURN
@@ -94,6 +94,7 @@ namespace CIAO
ACE_TEXT("classifier"), // CLASSIFIER
ACE_TEXT("frozen"), // FROZEN
ACE_TEXT("initialValue"), // INIT_VAL
+
//******** Stereotypes
ACE_TEXT("CCMConsumes"), // ST_CONSUMES
ACE_TEXT("CORBAAnonymousSequence"), // ST_ANON_SEQ
@@ -149,6 +150,7 @@ namespace CIAO
ACE_TEXT("CORBAInterface"), // ST_INTF
ACE_TEXT("CCMPrimaryKey"), // ST_PRI_KEY
ACE_TEXT("CORBAany") // ST_ANY
+ ACE_TEXT("CORBAnative") // ST_NATIVE
};
}
}
diff --git a/CIAO/tools/IDL3_to_XMI/Literals.h b/CIAO/tools/IDL3_to_XMI/Literals.h
index 04cabafa759..e8c36180b30 100644
--- a/CIAO/tools/IDL3_to_XMI/Literals.h
+++ b/CIAO/tools/IDL3_to_XMI/Literals.h
@@ -77,7 +77,7 @@ namespace CIAO
CLASS,
DATATYPE,
PACKAGE,
- _NULL,
+ __NULL,
ATTR,
PUBLIC,
_PRIVATE,
@@ -102,6 +102,7 @@ namespace CIAO
CLASSIFIER,
FROZEN,
INIT_VAL,
+
// Stereotypes
ST_CONSUMES,
ST_ANON_SEQ,
@@ -157,6 +158,7 @@ namespace CIAO
ST_INTF,
ST_PRI_KEY,
ST_ANY,
+ ST_NATIVE,
MAX_LITERAL
};
diff --git a/CIAO/tools/IDL3_to_XMI/be_global.cpp b/CIAO/tools/IDL3_to_XMI/be_global.cpp
index 6a640166e84..ceeb3f56ed6 100644
--- a/CIAO/tools/IDL3_to_XMI/be_global.cpp
+++ b/CIAO/tools/IDL3_to_XMI/be_global.cpp
@@ -186,26 +186,22 @@ void
BE_GlobalData::usage (void) const
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("-f \t\t Simulates IFR type filtering on included types.\n")
+ ACE_TEXT (" -f\t\t\tsimulates IFR type filtering on included types\n")
));
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT (" -od <dir>\t\tOutput directory for the generated file.")
- ACE_TEXT (" Default is current directory\n")
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -od <dir>\t\toutput directory for the generated file ")
+ ACE_TEXT ("(default is current directory)\n")
));
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT (" -of <dir>\t\tOutput file for the generated XMI.")
- ACE_TEXT (" Default for example.idl is example.xmi\n")
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -of <dir>\t\toutput file for the generated XMI ")
+ ACE_TEXT ("(default for example.idl is example.xmi)\n")
));
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT (" -xd <dtd_file>\t\tFull path to XMI dtd file to include in generated file..")
- ACE_TEXT (" Default is XMI.dtd.\n")
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -xd <dtd_file>\t\tfull path to XMI dtd file to include in generated file ")
+ ACE_TEXT ("(default is XMI.dtd)\n")
));
- ACE_DEBUG ((
- LM_DEBUG,
- ACE_TEXT (" -n \t\t\t. Exports XMI for non-local entities.\n")
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT (" -n\t\t\texports XMI for non-local entities\n")
));
}
diff --git a/CIAO/tools/XML/XML_Schema_Resolver.cpp b/CIAO/tools/XML/XML_Schema_Resolver.cpp
index cc78dca37cd..afa2ef14dc7 100644
--- a/CIAO/tools/XML/XML_Schema_Resolver.cpp
+++ b/CIAO/tools/XML/XML_Schema_Resolver.cpp
@@ -1,8 +1,9 @@
// $Id$
+#include "XML/XML_Schema_Resolver.h"
+
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/XercesDefs.hpp>
-#include "XML/XML_Schema_Resolver.h"
#include "XML/XercesString.h"
#include "ace/Env_Value_T.h"
diff --git a/CIAO/tools/XML/XML_Schema_Resolver.h b/CIAO/tools/XML/XML_Schema_Resolver.h
index 5ccc00c4bde..1826c8c1af6 100644
--- a/CIAO/tools/XML/XML_Schema_Resolver.h
+++ b/CIAO/tools/XML/XML_Schema_Resolver.h
@@ -44,7 +44,7 @@ namespace CIAO
{
public:
XML_Schema_Resolver (void);
-
+
XML_Schema_Resolver (Resolver &resolver);
/// This function is called by the Xerces infrastructure to
@@ -57,7 +57,7 @@ namespace CIAO
Resolver &resolver_;
};
-
+
/**
* @class NoOp_Resolver
* @brief Resolver that does nothing.
@@ -76,27 +76,27 @@ namespace CIAO
struct Basic_Resolver
{
Basic_Resolver (const ACE_TCHAR *path);
-
+
XMLCh* operator() (const XMLCh *const publicId,
const XMLCh *const systemId) const;
XStr path_;
};
-
+
/**
* @class Environment_Resolver
* @brief Resolves a schema location from a path from an environment variable.
*/
struct CIAO_XML_Utils_Export Environment_Resolver
{
- Environment_Resolver (const ACE_TCHAR *variable = "",
- const ACE_TCHAR *path = "./");
-
- void add_path (const ACE_TCHAR *variable,
+ Environment_Resolver (const ACE_TCHAR *variable = ACE_TEXT(""),
+ const ACE_TCHAR *path = ACE_TEXT("./"));
+
+ void add_path (const ACE_TCHAR *variable,
const ACE_TCHAR *path);
-
+
XMLCh* operator() (const XMLCh *const publicId,
const XMLCh *const systemId) const;
-
+
std::vector<XStr> paths_;
};
}
diff --git a/CIAO/tools/XML/XML_Schema_Resolver.tpp b/CIAO/tools/XML/XML_Schema_Resolver.tpp
index 13ff6915e6b..22039e01f14 100644
--- a/CIAO/tools/XML/XML_Schema_Resolver.tpp
+++ b/CIAO/tools/XML/XML_Schema_Resolver.tpp
@@ -40,7 +40,7 @@ namespace CIAO
return 0;
// Ownership of these objects is given to other people.
- return /*new Wrapper4InputSource*/ (new LocalFileInputSource (path));
+ return /*new Wrapper4InputSource*/ (new LocalFileInputSource (path.begin ()));
}
}
}
diff --git a/CIAO/tools/XML/XercesString.h b/CIAO/tools/XML/XercesString.h
index 11aa6fa7c4d..c07c62ec9b0 100644
--- a/CIAO/tools/XML/XercesString.h
+++ b/CIAO/tools/XML/XercesString.h
@@ -11,6 +11,10 @@
#include <iosfwd>
+#ifdef __BORLANDC__
+using std::memcpy;
+#endif
+
#include <xercesc/util/XMLString.hpp>
// Utility class that provides a std::string like facade to XMLString.
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 330666415c4..d387eae6e1a 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,11 +1,2023 @@
-Tue Apr 14 09:48:27 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+Mon Jun 22 09:33:40 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
* TAO version 1.7 released.
+Thu Jun 18 22:47:05 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * utils/logWalker/Invocation.h:
+ * orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.h:
+
+ There is a curious order-of-inclusion problem on macosx-leopoard
+ builds whereby including a non-ACE header before something that
+ includes ace/config.h causes a compiler error in
+ OS_NS_stdlib.inl. It seems that on that platform, the signature
+ of ::unsetenv() varies. I think this should be looked into in
+ greater depth after releasing x.7.0.
+
+Thu Jun 18 15:44:35 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * tao/Block_Flushing_Strategy.h:
+ * tao/Block_Flushing_Strategy.cpp:
+ * tao/Flushing_Strategy.h:
+ * tao/Flushing_Strategy.cpp:
+ * tao/Transport.cpp:
+
+ Reverted the change from...
+ Fri Jun 12 14:29:55 UTC 2009 Adam Mitz <mitza@ociweb.com>
+ ...which made it an error to have a send() return -1/EWOULDBLOCK
+ with the blocking flushing strategy. This is actually expected
+ behavior for a server, but it needs to be changed for the blocking
+ flusing strategy, see bug #3704, to be resolved after the release.
+
+Tue Jun 16 20:23:44 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * bin/tao_orb_tests.lst:
+
+ Fixed malformed lines (missing space between items).
+
+Tue Jun 16 15:33:24 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * NEWS:
+
+ Updated.
+
+ * TAO_IDL/contrib/mcpp/system.cpp:
+
+ Removed incompatible throw specification.
+
+Tue Jun 16 07:19:07 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * orbsvcs/tests/EC_Mcast/EC_Mcast.cpp:
+ Added return value check for fscanf to silence complation
+ warning on Ubuntu 9.04.
+
+Tue Jun 16 07:06:14 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Big_AMI/client.cpp:
+ * tests/Crash_On_Write/Crash_Task.cpp:
+ * tests/Portable_Interceptors/AMI/client.cpp:
+ * tests/Bug_1270_Regression/client.cpp:
+ * tests/Bug_1270_Regression/Echo.cpp:
+ * tests/Bug_1270_Regression/server.cpp:
+ * tests/Bug_1476_Test/test.ior:
+ * tao/ORB_Core.cpp:
+ * tao/Leader_Follower_Flushing_Strategy.cpp:
+ * tao/Messaging/Messaging_Policy_i.cpp:
+ * tao/ORB_Core.h:
+ * tao/Transport.cpp:
+
+ Reverted all my changes for Bug#3682 and Bug#3697. They need
+ more investigation.
+
+Mon Jun 15 19:45:30 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tao/IIOP_Connection_Handler.cpp:
+
+ Change the initialization of the bidir listen point received in
+ the context. This will silence an error that is reported by the
+ ACE_INET_Addr ctor regardless of the debug output level.
+
+ * tests/BiDirectional/run_test3557.pl:
+
+ Change the number of iterations sent by the server to the
+ callback. This is necessary to avoid a problem on windows in
+ which the TAO_IIOP_Endpoint::hash() method first calls its
+ object_addr_i() to initialize the object address. This then
+ calls ACE_INET_Addr::set() which ultimately calls
+ gethostbyname(). When the supplied endpoint is unreachable,
+ as is the point of this test, windows apparently takes a while
+ to time out before actually completing invocation and passing
+ the test.
+
+ This actually points out a potentential failure in the transport
+ cache in that recached bidir transports may end up using a hash
+ key value of 0. This is not in itself a failure, but more than
+ one such entry will cause that 0'th bucket to become
+ disproportionally large.
+
+Mon Jun 15 18:41:04 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.cpp:
+ Unicode fixes
+
+Mon Jun 15 13:54:01 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tao/Leader_Follower_Flushing_Strategy.cpp:
+
+ Improved the fix for Bug#3697 even more.
+
+Mon Jun 15 12:45:55 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tao/Leader_Follower_Flushing_Strategy.cpp:
+
+ Improved the fix for Bug#3697. The while loop now depends
+ on transpot's queue and the work in the reactor.
+
+Mon Jun 15 10:19:16 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Crash_On_Write/Crash_Task.cpp:
+
+ Used terminate_process() instead of abort(). The later works
+ differently on Solaris.
+
+ * tests/Big_AMI/client.cpp:
+ * tests/Portable_Interceptors/AMI/client.cpp:
+ * tests/Bug_1270_Regression/client.cpp:
+ * tests/Bug_1270_Regression/Echo.cpp:
+ * tests/Bug_1270_Regression/server.cpp:
+
+ Fixed tests after the change for Bug#3682. In these tests it
+ was assumed that nothing could be received from server until
+ we run orb explicitly. The later is not true with synch scope
+ policy SYNC_WITH_TRANSPORT.
+
+ * tests/Bug_1476_Test/test.ior:
+
+ An attempt to fix this test on platforms where connect to
+ localhost on non-blocking socket returns with ECONNREFUSED
+ while it's expected to return with errno=EINPROGRESS.
+ This is Solaris and other Unices. I changed the remote host
+ in IOR from localhost to something really remote (google.com).
+
+ * tao/ORB_Core.cpp:
+ * tao/ORB_Core.h:
+ * tao/Messaging/Messaging_Policy_i.cpp:
+
+ This fixes Bug#3682. SYNC_WITH_TRANSPORT is now really
+ default synch scope policy in TAO. This must fix Single_Read
+ and AMH_Oneway tests on Solaris.
+
+ * tao/Leader_Follower_Flushing_Strategy.cpp:
+
+ This fixes Bug#3697. The comment in the code explains why this
+ fix is better than the code used before. This must fix
+ Big_Request_Muxing on Solaris.
+
+ * tao/Transport.cpp:
+
+ Changed to use queue_is_empty_i() instead of head_==0.
+
+Mon Jun 15 07:42:47 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * utils/logWalker/PeerProcess.cpp:
+ Added long specifier to sprintf.
+
+Fri Jun 12 18:44:04 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/IIOP_Acceptor.cpp:
+ Improved logging layout
+
+ * tao/Invocation_Adapter.cpp:
+ Use ACE_TEXT
+
+ * tao/DynamicInterface/AMH_DSI_Response_Handler.cpp:
+ Layout changes
+
+Fri Jun 12 16:12:36 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * utils/logWalker/logWalker.mpc:
+
+ Cannot build on ace_for_tao platforms.
+
+Fri Jun 12 14:29:55 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * tao/Block_Flushing_Strategy.h:
+ * tao/Block_Flushing_Strategy.cpp:
+ * tao/Flushing_Strategy.h:
+ * tao/Flushing_Strategy.cpp:
+ * tao/Transport.cpp:
+
+ If send() returns -1 with EWOULDBLOCK and the Flushing Strategy is
+ blocking, return -1 instead of 0. This is an error condition
+ because TAO shouldn't see EWOULDBLOCK with a blocking socket, and
+ the transport must be closed to avoid looping indefinitely in the
+ flushing strategy's flush_transport().
+
+Fri Jun 12 11:16:39 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * utils/logWalker/Invocation.cpp:
+ Fixed memset's parameter order.
+
+Fri Jun 12 10:25:58 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * utils/logWalker/Invocation.cpp:
+
+ HPUX apparently uses something novel for either size_t or ACE_CDR::ULong.
+
+Fri Jun 12 02:05:32 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * utils/logWalker/logWalker.cpp:
+
+ Clean up WChar errors.
+
+Thu Jun 11 23:16:41 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * NEWS:
+
+ Added entry for bug #3688 fix.
+
+Thu Jun 11 19:29:51 UTC 2009 Steven Stallion <stallions@ociweb.com>
+
+ * PROBLEM-REPORT-FORM:
+
+ Added additional PRF question about build method (commit performed
+ on behalf of Chris Cleeland).
+
+Thu Jun 11 19:19:42 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * utils/logWalker/Invocation.cpp:
+
+ Cast to int to force ternary operator's type to int, avoiding a
+ warning on GCC 4.0.2 on Solaris.
+
+Thu Jun 11 18:19:57 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * utils/logWalker/Invocation.cpp:
+
+ ACE CDR can't be used with size_t because its size varies on
+ different platforms.
+
+Thu Jun 11 13:20:09 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * utils/logWalker/PeerProcess.cpp:
+ Initialize several pointers with 0
+
+ * utils/monitor/monitor_client.cpp:
+ * utils/NamingViewer/NamingViewerDlg.cpp:
+ Removed not needed unicode conversion
+
+ * utils/nslist/nslist.cpp:
+ Layout changes
+
+Wed Jun 10 13:56:48 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * utils/logWalker/Log.h:
+ * utils/logWalker/Log.cpp:
+ * utils/logWalker/logWalker.cpp:
+
+ Fixed build errors with ACE_USES_WCHAR.
+
+Wed Jun 10 13:37:03 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * utils/logWalker/Log.cpp:
+
+ s_addr is a macro (for use with struct in_addr) on some platforms.
+
+Wed Jun 10 02:20:40 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tao/IIOP_Endpoint.h:
+
+ fix compile error.
+
+Tue Jun 9 23:17:14 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * utils/logWalker/HostProcess.cpp:
+ * utils/logWalker/Invocation.cpp:
+ * utils/logWalker/Log.cpp:
+ * utils/logWalker/PeerProcess.cpp:
+ * utils/logWalker/Thread.cpp:
+ * utils/logWalker/logWalker.cpp:
+ * utils/logWalker/logWalker.mpc:
+
+ Fuzz fix.
+
+Tue Jun 9 22:26:07 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * utils/README:
+ * utils/logWalker:
+ * NEWS:
+
+ Adding a new utility for parsing TAO debug log files.
+
+Tue Jun 9 22:04:49 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * TAO_IDL/contrib/mcpp/internal.H:
+ * TAO_IDL/contrib/mcpp/lib.cpp:
+ * TAO_IDL/contrib/mcpp/system.cpp:
+
+ Compile warning fixes.
+
+Tue Jun 9 21:01:30 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * TAO_IDL/contrib/mcpp/directive.cpp:
+ * TAO_IDL/contrib/mcpp/eval.cpp:
+ * TAO_IDL/contrib/mcpp/expand.cpp:
+ * TAO_IDL/contrib/mcpp/internal.H:
+ * TAO_IDL/contrib/mcpp/main.cpp:
+ * TAO_IDL/contrib/mcpp/mbchar.cpp:
+ * TAO_IDL/contrib/mcpp/mcpp.mpc:
+ * TAO_IDL/contrib/mcpp/noconfig.H:
+ * TAO_IDL/contrib/mcpp/support.cpp:
+ * TAO_IDL/contrib/mcpp/system.H:
+ * TAO_IDL/contrib/mcpp/system.cpp:
+
+ Compile warning fixes.
+
+Tue Jun 9 20:25:50 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * bin/tao_orb_tests.lst:
+ * tao/IIOP_Endpoint.h:
+ * tao/IIOP_Endpoint.cpp:
+ * tao/IIOP_Profile.h:
+ * tao/IIOP_Profile.cpp:
+
+ Fix for bug #3695. Keep alternate endpoints within a profile in
+ the same order after marshalling/demarshalling so that is_equivalent
+ return true.
+
+Tue Jun 9 15:37:40 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * TAO_IDL/contrib/mcpp/directive.cpp:
+ * TAO_IDL/contrib/mcpp/eval.cpp:
+ * TAO_IDL/contrib/mcpp/expand.cpp:
+ * TAO_IDL/contrib/mcpp/internal.H:
+ * TAO_IDL/contrib/mcpp/support.cpp:
+ * TAO_IDL/contrib/mcpp/system.cpp:
+
+ fuzz fix.
+
+Tue Jun 9 13:25:10 UTC 2009 Paul Calabrese <calabrese_p@ociweb.com>
+
+ * DevGuideExamples/AMH/AMH_Messenger_i.cpp:
+ * DevGuideExamples/AMH/MessengerServer.cpp:
+ * DevGuideExamples/AMH/Messenger_i.cpp:
+ * DevGuideExamples/AMH_AMI/inner_server.cpp:
+ * DevGuideExamples/BiDirectionalGIOP/callback_i.cpp:
+ * DevGuideExamples/BiDirectionalGIOP/client.cpp:
+ * DevGuideExamples/BiDirectionalGIOP/server.cpp:
+ * DevGuideExamples/BiDirectionalGIOP/simple_i.cpp:
+ * DevGuideExamples/DevGuideExamples.mwc:
+ * DevGuideExamples/GettingStarted/MessengerServer.cpp:
+ * DevGuideExamples/LocalObjects/Messenger/Messenger_i.cpp:
+ * DevGuideExamples/LocalObjects/ServantLocator/MessengerServer.cpp:
+ * DevGuideExamples/Messaging/AMIcallback/MessengerClient.cpp:
+ * DevGuideExamples/Messaging/AMIcallback/MessengerHandler.cpp:
+ * DevGuideExamples/Messaging/AMIcallback/MessengerServer.cpp:
+ * DevGuideExamples/Messaging/AMIcallback/Messenger_i.cpp:
+ * DevGuideExamples/Messaging/RelativeRoundtripTimeout/MessengerServer.cpp:
+ * DevGuideExamples/Multithreading/GracefulShutdown/MessengerServer.h:
+ * DevGuideExamples/Multithreading/GracefulShutdown/MessengerShutdownTimer.cpp:
+ * DevGuideExamples/Multithreading/GracefulShutdown/Messenger_i.cpp:
+ * DevGuideExamples/Multithreading/GracefulShutdown/run_test.pl:
+ * DevGuideExamples/Multithreading/Reactive/MessengerServer.cpp:
+ * DevGuideExamples/Multithreading/Reactive/Messenger_i.cpp:
+ * DevGuideExamples/Multithreading/Reactive/run_test.pl:
+ * DevGuideExamples/Multithreading/ThreadPerConnection/MessengerServer.cpp:
+ * DevGuideExamples/Multithreading/ThreadPerConnection/Messenger_i.cpp:
+ * DevGuideExamples/Multithreading/ThreadPerConnection/run_test.pl:
+ * DevGuideExamples/Multithreading/ThreadPool/MessengerServer.cpp:
+ * DevGuideExamples/Multithreading/ThreadPool/Messenger_i.cpp:
+ * DevGuideExamples/Multithreading/ThreadPool/run_test.pl:
+ * DevGuideExamples/PortableInterceptors/Auth/ClientInterceptor.cpp:
+ * DevGuideExamples/PortableInterceptors/Auth/MessengerClient.cpp:
+ * DevGuideExamples/PortableInterceptors/Auth/MessengerServer.cpp:
+ * DevGuideExamples/PortableInterceptors/Auth/Messenger_i.cpp:
+ * DevGuideExamples/PortableInterceptors/Auth/ServerInitializer.h:
+ * DevGuideExamples/PortableInterceptors/Auth/run_test.pl:
+ * DevGuideExamples/PortableInterceptors/IOR/ClientInterceptor.cpp:
+ * DevGuideExamples/PortableInterceptors/IOR/MessengerClient.cpp:
+ * DevGuideExamples/PortableInterceptors/IOR/MessengerServer.cpp:
+ * DevGuideExamples/PortableInterceptors/IOR/Messenger_i.cpp:
+ * DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.h:
+ * DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.cpp:
+ * DevGuideExamples/PortableInterceptors/IOR/ServerInterceptor.cpp:
+ * DevGuideExamples/PortableInterceptors/PICurrent/ClientInitializer.cpp:
+ * DevGuideExamples/PortableInterceptors/PICurrent/ClientInterceptor.cpp:
+ * DevGuideExamples/PortableInterceptors/PICurrent/MessengerServer.cpp:
+ * DevGuideExamples/PortableInterceptors/PICurrent/Messenger_i.cpp:
+ * DevGuideExamples/PortableInterceptors/SimpleCodec/ClientInterceptor.cpp:
+ * DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerClient.cpp:
+ * DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerServer.cpp:
+ * DevGuideExamples/PortableInterceptors/SimpleCodec/Messenger_i.cpp:
+ * DevGuideExamples/PortableInterceptors/SimpleCodec/ServerInterceptor.cpp:
+ * DevGuideExamples/PortableInterceptors/SimpleCodec/run_test.pl:
+ * DevGuideExamples/RTCORBA/MessengerServer.cpp:
+ * DevGuideExamples/RTCORBA/Messenger_i.cpp:
+ * DevGuideExamples/SmartProxies/LoggerServer.cpp:
+ * DevGuideExamples/SmartProxies/Logger_i.cpp:
+ * DevGuideExamples/SmartProxies/MessengerServer.cpp:
+ * DevGuideExamples/SmartProxies/Messenger_i.cpp:
+ * DevGuideExamples/ValueTypes/Bank/server.cpp:
+ * DevGuideExamples/ValueTypes/Messenger/Message_i.cpp:
+ * DevGuideExamples/ValueTypes/Messenger/MessengerServer.cpp:
+ * DevGuideExamples/ValueTypes/Messenger/Messenger_i.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/OMG_Basic/EchoEventConsumerMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/EchoEventConsumerMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/run_test.pl:
+ * orbsvcs/DevGuideExamples/EventServices/OMG_TypedEC/ConsumerMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventConsumerMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventSupplierMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventConsumerMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventSupplierMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventConsumerMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventSupplierMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventConsumerMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventSupplierMain.cpp:
+ * orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/run_test.pl:
+ * orbsvcs/DevGuideExamples/ImplRepo/Basic/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/ImplRepo/IORTable/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/ImplRepo/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerClient.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/Messenger/run_test.pl:
+ * orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerClient.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/Naming_Client/run_test.pl:
+ * orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/README:
+ * orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/run_test.pl:
+ * orbsvcs/DevGuideExamples/NamingService/Naming_Server/MessengerTask.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerClient.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/README:
+ * orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/run_test.pl:
+ * orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/README:
+ * orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/run_test.pl:
+ * orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerConsumer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/EventSequence/Messenger_i.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerConsumer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerConsumer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/Messenger/Messenger_i.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerConsumer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/Messenger_i.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerConsumer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/QoSProperties/Messenger_i.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerConsumer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/RTNotify/Messenger_i.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/RTNotify/run_test.pl:
+ * orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerConsumer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerSupplier.cpp:
+ * orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/ClientInitializer.cpp:
+ * orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerClient.cpp:
+ * orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/README:
+ * orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/run_test.pl:
+ * orbsvcs/DevGuideExamples/Security/ParticipatingApp/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/Security/PolicyControllingApp/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerServer.cpp:
+ * orbsvcs/DevGuideExamples/ValueTypes/Notify/run_test.pl:
+ * orbsvcs/DevGuideExamples/readme.txt:
+
+ Merge DevGuideExamples changes from TAO 1.6a.
+
+Mon Jun 8 22:25:23 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * bin/tao_orb_tests.lst:
+ * tests/Bug_3695_Regression:
+ * tests/Bug_3695_Regression/Bug_3695.cpp:
+ * tests/Bug_3695_Regression/Bug_3695_Regression.mpc:
+ * tests/Bug_3695_Regression/run_test.pl:
+
+ Added a new test, this will fail until the patch is committed
+ tomorrow (see bugzilla).
+
+Mon Jun 8 19:42:36 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * bin/tao_orb_tests.lst:
+
+ TransportCurrent is not available with CORBA/e compact or micro.
+
+Mon Jun 8 19:18:58 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * MPC/config/taodefaults.mpb:
+
+ Fix a bad comment.
+
+ * docs/compiler.html:
+
+ s/gperf/ace_gperf/ in a few places that must have been missed when
+ the name of this executable was changed a year ago.
+
+ * docs/rtcorba/features.html:
+
+ Fix the name of the -RTORBNetworkPriorityMapping option.
+
+ * orbsvcs/Notify_Service/README:
+
+ Add information about -LoggingInterval and how to use it.
+
+ * orbsvcs/examples/Notify/MC/monitor/monitor.cpp:
+
+ Fix a bug in how Numeric statistics print their last value.
+
+ * tests/Bug_2593_Regression/run_test.pl:
+
+ Use a random port instead of hard-coding :4444.
+
+ * tests/IPV6/run_test.pl:
+
+ This test requires -ORBUseSharedProfile 0, even though it's the
+ default now that might change in the future and it's safer to be
+ explicit.
+
+ * tests/ORB_Local_Config/Two_DLL_ORB/Two_DLL_ORB.mpc:
+
+ Added an "after" needed for the single-threaded configuration.
+
+ * tests/ORB_Local_Config/ORB_Local_Config.mwc:
+
+ Removed this file. This test doesn't need its own workspace.
+
+Mon Jun 8 06:41:03 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.h:
+ Added missing include.
+
+Sat Jun 6 05:58:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Notify/Bug_3688b_Regression/*:
+ * bin/tao_other_tests.lst:
+ Added initial version of this test again as 3688b and enabled
+ that also in our test suite
+
+Sat Jun 6 00:31:39 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * orbsvcs/tests/Notify/Bug_3688_Regression/consumer.cpp:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/supplier.cpp:
+
+ Corrected the test scenario. The filter constraint is
+ "$data == 1 or $data == 2 or $data == 4" and the supplier push
+ event with filterable_data "data=5". Before the fix, the filter
+ constraint was not evaluated so it will receive events. With the
+ fix, the constraint was evaluated so the consumer should not
+ receive the event.
+
+Fri Jun 05 22:45:57 UTC 2009 Trevor Fields <fields_t@ociweb.com>
+
+ * orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp:
+
+ Changed enqueue method to log and return -1 when the enqueue is
+ not attempted. This should help identify the case where the
+ enqueues are not occurring and memory is leaking.
+
+Fri Jun 5 20:42:42 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * TAO_IDL/contrib/mcpp/directive.cpp:
+ * TAO_IDL/contrib/mcpp/eval.cpp:
+ * TAO_IDL/contrib/mcpp/internal.H:
+ * TAO_IDL/contrib/mcpp/lib.cpp:
+ * TAO_IDL/contrib/mcpp/main.cpp:
+ * TAO_IDL/contrib/mcpp/support.cpp:
+ * TAO_IDL/contrib/mcpp/system.cpp:
+
+ Porting for Borland.
+
+Fri Jun 5 21:01:43 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp:
+
+ Fixed a bug in build_tree() that ignored the user defined
+ constraint expression when the domain name or event type is
+ defined.
+
+ * orbsvcs/tests/Notify/Bug_3688_Regression/Bug_3688_Regression.mpc:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/common.h:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/consumer.cpp:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/run_test.pl:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/supplier.cpp:
+
+ Added simple test based on Bug_1884_Regression test.
+
+ * orbsvcs/tests/Notify/Bug_3688_Regression/Bug_3688.mpc:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/DllORB.h:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/DllORB.cpp:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/TestBroadcaster.h:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/TestBroadcaster.cpp:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/TestListener.h:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/TestListener.cpp:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/bug3688_export.h:
+ * orbsvcs/tests/Notify/Bug_3688_Regression/server.cpp:
+
+ Removed these files.
+
+ * bin/tao_other_tests.lst:
+
+ Added Bug_3688_Regression test.
+
+ * orbsvcs/tests/Notify/Bug_1884_Regression/consumer.cpp:
+
+ Made received flag set true when consumer receives message. It did
+ not show any problem is because the test defaults to not expecting
+ to receive events.
+
+Fri Jun 5 17:37:27 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * TAO_IDL/contrib/mcpp/directive.cpp:
+ * TAO_IDL/contrib/mcpp/eval.cpp:
+ * TAO_IDL/contrib/mcpp/expand.cpp:
+ * TAO_IDL/contrib/mcpp/internal.H:
+ * TAO_IDL/contrib/mcpp/main.cpp:
+ * TAO_IDL/contrib/mcpp/mbchar.cpp:
+ * TAO_IDL/contrib/mcpp/mcpp_out.h:
+ * TAO_IDL/contrib/mcpp/noconfig.H:
+ * TAO_IDL/contrib/mcpp/support.cpp:
+ * TAO_IDL/contrib/mcpp/system.H:
+ * TAO_IDL/contrib/mcpp/system.cpp:
+
+ Porting for Windows/VC8.
+
+Fri Jun 5 16:33:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp:
+ sequences use CORBA::ULong, use const, various layout changes
+
+ * orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp:
+ * orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp:
+ Const and layout changes
+
+Fri Jun 5 14:35:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp:
+ Layout changes
+
+ * orbsvcs/orbsvcs/Notify/FilterAdmin.inl:
+ Initialise pointer with 0
+
+ * orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp:
+ Const changes, debug changes, and initialise pointer with 0
+
+ * orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp:
+ Debug changes
+
+ * orbsvcs/orbsvcs/Notify/Proxy.inl:
+ Const/bool changes
+
+Fri Jun 5 13:48:21 UTC 2009 William R. Otte <wotte@dre.vanderbilt.edu>
+
+ * TAO_IDL/contrib/mcpp/Makefile.am:
+ * TAO_IDL/contrib/mcpp/cc1.cpp:
+ * TAO_IDL/contrib/mcpp/configed.H:
+ * TAO_IDL/contrib/mcpp/directive.cpp:
+ * TAO_IDL/contrib/mcpp/eval.cpp:
+ * TAO_IDL/contrib/mcpp/expand.cpp:
+ * TAO_IDL/contrib/mcpp/internal.H:
+ * TAO_IDL/contrib/mcpp/main.cpp:
+ * TAO_IDL/contrib/mcpp/main_libmcpp.c:
+ * TAO_IDL/contrib/mcpp/mbchar.cpp:
+ * TAO_IDL/contrib/mcpp/mcpp.mpc:
+ * TAO_IDL/contrib/mcpp/mcpp_lib.h:
+ * TAO_IDL/contrib/mcpp/mcpp_out.h:
+ * TAO_IDL/contrib/mcpp/noconfig.H:
+ * TAO_IDL/contrib/mcpp/support.cpp:
+ * TAO_IDL/contrib/mcpp/system.H:
+ * TAO_IDL/contrib/mcpp/system.cpp:
+ * TAO_IDL/contrib/mcpp/testmain.c:
+
+ Updated mcpp version to 2.7.2.
+
+Fri Jun 5 12:06:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Notify/Bug_3688_Regression/*
+ New regression test
+
+ * bin/tao_other_tests.lst:
+ Added 3688
+
+Fri Jun 5 08:20:56 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Bug_3683_Regression/Echo_Client_i.cpp:
+ Fixed compilation warning.
+
+Thu Jun 4 11:52:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_other_tests.lst:
+ 3646d should run now
+
+Thu Jun 4 11:15:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ Another set of cleanup improvements
+
+ * orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp:
+ Added a missing \n
+
+ * orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp:
+ Use a loop and more worker threads
+
+Thu Jun 4 10:17:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ Do better cleanup, check for nil, use the correct wait() methods
+
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp:
+ * orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp:
+ Use a loop instead of duplicated code
+
+ * orbsvcs/tests/Notify/Bug_3646d_Regression/Bug_3646d_Regression.mpc:
+ We don't need a consumer
+
+ * orbsvcs/tests/Notify/Bug_3646d_Regression/Consumer.cpp:
+ Deleted from the repository
+
+ * orbsvcs/tests/Notify/Bug_3646d_Regression/run_test.pl:
+ Simplified
+
+Thu Jun 4 09:13:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ * orbsvcs/Notify_Service/Notify_Service.h:
+ Set the ORB in the worker to nil and also cancel the timer
+ when we don't need it anymore
+
+Thu Jun 4 07:21:46 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Bug_3676_Regression/Bug_3676_Regression.mpc:
+
+ Properly fixed mpc which requires corba_messaging.
+
+Thu Jun 4 00:33:14 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tao/Compression/Base_Compressor.cpp:
+ It seems the syntax of '<::' or '<:' is converted to '[' by the
+ compiler or preprocessor. Changing the syntax to be '< ::'
+ resolves that.
+
+Wed Jun 3 12:54:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ Make sure we have use the name service before using it and don't
+ use asserts
+
+Wed Jun 3 12:30:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/Incoming_Message_Stack.h:
+ Updated for CB2009 Update 3
+
+Wed Jun 3 12:16:21 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tao/ZIOP/ZIOP.cpp
+ * tao/ZIOP/ZIOP.h
+ Applied ZIOP beta 2 spec. Compression ratio is defined
+ as float and renamed struct CompressedData into
+ CompressionData
+
+ * tao/ZIOP/ZIOP.pidl
+ Renamed struct CompressedData into CompressionData
+ (according to ZIOP beta 2 spec).
+
+ * tao/Compression/Base_Compressor.cpp
+ * tao/Compression/Compression.pidl
+ * tests/ZIOP/client.cpp
+ * tests/ZIOP/server.cpp
+ Applied ZIOP beta 2 spec. Compression ratio is defined
+ as float.
+
+Wed Jun 3 09:07:07 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Bug_3676_Regression/Bug_3676_Regression.mpc:
+ * bin/tao_orb_tests.lst:
+
+ Test 3676 requires corba_messaging.
+
+Wed Jun 3 08:20:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ Only run the orb when we have no orb threads
+
+Tue Jun 2 18:40:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_other_tests.lst:
+ Added 3646d
+
+Tue Jun 2 13:14:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp
+ * orbsvcs/orbsvcs/Trader/Trader.h
+ Fixed problems with CB2009 Update 3
+
+Tue Jun 2 07:21:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Notify/Bug_3646d_Regression/*:
+ Another test that loads and unload the notify service, this one
+ also loads the naming service and uses one run thread
+
+ * orbsvcs/orbsvcs/Naming/Hash_Naming_Context.cpp:
+ Const change
+
+Tue Jun 2 06:50:50 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Added Bug 3683
+
+Tue Jun 2 06:47:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * docs/Options.html:
+ When we use ClientConnectionHandler RW we don't use the LF
+ loop. In case the buffers are full, we use the flushing
+ strategy for which the default is leader follower, but that
+ will not work because we don't use the lf loop in this case.
+ Added a note the ClientConnectionHandler RW needs a
+ FlushingStrategy of blocking
+
+ * tests/Bug_3683_Regression/Echo_Client_i.cpp
+ * tests/Bug_3683_Regression/Echo_Client_i.h
+ * tests/Bug_3683_Regression/run_test.pl
+ * tests/Bug_3683_Regression/Simple_util.cpp
+ Use a commandline argument -p to indicate the size of the
+ string in megabytes.
+
+ * tests/Bug_3683_Regression/svc.conf
+ Set the FlushingStrategy to blocking
+
+ * tao/Transport.cpp:
+ Small layout to debug message
+
+ * tao/PortableServer/Root_POA.cpp:
+ * tao/LocateRequest_Invocation_Adapter.cpp
+ Layout change
+
+Fri May 29 12:47:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/Transport.cpp (schedule_output):
+ Log an error when the reactor is zero
+
+Fri May 29 11:27:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/ZIOP/TestCompressor/TAO_TestCompressor.rc:
+ Fixed for WinCE GCC
+
+Fri May 29 10:29:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3683_Regression/*:
+ New regression test
+
+Thu May 28 14:56:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Bug_3673_Regression/client.cpp:
+ Print the iteration count when we get an exception
+
+Thu May 28 14:12:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Bug_3673_Regression/client.cpp:
+ Field id of name 0 has to be set
+
+Thu May 28 07:32:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ Fix a bug when unregistering from the naming service
+
+Wed May 27 18:10:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/ORB_Core.cpp:
+ * TAO_IDL/tao_idl.cpp:
+ Unicode fixes
+
+ * tao/PortableServer/Root_POA.h:
+ Layout changes
+
+Wed May 27 18:03:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.h:
+ Fixed compile error with OpenVMS
+
+Wed May 27 11:58:05 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * tests/Bug_3647_Regression/client.cpp:
+ I guess not all compilers know that 'and' is a keyword in C++.
+
+ * tests/Bug_3647_Regression/Middle_Impl.cpp:
+ Make sure I use the exceptions caught in this program, at least
+ for debugging output. Eliminates warnings for VC8
+
+Wed May 27 03:00:37 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * tests/Bug_3647_Regression/client.cpp:
+ * tests/Bug_3647_Regression/middle_server.cpp:
+ * tests/Bug_3647_Regression/backend_server.cpp:
+ Fixed Unicode build problems.
+
+Tue May 26 17:09:00 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * tao/Transport.h:
+ * tao/IIOP_Transport.h:
+ * tao/Transport.cpp:
+ * tao/IIOP_Transport.cpp:
+ * tests/Bug_3647_Regression/client.cpp:
+ * tests/Bug_3647_Regression/Middle_Impl.cpp:
+ * tests/Bug_3647_Regression/Middle_Impl.h:
+ * tests/Bug_3647_Regression/middle_server.cpp:
+ * tests/Bug_3647_Regression/Test.idl:
+ * tests/Bug_3647_Regression/Backend_Impl.cpp:
+ * tests/Bug_3647_Regression/run_test.pl:
+ * tests/Bug_3647_Regression/Backend_Impl.h:
+ Fix fuzz problems, tabs, indentation in perl scripts, the Id
+ stuff, etc.
+
+Tue May 26 11:25:03 UTC 2009 Carlos O'Ryan <coryan@glamdring>
+
+ * tao/Transport.h:
+ * tao/IIOP_Transport.h:
+ * tao/IIOP_Transport.cpp:
+ I had the signature of sendfile() completely wrong in
+ IIOP_Transport. Lucky for me, Johnny pointed out the warnings
+ in the Solaris10_Studio12_Debug build.
+ I also had to move the io_timeout() function in Tranport to the
+ protected section. This whole sendfile() thing looks like a
+ hack.
+
+ * tao/Transport.cpp:
+ Fix Unicode build problem. Again, thanks to Johnny for keeping
+ an eye out for me.
+
+Tue May 26 09:26:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_orb_tests.lst:
+ Added Bug 3672 regression as not fixed
+
+Mon May 25 19:05:22 UTC 2009 Carlos O'Ryan <coryan@atdesk.com>
+
+ * Fixed bug #3647. In this commit I am merging the changes form
+ the Bug_3647_Regression branch. The exact command used to merge
+ the changes was:
+ $ svn merge --accept postpone -r85163:HEAD \
+ https://svn.dre.vanderbilt.edu/DOC/Middleware/\
+ branches/Bug_3647_Regression .
+
+ The typical conflict in the ChangeLog was manually resolved.
+
+ * bin/tao_orb_tests.lst:
+ Add the new test, in alphabetical order, preserve tests added in
+ trunk.
+
+ * tao/Transport.h:
+ * tao/Transport.cpp:
+ Restore the ACE_Countdown_Time object in drain_queue_helper().
+ I removed it because I thought there were no side effects and it
+ was not needed, but after Johnny W asked, I realised it was
+ indeed important.
+ The header changes are required because the Drain_Constraints
+ object needs a non-const ACE_Time_Value* parameter now.
+
+ * tests/Bug_3647_Regression/Backend_Impl.cpp:
+ * tests/Bug_3647_Regression/backend_server.cpp:
+ * tests/Bug_3647_Regression/Backend_Impl.hpp:
+ * tests/Bug_3647_Regression/Backend_Impl.h:
+ * tests/Bug_3647_Regression/Middle_Impl.cpp:
+ * tests/Bug_3647_Regression/Throw_Spec.h:
+ * tests/Bug_3647_Regression/Middle_Impl.hpp:
+ * tests/Bug_3647_Regression/middle_server.cpp:
+ * tests/Bug_3647_Regression/Middle_Impl.h:
+ I used a hacky macro to compile this code with both
+ TAO-1.5.1 (need throw specs) and TAO-1.6.9 (cannot have throw
+ specs)
+ I also changed the .hpp files to .h to be less consistent with
+ the .cpp files, but more consistent with the rest of ACE+TAO.
+ Thanks to Johnny to point out the ugliness before it reached the
+ main branch.
+
+ * tao/Transport.h:
+ * tao/Transport.cpp:
+ * tao/GIOP_Message_Base.cpp:
+ * tao/Block_Flushing_Strategy.cpp:
+ * tao/Connection_Handler.cpp:
+ Seemingly completed the fixes for 3647.
+ Fundamentally, the calls to sendv() need to use a timeout
+ parameter when called with the blocking flushing strategy or
+ with the read-write waiting strategy *and* when there is a
+ timeout.
+ Unfortunately, the point(s) where we call sendv() does not have
+ enough context to determine if the parameter is needed.
+ I changed the Transport class to pass a little struct with both
+ the timeout value and flag to indicate if using blocking I/O
+ calls was desired.
+ The caller makes the determination and passes the parameter into
+ the Transport object, for example, the Block_Flushing_Strategy
+ certainly wants to use blocking I/O calls.
+ Several interface in TAO_Transport changed, and so did its
+ callers.
+
+ * tests/Bug_3647_Regression/client.cpp:
+ * tests/Bug_3647_Regression/Middle_Impl.cpp:
+ * tests/Bug_3647_Regression/Backend_Impl.cpp:
+ * tests/Bug_3647_Regression/run_test.pl:
+ Fine-tune the test so it would pass all the time. The default
+ parameters showed the problem before the changes, but then
+ failed due to a timeout during shutdown.
+ Also expanded run_test.pl to test with SYNC_NONE vs. other
+ policies. It was important to me to verify that the test
+ continues to fail with SYNC_WITH_SERVER, so my "fine tuning" did
+ not hide real errors.
+
+ * tao/Transport.h:
+ * tao/Transport.cpp:
+ First attempt at fixing bug 3647.
+ The ORB is blocking in ACE::sendv(), because we are passing a
+ timeout parameter which results in blocking for the prescribed
+ timeout period on select(). But on a select() call with only
+ one socket!
+ What we want to achieve is pass the timeout parameter when we
+ are using the blocking configurations of the ORB, such as RW
+ waiting strategies.
+ This fix, changes the way the timeout parameter to sendv() calls
+ is computed, by looking at the wait_strategy.
+ Unfortunately, this missed the blocking flushing strategies,
+ where we want to block too! The Oneway_Send_Timeout tests
+ caught this.
+ So more work is needed, but I want to save the work first.
+
+ * tests/Bug_3647_Regression:
+ * tests/Bug_3647_Regression/Bug_3647_Regression.mpc:
+ * tests/Bug_3647_Regression/run_test.pl:
+ * tests/Bug_3647_Regression/README:
+ * tests/Bug_3647_Regression/svc.conf:
+ * tests/Bug_3647_Regression/Test.idl:
+ * tests/Bug_3647_Regression/Throw_Spec.h:
+ Add a regression test for bug #3647. The test consists of three
+ processeses:
+
+ * tests/Bug_3647_Regression/Backend_Impl.hpp:
+ * tests/Bug_3647_Regression/Backend_Impl.cpp:
+ * tests/Bug_3647_Regression/backend_server.cpp:
+ The backend server receives oneway calls. On request, it calls
+ sleep for a long period of time to block its I/O on particular
+ sockets.
+
+ * tests/Bug_3647_Regression/Middle_Impl.hpp:
+ * tests/Bug_3647_Regression/Middle_Impl.cpp:
+ * tests/Bug_3647_Regression/middle_server.cpp:
+ A middle tier server, which never calls sleep, but because of
+ bug 3647 it blocks trying to make calls on the backend server,
+ though it should not.
+
+ * tests/Bug_3647_Regression/client.cpp:
+ The client coordinates the work. It setups connections between
+ all the servers and makes calls on the middle tier server. It
+ expects the middle tier server to be always available, but it
+ did not before the fixes.
+
+ * bin/tao_orb_tests.lst:
+ Add Bug_3647_Regression to the list.
+
+Mon May 25 14:26:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Bug_3672_Regression:
+ New test for bug 3672, we seem to have a resource leak with AMI
+
+Mon May 25 12:54:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ * orbsvcs/Notify_Service/Notify_Service.h:
+ * orbsvcs/Notify_Service/README:
+ By default the notify service does a shutdown of the global
+ orb and its dispatching ORB. In case the notify service is
+ loaded into a process using service config this could cause
+ issues to other parts that use the same ORBs. Added a
+ -ShutdownORB and -ShutdownDispatchingORB which are default
+ 1, but they could be set to 0 to not shutdown the mentioned
+ ORB
+
+Fri May 22 15:02:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/README:
+ Extended this file
+
+Fri May 22 09:56:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/orbsvcs/Trader/Constraint_l.cpp:
+ * orbsvcs/tests/FT_App/FT_Client.cpp:
+ Use ACE_OS::fileno
+
+Wed May 20 11:50:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * tests/Bug_3674_Regression/test.cpp:
+
+ Ensure that RootPOA, then orb are destroyed.
+
+Wed May 20 09:35:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/orbsvcs/AV.rc
+ * orbsvcs/orbsvcs/CosConcurrency.rc
+ * orbsvcs/orbsvcs/CosEvent.rc
+ * orbsvcs/orbsvcs/CosEvent_Serv.rc
+ * orbsvcs/orbsvcs/CosEvent_Skel.rc
+ * orbsvcs/orbsvcs/CosLifeCycle.rc
+ * orbsvcs/orbsvcs/CosLoadBalancing.rc
+ * orbsvcs/orbsvcs/CosNaming.rc
+ * orbsvcs/orbsvcs/CosNaming_Serv.rc
+ * orbsvcs/orbsvcs/CosNaming_Skel.rc
+ * orbsvcs/orbsvcs/CosNotification.rc
+ * orbsvcs/orbsvcs/CosNotification_Serv.rc
+ * orbsvcs/orbsvcs/CosNotification_Skel.rc
+ * orbsvcs/orbsvcs/CosProperty.rc
+ * orbsvcs/orbsvcs/CosTime.rc
+ * orbsvcs/orbsvcs/CosTrading.rc
+ * orbsvcs/orbsvcs/CosTrading_Serv.rc
+ * orbsvcs/orbsvcs/CosTrading_Skel.rc
+ * orbsvcs/orbsvcs/DsEventLogAdmin.rc
+ * orbsvcs/orbsvcs/DsLogAdmin.rc
+ * orbsvcs/orbsvcs/DsNotifyLogAdmin.rc
+ * orbsvcs/orbsvcs/FaultTolerance.rc
+ * orbsvcs/orbsvcs/IFRService.rc
+ * orbsvcs/orbsvcs/PortableGroup.rc
+ * orbsvcs/orbsvcs/RT_Notification.rc
+ * orbsvcs/orbsvcs/RTEvent.rc
+ * orbsvcs/orbsvcs/RTEvent_Serv.rc
+ * orbsvcs/orbsvcs/RTEvent_Skel.rc
+ * orbsvcs/orbsvcs/RTSched.rc
+ * orbsvcs/orbsvcs/RTSchedEvent.rc
+ * orbsvcs/orbsvcs/Security.rc
+ * orbsvcs/orbsvcs/SSLIOP.rc
+ * orbsvcs/orbsvcs/Svc_Utils.rc
+ Use unix style of includes to work with cegcc
+
+Wed May 20 09:32:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/SmartProxies/SmartProxies.rc
+ * tao/BiDir_GIOP/TAO_BiDir_GIOP.rc
+ * tao/Compression/bzip2/TAO_Bzip2Compressor.rc
+ * tao/CodecFactory/TAO_CodecFactory.rc
+ * tao/Compression/TAO_Compression.rc
+ * tao/DynamicAny/TAO_DynamicAny.rc
+ * tao/DynamicInterface/TAO_DynamicInterface.rc
+ * tao/IFR_Client/TAO_IFR_Client.rc
+ * tao/ImR_Client/TAO_IMR_Client.rc
+ * tao/IORInterceptor/TAO_IORInterceptor.rc
+ * tao/IORManipulation/TAO_IORManip.rc
+ * tao/IORTable/TAO_IORTable.rc
+ * tao/Compression/lzo/TAO_LzoCompressor.rc
+ * tao/Messaging/TAO_Messaging.rc
+ * tao/ObjRefTemplate/TAO_ObjRefTemplate.rc
+ * tao/PortableServer/TAO_PortableServer.rc
+ * tao/RTCORBA/TAO_RTCORBA.rc
+ * tao/RTPortableServer/TAO_RTPortableServer.rc
+ * tao/RTScheduling/TAO_RTScheduler.rc
+ * tao/Strategies/TAO_Strategies.rc
+ * tao/Valuetype/TAO_Valuetype.rc
+ * tao/Compression/zlib/TAO_ZlibCompressor.rc
+ * tao/TypeCodeFactory/TypeCodeFactory.rc
+ Use unix style of includes to work with cegcc
+
+Wed May 20 09:21:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/Client_Leaks/Process_Factory.cpp:
+ Use ACE_ERRNO_GET
+
+Wed May 20 09:06:43 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/Asynch_Queued_Message.cpp:
+ * tao/Leader_Follower.cpp
+ Layout changes
+
+ * tao/GIOP_Message_Base.cpp
+ * tao/IIOP_Transport.cpp
+ * tao/RTCORBA/RT_Protocols_Hooks.cpp
+ * tao/Strategies/DIOP_Transport.cpp
+ * tao/Transport.cpp
+ * tao/Transport_Connector.cpp
+ Use ACE_ERRNO_GET
+
+ * tao/Messaging/Messaging_Queueing_Strategies.cpp
+ Const changes
+
+ * tao/SystemException.cpp
+ Initialise pointer with 0
+
+Wed May 20 07:26:43 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * TAO_IDL/be/be_interface.cpp
+ * TAO_IDL/util/utl_global.cpp
+
+ Fixed compiler errors on CE gcc on Cygwin.
+
+Tue May 19 12:12:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * tao/Invocation_Base.h:
+ * tao/Invocation_Base.cpp:
+
+ Cosmetic variable name change to better conform to coding
+ standard.
+
+ * tests/Bug_3674_Regression/test.cpp:
+
+ Ensure that PICurrent global is destroyed, BEFORE orb
+ is destroyed.
+
+Tue May 19 09:43:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ Unbind also the event channels from the naming service
+
+Mon May 18 14:47:24 UTC 2009 Abdullah Sowayan <sowayan@gmail.com>
+
+ * tao/LocalObject.h:
+ * tao/LocalObject.inl:
+
+ Disabled fuzz check_for_TAO_Local_RefCounted_Object.
+
+Mon May 18 14:05:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * tao/Makefile.am:
+
+ Added new files from below.
+
+Mon May 18 13:38:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * bin/tao_orb_tests.lst:
+ * tao/RequestInterceptor_Adapter.h:
+ * tao/RequestInterceptor_Adapter.cpp:
+ * tao/tao.mpc:
+ * tao/Invocation_Base.h:
+ * tao/Invocation_Base.cpp:
+ * tao/ClientRequestInterceptor_Adapter.h:
+ * tao/PI_Server/ServerInterceptorAdapter.h:
+ * tao/PI/RequestInterceptor_Adapter_Impl.cpp:
+ * tao/PI/RequestInterceptor_Adapter_Impl.h:
+ * tao/PI/ClientRequestInterceptor_Adapter_Impl.h:
+ * tao/PI/PICurrent_Impl.h:
+ * tao/PI/PICurrent.cpp:
+ * tao/PI/PICurrent_Impl.cpp:
+ * tao/PI/PICurrent_Impl.inl:
+ * tao/ServerRequestInterceptor_Adapter.h:
+
+ Bugzilla 3674 Fix.
+
+Mon May 18 10:39:46 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Bug_3676_Regression/Hello.mpc:
+
+ Renamed MPC file to Bug_3676_Regression.mpc.
+
+Mon May 18 09:15:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * tests/Bug_3674_Regression/test.cpp:
+
+ TAO_Local_RefCounted_Object is deprecated. Changed
+ it to CORBA::LocalObject.
+
+Mon May 18 08:09:16 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tao/Transport.h:
+ * tao/LocateRequest_Invocation.cpp:
+ * tao/Transport.inl:
+
+ Fixed bug#3676. Now after sending LocateRequest message
+ transport will remain in a state when no first request is
+ send. This is necessary for codeset negotiation which
+ happens in the first normal request.
+
+ * tests/Bug_3676_Regression/client.cpp:
+ * tests/Bug_3676_Regression/Hello.mpc:
+ * tests/Bug_3676_Regression/Hello.cpp:
+ * tests/Bug_3676_Regression/Test.idl:
+ * tests/Bug_3676_Regression/server.cpp:
+ * tests/Bug_3676_Regression/Hello.h:
+ * tests/Bug_3676_Regression/README:
+ * tests/Bug_3676_Regression/run_test.pl:
+ * bin/tao_orb_tests.lst:
+
+ Added a regression test and scheduled it for run.
+
+Fri May 15 12:50:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * tests/Bug_3674_Regression/test.cpp:
+
+ Removed unused parameter warnings.
+
+Fri May 15 11:50:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Bug_2800_Regression/NamingTask.cpp:
+ * orbsvcs/tests/Bug_3673_Regression/NamingTask.cpp:
+ Fixed memory leaks
+
+Fri May 15 10:50:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ Only print debug messages when ORB debug is enabled
+
+ * orbsvcs/tests/Bug_3673_Regression/Bug_3873_Regression.mpc:
+ Remvoed
+
+ * orbsvcs/tests/Bug_3673_Regression/Bug_3673_Regression.mpc:
+ Added
+
+ * orbsvcs/tests/Bug_3673_Regression/client.cpp:
+ Make 10 iterations
+
+Fri May 15 08:10:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * tests/Bug_3674_Regression/test.cpp:
+
+ Fixed Fuzz error (MS_VER_ 1200)
+
+Wed May 13 19:44:04 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * tao/Strategies/DIOP_Acceptor.cpp:
+
+ Fixed a crash that occurs with -ORBUseSharedProfile 1.
+
+Wed May 13 16:33:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_other_tests.lst:
+ Added 3673
+
+Wed May 13 16:30:00 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Bug_3673_Regression/*:
+ Added new test for bug 3673
+
+ * orbsvcs/tests/ior_corbaname/ior_corbaname_client_i.cpp:
+ Const change
+
+Wed May 13 13:35:00 UTC 2009 Simon Massey <sma at prismtech dot com>
+
+ * bin/tao_orb_tests.lst:
+ * tests/Bug_3674_Regression/test.idl:
+ * tests/Bug_3674_Regression/run_test.pl:
+ * tests/Bug_3674_Regression/Bug_3674_Regression.mpc:
+ * tests/Bug_3674_Regression/test.cpp:
+
+ Added regression test for PICurrent TSC client corruption.
+
+Tue May 12 08:26:55 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Bug_2234_Regression/server.cpp:
+ * tests/Bug_3171_Regression/server.cpp:
+ * tests/DII_AMI_Forward/orb_initializer.h:
+
+ TAO_Local_RefCounted_Object is deprecated. Changed
+ it to CORBA::LocalObject.
+
+Mon May 11 09:54:38 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/DII_AMI_Forward/server_interceptor.cpp:
+ Fixed fuzz error.
+
+Mon May 11 07:21:16 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/DII_AMI_Forward/server_interceptor.cpp:
+ Fixed compile warning.
+
+Fri May 8 19:30:55 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * examples/RTCORBA/Activity/Builder.cpp:
+
+ Really fix fuzz.
+
+Fri May 8 14:23:07 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Bug_2234_Regression/server.cpp:
+ * tests/Bug_3171_Regression/server.cpp:
+ * tests/Bug_2345_Regression/server.cpp:
+ * tests/DII_AMI_Forward/server_interceptor.cpp:
+ * tests/DII_AMI_Forward/server_interceptor.h:
+ * tests/DII_AMI_Forward/orb_initializer.h:
+
+ Fixed memory leaks in these tests.
+
+ * tao/ORB.cpp:
+
+ Fixed allocation of a string with incorrect length.
+
+Thu May 7 22:46:50 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * tests/RTCORBA/Bug_3643_Regression/Bug_3643_Regression.mpc:
+
+ Prevent building the server for corba_e/minimum_corba.
+
+Thu May 7 19:45:01 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * examples/RTCORBA/Activity/Builder.cpp:
+
+ Fuzz fix.
+
+ * orbsvcs/tests/ImplRepo/ReconnectServer/client.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverA.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp:
+
+ Clean up compiler errors.
+
+Thu May 7 18:14:03 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_visitor_exception\exception_ch.cpp:
+ * TAO_IDL/be/be_visitor_home\home_ch.cpp:
+ * TAO_IDL/be/be_visitor_interface\interface_ch.cpp:
+ * TAO_IDL/be/be_visitor_interface\interface_ci.cpp:
+ * TAO_IDL/be/be_visitor_interface\amh_ch.cpp:
+ * TAO_IDL/be/be_visitor_interface\ami_interface_ch.cpp:
+ * TAO_IDL/be/be_visitor_component\component_ch.cpp:
+ * TAO_IDL/be/be_visitor_component\component_ci.cpp:
+ * TAO_IDL/be/be_visitor_array\array_ch.cpp:
+ * TAO_IDL/be/be_visitor_valuebox\valuebox_ch.cpp:
+ * TAO_IDL/be/be_visitor_union\union_ch.cpp:
+ * TAO_IDL/be/be_visitor_valuetype\valuetype_obv_ch.cpp:
+ * TAO_IDL/be/be_visitor_valuetype\valuetype_init_ch.cpp:
+ * TAO_IDL/be/be_visitor_valuetype\valuetype_ch.cpp:
+
+ Removed generation of #ifdef guards for all type declarations
+ except sequences (duplicate anonymous sequence declarations
+ of the same element type, and thus with the same constructed
+ name, can appear in the same scope).
+
+ * TAO_IDL/be/be_helper.cpp:
+ * TAO_IDL/be/be_codegen.cpp:
+
+ Cosmetic changes.
+
+Thu May 7 13:01:00 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Bug_2084_Regression/Hello.cpp:
+ * tests/Bug_2084_Regression/EventNode.cpp:
+ * tests/Bug_2084_Regression/Collocated_Test.cpp:
+ * tests/Bug_2084_Regression/run_test.pl:
+ * tests/Bug_1482_Regression/Client_Task.cpp:
+ * tests/Bug_1482_Regression/Client_Task.h:
+ * tests/Bug_1482_Regression/server.cpp:
+ * tests/Bug_1482_Regression/run_test.pl:
+ * tests/COIOP/Hello.cpp:
+ * tests/Collocation_Oneway_Tests/Hello.cpp:
+ * tests/Collocation_Exception_Test/Hello.cpp:
+ * tests/Bug_1568_Regression/server.cpp:
+ * tests/DII_Collocation_Tests/oneway/Hello.cpp:
+ * tests/DII_Collocation_Tests/oneway/run_test.pl:
+ * tests/DII_Collocation_Tests/twoway/Hello.cpp:
+ * tests/DII_Collocation_Tests/twoway/run_test.pl:
+
+ Fixed memory leaks in these tests. And also changed
+ perl scripts so that no collocation is used when it was
+ meant.
+
+Thu May 7 01:43:48 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/include/drv_extern.h:
+ * TAO_IDL/driverdrv_preproc.cpp(DRV_pre_proc):
+
+ Doubled the size of the command line buffer to 8192
+ and added a check of the return value from calling
+ command_line() on ACE_Process_Options. Thanks to
+ Russ Noseworthy <j dot russell dot noseworthy at said dot com>
+ for sending in the patches.
+
+Wed May 6 12:53:20 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * tests/Bug_1269_Regression/Server_Timer.cpp:
+ * tests/Bug_1270_Regression/Server_Timer.cpp:
+ * tests/Bug_1361_Regression/Echo.cpp:
+ Fixed memset's parameter order.
+
+Tue May 5 13:26:24 UTC 2009 Olli Savia <ops@iki.fi>
+
+ * examples/RTCORBA/Activity/Builder.cpp:
+ Fixed memset's parameter order.
+
+Tue May 5 08:41:48 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Bug_2356_Regression/client.cpp:
+ * tests/Bug_2356_Regression/ami_test_i.cpp:
+
+ Fixed memory leaks.
+
+Mon May 4 18:27:17 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * tests/ForwardUponObjectNotExist/client.cpp:
+
+ Increased the orb run time to maximum 30 seconds to resolve the
+ test failure on some platforms that reply is not received
+ before orb is shutdown.
+
+Fri May 1 19:12:14 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * tests/ForwardUponObjectNotExist/client.cpp:
+
+ Fixed compilation errors on wchar builds.
+
+Fri May 1 08:09:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Notify/Bug_3646c_Regression/*:
+ New test that where we use the TAO_Notify_Service to create
+ multiple channels using service config. This closes enhancement
+ issue 3646
+
+ * bin/tao_other_tests.lst:
+ Added new test
+
+Fri May 1 07:05:29 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * tests/ForwardUponObjectNotExist/ForwardUponObjectNotExist.mpc:
+ * tests/ForwardUponObjectNotExist/README:
+ * tests/ForwardUponObjectNotExist/client.cpp:
+ * tests/ForwardUponObjectNotExist/run_test.pl:
+ * tests/ForwardUponObjectNotExist/server.cpp:
+ * tests/ForwardUponObjectNotExist/test.idl:
+ * tests/ForwardUponObjectNotExist/test_i.h:
+ * tests/ForwardUponObjectNotExist/test_i.inl:
+ * tests/ForwardUponObjectNotExist/test_i.cpp:
+
+ Added test for -ORBForwardInvocationOnObjectNotExist option
+ and feature without using any service.
+
+ * bin/tao_orb_tests.lst:
+
+ Added ForwardUponObjectNotExist test.
+
+Thu Apr 30 21:31:11 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.cpp:
+
+ This test uses an arbitrary constant from the PortableServer module
+ so we'll use one that's present in CORBA/e Compact configurations.
+
+Thu Apr 30 18:35:47 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * tao/Synch_Invocation.cpp:
+
+ Moved the strcmp for OBJECT_NOT_EXIST to if condition instead of outside
+ of if statement to improve the performance a little bit.
+
+ * docs/Options.html:
+
+ Added description for -ORBForwardInvocationOnObjectNotExist.
+
+Wed Apr 29 13:18:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/Makefile.am:
+ Added missing files. Thanks to Steven Hartmann
+ <shartmann at militho dot com> for reporting this
+
+Wed Apr 29 07:08:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Notify/Bug_2926_Regression/DllORB.cpp:
+ Fixed compile error
+
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp:
+ Fixed variable not used warning
+
+ * orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
+ Fixed variable not used warning
+
+Tue Apr 28 20:33:21 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * tao/TAO_Server_Request.cpp:
+
+ Fixed the placement of the TAO_END_VERSIONED_NAMESPACE_DECL macro.
+
+Tue Apr 28 15:04:45 UTC 2009 Adam Mitz <mitza@ociweb.com>
+
+ * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp:
+ * tests/Sequence_Unit_Tests/string_sequence_tester.hpp:
+ * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp:
+
+ Fixed compile errors on Solaris9_i386_gcc_Debug.
+
+Tue Apr 28 10:00:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Notify/Bug_3663_Regression:
+ New test for bugzilla bug 3663, not fixed yet, seems a problem with
+ service configurator
+
+ * bin/tao_other_tests.lst
+ Added new test
+
+Tue Apr 28 09:51:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * MPC/config/tao_notify_service.mpb:
+ new base project
+
+ * orbsvcs/Notify_Service/Notify_Server.cpp:
+ * orbsvcs/Notify_Service/Notify_Service.cpp:
+ * orbsvcs/Notify_Service/Notify_Service.h:
+ * orbsvcs/Notify_Service/Notify_Service.mpc:
+ * orbsvcs/Notify_Service/Notify_Service_Export.h:
+ Moved the TAO_Notify_Service_Driver class to its own
+ DLL which then can be loaded with service configurator as
+ done in regression 3646b.
+
+ Changed -ORBRunThreads to -RunThreads, the -ORB options
+ are reserved for the ORB and shouldn't be used by
+ services. This caused problems when trying to load
+ the TAO_Notify_Service as DLL.
+
+ Make sure we destroy the ORB so that we can do multiple
+ load/unload cycles
+
+ * orbsvcs/Notify_Service/README:
+ Updated -ORBRunThreads to -RunThreads
+
+ * orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp:
+ Layout changes
+
+ * orbsvcs/orbsvcs/Notify/POA_Helper.cpp:
+ Use true/false
+
+ * orbsvcs/tests/Notify/Bug_2926_Regression/DllORB.cpp:
+ * orbsvcs/tests/Notify/Bug_3252_Regression/DllOrb.cpp
+ No need for arg converter
+
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/bug3646b_export.h
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/Bug_3646b_Regression.mpc
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.cpp
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.h
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/run_test.pl
+ * orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
+ * bin/tao_other_tests.lst
+ New regression test for loading and unloading the TAO_Notify_Service
+ dll
+
+Tue Apr 28 08:00:12 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tao/AnyTypeCode/Any_Unknown_IDL_Type.{h,cpp}:
+ Return a const object from lock_i, this fixes bugzilla 3665. Thanks to
+ Rob Beekmans <r dot a dot beekmans at philips dot com> for reporting this.
+ It is really a diab compiler bug but we can easily work around it
+
+ * tao/AnyTypeCode/Enum_TypeCode.cpp:
+ * tao/AnyTypeCode/Enum_TypeCode_Static.cpp:
+ * tao/CORBALOC_Parser.cpp:
+ * tao/Intrusive_Ref_Count_Handle_T.h
+ layout change
+
+Tue Apr 28 01:51:44 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp:
+
+ Renamed the global variable delay to avoid compilation errors on
+ QNX platform due to redefination of "delay".
+
+Mon Apr 27 16:08:54 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/Notify_Service/README:
+
+ Fixed typo
+
+
+Mon Apr 27 15:54:55 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/Notify_Service/README:
+
+ The README file was out of date with reality regarding the names
+ and purpose of some svc.conf arguments. I've cleaned up the list
+ to remove deprecated entries and add an entry for an option that
+ was overlooked before. I suspect that a previous author mistook
+ the purpose of the -ListenerThreads option to be that of the
+ -SourceThreads option. The two appear to be similar in name, but
+ in fact -ListenerThreads is a deprecated synonym for
+ -DispatchingThreads.
+
+Mon Apr 27 15:12:06 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/driver/drv_mcpp_preproc.cpp:
+ * TAO_IDL/driver/drv_preproc.cpp:
+
+ Applied patches from Ken Sedgwick <ken at bonsai dot com>
+ for platforms (including Fedora RPM) that use TAO_IDL_INCLUDE_DIR
+ instead of TAO_ROOT. This checkin closes [BUGID:3661].
+
+Mon Apr 27 03:20:52 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * orbsvcs/tests/ImplRepo/ReconnectServer/client.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverA.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test.idl:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test_i.h:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test_i.cpp:
+
+ Fixed fuzz errors and compilation errors in unicode builds.
+
+ * NEWS:
+
+ Added entry for the new features.
+
+Sat Apr 25 06:25:37 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ Added IMR changes OCI prepared for some customers.
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Options.h:
+ * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.h:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_XMLHandler.h:
+ * orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp:
+ * orbsvcs/ImplRepo_Service/Server_Info.h:
+ * orbsvcs/ImplRepo_Service/Server_Info.cpp:
+
+ Added -UnregisterIfAddressReused IMR option to enable the
+ address reuse checking upon server registering via
+ server_is_running. If a new server reuses already registered
+ server's address, the previous server will be unregistered
+ from IMR.
+
+ Current implementation registers server per POA instead of per
+ server process. The ServerId info is added to ServerInfo to
+ help identify if different POAs are from same server
+ process. The POA registering will not affect the POAs
+ registered with the same ServerId.
+
+ * tao/ImR_Client/ImR_Client.cpp:
+
+ Made server ID (set via -ORBServerId) info be part of the server
+ name info to pass to IMR. This info helps IMR to identify if two
+ poas created by same server process.
+
+ * tao/ORB_Core.cpp:
+ * tao/Synch_Invocation.cpp:
+ * tao/params.h:
+ * tao/params.inl:
+ * tao/params.cpp:
+
+ Added new ORB option -ORBForwardInvocationOnObjectNotExist to
+ support request forwarding to next available profile upon
+ receiving OBJECT_NOT_EXIST exception reply.
+
+ * orbsvcs/tests/ImplRepo/ReconnectServer/ReconnectServer.mpc:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/client.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverA.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test.idl:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test_i.h:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test_i.cpp:
+
+ Added test case for the changes.
+
+ * bin/tao_other_tests.lst:
+
+ Added ImplRepo ReconnectServer test.
+
+Sat Apr 25 06:14:45 UTC 2009 Yan Dai <dai_y@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Options.h:
+ * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.h:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_XMLHandler.h:
+ * orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp:
+ * orbsvcs/ImplRepo_Service/Server_Info.h:
+ * orbsvcs/ImplRepo_Service/Server_Info.cpp:
+
+ Added -UnregisterIfAddressReused IMR option to enable the
+ address reuse checking upon server registering via
+ server_is_running. If a new server reuses already registered
+ server's address, the previous server will be unregistered from
+ IMR.
+
+ Current implementation registers server per POA instead of per
+ server process. The ServerId info is added to ServerInfo to help
+ identify if different POAs are from same server process. The POA
+ registering will not affect the POAs registered with the same
+ ServerId.
+
+ * tao/ImR_Client/ImR_Client.cpp:
+
+ Made server ID (set via -ORBServerId) info be part of the server
+ name info to pass to IMR. This info helps IMR to identify if two
+ poas created by same server process.
+
+ * tao/ORB_Core.cpp:
+ * tao/Synch_Invocation.cpp:
+ * tao/params.h:
+ * tao/params.inl:
+ * tao/params.cpp:
+
+ Added new ORB option -ORBForwardInvocationOnObjectNotExist to
+ support request forwarding to next available profile upon
+ receiving OBJECT_NOT_EXIST exception reply.
+
+ * orbsvcs/tests/ImplRepo/ReconnectServer/ReconnectServer.mpc:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/client.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverA.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test.idl:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test_i.h:
+ * orbsvcs/tests/ImplRepo/ReconnectServer/test_i.cpp:
+
+ Added test case for the changes.
+
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+
+ Added ImplRepo ReconnectServer test.
+
+Fri Apr 24 15:17:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Notify/Bug_3646a_Regression/Consumer.cpp:
+ Fixed variable not used warning
+
+Fri Apr 24 15:11:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/orbsvcs/Notify/POA_Helper.cpp:
+ Unicode fix
+
+Fri Apr 24 12:03:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/start_services:
+ Removed this old script
+
+Thu Apr 23 16:09:54 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/ast/ast_interface.cpp:
+ * TAO_IDL/fe/y.tab.cpp:
+ * TAO_IDL/fe/idl.yy:
+
+ Further tweaks to the fix of
+
+ Wed Apr 22 17:59:18 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ to correct a problem uncovered by processing
+ RTPortableServer.pidl. Thanks to Will Otte
+ <wotte at dre dot vanderbilt.edu> for reporting the problem.
+
+Thu Apr 23 11:10:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/Notify_Service/Notify_Service.{h,cpp}:
+ Only keep the IOR file open when we write the IOR, close it
+ directly after we are ready
+
+Thu Apr 23 10:14:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * orbsvcs/tests/Bug_2626_Regression
+ * orbsvcs/tests/Notify/Bug_2626_Regression
+ Move tests to notify directory
+
+ * bin/tao_other_tests.lst:
+ Updated 2926
+
+Thu Apr 23 09:31:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * bin/tao_other_tests.lst:
+ Added Bug_3646a_Regression
+
+ * orbsvcs/Notify_Service/Notify_Service.cpp
+ * orbsvcs/Notify_Service/Notify_Service.h
+ Added support for multiple ChannelName arguments, the notification service
+ will then create multiple channels and register them in the naming services
+
+ * orbsvcs/tests/Notify/Bug_3646a_Regression
+ * orbsvcs/tests/Notify/Bug_3646a_Regression/Bug_3646a_Regression.mpc
+ * orbsvcs/tests/Notify/Bug_3646a_Regression/Consumer.cpp
+ * orbsvcs/tests/Notify/Bug_3646a_Regression/run_test.pl
+ New test for multiple ChannelName arguments
+
+ * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
+ * orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.cpp
+ Initialise pointer with 0
+
+ * orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp
+ Const changes
+
+ * orbsvcs/FTRT_Event_Service/Gateway_Service/FTRTEC_Gateway_Service.cpp
+ * orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp
+ * orbsvcs/tests/AVStreams/Latency/control.cpp
+ * orbsvcs/tests/Bug_2247_Regression/Manager.cpp
+ * orbsvcs/tests/Bug_2248_Regression/client.cpp
+ * orbsvcs/tests/Bug_2926_Regression/DllORB.cpp
+ * orbsvcs/tests/Bug_3598b_Regression/client.cpp
+ * orbsvcs/tests/FaultTolerance/IOGR/Manager.cpp
+ * orbsvcs/tests/ImplRepo/Bug_689_Regression/client.cpp
+ * orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/test_idl.cpp
+ * orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/test_idl.cpp
+ * orbsvcs/tests/Notify/Blocking/Structured_Consumer.cpp
+ * orbsvcs/tests/Notify/Bug_1385_Regression/Structured_Consumer.cpp
+ * orbsvcs/tests/Notify/Bug_2561_Regression/Consumer.cpp
+ * orbsvcs/tests/Notify/Discarding/Sequence_Consumer.cpp
+ * orbsvcs/tests/Notify/Discarding/Structured_Consumer.cpp
+ * orbsvcs/tests/Notify/lib/Notify_Test_Client.cpp
+ * orbsvcs/tests/Notify/lib/Notify_Test_Client.h
+ * orbsvcs/tests/Notify/MC/Structured_Consumer.cpp
+ * orbsvcs/tests/Notify/MC/test_monitor.cpp
+ * orbsvcs/tests/Notify/MT_Dispatching/Structured_Consumer.cpp
+ * orbsvcs/tests/Notify/Ordering/Sequence_Consumer.cpp
+ * orbsvcs/tests/Notify/Ordering/Structured_Consumer.cpp
+ * orbsvcs/tests/Notify/performance-tests/Filter/Sequence_Consumer.cpp
+ * orbsvcs/tests/Notify/performance-tests/Filter/Structured_Consumer.cpp
+ * orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Sequence_Consumer.cpp
+ * orbsvcs/tests/Notify/Sequence_Multi_Filter/Sequence_Consumer.cpp
+ * orbsvcs/tests/tests_svc_loader/tests_svc_loader.cpp
+ Removed not needed unicode to ascii conversion
+
+Thu Apr 23 07:18:37 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/FL_Cube/client.cpp
+ * tests/HandleExhaustion/client.cpp
+ * tests/Abstract_Interface/client.cpp
+ * tests/Big_Reply/client.cpp
+ * tests/Bug_1254_Regression/client.cpp
+ * tests/Bug_2174_Regression/client.cpp
+ * tests/Bug_2734_Regression/client.cpp
+ * tests/Bug_2768_Regression/client.cpp
+ * tests/Bug_3198_Regression/bug_3198_regression.cpp
+ * tests/Bug_3598a_Regression/client.cpp
+ * tests/Client_Leaks/client.cpp
+ * tests/Leader_Followers/client.cpp
+ * tests/MProfile_Forwarding/Manager.cpp
+ * tests/Multiple/client.cpp
+ * tests/Nested_Event_Loop/client.cpp
+ * tests/NestedUpcall/Simple/client.cpp
+ * tests/NestedUpcall/Simple/simple-client.cpp
+ * tests/ORB_Local_Config/Two_DLL_ORB/client.cpp
+ * tests/POA/EndpointPolicy/client.cpp
+ * tests/POA/Generic_Servant/client.cpp
+ * tests/POA/Persistent_ID/client.cpp
+ * tests/Portable_Interceptors/AdvSlot/client.cpp
+ * tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp
+ * tests/Portable_Interceptors/AdvSlotExt/client.cpp
+ * tests/Portable_Interceptors/AMI/client.cpp
+ * tests/Portable_Interceptors/Bug_2133/client.cpp
+ * tests/RTCORBA/Linear_Priority/client.cpp
+ * tests/RTCORBA/Persistent_IOR/client.cpp
+ * tests/RTCORBA/Policy_Combinations/client.cpp
+ * tests/Server_Connection_Purging/client2.cpp
+ * tests/Single_Read/client.cpp
+ * tests/Smart_Proxies/dtor/client.cpp
+ * tests/Timed_Buffered_Oneways/client.cpp
+ * tests/Timeout/client.cpp
+ Removed not needed unicode to ascii conversion
+
+ * tests/Hello/client.cpp:
+ Fixed typo in comment
+
+Thu Apr 23 08:13:37 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/RTCORBA/Bug_3643_Regression/client.cpp:
+ Resolved unicode compiler error.
+
+Wed Apr 22 17:59:18 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/include/ast_sequence.h:
+ * TAO_IDL/ast/ast_interface.cpp:
+ * TAO_IDL/ast/ast_sequence.cpp:
+ * TAO_IDL/fe/y.tab.cpp:
+ * TAO_IDL/fe/idl.yy:
+
+ Added check to catch illegal use of incomplete sequence
+ type (sequence of undefined struct or union) as an
+ operation return type or parameter. Thanks to
+ Ron van Hoof <rvhoof27@gmail.com> for reporting the bug
+ and for sending in the example IDL. This fix closes
+ [BUGID:3648].
+
+ * TAO_IDL/util/utl_err.cpp:
+
+ Changed message associated with EIDL_ILLEGAL_ADD flag
+ to be more informative.
+
+ * TAO_IDL/tao_idl.mpc:
+
+ Removed a redundant item from the 'after' line of
+ TAO_IDL_EXE.
+
+Wed Apr 22 09:07:44 UTC 2009 Vladimir Zykov <vz@prismtech.com>
+
+ * tests/Bug_3632_Regression/test.cpp:
+ * tests/Bug_3632_Regression/test.idl:
+ * tests/Bug_3632_Regression/Bug_3632_Regression.mpc:
+ * tests/Bug_3632_Regression/run_test.pl:
+ * tests/Bug_3632_Regression/README:
+
+ Added a regression test.
+
+ * bin/tao_orb_tests.lst:
+
+ Scheduled the test for run.
+
+ * tao/Bounded_Array_Sequence_T.h:
+ * tao/Bounded_Basic_String_Sequence_T.h:
+ * tao/Valuetype/Bounded_Valuetype_Sequence_T.h:
+ * tao/Bounded_Value_Sequence_T.h:
+ * tao/Bounded_Object_Reference_Sequence_T.h:
+
+ Fixed bug#3632. Now user cannot change a maximum value
+ of a bounded sequence.
+
+Wed Apr 22 09:32:37 UTC 2009 Marcel Smit <msmit@remedy.nl>
+
+ * tests/RTCORBA/Bug_3643_Regression/client.cpp:
+ Resolved unicode compiler error.
+
+Tue Apr 21 10:17:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * tests/RTCORBA/Bug_3643_Regression/*:
+ New regression test
+
+Tue Apr 21 09:52:06 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * utils/nslist/nslist.cpp:
+ Removed argc/argv conversion
+
+Thu Apr 16 16:11:07 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * NEWS:
+
+ Added new section anticipating version 1.7.
+
+Tue Apr 14 10:06:19 CDT 2009 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * TAO version 1.6.9 released.
+
Tue Apr 14 13:57:16 UTC 2009 Phil Mesnier <mesnier_p@ociweb.com>
* NEWS:
-
+
Reworded entries to be consistent with release note.
Fri Apr 10 12:44:12 UTC 2009 Vladimir Zykov <vz@prismtech.com>
diff --git a/TAO/DevGuideExamples/AMH/AMH_Messenger_i.cpp b/TAO/DevGuideExamples/AMH/AMH_Messenger_i.cpp
index 2fdbf6e927e..0aeb5afe0ec 100644
--- a/TAO/DevGuideExamples/AMH/AMH_Messenger_i.cpp
+++ b/TAO/DevGuideExamples/AMH/AMH_Messenger_i.cpp
@@ -33,7 +33,7 @@ AMH_Messenger_i::send_message (
std::cout << "Message: " << message << std::endl;
CORBA::String_var inout_message_arg =
CORBA::string_dup("Thanks for the message.");
- CORBA::Boolean result = 1;
+ CORBA::Boolean result = true;
_tao_rh->send_message(result,inout_message_arg.inout ());
}
diff --git a/TAO/DevGuideExamples/AMH/MessengerServer.cpp b/TAO/DevGuideExamples/AMH/MessengerServer.cpp
index 60742b2413f..fce26c51fb6 100644
--- a/TAO/DevGuideExamples/AMH/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/AMH/MessengerServer.cpp
@@ -51,11 +51,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create a servant.
- AMH_Messenger_i servant;
+ PortableServer::Servant_var<AMH_Messenger_i> servant = new AMH_Messenger_i;
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
- PortableServer::ObjectId_var oid = poa->activate_object( &servant );
+ PortableServer::ObjectId_var oid = poa->activate_object( servant.in() );
obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( obj.in() );
std::ofstream iorFile(ACE_TEXT_ALWAYS_CHAR(ior_output_file.c_str()));
diff --git a/TAO/DevGuideExamples/AMH/Messenger_i.cpp b/TAO/DevGuideExamples/AMH/Messenger_i.cpp
index c825da18737..175b4ac3e22 100644
--- a/TAO/DevGuideExamples/AMH/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/AMH/Messenger_i.cpp
@@ -31,5 +31,5 @@ CORBA::Boolean Messenger_i::send_message (
std::cout << "Message: " << message << std::endl;
CORBA::string_free(message);
message = CORBA::string_dup("Thanks for the message.");
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/AMH/run_test.pl b/TAO/DevGuideExamples/AMH/run_test.pl
index f5859b6315a..f5859b6315a 100644..100755
--- a/TAO/DevGuideExamples/AMH/run_test.pl
+++ b/TAO/DevGuideExamples/AMH/run_test.pl
diff --git a/TAO/DevGuideExamples/AMH_AMI/inner_server.cpp b/TAO/DevGuideExamples/AMH_AMI/inner_server.cpp
index edcbcba9aef..9dc4446b5d2 100644
--- a/TAO/DevGuideExamples/AMH_AMI/inner_server.cpp
+++ b/TAO/DevGuideExamples/AMH_AMI/inner_server.cpp
@@ -42,11 +42,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create a servant.
- Inner_i servant(dont_crash);
+ PortableServer::Servant_var<Inner_i> servant = new Inner_i(dont_crash);
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
- PortableServer::ObjectId_var oid = poa->activate_object( &servant );
+ PortableServer::ObjectId_var oid = poa->activate_object( servant.in() );
obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( obj.in() );
ACE_CString iorname ("inner.ior");
diff --git a/TAO/DevGuideExamples/AMH_AMI/run_test.pl b/TAO/DevGuideExamples/AMH_AMI/run_test.pl
index 332eeb84aa7..332eeb84aa7 100644..100755
--- a/TAO/DevGuideExamples/AMH_AMI/run_test.pl
+++ b/TAO/DevGuideExamples/AMH_AMI/run_test.pl
diff --git a/TAO/DevGuideExamples/BiDirectionalGIOP/callback_i.cpp b/TAO/DevGuideExamples/BiDirectionalGIOP/callback_i.cpp
index aaa49807717..25dee372b33 100644
--- a/TAO/DevGuideExamples/BiDirectionalGIOP/callback_i.cpp
+++ b/TAO/DevGuideExamples/BiDirectionalGIOP/callback_i.cpp
@@ -17,7 +17,7 @@ Callback_i::~Callback_i (void)
void Callback_i::shutdown ()
{
std::cout << "Performing clean shutdown." << std::endl;
- const int wait = 0;
+ CORBA::Boolean wait = false;
orb_->shutdown(wait);
}
diff --git a/TAO/DevGuideExamples/BiDirectionalGIOP/client.cpp b/TAO/DevGuideExamples/BiDirectionalGIOP/client.cpp
index c40f8f0c91e..369dc556de1 100644
--- a/TAO/DevGuideExamples/BiDirectionalGIOP/client.cpp
+++ b/TAO/DevGuideExamples/BiDirectionalGIOP/client.cpp
@@ -70,10 +70,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
obj = orb->string_to_object(ior.c_str());
Simple_var server = Simple::_narrow (obj.in());
- Callback_i callback_svt(orb.in());
+ PortableServer::Servant_var<Callback_i> callback_svt = new Callback_i(orb.in());
// Register and activate callback servant
- PortableServer::ObjectId_var id = poa->activate_object(&callback_svt);
+ PortableServer::ObjectId_var id = poa->activate_object(callback_svt.in());
obj = poa->id_to_reference(id.in());
Callback_var callback = Callback::_narrow(obj.in());
@@ -86,7 +86,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
orb->run();
- int etherealize = 1, wait = 1;
+ CORBA::Boolean etherealize = true, wait = true;
poa->destroy(etherealize, wait);
orb->destroy();
diff --git a/TAO/DevGuideExamples/BiDirectionalGIOP/run_test.pl b/TAO/DevGuideExamples/BiDirectionalGIOP/run_test.pl
index 3202a675d6f..3202a675d6f 100644..100755
--- a/TAO/DevGuideExamples/BiDirectionalGIOP/run_test.pl
+++ b/TAO/DevGuideExamples/BiDirectionalGIOP/run_test.pl
diff --git a/TAO/DevGuideExamples/BiDirectionalGIOP/server.cpp b/TAO/DevGuideExamples/BiDirectionalGIOP/server.cpp
index 405b3d0637d..1d5164c621f 100644
--- a/TAO/DevGuideExamples/BiDirectionalGIOP/server.cpp
+++ b/TAO/DevGuideExamples/BiDirectionalGIOP/server.cpp
@@ -70,10 +70,10 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
}
poa_manager->activate ();
- Simple_i svt(orb.in(), callback_count);
+ PortableServer::Servant_var<Simple_i> svt = new Simple_i(orb.in(), callback_count);
// Register and activate Simple servant
- PortableServer::ObjectId_var id = poa->activate_object(&svt);
+ PortableServer::ObjectId_var id = poa->activate_object(svt.in());
obj = poa->id_to_reference(id.in());
Simple_var server = Simple::_narrow(obj.in());
@@ -88,7 +88,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
while (true) {
// returns 1 as soon as it has successfully called back.
- if (svt.call_client()) {
+ if (svt->call_client()) {
break;
}
@@ -100,7 +100,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
std::cout << "Event loop finished." << std::endl;
- int etherealize = 1, wait = 1;
+ CORBA::Boolean etherealize = true, wait = true;
poa->destroy(etherealize, wait);
orb->destroy();
diff --git a/TAO/DevGuideExamples/BiDirectionalGIOP/simple_i.cpp b/TAO/DevGuideExamples/BiDirectionalGIOP/simple_i.cpp
index ed01838377c..e93e0e8b78b 100644
--- a/TAO/DevGuideExamples/BiDirectionalGIOP/simple_i.cpp
+++ b/TAO/DevGuideExamples/BiDirectionalGIOP/simple_i.cpp
@@ -37,7 +37,7 @@ void Simple_i::callback_object (Callback_ptr cb)
void Simple_i::shutdown ()
{
- const int wait = 0;
+ CORBA::Boolean wait = false;
orb_->shutdown(wait);
}
diff --git a/TAO/DevGuideExamples/DevGuideExamples.mwc b/TAO/DevGuideExamples/DevGuideExamples.mwc
index 97d3bc5c8fe..b07eebca11d 100644
--- a/TAO/DevGuideExamples/DevGuideExamples.mwc
+++ b/TAO/DevGuideExamples/DevGuideExamples.mwc
@@ -1,5 +1,4 @@
// $Id$
workspace {
- cmdline = -include $PWD
}
diff --git a/TAO/DevGuideExamples/GettingStarted/MessengerServer.cpp b/TAO/DevGuideExamples/GettingStarted/MessengerServer.cpp
index 578fc2da9c4..3bc606378b9 100644
--- a/TAO/DevGuideExamples/GettingStarted/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/GettingStarted/MessengerServer.cpp
@@ -21,11 +21,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create a servant.
- Messenger_i servant;
+ PortableServer::Servant_var<Messenger_i> servant = new Messenger_i();
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
- PortableServer::ObjectId_var oid = poa->activate_object( &servant );
+ PortableServer::ObjectId_var oid = poa->activate_object( servant.in() );
obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/DevGuideExamples/GettingStarted/run_test.pl b/TAO/DevGuideExamples/GettingStarted/run_test.pl
index 9f97271d6b7..9f97271d6b7 100644..100755
--- a/TAO/DevGuideExamples/GettingStarted/run_test.pl
+++ b/TAO/DevGuideExamples/GettingStarted/run_test.pl
diff --git a/TAO/DevGuideExamples/LocalObjects/Messenger/Messenger_i.cpp b/TAO/DevGuideExamples/LocalObjects/Messenger/Messenger_i.cpp
index 12a9a638b41..27d02a450dc 100644
--- a/TAO/DevGuideExamples/LocalObjects/Messenger/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/LocalObjects/Messenger/Messenger_i.cpp
@@ -24,7 +24,7 @@ CORBA::Boolean Messenger_i::send_message (
std::cout << "Message: " << message << std::endl;
CORBA::string_free(message);
message = CORBA::string_dup("Thanks for the message.");
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/LocalObjects/Messenger/run_test.pl b/TAO/DevGuideExamples/LocalObjects/Messenger/run_test.pl
index 2e31510f013..2e31510f013 100644..100755
--- a/TAO/DevGuideExamples/LocalObjects/Messenger/run_test.pl
+++ b/TAO/DevGuideExamples/LocalObjects/Messenger/run_test.pl
diff --git a/TAO/DevGuideExamples/LocalObjects/ServantLocator/MessengerServer.cpp b/TAO/DevGuideExamples/LocalObjects/ServantLocator/MessengerServer.cpp
index 8d32b9298bd..9934b61457d 100644
--- a/TAO/DevGuideExamples/LocalObjects/ServantLocator/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/LocalObjects/ServantLocator/MessengerServer.cpp
@@ -63,7 +63,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv [])
orb->run();
// Release resources
- rootPOA->destroy(1,1);
+ rootPOA->destroy(true,true);
orb->destroy();
}
catch(const CORBA::Exception& ex) {
diff --git a/TAO/DevGuideExamples/LocalObjects/ServantLocator/run_test.pl b/TAO/DevGuideExamples/LocalObjects/ServantLocator/run_test.pl
index 2759901997e..2759901997e 100644..100755
--- a/TAO/DevGuideExamples/LocalObjects/ServantLocator/run_test.pl
+++ b/TAO/DevGuideExamples/LocalObjects/ServantLocator/run_test.pl
diff --git a/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerClient.cpp b/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerClient.cpp
index e9afc3a5e6c..a94421ea765 100644
--- a/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerClient.cpp
+++ b/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerClient.cpp
@@ -43,8 +43,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
mgr->activate();
// Register an AMI handler for the Messenger interface
- MessengerHandler servant(orb.in());
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::Servant_var<MessengerHandler> servant =
+ new MessengerHandler(orb.in());
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
obj = poa->id_to_reference(oid.in());
AMI_MessengerHandler_var handler = AMI_MessengerHandler::_narrow(obj.in());
@@ -82,7 +83,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
// Our simple servant will exit as soon as it receives the results.
orb->run();
- if (servant.message_was_sent())
+ if (servant->message_was_sent())
{
// Note : We can't use the
ACE_Time_Value delay = ACE_OS::gettimeofday() - time_sent;
diff --git a/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerHandler.cpp b/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerHandler.cpp
index 05b7704ef2f..60c8dac7e12 100644
--- a/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerHandler.cpp
+++ b/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerHandler.cpp
@@ -38,7 +38,7 @@ void MessengerHandler::send_message (
std::cerr << "Error: Message was not sent." << std::endl;
}
// Our simple test just shuts down after sending one message.
- orb_->shutdown(0);
+ orb_->shutdown(false);
}
void MessengerHandler::send_message_excep (Messaging::ExceptionHolder* excep_holder)
@@ -52,5 +52,5 @@ void MessengerHandler::send_message_excep (Messaging::ExceptionHolder* excep_hol
{
std::cerr << "A CORBA Exception was thrown: " << ex << std::endl;
}
- orb_->shutdown(0);
+ orb_->shutdown(false);
}
diff --git a/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerServer.cpp b/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerServer.cpp
index faef3a6dc2c..7929c8c8de1 100644
--- a/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/Messaging/AMIcallback/MessengerServer.cpp
@@ -17,12 +17,12 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
// Messenger_i::send_message() throw an exception if e
// has been passed as the command lin argument.
unsigned int seconds_to_wait = 0;
- CORBA::Boolean servant_throws_exception = 0;
+ CORBA::Boolean servant_throws_exception = false;
if (argc == 2)
{
if (argv[1][0] == 'e')
{
- servant_throws_exception = 1;
+ servant_throws_exception = true;
std::cout << "Messenger_i::send_message() will throw an exception." << std::endl;
}
else
@@ -42,10 +42,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
mgr->activate();
// Create an object
- Messenger_i servant(seconds_to_wait, servant_throws_exception);
+ PortableServer::Servant_var<Messenger_i> servant = new
+ Messenger_i(seconds_to_wait, servant_throws_exception);
// Write its stringified reference to stdout
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
obj = poa->id_to_reference(oid.in());
Messenger_var messenger = Messenger::_narrow(obj.in());
CORBA::String_var str = orb->object_to_string(messenger.in());
diff --git a/TAO/DevGuideExamples/Messaging/AMIcallback/Messenger_i.cpp b/TAO/DevGuideExamples/Messaging/AMIcallback/Messenger_i.cpp
index b4e205cde4d..73cf55fb336 100644
--- a/TAO/DevGuideExamples/Messaging/AMIcallback/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/Messaging/AMIcallback/Messenger_i.cpp
@@ -53,7 +53,7 @@ CORBA::Boolean Messenger_i::send_message (
time_sent = static_cast<CORBA::Long> (ACE_OS::gettimeofday().sec());
// We will assume the message has been sent, so return true
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/Messaging/AMIcallback/run_test.pl b/TAO/DevGuideExamples/Messaging/AMIcallback/run_test.pl
index 47d474c4f5d..47d474c4f5d 100644..100755
--- a/TAO/DevGuideExamples/Messaging/AMIcallback/run_test.pl
+++ b/TAO/DevGuideExamples/Messaging/AMIcallback/run_test.pl
diff --git a/TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/MessengerServer.cpp b/TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/MessengerServer.cpp
index d3663bdd840..dcec42b2b61 100644
--- a/TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/MessengerServer.cpp
@@ -18,10 +18,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i;
// Write its stringified reference to a file
- PortableServer::ObjectId_var oid = poa->activate_object(&messenger_servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(messenger_servant.in());
obj = poa->id_to_reference(oid.in());
Messenger_var messenger = Messenger::_narrow(obj.in());
CORBA::String_var str = orb->object_to_string(messenger.in());
diff --git a/TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/run_test.pl b/TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/run_test.pl
index 313b53e48ad..313b53e48ad 100644..100755
--- a/TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/run_test.pl
+++ b/TAO/DevGuideExamples/Messaging/RelativeRoundtripTimeout/run_test.pl
diff --git a/TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerServer.h b/TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerServer.h
index 0589a19bcab..bd769b65ce7 100644
--- a/TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerServer.h
+++ b/TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerServer.h
@@ -57,7 +57,7 @@ public:
{
char c;
std::cin.get (c);
- orb_->shutdown (1);
+ orb_->shutdown (true);
return 0;
}
private:
diff --git a/TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerShutdownTimer.cpp b/TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerShutdownTimer.cpp
index e16053c3933..2672ea53671 100644
--- a/TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerShutdownTimer.cpp
+++ b/TAO/DevGuideExamples/Multithreading/GracefulShutdown/MessengerShutdownTimer.cpp
@@ -12,6 +12,6 @@ int MessengerShutdownTimer::handle_timeout (
const void*)
{
ACE_DEBUG((LM_DEBUG, "In MessengerShutdownTimer::handle_timeout\n"));
- orb_->shutdown (0);
+ orb_->shutdown (false);
return 0;
}
diff --git a/TAO/DevGuideExamples/Multithreading/GracefulShutdown/Messenger_i.cpp b/TAO/DevGuideExamples/Multithreading/GracefulShutdown/Messenger_i.cpp
index 79cdb4982d6..1843bc73b98 100644
--- a/TAO/DevGuideExamples/Multithreading/GracefulShutdown/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/Multithreading/GracefulShutdown/Messenger_i.cpp
@@ -31,10 +31,10 @@ CORBA::Boolean Messenger_i::send_message (
std::cout << "Message: " << message << std::endl;
CORBA::string_free(message);
message = CORBA::string_dup("Thanks for the message.");
- return 1;
+ return true;
}
void Messenger_i::shutdown ()
{
- orb_->shutdown(0);
+ orb_->shutdown(false);
}
diff --git a/TAO/DevGuideExamples/Multithreading/GracefulShutdown/run_test.pl b/TAO/DevGuideExamples/Multithreading/GracefulShutdown/run_test.pl
index 7e96b25efeb..327eae8a96d 100644..100755
--- a/TAO/DevGuideExamples/Multithreading/GracefulShutdown/run_test.pl
+++ b/TAO/DevGuideExamples/Multithreading/GracefulShutdown/run_test.pl
@@ -11,7 +11,7 @@ use PerlACE::Run_Test;
$ior = PerlACE::LocalFile ("Messenger.ior");
unlink $ior;
-$server_args = "-ORBEndpoint iiop://localhost";
+$server_args = "-ORBListenEndpoints iiop://localhost";
# -------------------------------------------------------------------
# Test 1: Shutdown on client invocation
diff --git a/TAO/DevGuideExamples/Multithreading/Reactive/MessengerServer.cpp b/TAO/DevGuideExamples/Multithreading/Reactive/MessengerServer.cpp
index 22bd190af74..5dc50c06521 100644
--- a/TAO/DevGuideExamples/Multithreading/Reactive/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/Multithreading/Reactive/MessengerServer.cpp
@@ -18,12 +18,12 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create a servant.
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/DevGuideExamples/Multithreading/Reactive/Messenger_i.cpp b/TAO/DevGuideExamples/Multithreading/Reactive/Messenger_i.cpp
index df6eaf11a49..4fae956687b 100644
--- a/TAO/DevGuideExamples/Multithreading/Reactive/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/Multithreading/Reactive/Messenger_i.cpp
@@ -30,5 +30,5 @@ CORBA::Boolean Messenger_i::send_message (
std::cout << "Message: " << message << std::endl;
CORBA::string_free(message);
message = CORBA::string_dup("Thanks for the message.");
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/Multithreading/Reactive/run_test.pl b/TAO/DevGuideExamples/Multithreading/Reactive/run_test.pl
index a91338e6aab..fb47fe48665 100644..100755
--- a/TAO/DevGuideExamples/Multithreading/Reactive/run_test.pl
+++ b/TAO/DevGuideExamples/Multithreading/Reactive/run_test.pl
@@ -13,7 +13,7 @@ unlink $ior;
# start MessengerServer
-$S = new PerlACE::Process("MessengerServer", "-ORBEndpoint iiop://localhost");
+$S = new PerlACE::Process("MessengerServer", "-ORBListenEndpoints iiop://localhost");
$S->Spawn();
if (PerlACE::waitforfile_timed ($ior, $PerlACE::wait_interval_for_process_creation) == -1) {
diff --git a/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/MessengerServer.cpp b/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/MessengerServer.cpp
index 22bd190af74..5dc50c06521 100644
--- a/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/MessengerServer.cpp
@@ -18,12 +18,12 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create a servant.
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/Messenger_i.cpp b/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/Messenger_i.cpp
index 137230f1c26..f5699cb9686 100644
--- a/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/Messenger_i.cpp
@@ -34,6 +34,6 @@ CORBA::Boolean Messenger_i::send_message (
std::ostringstream ostr;
ostr << "Message handled on thread " << ACE_Thread::self();
message = CORBA::string_dup(ostr.str().c_str());
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/run_test.pl b/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/run_test.pl
index 95c22f3c9de..e669d1d1995 100644..100755
--- a/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/run_test.pl
+++ b/TAO/DevGuideExamples/Multithreading/ThreadPerConnection/run_test.pl
@@ -15,7 +15,7 @@ unlink $ior;
print STDOUT "Starting MessengerServer\n";
-$S = new PerlACE::Process("MessengerServer", "-ORBSvcConf server.conf -ORBEndpoint iiop://localhost");
+$S = new PerlACE::Process("MessengerServer", "-ORBSvcConf server.conf -ORBListenEndpoints iiop://localhost");
$S->Spawn();
if (PerlACE::waitforfile_timed ($ior, $PerlACE::wait_interval_for_process_creation) == -1) {
diff --git a/TAO/DevGuideExamples/Multithreading/ThreadPool/MessengerServer.cpp b/TAO/DevGuideExamples/Multithreading/ThreadPool/MessengerServer.cpp
index 6035cd3cbcb..2e0865eac9d 100644
--- a/TAO/DevGuideExamples/Multithreading/ThreadPool/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/Multithreading/ThreadPool/MessengerServer.cpp
@@ -39,12 +39,12 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create a servant.
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/DevGuideExamples/Multithreading/ThreadPool/Messenger_i.cpp b/TAO/DevGuideExamples/Multithreading/ThreadPool/Messenger_i.cpp
index 137230f1c26..f5699cb9686 100644
--- a/TAO/DevGuideExamples/Multithreading/ThreadPool/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/Multithreading/ThreadPool/Messenger_i.cpp
@@ -34,6 +34,6 @@ CORBA::Boolean Messenger_i::send_message (
std::ostringstream ostr;
ostr << "Message handled on thread " << ACE_Thread::self();
message = CORBA::string_dup(ostr.str().c_str());
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/Multithreading/ThreadPool/run_test.pl b/TAO/DevGuideExamples/Multithreading/ThreadPool/run_test.pl
index 0bb35c7e33c..a73ce34a799 100644..100755
--- a/TAO/DevGuideExamples/Multithreading/ThreadPool/run_test.pl
+++ b/TAO/DevGuideExamples/Multithreading/ThreadPool/run_test.pl
@@ -15,7 +15,7 @@ unlink $ior;
print STDOUT "Starting MessengerServer\n";
-$S = new PerlACE::Process("MessengerServer", "-ORBEndpoint iiop://localhost");
+$S = new PerlACE::Process("MessengerServer", "-ORBListenEndpoints iiop://localhost");
$S->Spawn();
if (PerlACE::waitforfile_timed ($ior, $PerlACE::wait_interval_for_process_creation) == -1) {
diff --git a/TAO/DevGuideExamples/PortableInterceptors/Auth/ClientInterceptor.cpp b/TAO/DevGuideExamples/PortableInterceptors/Auth/ClientInterceptor.cpp
index 7c952de272a..0a383f256c1 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/Auth/ClientInterceptor.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/Auth/ClientInterceptor.cpp
@@ -57,10 +57,10 @@ ClientInterceptor::send_request (
ACE_OS::strcpy (reinterpret_cast<char*> (buf), user_name);
- sc.context_data.replace (string_len, string_len, buf, 1);
+ sc.context_data.replace (string_len, string_len, buf, true);
// Add this context to the service context list.
- ri->add_request_service_context (sc, 0);
+ ri->add_request_service_context (sc, false);
}
diff --git a/TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerClient.cpp b/TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerClient.cpp
index bc1cfd78d0f..bbfb7aab4e2 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerClient.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerClient.cpp
@@ -12,13 +12,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
- PortableInterceptor::ORBInitializer_ptr temp_initializer =
- PortableInterceptor::ORBInitializer::_nil ();
-
- temp_initializer = new ClientInitializer;
-
PortableInterceptor::ORBInitializer_var orb_initializer =
- temp_initializer;
+ new ClientInitializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ());
diff --git a/TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerServer.cpp b/TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerServer.cpp
index 21fdc9d783f..162ff20e7cd 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/Auth/MessengerServer.cpp
@@ -14,12 +14,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
- ServerInitializer *temp_initializer = 0;
-
- temp_initializer = new ServerInitializer;
-
PortableInterceptor::ORBInitializer_var orb_initializer =
- temp_initializer;
+ new ServerInitializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ());
@@ -35,10 +31,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in());
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
diff --git a/TAO/DevGuideExamples/PortableInterceptors/Auth/Messenger_i.cpp b/TAO/DevGuideExamples/PortableInterceptors/Auth/Messenger_i.cpp
index 36f5613c087..4cdf3098c47 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/Auth/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/Auth/Messenger_i.cpp
@@ -35,6 +35,6 @@ CORBA::Boolean Messenger_i::send_message (
std::cerr << "Message from: " << user_name << std::endl;
std::cerr << "Subject: " << subject << std::endl;
std::cerr << "Message: " << message << std::endl;
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/PortableInterceptors/Auth/ServerInitializer.h b/TAO/DevGuideExamples/PortableInterceptors/Auth/ServerInitializer.h
index bb8a55b1b8a..e015f52a7b1 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/Auth/ServerInitializer.h
+++ b/TAO/DevGuideExamples/PortableInterceptors/Auth/ServerInitializer.h
@@ -4,10 +4,12 @@
#define SERVERINITIALIZER_H
#include "tao/PortableInterceptorC.h"
+#include "tao/LocalObject.h"
#include "tao/PI/PI.h"
class ServerInitializer :
-public virtual PortableInterceptor::ORBInitializer
+public virtual PortableInterceptor::ORBInitializer,
+public virtual CORBA::LocalObject
{
public:
ServerInitializer ();
diff --git a/TAO/DevGuideExamples/PortableInterceptors/Auth/run_test.pl b/TAO/DevGuideExamples/PortableInterceptors/Auth/run_test.pl
index 99c179c46cc..2b479ea579c 100644..100755
--- a/TAO/DevGuideExamples/PortableInterceptors/Auth/run_test.pl
+++ b/TAO/DevGuideExamples/PortableInterceptors/Auth/run_test.pl
@@ -10,6 +10,8 @@ use PerlACE::Run_Test;
# start MessengerServer
my($iorfile) = 'Messenger.ior';
+unlink($iorfile);
+
$S = new PerlACE::Process("MessengerServer");
$S->Spawn();
if (PerlACE::waitforfile_timed (
@@ -31,6 +33,7 @@ if ($C->SpawnWaitKill(15) != 0) {
# clean-up
$S->Kill();
+unlink($iorfile);
exit 0;
diff --git a/TAO/DevGuideExamples/PortableInterceptors/IOR/ClientInterceptor.cpp b/TAO/DevGuideExamples/PortableInterceptors/IOR/ClientInterceptor.cpp
index 37e08c681e0..cec3d86ddf5 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/IOR/ClientInterceptor.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/IOR/ClientInterceptor.cpp
@@ -82,11 +82,10 @@ ClientInterceptor::send_request (
CORBA::Any gid_as_any;
gid_as_any <<= gid;
- sc.context_data = reinterpret_cast<CORBA::OctetSeq&>(
- *codec->encode(gid_as_any));
+ sc.context_data = *codec->encode(gid_as_any);
// Add this context to the service context list.
- ri->add_request_service_context (sc, 0);
+ ri->add_request_service_context (sc, false);
}
diff --git a/TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerClient.cpp b/TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerClient.cpp
index 38711aa1414..1d743cad3fe 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerClient.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerClient.cpp
@@ -11,13 +11,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
- PortableInterceptor::ORBInitializer_ptr temp_initializer =
- PortableInterceptor::ORBInitializer::_nil ();
-
- temp_initializer = new ClientInitializer;
-
PortableInterceptor::ORBInitializer_var orb_initializer =
- temp_initializer;
+ new ClientInitializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ());
diff --git a/TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerServer.cpp b/TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerServer.cpp
index e792d7b5f4c..d4a23c6d70b 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/IOR/MessengerServer.cpp
@@ -13,11 +13,8 @@ int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try {
- ServerInitializer *temp_initializer = 0;
- temp_initializer = new ServerInitializer;
-
PortableInterceptor::ORBInitializer_var orb_initializer =
- temp_initializer;
+ new ServerInitializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ());
@@ -33,12 +30,12 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/DevGuideExamples/PortableInterceptors/IOR/Messenger_i.cpp b/TAO/DevGuideExamples/PortableInterceptors/IOR/Messenger_i.cpp
index 1cdd6851662..889a6659d3f 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/IOR/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/IOR/Messenger_i.cpp
@@ -58,8 +58,14 @@ void Messenger_i::send_message (const CORBA::OctetSeq & user_name)
uid_as_any = *(codec->decode(user_name));
CORBA::Long uid;
- uid_as_any >>= uid;
- std::cout << "UID: " << uid << std::endl;
+ if (uid_as_any >>= uid)
+ {
+ std::cout << "UID: " << uid << std::endl;
+ }
+ else
+ {
+ std::cerr << "Could not extract UID from any." << std::endl;
+ }
}
diff --git a/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.cpp b/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.cpp
index 283a13d504e..42bb29ef004 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.cpp
@@ -17,7 +17,6 @@ void
ServerIORInterceptor::establish_components (
PortableInterceptor::IORInfo_ptr info)
{
-
const char * permission = "ServerRequiresAuth";
// arbitrary tag.
@@ -37,3 +36,23 @@ ServerIORInterceptor::establish_components (
std::cout << "Created Tagged IOR." << std::endl;
}
+
+void
+ServerIORInterceptor::components_established (
+ PortableInterceptor::IORInfo_ptr /*info*/)
+{
+}
+
+void
+ServerIORInterceptor::adapter_manager_state_changed (
+ const char* /*id*/,
+ PortableInterceptor::AdapterState /*state*/)
+{
+}
+
+void
+ServerIORInterceptor::adapter_state_changed (
+ const PortableInterceptor::ObjectReferenceTemplateSeq& /*templates*/,
+ PortableInterceptor::AdapterState /*state*/)
+{
+}
diff --git a/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.h b/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.h
index 920bcfd0f0e..169e117664c 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.h
+++ b/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerIORInterceptor.h
@@ -2,11 +2,10 @@
#include "tao/PortableInterceptorC.h"
#include "tao/LocalObject.h"
-#include "tao/IORInterceptor_Adapter.h"
#include "tao/IORInterceptor/IORInterceptor.h"
class ServerIORInterceptor :
-public virtual PortableInterceptor::IORInterceptor,
+public virtual PortableInterceptor::IORInterceptor_3_0,
public virtual ::CORBA::LocalObject
{
public:
@@ -14,27 +13,15 @@ public virtual ::CORBA::LocalObject
virtual void destroy ();
- virtual void establish_components (
- PortableInterceptor::IORInfo_ptr info
- );
+ virtual void establish_components (PortableInterceptor::IORInfo_ptr info);
- virtual void components_established (
- PortableInterceptor::IORInfo_ptr /*info*/
- )
- {
- }
+ virtual void components_established (PortableInterceptor::IORInfo_ptr info);
virtual void adapter_manager_state_changed (
- PortableInterceptor::AdapterManagerId /*id*/,
- PortableInterceptor::AdapterState /*state*/
- )
- {
- }
+ const char* id,
+ PortableInterceptor::AdapterState state);
virtual void adapter_state_changed (
- const PortableInterceptor::ObjectReferenceTemplateSeq& /*templates*/,
- PortableInterceptor::AdapterState /*state*/
- )
- {
- }
+ const PortableInterceptor::ObjectReferenceTemplateSeq& templates,
+ PortableInterceptor::AdapterState state);
};
diff --git a/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerInterceptor.cpp b/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerInterceptor.cpp
index ac822d2b392..1554e33cbe9 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerInterceptor.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/IOR/ServerInterceptor.cpp
@@ -67,19 +67,26 @@ ServerInterceptor::receive_request (
sc->context_data.length(),
sc->context_data.length(),
sc->context_data.get_buffer(),
- 0);
+ false);
CORBA::Any gid_as_any;
gid_as_any = *codec->decode(ocSeq);
CORBA::Long gid;
- gid_as_any >>= gid;
- for (int i=0; i<3; ++i) {
- if ( gid == allowed_gid[i] )
- {
- permission_granted = true;
- }
- }
+ if (gid_as_any >>= gid)
+ {
+ for (int i=0; i<3; ++i) {
+ if ( gid == allowed_gid[i] )
+ {
+ permission_granted = true;
+ }
+ }
+ }
+ else
+ {
+ permission_granted = false;
+ std::cerr << "Could not extract GID from any." << std::endl;
+ }
}
if (permission_granted == true) {
diff --git a/TAO/DevGuideExamples/PortableInterceptors/IOR/run_test.pl b/TAO/DevGuideExamples/PortableInterceptors/IOR/run_test.pl
index ec593d127ee..ec593d127ee 100644..100755
--- a/TAO/DevGuideExamples/PortableInterceptors/IOR/run_test.pl
+++ b/TAO/DevGuideExamples/PortableInterceptors/IOR/run_test.pl
diff --git a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInitializer.cpp b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInitializer.cpp
index 2585bbc7d72..2945d4b3816 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInitializer.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInitializer.cpp
@@ -47,7 +47,7 @@ ClientInitializer::set_slot_data (void)
{
// Set the recursion flag
CORBA::Any flag;
- CORBA::Boolean x = 0;
+ CORBA::Boolean x = false;
flag <<= CORBA::Any::from_boolean(x);
current_->set_slot(slot_, flag);
diff --git a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInterceptor.cpp b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInterceptor.cpp
index 538ec6d1bdf..9b8850a173c 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInterceptor.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/ClientInterceptor.cpp
@@ -61,29 +61,32 @@ ClientInterceptor::send_request (PortableInterceptor::ClientRequestInfo_ptr ri)
ACE_OS::strcpy (reinterpret_cast<char*> (buf), user_name);
- sc.context_data.replace (string_len, string_len, buf, 1);
+ sc.context_data.replace (string_len, string_len, buf, true);
// recursive call setup
CORBA::Any *recurse = ri->get_slot(slot);
CORBA::Boolean x;
- *recurse >>= CORBA::Any::to_boolean(x);
-
CORBA::Any flag;
- if (x == 0)
- {
- x = 1;
- flag <<= CORBA::Any::from_boolean(x);
-
- pic->set_slot(slot, flag);
-
- // get server time
- std::cout << "Server Time = " << messenger->get_time() << std::endl;
- }
+ if (*recurse >>= CORBA::Any::to_boolean(x)) {
+ if (x == false)
+ {
+ x = true;
+ flag <<= CORBA::Any::from_boolean(x);
+
+ pic->set_slot(slot, flag);
+
+ // get server time
+ std::cout << "Server Time = " << messenger->get_time() << std::endl;
+ }
+ } else {
+ std::cerr << "Could not extract a boolean value from any" << std::endl;
+ }
+
// Add this context to the service context list.
- ri->add_request_service_context (sc, 0);
+ ri->add_request_service_context (sc, false);
// reset recursion test
- x = 0;
+ x = false;
flag <<= CORBA::Any::from_boolean(x);
pic->set_slot(slot,flag);
diff --git a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/MessengerServer.cpp b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/MessengerServer.cpp
index 7f6034193a7..45871eda26c 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/MessengerServer.cpp
@@ -16,12 +16,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
- ServerInitializer *temp_initializer = 0;
-
- temp_initializer = new ServerInitializer;
-
PortableInterceptor::ORBInitializer_var orb_initializer =
- temp_initializer;
+ new ServerInitializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ());
@@ -37,10 +33,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
diff --git a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/Messenger_i.cpp b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/Messenger_i.cpp
index ba67cdb8ef6..c2f9473e3ef 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/Messenger_i.cpp
@@ -35,7 +35,7 @@ CORBA::Boolean Messenger_i::send_message (
std::cerr << "Message from: " << user_name << std::endl;
std::cerr << "Subject: " << subject << std::endl;
std::cerr << "Message: " << message << std::endl;
- return 1;
+ return true;
}
char * Messenger_i::get_time (void)
diff --git a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/run_test.pl b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/run_test.pl
index fd018aa7160..fd018aa7160 100644..100755
--- a/TAO/DevGuideExamples/PortableInterceptors/PICurrent/run_test.pl
+++ b/TAO/DevGuideExamples/PortableInterceptors/PICurrent/run_test.pl
diff --git a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ClientInterceptor.cpp b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ClientInterceptor.cpp
index 443e4432a05..ce2a66ddb01 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ClientInterceptor.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ClientInterceptor.cpp
@@ -65,11 +65,10 @@ ClientInterceptor::send_request (
CORBA::Any gid_as_any;
gid_as_any <<= gid;
- sc.context_data = reinterpret_cast<CORBA::OctetSeq&> (
- *codec->encode(gid_as_any));
+ sc.context_data = *codec->encode(gid_as_any);
// Add this context to the service context list.
- ri->add_request_service_context (sc, 0);
+ ri->add_request_service_context (sc, false);
}
diff --git a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerClient.cpp b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerClient.cpp
index 85af6d0c712..599126a385f 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerClient.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerClient.cpp
@@ -12,13 +12,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
- PortableInterceptor::ORBInitializer_ptr temp_initializer =
- PortableInterceptor::ORBInitializer::_nil ();
-
- temp_initializer = new ClientInitializer;
-
PortableInterceptor::ORBInitializer_var orb_initializer =
- temp_initializer;
+ new ClientInitializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ());
diff --git a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerServer.cpp b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerServer.cpp
index 66c731f89e3..c1efbd4172b 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/MessengerServer.cpp
@@ -14,12 +14,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
- ServerInitializer *temp_initializer = 0;
-
- temp_initializer = new ServerInitializer;
-
PortableInterceptor::ORBInitializer_var orb_initializer =
- temp_initializer;
+ new ServerInitializer;
PortableInterceptor::register_orb_initializer (orb_initializer.in ());
@@ -35,12 +31,12 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/Messenger_i.cpp b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/Messenger_i.cpp
index 9b54a07e441..e95806dcf84 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/Messenger_i.cpp
@@ -58,8 +58,11 @@ void Messenger_i::send_message (const CORBA::OctetSeq & user_name)
uid_as_any = *(codec->decode(user_name));
CORBA::Long uid;
- uid_as_any >>= uid;
- std::cout << "UID: " << uid << std::endl;
+ if (uid_as_any >>= uid) {
+ std::cout << "UID: " << uid << std::endl;
+ } else {
+ std::cerr << "Could not extract UID from any." << std::endl;
+ }
}
catch(...)
diff --git a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ServerInterceptor.cpp b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ServerInterceptor.cpp
index af730ae24c5..bb113f93d2c 100644
--- a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ServerInterceptor.cpp
+++ b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/ServerInterceptor.cpp
@@ -67,19 +67,23 @@ ServerInterceptor::receive_request (
sc->context_data.length(),
sc->context_data.length(),
sc->context_data.get_buffer(),
- 0);
+ false);
CORBA::Any gid_as_any;
gid_as_any = *codec->decode(ocSeq);
CORBA::Long gid;
- gid_as_any >>= gid;
- for (int i=0; i<3; ++i) {
- if ( gid == allowed_gid[i] )
- {
- permission_granted = true;
- }
- }
+ if (gid_as_any >>= gid) {
+ for (int i=0; i<3; ++i) {
+ if ( gid == allowed_gid[i] )
+ {
+ permission_granted = true;
+ }
+ }
+ } else {
+ permission_granted = false;
+ std::cerr << "Could not extract GID from any." << std::endl;
+ }
}
if (permission_granted == true) {
diff --git a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/run_test.pl b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/run_test.pl
index 99c179c46cc..2b479ea579c 100644..100755
--- a/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/run_test.pl
+++ b/TAO/DevGuideExamples/PortableInterceptors/SimpleCodec/run_test.pl
@@ -10,6 +10,8 @@ use PerlACE::Run_Test;
# start MessengerServer
my($iorfile) = 'Messenger.ior';
+unlink($iorfile);
+
$S = new PerlACE::Process("MessengerServer");
$S->Spawn();
if (PerlACE::waitforfile_timed (
@@ -31,6 +33,7 @@ if ($C->SpawnWaitKill(15) != 0) {
# clean-up
$S->Kill();
+unlink($iorfile);
exit 0;
diff --git a/TAO/DevGuideExamples/RTCORBA/MessengerServer.cpp b/TAO/DevGuideExamples/RTCORBA/MessengerServer.cpp
index 6ee50964e5e..cafb18fc4b3 100644
--- a/TAO/DevGuideExamples/RTCORBA/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/RTCORBA/MessengerServer.cpp
@@ -52,8 +52,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
RTCORBA::ThreadpoolId threadpool_id =
rt_orb->create_threadpool_with_lanes (0, // Stack Size
lanes,
- 0, // Allow borrowing
- 0, // Allow request buffering
+ false, // Allow borrowing
+ false, // Allow request buffering
0, // Max buffered requests
0); // Max request buffer size
@@ -71,12 +71,13 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
poa_policy_list);
// Create an object
- Messenger_i messenger_servant(orb.in());
+ PortableServer::Servant_var<Messenger_i> messenger_servant
+ = new Messenger_i(orb.in());
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
PortableServer::ObjectId_var oid =
- client_propagated_poa->activate_object( &messenger_servant );
+ client_propagated_poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj =
client_propagated_poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
diff --git a/TAO/DevGuideExamples/RTCORBA/Messenger_i.cpp b/TAO/DevGuideExamples/RTCORBA/Messenger_i.cpp
index d3a1079ec09..2f66e7d7fd5 100644
--- a/TAO/DevGuideExamples/RTCORBA/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/RTCORBA/Messenger_i.cpp
@@ -34,6 +34,6 @@ Messenger_i::send_message (const char* user_name,
std::cout << "Native Priority: " << native_priority << std::endl;
}
std::cout << "Message: " << message << std::endl << std::endl;
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/RTCORBA/run_test.pl b/TAO/DevGuideExamples/RTCORBA/run_test.pl
index dd517dab384..dd517dab384 100644..100755
--- a/TAO/DevGuideExamples/RTCORBA/run_test.pl
+++ b/TAO/DevGuideExamples/RTCORBA/run_test.pl
diff --git a/TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp b/TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp
index 4ff3a53265b..f3f818cc430 100644
--- a/TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp
+++ b/TAO/DevGuideExamples/SmartProxies/LoggerServer.cpp
@@ -21,11 +21,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
mgr->activate();
// Create a Logger_i servant.
- Logger_i logger_servant;
+ PortableServer::Servant_var<Logger_i> logger_servant = new Logger_i;
// Register the servant with the RootPOA, obtain its object reference,
// stringify it, and write it to a file.
- PortableServer::ObjectId_var oid = poa->activate_object(&logger_servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(logger_servant.in());
CORBA::Object_var logger_obj = poa->id_to_reference(oid.in());
CORBA::String_var str = orb->object_to_string(logger_obj.in());
std::ofstream iorFile("Logger.ior");
diff --git a/TAO/DevGuideExamples/SmartProxies/Logger_i.cpp b/TAO/DevGuideExamples/SmartProxies/Logger_i.cpp
index af83c40edea..88b4c38bf35 100644
--- a/TAO/DevGuideExamples/SmartProxies/Logger_i.cpp
+++ b/TAO/DevGuideExamples/SmartProxies/Logger_i.cpp
@@ -22,6 +22,6 @@ CORBA::Boolean Logger_i::log_message (const char * message)
log_time_string[24] = '\0';
log_file << ACE_TEXT_ALWAYS_CHAR(log_time_string.c_str()) << " "
<< message << std::endl;
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp b/TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp
index 3016e53eb44..b332e2ca65a 100644
--- a/TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/SmartProxies/MessengerServer.cpp
@@ -19,11 +19,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
// Write its strigified reference to a file
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/DevGuideExamples/SmartProxies/Messenger_i.cpp b/TAO/DevGuideExamples/SmartProxies/Messenger_i.cpp
index 08c2ad7fa96..647e169df59 100644
--- a/TAO/DevGuideExamples/SmartProxies/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/SmartProxies/Messenger_i.cpp
@@ -29,6 +29,6 @@ CORBA::Boolean Messenger_i::send_message (
std::cerr << "Message from: " << user_name << std::endl;
std::cerr << "Subject: " << subject << std::endl;
std::cerr << "Message: " << message << std::endl;
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/SmartProxies/run_test.pl b/TAO/DevGuideExamples/SmartProxies/run_test.pl
index 43f207bf703..43f207bf703 100644..100755
--- a/TAO/DevGuideExamples/SmartProxies/run_test.pl
+++ b/TAO/DevGuideExamples/SmartProxies/run_test.pl
diff --git a/TAO/DevGuideExamples/ValueTypes/Bank/run_test.pl b/TAO/DevGuideExamples/ValueTypes/Bank/run_test.pl
index 8e9a4f88db0..8e9a4f88db0 100644..100755
--- a/TAO/DevGuideExamples/ValueTypes/Bank/run_test.pl
+++ b/TAO/DevGuideExamples/ValueTypes/Bank/run_test.pl
diff --git a/TAO/DevGuideExamples/ValueTypes/Bank/server.cpp b/TAO/DevGuideExamples/ValueTypes/Bank/server.cpp
index b6f092d0187..47fbffe5365 100644
--- a/TAO/DevGuideExamples/ValueTypes/Bank/server.cpp
+++ b/TAO/DevGuideExamples/ValueTypes/Bank/server.cpp
@@ -79,10 +79,10 @@ int ACE_TMAIN (int ac, ACE_TCHAR* av[]) {
PortableServer::POAManager_var poaman = poa->the_POAManager();
- Transaction_i svt;
+ PortableServer::Servant_var<Transaction_i> svt = new Transaction_i;
{
- PortableServer::ObjectId_var id = poa->activate_object(&svt);
+ PortableServer::ObjectId_var id = poa->activate_object(svt.in());
obj = poa->id_to_reference(id.in());
CORBA::String_var ior = orb->object_to_string(obj.in());
write_ior(ior.in());
@@ -94,7 +94,7 @@ int ACE_TMAIN (int ac, ACE_TCHAR* av[]) {
orb->run();
- poa->destroy(1, 1);
+ poa->destroy(true, true);
orb->destroy();
return 0;
diff --git a/TAO/DevGuideExamples/ValueTypes/Messenger/Message_i.cpp b/TAO/DevGuideExamples/ValueTypes/Messenger/Message_i.cpp
index 1ea1f9370da..35529dbf768 100644
--- a/TAO/DevGuideExamples/ValueTypes/Messenger/Message_i.cpp
+++ b/TAO/DevGuideExamples/ValueTypes/Messenger/Message_i.cpp
@@ -21,12 +21,9 @@ MessageImpl::MessageImpl
const char* user,
const char* subject,
const char* txt
- )
+ ) : OBV_Message(Message::AddrList(), user, subject, txt)
{
addAddress(address);
- user_(user);
- subject_(subject);
- text_(txt);
}
Message::AddrList* MessageImpl::getAddresses() {
diff --git a/TAO/DevGuideExamples/ValueTypes/Messenger/MessengerServer.cpp b/TAO/DevGuideExamples/ValueTypes/Messenger/MessengerServer.cpp
index 68531b56a8e..e59b0c2ba87 100644
--- a/TAO/DevGuideExamples/ValueTypes/Messenger/MessengerServer.cpp
+++ b/TAO/DevGuideExamples/ValueTypes/Messenger/MessengerServer.cpp
@@ -28,9 +28,9 @@ int ACE_TMAIN (int ac, ACE_TCHAR* av[]) {
PortableServer::POAManager_var poaman = poa->the_POAManager();
- Messenger_i svt;
+ PortableServer::Servant_var<Messenger_i> svt = new Messenger_i;
- PortableServer::ObjectId_var id = poa->activate_object(&svt);
+ PortableServer::ObjectId_var id = poa->activate_object(svt.in());
obj = poa->id_to_reference(id.in());
CORBA::String_var ior = orb->object_to_string(obj.in());
write_ior(ior.in());
@@ -41,7 +41,7 @@ int ACE_TMAIN (int ac, ACE_TCHAR* av[]) {
orb->run();
- poa->destroy(1, 1);
+ poa->destroy(true, true);
orb->destroy();
return 0;
diff --git a/TAO/DevGuideExamples/ValueTypes/Messenger/Messenger_i.cpp b/TAO/DevGuideExamples/ValueTypes/Messenger/Messenger_i.cpp
index 8d295f17be7..3dc5a20807e 100644
--- a/TAO/DevGuideExamples/ValueTypes/Messenger/Messenger_i.cpp
+++ b/TAO/DevGuideExamples/ValueTypes/Messenger/Messenger_i.cpp
@@ -21,6 +21,6 @@ CORBA::Boolean Messenger_i::send_message (Message*& msg)
msg->subject(out.str().c_str());
msg->text("Ok. I'm on my way.");
- return 1;
+ return true;
}
diff --git a/TAO/DevGuideExamples/ValueTypes/Messenger/run_test.pl b/TAO/DevGuideExamples/ValueTypes/Messenger/run_test.pl
index 279dcaf9d76..279dcaf9d76 100644..100755
--- a/TAO/DevGuideExamples/ValueTypes/Messenger/run_test.pl
+++ b/TAO/DevGuideExamples/ValueTypes/Messenger/run_test.pl
diff --git a/TAO/MPC/config/tao_notify_service.mpb b/TAO/MPC/config/tao_notify_service.mpb
new file mode 100644
index 00000000000..429705dd01a
--- /dev/null
+++ b/TAO/MPC/config/tao_notify_service.mpb
@@ -0,0 +1,8 @@
+// -*- MPC -*-
+// $Id$
+
+project : orbsvcslib, notification_serv, notification_serv, naming, iortable, messaging_optional, valuetype {
+ after += TAO_Notify_Service
+ libs += TAO_Notify_Service
+ tagchecks += Notify
+}
diff --git a/TAO/MPC/config/taodefaults.mpb b/TAO/MPC/config/taodefaults.mpb
index bdfac6286fc..8e9f1886884 100644
--- a/TAO/MPC/config/taodefaults.mpb
+++ b/TAO/MPC/config/taodefaults.mpb
@@ -20,7 +20,7 @@ feature(!corba_messaging) {
}
// If the transport current feature is disabled, then we need
-// to add the TAO_HAS_CORBA_MESSAGING=0 macro onto the command line.
+// to add the TAO_HAS_TRANSPORT_CURRENT=0 macro onto the command line.
feature(!transport_current) {
macros += TAO_HAS_TRANSPORT_CURRENT=0
}
diff --git a/TAO/NEWS b/TAO/NEWS
index 89707224e29..d61f039a198 100644
--- a/TAO/NEWS
+++ b/TAO/NEWS
@@ -1,12 +1,47 @@
PLANNED MAJOR CHANGES "SOMETIME IN THE FUTURE" (i.e., exact beta not known)
===========================================================================
+USER VISIBLE CHANGES BETWEEN TAO-1.6.9 and TAO-1.7.0
+====================================================
+
+ . Merged in changes from OCI's distribution which originate from
+ OCI request ticket [RT 12912]. In their totality, the changes
+ added new features for IMR to support the capability of client
+ automatically reconnects servers within same port range upon
+ server restart. The ServerId is added to ServerInfo in IMR to
+ help identify server process. The -UnregisterIfAddressReused
+ option is added to IMR to enable the address reuse checking
+ upon server registering. The servers that address is reused
+ are unregistered from IMR. The -ORBForwardInvocationOnObjectNotExist
+ option is added to forward request to next available profile
+ upon receiving OBJECT_NOT_EXIST exception reply.
+
+. The -ORBRunThreads of the notification service has been renamed
+ to -RunThreads and the notification service can now be loaded
+ as dll.
+
+. Updated ZIOP to match the OMG Beta 2 specification
+
+. Added a new utility, tao_logWalker, see utils/logWalker for details.
+ This tool analises a collection of log files containing output of
+ TAO running with -ORBDebuglevel 10, and generates a report showing
+ process, thread and invocation summaries.
+
+. Fixed bug in Notification Service that the filter constraint expressions
+ are ignored when event type domain_name or type_name is specified
+ (see bug 3688).
+
+. The MCPP version optionally used by TAO_IDL has been updated to 2.7.2.
+ Efforts have been taken to port this to as many platforms as possible,
+ however, since it is not currently the default configuration it may
+ not work across all platforms.
+
USER VISIBLE CHANGES BETWEEN TAO-1.6.8 and TAO-1.6.9
====================================================
. Reply Dispatchers are refactored. No deadlock occurs when an
(a)synchronous CORBA call is made during dispatching a reply.
-
+
. Fixed IDL compiler bug that in some cases caused code generation for
inherited operations to be skipped.
diff --git a/TAO/PROBLEM-REPORT-FORM b/TAO/PROBLEM-REPORT-FORM
index e7bef227c97..1ecdd35a53a 100644
--- a/TAO/PROBLEM-REPORT-FORM
+++ b/TAO/PROBLEM-REPORT-FORM
@@ -61,6 +61,9 @@ Subject: [area]: [synopsis]
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:
+ BUILD METHOD USED:
+[experimental ./configure or traditional makefile/project file?]
+
CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):
diff --git a/TAO/TAO_IDL/ast/ast_interface.cpp b/TAO/TAO_IDL/ast/ast_interface.cpp
index f0839916907..33e9ba0f55c 100644
--- a/TAO/TAO_IDL/ast/ast_interface.cpp
+++ b/TAO/TAO_IDL/ast/ast_interface.cpp
@@ -1090,7 +1090,7 @@ AST_Interface::fwd_redefinition_helper (AST_Interface *&i,
// lookup is all that's needed.
AST_Decl *d = s->lookup_by_name_local (i->local_name (),
0);
-
+
AST_Interface *fd = 0;
if (d != 0)
@@ -1368,6 +1368,7 @@ AST_Interface::redefine (AST_Interface *from)
this->set_file_name (idl_global->filename ()->get_string ());
this->ifr_added_ = from->ifr_added_;
this->ifr_fwd_added_ = from->ifr_fwd_added_;
+ this->fwd_decl_->set_as_defined ();
}
// Data accessors.
diff --git a/TAO/TAO_IDL/ast/ast_sequence.cpp b/TAO/TAO_IDL/ast/ast_sequence.cpp
index 221b41cee66..bbe2a9276e3 100644
--- a/TAO/TAO_IDL/ast/ast_sequence.cpp
+++ b/TAO/TAO_IDL/ast/ast_sequence.cpp
@@ -246,6 +246,12 @@ AST_Sequence::legal_for_primary_key (void) const
return this->base_type ()->legal_for_primary_key ();
}
+bool
+AST_Sequence::is_defined (void)
+{
+ return this->pd_base_type->is_defined ();
+}
+
void
AST_Sequence::destroy (void)
{
diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp
index bc031e8d87c..08c100117a2 100644
--- a/TAO/TAO_IDL/be/be_codegen.cpp
+++ b/TAO/TAO_IDL/be/be_codegen.cpp
@@ -633,16 +633,21 @@ TAO_CodeGen::start_server_template_header (const char *fname)
return -1;
}
- if (this->server_template_header_->open (fname,
- TAO_OutStream::TAO_SVR_TMPL_HDR)
- == -1)
+ int status =
+ this->server_template_header_->open (
+ fname,
+ TAO_OutStream::TAO_SVR_TMPL_HDR);
+
+ if (status == -1)
{
return -1;
}
- *this->server_template_header_ << be_nl << "// TAO_IDL - Generated from"
+ *this->server_template_header_ << be_nl
+ << "// TAO_IDL - Generated from"
<< be_nl
- << "// " << __FILE__ << ":" << __LINE__
+ << "// " << __FILE__
+ << ":" << __LINE__
<< be_nl << be_nl;
// Generate the ident string, if any.
diff --git a/TAO/TAO_IDL/be/be_helper.cpp b/TAO/TAO_IDL/be/be_helper.cpp
index b3307e87c49..2a8456aa4bd 100644
--- a/TAO/TAO_IDL/be/be_helper.cpp
+++ b/TAO/TAO_IDL/be/be_helper.cpp
@@ -238,13 +238,9 @@ TAO_OutStream::gen_ifdef_macro (const char *flat_name,
ACE_OS::sprintf (macro,
"_%s_",
tao_cg->upcase (flat_name));
+
if (suffix != 0)
{
- //ACE_OS::sprintf (macro, "%s_%s_", macro, cg->upcase (suffix));
- // Can't have macro on both sides of sprintf
- // I'm not sure if the first strcat of "_" should be here or
- // not, but having it gives the same functionality as the old
- // sprintf call...
ACE_OS::strcat (macro, "_");
ACE_OS::strcat (macro, tao_cg->upcase (suffix));
ACE_OS::strcat (macro, "_");
@@ -252,34 +248,36 @@ TAO_OutStream::gen_ifdef_macro (const char *flat_name,
// Append a suffix representing the stream type.
if (add_stream_type_suffix)
- switch (this->st_)
{
- case TAO_OutStream::TAO_CLI_HDR:
- ACE_OS::strcat (macro, "CH_");
- break;
- case TAO_OutStream::TAO_CLI_INL:
- ACE_OS::strcat (macro, "CI_");
- break;
- case TAO_OutStream::TAO_CLI_IMPL:
- ACE_OS::strcat (macro, "CS_");
- break;
- case TAO_OutStream::TAO_SVR_HDR:
- ACE_OS::strcat (macro, "SH_");
- break;
- case TAO_OutStream::TAO_IMPL_HDR:
- ACE_OS::strcat (macro, "IH_");
- break;
- case TAO_OutStream::TAO_IMPL_SKEL:
- ACE_OS::strcat (macro, "IS_");
- break;
- case TAO_OutStream::TAO_SVR_INL:
- ACE_OS::strcat (macro, "SI_");
- break;
- case TAO_OutStream::TAO_SVR_IMPL:
- ACE_OS::strcat (macro, "SS_");
- break;
- default:
- return -1;
+ switch (this->st_)
+ {
+ case TAO_OutStream::TAO_CLI_HDR:
+ ACE_OS::strcat (macro, "CH_");
+ break;
+ case TAO_OutStream::TAO_CLI_INL:
+ ACE_OS::strcat (macro, "CI_");
+ break;
+ case TAO_OutStream::TAO_CLI_IMPL:
+ ACE_OS::strcat (macro, "CS_");
+ break;
+ case TAO_OutStream::TAO_SVR_HDR:
+ ACE_OS::strcat (macro, "SH_");
+ break;
+ case TAO_OutStream::TAO_IMPL_HDR:
+ ACE_OS::strcat (macro, "IH_");
+ break;
+ case TAO_OutStream::TAO_IMPL_SKEL:
+ ACE_OS::strcat (macro, "IS_");
+ break;
+ case TAO_OutStream::TAO_SVR_INL:
+ ACE_OS::strcat (macro, "SI_");
+ break;
+ case TAO_OutStream::TAO_SVR_IMPL:
+ ACE_OS::strcat (macro, "SS_");
+ break;
+ default:
+ return -1;
+ }
}
*this << "\n\n#if !defined (" << macro << ")\n";
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index bd6dc2a82f9..db5a9e49899 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -1791,67 +1791,67 @@ be_interface::gen_gperf_lookup_methods (const char *flat_name)
{
// Perfect Hashing.
case BE_GlobalData::TAO_PERFECT_HASH:
- process_options.command_line ("%s"
- " "
- "-m -M -J -c -C"
- " "
- "-D -E -T -f 0"
- " "
- "-F 0,0"
- " "
- "-a -o -t -p -K"
- " "
- "opname -L C++"
- " "
- "-Z TAO_%s_Perfect_Hash_OpTable"
- " "
- "-N lookup",
+ process_options.command_line (ACE_TEXT ("%s")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-m -M -J -c -C")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-D -E -T -f 0")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-F 0,0")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-a -o -t -p -K")
+ ACE_TEXT (" ")
+ ACE_TEXT ("opname -L C++")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-Z TAO_%s_Perfect_Hash_OpTable")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-N lookup"),
idl_global->gperf_path (),
flat_name);
break;
// Binary search methods from GPERF. Everythis and the -B flag.
case BE_GlobalData::TAO_BINARY_SEARCH:
- process_options.command_line ("%s"
- " "
- "-B"
- " "
- "-m -M -J -c -C"
- " "
- "-D -E -T -f 0"
- " "
- "-F 0,0,0"
- " "
- "-a -o -t -p -K"
- " "
- "opname -L C++"
- " "
- "-Z TAO_%s_Binary_Search_OpTable"
- " "
- "-N lookup",
+ process_options.command_line (ACE_TEXT ("%s")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-B")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-m -M -J -c -C")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-D -E -T -f 0")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-F 0,0,0")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-a -o -t -p -K")
+ ACE_TEXT (" ")
+ ACE_TEXT ("opname -L C++")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-Z TAO_%s_Binary_Search_OpTable")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-N lookup"),
idl_global->gperf_path (),
flat_name);
break;
// Linear search methods from GPERF. Everything and the -Z flag.
case BE_GlobalData::TAO_LINEAR_SEARCH:
- process_options.command_line ("%s"
- " "
- "-b"
- " "
- "-m -M -J -c -C"
- " "
- "-D -E -T -f 0"
- " "
- "-F 0,0"
- " "
- "-a -o -t -p -K"
- " "
- "opname -L C++"
- " "
- "-Z TAO_%s_Linear_Search_OpTable"
- " "
- "-N lookup",
+ process_options.command_line (ACE_TEXT ("%s")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-b")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-m -M -J -c -C")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-D -E -T -f 0")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-F 0,0")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-a -o -t -p -K")
+ ACE_TEXT (" ")
+ ACE_TEXT ("opname -L C++")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-Z TAO_%s_Linear_Search_OpTable")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-N lookup"),
idl_global->gperf_path (),
flat_name);
break;
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 efa5b83f276..16dca4c5a76 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp
@@ -61,9 +61,6 @@ int be_visitor_array_ch::visit_array (be_array *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from " << be_nl
<< "// " __FILE__ << ":" << __LINE__;
- // Generate the ifdefined macro.
- os->gen_ifdef_macro (node->flat_name ());
-
// If we contain an anonymous sequence,
// generate code for the sequence here.
if (nt == AST_Decl::NT_sequence)
@@ -342,9 +339,6 @@ int be_visitor_array_ch::visit_array (be_array *node)
<< ");" << be_uidt;
}
- // Generate the endif macro.
- os->gen_endif ();
-
node->cli_hdr_gen (1);
return 0;
}
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 e5d1bc78907..fb0db9d1d0f 100644
--- a/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component/component_ch.cpp
@@ -52,9 +52,6 @@ be_visitor_component_ch::visit_component (be_component *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- // Now the interface definition itself.
- os->gen_ifdef_macro (node->flat_name ());
-
if (!node->is_local () && !node->is_abstract ())
{
// Forward class declarations.
@@ -260,8 +257,6 @@ be_visitor_component_ch::visit_component (be_component *node)
}
}
- os->gen_endif ();
-
if (be_global->tc_support ())
{
be_visitor_typecode_decl td_visitor (&ctx);
diff --git a/TAO/TAO_IDL/be/be_visitor_component/component_ci.cpp b/TAO/TAO_IDL/be/be_visitor_component/component_ci.cpp
index a7f44a8343f..2942c4cc72f 100644
--- a/TAO/TAO_IDL/be/be_visitor_component/component_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component/component_ci.cpp
@@ -48,8 +48,6 @@ be_visitor_component_ci::visit_component (be_component *node)
*os << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl;
- os->gen_ifdef_macro (node->flat_name (), "");
-
// Generate the constructor from stub and servant.
node->gen_stub_ctor (os);
@@ -65,7 +63,6 @@ be_visitor_component_ci::visit_component (be_component *node)
<< "{" << be_nl
<< "}" ;
- os->gen_endif ();
node->cli_inline_gen (true);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp
index fb1da0bd83e..f6b36894144 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp
@@ -52,8 +52,6 @@ int be_visitor_exception_ch::visit_exception (be_exception *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- os->gen_ifdef_macro (node->flat_name ());
-
*os << be_nl << be_nl << "class " << be_global->stub_export_macro ()
<< " " << node->local_name ()
<< " : public ::CORBA::UserException" << be_nl;
@@ -142,7 +140,6 @@ int be_visitor_exception_ch::visit_exception (be_exception *node)
}
}
- os->gen_endif ();
node->cli_hdr_gen (1);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_home/home_ch.cpp b/TAO/TAO_IDL/be/be_visitor_home/home_ch.cpp
index cbe0a71da1e..69fbfd2e92d 100644
--- a/TAO/TAO_IDL/be/be_visitor_home/home_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_home/home_ch.cpp
@@ -49,16 +49,11 @@ be_visitor_home_ch::visit_home (be_home *node)
// All we do in this is generate a forward declaration of the class.
*os << be_nl << be_nl << "class " << node->local_name () << ";";
- // Generate the ifdefined macro for the _ptr type.
- os->gen_ifdef_macro (node->flat_name (), "_ptr");
-
// Generate the _ptr typedef.
*os << be_nl << be_nl
<< "typedef " << node->local_name () << " *" << node->local_name ()
<< "_ptr;";
- os->gen_endif ();
-
if (be_global->tc_support ())
{
be_visitor_context ctx (*this->ctx_);
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/amh_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/amh_ch.cpp
index 8e9ca518f55..67a1f887644 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/amh_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/amh_ch.cpp
@@ -41,9 +41,6 @@ be_visitor_amh_interface_ch::visit_interface (be_interface *node)
TAO_OutStream *os = this->ctx_->stream ();
- // Now the interface definition itself.
- os->gen_ifdef_macro (node->flat_name ());
-
// Now generate the class definition.
*os << "class " << be_global->stub_export_macro ()
<< " " << node->local_name () << be_idt_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/ami_interface_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/ami_interface_ch.cpp
index ee0f4219ad8..e59249b3831 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/ami_interface_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/ami_interface_ch.cpp
@@ -51,7 +51,6 @@ be_visitor_ami_interface_ch::visit_interface (be_interface *node)
// Grab the stream.
TAO_OutStream *os = this->ctx_->stream ();
- os->gen_ifdef_macro (node->replacement ()->flat_name (), "_ptr");
// Forward declaration.
*os << be_nl << be_nl
@@ -62,6 +61,5 @@ be_visitor_ami_interface_ch::visit_interface (be_interface *node)
<< " *" << node->replacement ()->local_name ()
<< "_ptr;";
- os->gen_endif ();
return 0;
}
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 9cb9561721c..19fdf4e95a8 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp
@@ -53,9 +53,6 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- // Now the interface definition itself.
- os->gen_ifdef_macro (node->flat_name ());
-
// Now generate the class definition.
*os << be_nl << be_nl
<< "class " << be_global->stub_export_macro ()
@@ -290,7 +287,6 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
<< node->local_name () << " &);" << be_nl << be_nl;
}
-
// Local interfaces don't support stub objects.
if (! node->is_local ())
{
@@ -364,8 +360,6 @@ be_visitor_interface_ch::visit_interface (be_interface *node)
}
}
- os->gen_endif ();
-
if (be_global->tc_support () && !node->home_equiv ())
{
be_visitor_typecode_decl td_visitor (&ctx);
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 f2bbd669d85..1647d5ca727 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp
@@ -69,8 +69,6 @@ be_visitor_interface_ci::visit_interface (be_interface *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- os->gen_ifdef_macro (node->flat_name (), "");
-
if (node->is_abstract ())
{
*os << be_nl << be_nl
@@ -111,7 +109,6 @@ be_visitor_interface_ci::visit_interface (be_interface *node)
<< "}" ;
}
- os->gen_endif ();
node->cli_inline_gen (true);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp
index c108d763bd5..d8969b0bc9c 100644
--- a/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp
@@ -57,9 +57,6 @@ int be_visitor_union_ch::visit_union (be_union *node)
// Generate _var and _out class typedefs.
node->gen_common_varout (os);
- // Generate the ifdefined macro for the union type.
- os->gen_ifdef_macro (node->flat_name ());
-
*os << be_nl << be_nl
<< "class " << be_global->stub_export_macro () << " "
<< node->local_name () << be_nl
@@ -160,7 +157,6 @@ int be_visitor_union_ch::visit_union (be_union *node)
*os << "private:" << be_idt_nl;
*os << bt->nested_type_name (node) << " disc_;" << be_nl;
*os << bt->nested_type_name (node) << " holder_;" << be_nl << be_nl;
- // Emit the ACE_NESTED_CLASS macro.
// The members are inside of a union.
*os << "union" << be_nl;
@@ -202,8 +198,6 @@ int be_visitor_union_ch::visit_union (be_union *node)
}
}
- os->gen_endif ();
-
node->cli_hdr_gen (true);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp
index d055409f156..522fd8f3356 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_ch.cpp
@@ -51,8 +51,6 @@ be_visitor_valuebox_ch::visit_valuebox (be_valuebox *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- os->gen_ifdef_macro (node->flat_name ());
-
*os << be_nl << be_nl
<< "class " << node->local_name () << ";" ;
@@ -154,8 +152,6 @@ be_visitor_valuebox_ch::visit_valuebox (be_valuebox *node)
*os << be_uidt_nl
<< "};";
- os->gen_endif ();
-
// Generate typecode declaration.
if (be_global->tc_support ())
{
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 ef1a145949d..e2ef8974ad7 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/valuetype_ch.cpp
@@ -60,9 +60,6 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__;
- // Now the valuetype definition itself.
- os->gen_ifdef_macro (node->flat_name ());
-
if (node->node_type () == AST_Decl::NT_eventtype)
{
*os << be_nl << be_nl
@@ -364,8 +361,6 @@ be_visitor_valuetype_ch::visit_valuetype (be_valuetype *node)
*os << be_uidt_nl
<< "};";
- os->gen_endif ();
-
// Generate the _init -related declarations.
be_visitor_context ctx (*this->ctx_);
be_visitor_valuetype_init_ch visitor (&ctx);
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 701bb1d3816..6f6d091ffb6 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
@@ -65,9 +65,6 @@ be_visitor_valuetype_init_ch::visit_valuetype (be_valuetype *node)
TAO_OutStream& os = *(this->ctx_->stream ());
- // Generate the ifdef macro for the _init class.
- os.gen_ifdef_macro (node->flat_name (), "_init");
-
os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
<< "// " << __FILE__ << ":" << __LINE__ << be_nl << be_nl;
@@ -139,9 +136,6 @@ be_visitor_valuetype_init_ch::visit_valuetype (be_valuetype *node)
os << be_uidt_nl << "};";
- // Generate the endif macro.
- os.gen_endif ();
-
return 0;
}
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 133ea8811a1..094b0c96967 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
@@ -71,9 +71,6 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
}
else
{
- // STEP 1: Generate the class name and the class name we inherit.
- os->gen_ifdef_macro (node->flat_name (), "_OBV");
-
*os << be_nl << be_nl << "// OBV_ class" << be_nl;
*os << "class " << be_global->stub_export_macro() << " ";;
@@ -86,7 +83,7 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
<< ": public virtual "
<< node->full_name ();
- // STEP 1a (about which previous implementer forgot ):
+ // STEP 1 (about which previous implementer forgot ):
// Generate inheritance from corresponding OBV_ classes.
//------>>>
@@ -245,8 +242,6 @@ be_visitor_valuetype_obv_ch::visit_valuetype (be_valuetype *node)
*os << be_nl
<< "CORBA::Boolean require_truncation_;" << be_uidt_nl
<< "};";
-
- os->gen_endif ();
}
return 0;
diff --git a/TAO/TAO_IDL/contrib/mcpp/Makefile.am b/TAO/TAO_IDL/contrib/mcpp/Makefile.am
index e5ee591adc5..fd6e8012b4c 100644
--- a/TAO/TAO_IDL/contrib/mcpp/Makefile.am
+++ b/TAO/TAO_IDL/contrib/mcpp/Makefile.am
@@ -2,22 +2,29 @@
if MCPP_LIB
+bin_PROGRAMS = mcpp
+mcpp_SOURCES = main_libmcpp.c
+mcpp_DEPENDENCIES = libmcpp.la
+mcpp_LDADD = -lmcpp
lib_LTLIBRARIES = libmcpp.la
-libmcpp_la_SOURCES = system.H configed.H internal.H main.c directive.c eval.c expand.c mbchar.c support.c system.c lib.c mcpp_lib.h
-libmcpp_la_LDFLAGS = -no-undefined -version-info 0:1:0
+libmcpp_la_SOURCES = system.H configed.H internal.H main.c directive.c \
+ eval.c expand.c mbchar.c support.c system.c
+libmcpp_la_LDFLAGS = -no-undefined -version-info 3:0:3
+include_HEADERS = mcpp_lib.h mcpp_out.h
-main.lo directive.lo eval.lo expand.lo mbohar.lo support.lo system.lo : system.H internal.H mcpp_lib.h
-lib.lo : configed.H
+main.lo directive.lo eval.lo expand.lo mbohar.lo support.lo system.lo \
+ : system.H internal.H mcpp_lib.h mcpp_out.h
system.H : configed.H
else
bin_PROGRAMS = mcpp
-mcpp_SOURCES = system.H configed.H internal.H main.c directive.c eval.c expand.c mbchar.c support.c system.c lib.c mcpp_lib.h
+mcpp_SOURCES = system.H configed.H internal.H main.c directive.c eval.c \
+ expand.c mbchar.c support.c system.c mcpp_out.h
mcpp_CFLAGS = $(AM_CFLAGS) ## dummy to avoid conflict with MCPP_LIB
-main.o directive.o eval.o expand.o mbohar.o support.o system.o : system.H internal.H mcpp_lib.h
-lib.o : configed.H
+main.o directive.o eval.o expand.o mbohar.o support.o system.o : \
+ system.H internal.H mcpp_out.h
system.H : configed.H
endif
@@ -33,8 +40,13 @@ endif
install-exec-hook:
@if test x"$(gcc_path)" = x""; then exit 1; fi
- @$(srcdir)/set_mcpp.sh '$(gcc_path)' $(gcc_maj_ver) $(gcc_min_ver) '$(cpp_call)' '$(CC)' '$(CXX)' 'x$(EXEEXT)' '$(LN_S)' '$(inc_dir)'
+ @$(srcdir)/set_mcpp.sh '$(gcc_path)' $(gcc_maj_ver) $(gcc_min_ver) \
+ '$(cpp_call)' '$(CC)' '$(CXX)' 'x$(CPPFLAGS)' 'x$(EXEEXT)' \
+ '$(LN_S)' '$(inc_dir)' $(host_system) $(Target_Cpu) \
+ $(target_cc)
uninstall-hook:
- @$(srcdir)/unset_mcpp.sh '$(gcc_path)' $(gcc_maj_ver) $(gcc_min_ver) '$(cpp_call)' '$(CC)' '$(CXX)' 'x$(EXEEXT)' '$(LN_S)' '$(inc_dir)'
+ @$(srcdir)/unset_mcpp.sh '$(gcc_path)' $(gcc_maj_ver) $(gcc_min_ver)\
+ '$(cpp_call)' '$(CC)' '$(CXX)' 'x$(EXEEXT)' '$(LN_S)' \
+ '$(inc_dir)' $(host_system) $(target_cc)
endif
endif
diff --git a/TAO/TAO_IDL/contrib/mcpp/cc1.cpp b/TAO/TAO_IDL/contrib/mcpp/cc1.cpp
index a31249dcaac..3b49df70550 100644
--- a/TAO/TAO_IDL/contrib/mcpp/cc1.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/cc1.cpp
@@ -1,7 +1,6 @@
-/*
+/* $Id$
* cc1.c: dummy cc1 and cc1plus to be invoked by MinGW's GCC
* MinGW's GCC does not invoke shell-script named cc1.
- * $Id$
*/
#include "stdio.h"
@@ -12,11 +11,12 @@
int exec_program( int argc, char ** argv);
// FUZZ: disable check_for_improper_main_declaration
-int main (int argc, char ** argv) {
+int main( int argc, char ** argv) {
+// FUZZ: enable check_for_improper_main_declaration
int status;
if (argc - 1 >= ARG_LIM) {
- ACE_OS::fprintf( stderr, "Too many arguments.\n");
+ fprintf( stderr, "Too many arguments.\n");
return 1;
}
status = exec_program( argc, argv);
@@ -34,20 +34,21 @@ int exec_program( int argc, char ** argv) {
int status;
size_t len;
- if (ACE_OS::strstr( argv[ 0], "cc1plus"))
+ if (strstr( argv[ 0], "cc1plus"))
plus = 1; /* C++ */
- tp = ACE_OS::strstr( argv[ 0], "cc1");
+ tp = strstr( argv[ 0], "cc1");
len = tp - argv[ 0];
- ACE_OS::memcpy( temp, argv[ 0], len);
+ memcpy( temp, argv[ 0], len);
temp[ len] = '\0';
tp = temp + len;
for (i = 1; i < argc; i++)
- if (ACE_OS::strcmp( argv[ i], "-fpreprocessed") == 0)
+ if ((strcmp( argv[ i], "-fpreprocessed") == 0)
+ || (strncmp( argv[ i], "-traditional", 12) == 0))
break; /* Invoke cc1 or cc1plus */
if (i < argc) {
- ACE_OS::strcpy( tp, plus ? "cc1plus_gnuc.exe" : "cc1_gnuc.exe");
+ strcpy( tp, plus ? "cc1plus_gnuc.exe" : "cc1_gnuc.exe");
} else { /* Invoke mcpp */
- ACE_OS::strcpy( tp, "mcpp.exe");
+ strcpy( tp, "mcpp.exe");
if (plus)
buf[ n++] = "-+"; /* Insert the option */
}
diff --git a/TAO/TAO_IDL/contrib/mcpp/configed.H b/TAO/TAO_IDL/contrib/mcpp/configed.H
index efc25e15264..2ac54b3d0f1 100644
--- a/TAO/TAO_IDL/contrib/mcpp/configed.H
+++ b/TAO/TAO_IDL/contrib/mcpp/configed.H
@@ -8,7 +8,7 @@
#define TRUE 1
#define FALSE 0
-#define DATE "2007/05" /* Date of mcpp */
+#define DATE "2008/11" /* Date of mcpp */
/*
* 'Target' means the O.S. and the compiler to which cpp is implemented.
@@ -38,7 +38,7 @@
#define SYS_LINUX 0x1800 /* (SYS_LINUX & 0xF000) == SYS_UNIX */
#define SYS_FREEBSD 0x1A00 /* (SYS_FREEBSD & 0xF000) == SYS_UNIX */
#define SYS_CYGWIN 0x1C00 /* (SYS_CYGWIN & 0xF000) == SYS_UNIX */
-#define SYS_MAC 0x6000
+#define SYS_MAC 0x1E00 /* (SYS_MAC & 0xF000) == SYS_UNIX */
#define SYS_WIN 0x7000
#define SYS_WIN32 0x7400 /* (SYS_WIN32 & 0xF000) == SYS_WIN */
#define SYS_MINGW 0x7C00 /* (SYS_MINGW & 0xF000) == SYS_WIN */
@@ -70,7 +70,7 @@
* MBCHAR means the default encoding, and you can change the encoding by
* #pragma MCPP setlocale, -e <encoding> option or environment variable
* LC_ALL, LC_CTYPE, LANG.
- * MBCHAR == 0 means no multi-byte character encoding.
+ * MBCHAR == 0 means not to recognize any multi-byte character encoding.
*/
/*
@@ -84,22 +84,20 @@
* These may not be defined, if they are not needed.
* They should not be #defined to no token or to "".
*
- * CPU_OLD, CPU_STD1, CPU_STD2, CPU_SP_OLD, CPU_SP_STD
- * define the target cpu (by name)
* SYSTEM_OLD, SYSTEM_STD1, SYSTEM_STD2, SYSTEM_EXT, SYSTEM_EXT2
- * define the target operating system (by name)
+ * define the target operating system (by name).
* SYSTEM_SP_OLD, SYSTEM_SP_STD define the target-OS specific macro name
* COMPILER_OLD, COMPILER_STD1, COMPILER_STD2, COMPILER_EXT, COMPILER_EXT2
* , COMPILER_SP_OLD, COMPILER_SP_STD
- * define the target compiler (by name)
- * COMPILER_CPLUS define the target C++ compiler
+ * define the target compiler (by name).
+ * COMPILER_CPLUS defines the target C++ compiler.
* COMPILER_SP1, COMPILER_SP2, COMPILER_SP3
- * define the compiler-specific macros
+ * define the compiler-specific macros.
*
* <macro>_VAL specify the value of the <macro>.
* If not specified, these values default to "1".
* To define the value of no-token, specify as "" rather than no-token.
- * CPU_*, SYSTEM_OLD, SYSTEM_STD?, COMPILER_OLD have the value of "1".
+ * SYSTEM_OLD, SYSTEM_STD?, COMPILER_OLD have the value of "1".
*/
/*
@@ -149,13 +147,22 @@
#if SYSTEM == SYS_FREEBSD
#define SYSTEM_EXT "__FreeBSD__"
#endif
+
#if SYSTEM == SYS_LINUX
#define SYSTEM_EXT "__linux__"
#endif
+#if SYSTEM == SYS_MAC
+#define SYSTEM_EXT "__APPLE__"
+#endif
+
#if SYSTEM == SYS_CYGWIN
#define SYSTEM_EXT "__CYGWIN__"
+#if defined (__CYGWIN64__)
+#define SYSTEM_EXT2 "__CYGWIN64__"
+#else
#define SYSTEM_EXT2 "__CYGWIN32__"
+#endif
#ifndef MBCHAR
#define MBCHAR SJIS
#endif
@@ -163,7 +170,11 @@
#if SYSTEM == SYS_MINGW
#define SYSTEM_EXT "__MINGW__"
+#if defined (__MINGW64__)
+#define SYSTEM_EXT2 "__MINGW64__"
+#else
#define SYSTEM_EXT2 "__MINGW32__"
+#endif
#ifndef MBCHAR
#define MBCHAR SJIS
#endif
@@ -171,7 +182,7 @@
#if SYS_FAMILY == SYS_UNIX
#ifndef MBCHAR
-#define MBCHAR EUC_JP
+#define MBCHAR EUC_JP /* UTF8 if you like */
#endif
#endif
@@ -189,6 +200,7 @@
/*
* __SIZE_TYPE__, __PTRDIFF_TYPE__ and __WCHAR_TYPE__ are the predefines of
* GCC and undocumented in GCC 2.
+ * On GCC V.3.*, V.4.*, these macros are known by mcpp_g*_predef_*.h files.
*/
#if __GNUC__ == 2
#define COMPILER_SP1 "__SIZE_TYPE__"
@@ -201,8 +213,8 @@
#if COMPILER == INDEPENDENT
/* specifications of compiler-independent-build */
-#define LINE_PREFIX "# "
-#define STD_LINE_PREFIX FALSE /* Output #line by C source format */
+#define LINE_PREFIX "#line "
+#define STD_LINE_PREFIX TRUE /* Output #line by C source format */
#define HAVE_DIGRAPHS TRUE /* Output digraphs as it is */
#define SEARCH_INIT SOURCE /* Include directory relative to source */
#define SJIS_IS_ESCAPE_FREE TRUE /* Do not treat SJIS specially */
@@ -283,7 +295,20 @@
* ULONGMAX should be defined to the ULONG_MAX in <limits.h>.
*/
+/* _POSIX_* only to get PATH_MAX */
+#define _POSIX_ 1
+#define _POSIX_SOURCE 1
+#ifndef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 1
+#define _POSIX_C_SOURCE_defined 1
+#endif
#include "limits.h"
+#undef _POSIX_
+#undef _POSIX_SOURCE
+#ifdef _POSIX_C_SOURCE_defined
+#undef _POSIX_C_SOURCE
+#undef _POSIX_C_SOURCE_defined
+#endif
#define CHARBIT CHAR_BIT
#define UCHARMAX UCHAR_MAX
#define USHRTMAX USHRT_MAX
@@ -305,8 +330,6 @@
* SJIS literal.
* BIGFIVE_IS_ESCAPE_FREE means similar case on BIGFIVE encoding.
* ISO2022_JP_IS_ESCAPE_FREE means similar case on ISO2022_JP encoding.
- *
- * GCC can handle these encodings if it has been configured so.
*/
#ifndef SJIS_IS_ESCAPE_FREE
#define SJIS_IS_ESCAPE_FREE FALSE /* or TRUE following your compiler */
@@ -326,8 +349,6 @@
*/
#define HOST_HAVE_STPCPY HAVE_STPCPY
-#define HOST_HAVE_GETOPT HAVE_GETOPT
-#define HOST_LIB_IS_GLIBC LIB_IS_GLIBC
/*
* Declaration of standard library functions and macros.
@@ -336,11 +357,11 @@
/* stdin, stdout, stderr, FILE, NULL, fgets(), fputs() and other functions. */
#include "stdio.h"
-/* FILENAMEMAX should be defined to FILENAME_MAX of host system. */
-#ifdef FILENAME_MAX
-#define FILENAMEMAX FILENAME_MAX
+/* PATHMAX is the maximum length of path-list on the host system. */
+#ifdef PATH_MAX
+#define PATHMAX PATH_MAX /* Posix macro */
#else
-#define FILENAMEMAX BUFSIZ
+#define PATHMAX FILENAME_MAX
#endif
/* islower(), isupper(), toupper(), isdigit(), isxdigit(), iscntrl() */
@@ -354,15 +375,6 @@
#include "time.h"
#include "setjmp.h"
-/* Functions other than standard. */
-#if ! HOST_HAVE_GETOPT || HOST_LIB_IS_GLIBC || HOST_SYSTEM == SYS_MINGW
-#define NEED_GETOPT TRUE
-#else
-#define NEED_GETOPT FALSE
-#endif
-
-extern char * mcpp_stpcpy( char * dest, const char * src);
-
/* For debugging malloc systems by kmatsui */
#if KMMALLOC && _MEM_DEBUG
#include "xalloc.h"
diff --git a/TAO/TAO_IDL/contrib/mcpp/directive.cpp b/TAO/TAO_IDL/contrib/mcpp/directive.cpp
index 8e6718c6382..028247e1582 100644
--- a/TAO/TAO_IDL/contrib/mcpp/directive.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/directive.cpp
@@ -1,5 +1,5 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
* All rights reserved.
*
* Some parts of this code are derived from the public domain software
@@ -42,395 +42,449 @@
#include "internal.H"
#endif
-#include "ace/OS_NS_stdlib.h"
-#include "ace/OS_NS_ctype.h"
-
-static int do_if( int hash);
- /* #if, #elif, #ifdef, #ifndef */
+static int do_if( int hash, const char * directive_name);
+/* #if, #elif, #ifdef, #ifndef */
+static void sync_linenum( void);
+/* Synchronize number of newlines */
static long do_line( void);
- /* Process #line directive */
+/* Process #line directive */
static int get_parm( void);
- /* Get parm., its nargs, names, lens*/
+/* Get parameters of macro, its nargs, names, lengths */
static int get_repl( const char * macroname);
- /* Get replacement embedded parm-no.*/
+/* Get replacement text embedding parameter number */
static char * is_formal( const char * name, int conv);
- /* If formal param., save the num. */
+/* If formal parameter, save the number */
static char * def_stringization( char * repl_cur);
- /* Define stringization */
+/* Define stringization */
static char * mgtoken_save( const char * macroname);
- /* Prefix DEF_MAGIC to macro name */
+/* Prefix DEF_MAGIC to macro name in repl-text */
static char * str_parm_scan( char * string_end);
- /* Scan the param. in string */
+/* Scan the parameter in quote */
static void do_undef( void);
- /* Process #undef directive */
-static void dump_repl( const DEFBUF * dp, FILE * fp);
- /* Dump replacement text */
+/* Process #undef directive */
+static void dump_repl( const DEFBUF * dp, FILE * fp, int gcc2_va);
+/* Dump replacement text */
/*
* Generate (by hand-inspection) a set of unique values for each directive.
* MCPP won't compile if there are hash conflicts.
*/
-
#define L_if ('i' ^ (EOS << 1))
-#define L_ifdef ('i' ^ ('e' << 1))
-#define L_ifndef ('i' ^ ('d' << 1))
-#define L_elif ('e' ^ ('f' << 1))
-#define L_else ('e' ^ ('e' << 1))
-#define L_endif ('e' ^ ('i' << 1))
-#define L_define ('d' ^ ('i' << 1))
-#define L_undef ('u' ^ ('e' << 1))
-#define L_line ('l' ^ ('e' << 1))
-#define L_include ('i' ^ ('l' << 1))
+#define L_ifdef ('i' ^ ('d' << 1))
+#define L_ifndef ('i' ^ ('n' << 1))
+#define L_elif ('e' ^ ('i' << 1))
+#define L_else ('e' ^ ('s' << 1))
+#define L_endif ('e' ^ ('d' << 1))
+#define L_define ('d' ^ ('f' << 1))
+#define L_undef ('u' ^ ('d' << 1))
+#define L_line ('l' ^ ('n' << 1))
+#define L_include ('i' ^ ('c' << 1))
#if COMPILER == GNUC
-#define L_include_next ('i' ^ ('l' << 1) ^ ('_' << 1))
+#define L_include_next ('i' ^ ('c' << 1) ^ ('_' << 1))
#endif
-#define L_error ('e' ^ ('o' << 1))
-#define L_pragma ('p' ^ ('g' << 1))
+#if SYSTEM == SYS_MAC
+#define L_import ('i' ^ ('p' << 1))
+#endif
+#define L_error ('e' ^ ('r' << 1))
+#define L_pragma ('p' ^ ('a' << 1))
static const char * const not_ident
- = "Not an identifier \"%s\""; /* _E_ */
+= "Not an identifier \"%s\""; /* _E_ */
static const char * const no_arg = "No argument"; /* _E_ */
static const char * const excess
- = "Excessive token sequence \"%s\""; /* _E_ _W1_ */
+= "Excessive token sequence \"%s\""; /* _E_ _W1_ */
void directive( void)
/*
* Process #directive lines. Each directive have their own subroutines.
*/
{
- const char * const many_nesting =
-"More than %.0s%ld nesting of #if (#ifdef) sections%s"; /* _F_ _W4_ _W8_ */
- const char * const not_in_section
+ const char * const many_nesting =
+ "More than %.0s%ld nesting of #if (#ifdef) sections%s"; /* _F_ _W4_ _W8_ */
+ const char * const not_in_section
= "Not in a #if (#ifdef) section in a source file"; /* _E_ _W1_ */
- const char * const illeg_dir
- = "Illegal #directive \"%s%.0ld%s\""; /* _E_ _W1_ _W8_ */
- const char * const in_skipped = " (in skipped block)"; /* _W8_ */
- FILEINFO * file;
- int token_type;
- int hash;
- int c;
- const char * tp;
-
- in_directive = TRUE;
- if (keep_comments) {
- mcpp_fputc( '\n', OUT); /* Possibly flush out comments */
- newlines--;
- }
- c = skip_ws();
- if (c == '\n') /* 'null' directive */
- goto ret;
- token_type = scan_token( c, (workp = work_buf, &workp), work_end);
- if (in_asm && (token_type != NAM /* In #asm block */
- || (! str_eq( identifier, "asm") /* Ignore #anything */
- && ! str_eq( identifier, "endasm")))) /* other */
- goto skip_line; /* than #asm or #endasm */
- if (token_type != NAM) {
- if (mcpp_mode == OLD_PREP && token_type == NUM) { /* # 123 [fname]*/
- ACE_OS::strcpy( identifier, "line");
+ const char * const illeg_dir
+ = "Illegal #directive \"%s%.0ld%s\""; /* _E_ _W1_ _W8_ */
+ const char * const in_skipped = " (in skipped block)"; /* _W8_ */
+ FILEINFO * file;
+ int token_type;
+ int hash;
+ int c;
+ const char * tp;
+
+ in_directive = TRUE;
+ if (keep_comments) {
+ mcpp_fputc( '\n', OUT); /* Possibly flush out comments */
+ newlines--;
+ }
+ c = skip_ws();
+ if (c == '\n') /* 'null' directive */
+ goto ret;
+ token_type = scan_token( c, (workp = work_buf, &workp), work_end);
+ if (in_asm && (token_type != NAM
+ || (! str_eq( identifier, "asm")
+ && ! str_eq( identifier, "endasm"))))
+ /* In #asm block, ignore #anything other than #asm or #endasm */
+ goto skip_line;
+ if (token_type != NAM) {
+ if (mcpp_mode == OLD_PREP && token_type == NUM) { /* # 123 [fname]*/
+ ACE_OS::strcpy( identifier, "line");
+ } else {
+ if (compiling) {
+ if (option_flags.lang_asm) {
+ if (warn_level & 1)
+ cwarn( illeg_dir, work_buf, 0L, 0);
} else {
- if (compiling) {
- if (lang_asm) {
- if (warn_level & 1)
- cwarn( illeg_dir, work_buf, 0L, 0);
- } else {
- cerror( illeg_dir, work_buf, 0L, 0);
- }
- } else if (warn_level & 8) {
- cwarn( illeg_dir, work_buf, 0L, in_skipped);
- }
- goto skip_line;
+ cerror( illeg_dir, work_buf, 0L, 0);
}
+ } else if (warn_level & 8) {
+ cwarn( illeg_dir, work_buf, 0L, in_skipped);
+ }
+ goto skip_line;
}
- if (identifier[ 2] == EOS)
- identifier[ 3] = EOS; /* Diddle */
- hash = (identifier[ 1] == EOS) ? identifier[ 0]
- : (identifier[ 0] ^ (identifier[ 3] << 1));
- if (ACE_OS::strlen( identifier) > 7)
- hash ^= (identifier[ 7] << 1);
-
- switch (hash) {
- case L_if: tp = "if"; break;
- case L_ifdef: tp = "ifdef"; break;
- case L_ifndef: tp = "ifndef"; break;
- case L_elif: tp = "elif"; break;
- case L_else: tp = "else"; break;
- case L_endif: tp = "endif"; break;
- case L_define: tp = "define"; break;
- case L_undef: tp = "undef"; break;
- case L_line: tp = "line"; break;
- case L_include: tp = "include"; break;
+ }
+ hash = (identifier[ 1] == EOS) ? identifier[ 0]
+ : (identifier[ 0] ^ (identifier[ 2] << 1));
+ if (ACE_OS::strlen( identifier) > 7)
+ hash ^= (identifier[ 7] << 1);
+
+ /* hash is set to a unique value corresponding to the directive.*/
+ switch (hash) {
+ case L_if: tp = "if"; break;
+ case L_ifdef: tp = "ifdef"; break;
+ case L_ifndef: tp = "ifndef"; break;
+ case L_elif: tp = "elif"; break;
+ case L_else: tp = "else"; break;
+ case L_endif: tp = "endif"; break;
+ case L_define: tp = "define"; break;
+ case L_undef: tp = "undef"; break;
+ case L_line: tp = "line"; break;
+ case L_include: tp = "include"; break;
#if COMPILER == GNUC
- case L_include_next: tp = "include_next"; break;
+ case L_include_next: tp = "include_next"; break;
#endif
- case L_error: tp = "error"; break;
- case L_pragma: tp = "pragma"; break;
- default: tp = 0; break;
- }
+#if SYSTEM == SYS_MAC
+ case L_import: tp = "import"; break;
+#endif
+ case L_error: tp = "error"; break;
+ case L_pragma: tp = "pragma"; break;
+ default: tp = 0; break;
+ }
- if (tp != 0 && ! str_eq( identifier, tp)) { /* Hash conflict*/
- hash = 0; /* Unknown directive, will */
- tp = 0; /* be handled by do_old() */
- }
-
- /*
- * hash is set to a unique value corresponding to the directive.
- */
- if (! compiling) { /* Not compiling now */
- switch (hash) {
- case L_elif :
- if (! standard) {
- if (warn_level & 8)
- do_old(); /* Unknown directive */
- goto skip_line; /* Skip the line */
- } /* Else fall through */
- case L_else : /* Test the #if's nest, if 0, compile */
- case L_endif: /* Un-nest #if */
- break;
- case L_if : /* These can't turn */
- case L_ifdef: /* compilation on, but */
- case L_ifndef: /* we must nest #if's.*/
- if (&ifstack[ BLK_NEST] < ++ifptr)
- goto if_nest_err;
- if (standard && (warn_level & 8)
- && &ifstack[ blk_nest_min + 1] == ifptr)
- cwarn( many_nesting, 0, (long) blk_nest_min, in_skipped);
- ifptr->stat = 0; /* !WAS_COMPILING */
- ifptr->ifline = src_line; /* Line at section start*/
- goto skip_line;
- default : /* Other directives */
- if (tp == 0 && (warn_level & 8))
- do_old(); /* Unknown directive ? */
- goto skip_line; /* Skip the line */
- }
- }
- macro_line = 0; /* Reset error flag */
- file = infile; /* Remember the current file */
+ if (tp != 0 && ! str_eq( identifier, tp)) { /* Hash conflict*/
+ hash = 0; /* Unknown directive, will */
+ tp = 0; /* be handled by do_old() */
+ }
+ if (! compiling) { /* Not compiling now */
switch (hash) {
-
- case L_if:
- case L_ifdef:
- case L_ifndef:
- if (&ifstack[ BLK_NEST] < ++ifptr)
- goto if_nest_err;
- if (standard && (warn_level & 4) &&
- &ifstack[ blk_nest_min + 1] == ifptr)
- cwarn( many_nesting, 0 , (long) blk_nest_min, 0);
- ifptr->stat = WAS_COMPILING;
- ifptr->ifline = src_line;
- goto ifdo;
-
- case L_elif:
- if (! standard) {
- do_old(); /* Unrecognized directive */
- break;
- }
- if (ifptr == &ifstack[0])
- goto nest_err;
- if (ifptr == infile->initif) {
- goto in_file_nest_err;
- }
- if (ifptr->stat & ELSE_SEEN)
- goto else_seen_err;
- if ((ifptr->stat & (WAS_COMPILING | TRUE_SEEN)) != WAS_COMPILING) {
- compiling = FALSE; /* Done compiling stuff */
- goto skip_line; /* Skip this group */
- }
- hash = L_if;
-ifdo:
- c = do_if( hash);
- if (mcpp_debug & IF) {
- mcpp_fprintf( DBG
+ case L_elif :
+ if (! standard) {
+ if (warn_level & 8)
+ do_old(); /* Unknown directive */
+ goto skip_line; /* Skip the line */
+ } /* Else fall through */
+ case L_else : /* Test the #if's nest, if 0, compile */
+ case L_endif: /* Un-nest #if */
+ break;
+ case L_if : /* These can't turn */
+ case L_ifdef: /* compilation on, but */
+ case L_ifndef : /* we must nest #if's.*/
+ if (&ifstack[ BLK_NEST] < ++ifptr)
+ goto if_nest_err;
+ if (standard && (warn_level & 8)
+ && &ifstack[ std_limits.blk_nest + 1] == ifptr)
+ cwarn( many_nesting, 0, (long) std_limits.blk_nest
+ , in_skipped);
+ ifptr->stat = 0; /* !WAS_COMPILING */
+ ifptr->ifline = src_line; /* Line at section start*/
+ goto skip_line;
+ default : /* Other directives */
+ if (tp == 0 && (warn_level & 8))
+ do_old(); /* Unknown directive ? */
+ goto skip_line; /* Skip the line */
+ }
+ }
+
+ macro_line = 0; /* Reset error flag */
+ file = infile; /* Remember the current file */
+
+ switch (hash) {
+
+ case L_if:
+ case L_ifdef:
+ case L_ifndef:
+ if (&ifstack[ BLK_NEST] < ++ifptr)
+ goto if_nest_err;
+ if (standard && (warn_level & 4) &&
+ &ifstack[ std_limits.blk_nest + 1] == ifptr)
+ cwarn( many_nesting, 0 , (long) std_limits.blk_nest, 0);
+ ifptr->stat = WAS_COMPILING;
+ ifptr->ifline = src_line;
+ goto ifdo;
+
+ case L_elif:
+ if (! standard) {
+ do_old(); /* Unrecognized directive */
+ break;
+ }
+ if (ifptr == &ifstack[0])
+ goto nest_err;
+ if (ifptr == infile->initif) {
+ goto in_file_nest_err;
+ }
+ if (ifptr->stat & ELSE_SEEN)
+ goto else_seen_err;
+ if ((ifptr->stat & (WAS_COMPILING | TRUE_SEEN)) != WAS_COMPILING) {
+ compiling = FALSE; /* Done compiling stuff */
+ goto skip_line; /* Skip this group */
+ }
+ hash = L_if;
+ ifdo:
+ c = do_if( hash, tp);
+ if (mcpp_debug & IF) {
+ mcpp_fprintf( DBG
, "#if (#elif, #ifdef, #ifndef) evaluate to %s.\n"
, compiling ? "TRUE" : "FALSE");
- mcpp_fprintf( DBG, "line %ld: %s", src_line, infile->buffer);
- }
- if (c == FALSE) { /* Error */
- compiling = FALSE; /* Skip this group */
- goto skip_line; /* Prevent an extra error message */
- }
- break;
-
- case L_else:
- if (ifptr == &ifstack[0])
- goto nest_err;
- if (ifptr == infile->initif) {
- if (standard)
- goto in_file_nest_err;
- else if (warn_level & 1)
- cwarn( not_in_section, 0, 0L, 0);
- }
- if (ifptr->stat & ELSE_SEEN)
- goto else_seen_err;
- ifptr->stat |= ELSE_SEEN;
- ifptr->elseline = src_line;
- if (ifptr->stat & WAS_COMPILING) {
- if (compiling || (ifptr->stat & TRUE_SEEN) != 0)
- compiling = FALSE;
- else
- compiling = TRUE;
- }
- break;
-
- case L_endif:
- if (ifptr == &ifstack[0])
- goto nest_err;
- if (ifptr <= infile->initif) {
- if (standard)
- goto in_file_nest_err;
- else if (warn_level & 1)
- cwarn( not_in_section, 0, 0L, 0);
- }
- if (! compiling && (ifptr->stat & WAS_COMPILING))
- wrong_line = TRUE;
- compiling = (ifptr->stat & WAS_COMPILING);
- --ifptr;
- break;
-
- case L_define:
- do_define( FALSE);
- break;
-
- case L_undef:
- do_undef();
- break;
-
- case L_line:
- if ((c = do_line()) > 0) {
- src_line = c;
- sharp(); /* Putout the new line number and file name */
- infile->line = --src_line; /* Next line number is 'src_line' */
- newlines = -1;
- } else { /* Error already diagnosed by do_line() */
- skip_nl();
- }
- break;
-
- case L_include:
- in_include = TRUE;
- if (do_include( FALSE) == TRUE && file != infile)
- newlines = -1; /* File has been included. Clear blank lines */
- in_include = FALSE;
- break;
-
- case L_error:
- if (! standard) {
- do_old(); /* Unrecognized directive */
- break;
- }
- cerror( infile->buffer, 0, 0L, 0); /* _E_ */
- break;
-
- case L_pragma:
- if (! standard) {
- do_old(); /* Unrecognized directive */
- break;
- }
- do_pragma();
- newlines = -1; /* Do not putout excessive '\n' */
- break;
-
- default: /* Non-Standard or unknown directives */
- do_old();
- break;
+ mcpp_fprintf( DBG, "line %ld: %s", src_line, infile->buffer);
+ }
+ if (c == FALSE) { /* Error */
+ compiling = FALSE; /* Skip this group */
+ goto skip_line; /* Prevent an extra error message */
}
+ break;
+
+ case L_else:
+ if (ifptr == &ifstack[0])
+ goto nest_err;
+ if (ifptr == infile->initif) {
+ if (standard)
+ goto in_file_nest_err;
+ else if (warn_level & 1)
+ cwarn( not_in_section, 0, 0L, 0);
+ }
+ if (ifptr->stat & ELSE_SEEN)
+ goto else_seen_err;
+ ifptr->stat |= ELSE_SEEN;
+ ifptr->elseline = src_line;
+ if (ifptr->stat & WAS_COMPILING) {
+ if (compiling || (ifptr->stat & TRUE_SEEN) != 0)
+ compiling = FALSE;
+ else
+ compiling = TRUE;
+ }
+ if ((mcpp_debug & MACRO_CALL) && (ifptr->stat & WAS_COMPILING)) {
+ sync_linenum();
+ mcpp_fprintf( OUT, "/*else %ld:%c*/\n", src_line
+ , compiling ? 'T' : 'F'); /* Show that #else is seen */
+ }
+ break;
+
+ case L_endif:
+ if (ifptr == &ifstack[0])
+ goto nest_err;
+ if (ifptr <= infile->initif) {
+ if (standard)
+ goto in_file_nest_err;
+ else if (warn_level & 1)
+ cwarn( not_in_section, 0, 0L, 0);
+ }
+ if (! compiling && (ifptr->stat & WAS_COMPILING))
+ wrong_line = TRUE;
+ compiling = (ifptr->stat & WAS_COMPILING);
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
+ sync_linenum();
+ mcpp_fprintf( OUT, "/*endif %ld*/\n", src_line);
+ /* Show that #if block has ended */
+ }
+ --ifptr;
+ break;
+
+ case L_define:
+ do_define( FALSE, 0);
+ break;
+
+ case L_undef:
+ do_undef();
+ break;
+
+ case L_line:
+ if ((c = do_line()) > 0) {
+ src_line = c;
+ sharp( 0, 0); /* Putout the new line number and file name */
+ infile->line = --src_line; /* Next line number is 'src_line' */
+ newlines = -1;
+ } else { /* Error already diagnosed by do_line() */
+ skip_nl();
+ }
+ break;
+
+ case L_include:
+ in_include = TRUE;
+ if (do_include( FALSE) == TRUE && file != infile)
+ newlines = -1; /* File has been included. Clear blank lines */
+ in_include = FALSE;
+ break;
+
+ case L_error:
+ if (! standard) {
+ do_old(); /* Unrecognized directive */
+ break;
+ }
+ cerror( infile->buffer, 0, 0L, 0); /* _E_ */
+ break;
- switch (hash) {
- case L_if :
- case L_define :
- case L_line :
- goto skip_line; /* To prevent duplicate error message */
+ case L_pragma:
+ if (! standard) {
+ do_old(); /* Unrecognized directive */
+ break;
+ }
+ do_pragma();
+ newlines = -1; /* Do not putout excessive '\n' */
+ break;
+
+ default: /* Non-Standard or unknown directives */
+ do_old();
+ break;
+ }
+
+ switch (hash) {
+ case L_if :
+ case L_elif :
+ case L_define :
+ case L_line :
+ goto skip_line; /* To prevent duplicate error message */
#if COMPILER == GNUC
- case L_include_next :
- if (file != infile) /* File has been included */
- newlines = -1;
+ case L_include_next :
+ if (file != infile) /* File has been included */
+ newlines = -1;
#endif
- case L_error :
- if (standard)
- goto skip_line;
- /* Else fall through */
- case L_include :
- case L_pragma :
+#if SYSTEM == SYS_MAC
+ case L_import :
+ if (file != infile) /* File has been included */
+ newlines = -1;
+#endif
+ case L_error :
+ if (standard)
+ goto skip_line;
+ /* Else fall through */
+ case L_include :
+ case L_pragma :
+ if (standard)
+ break; /* Already read over the line */
+ /* Else fall through */
+ default : /* L_else, L_endif, L_undef, etc. */
+ if (mcpp_mode == OLD_PREP) {
+ /*
+ * Ignore the rest of the #directive line so you can write
+ * #if foo
+ * #endif foo
+ */
+ ;
+ } else if (skip_ws() != '\n') {
+#if COMPILER == GNUC
+ if (standard && hash != L_endif)
+#else
if (standard)
- break; /* Already read over the line */
- /* Else fall through */
- default : /* L_else, L_endif, L_undef, etc. */
- if (mcpp_mode == OLD_PREP) {
- /*
- * Ignore the rest of the #directive line so you can write
- * #if foo
- * #endif foo
- */
- ;
- } else if (skip_ws() != '\n') {
- if (standard)
- cerror( excess, infile->bptr-1, 0L, 0);
- else if (warn_level & 1)
- cwarn( excess, infile->bptr-1, 0L, 0);
- }
- skip_nl();
+#endif
+ cerror( excess, infile->bptr-1, 0L, 0);
+ else if (warn_level & 1)
+ cwarn( excess, infile->bptr-1, 0L, 0);
}
- goto ret;
-
-in_file_nest_err:
- cerror( not_in_section, 0, 0L, 0);
- goto skip_line;
-nest_err:
- cerror( "Not in a #if (#ifdef) section", 0, 0L, 0); /* _E_ */
- goto skip_line;
-else_seen_err:
- cerror( "Already seen #else at line %.0s%ld" /* _E_ */
- , 0, ifptr->elseline, 0);
-skip_line:
- skip_nl(); /* Ignore rest of line */
- goto ret;
-
-if_nest_err:
- cfatal( many_nesting, 0, (long) BLK_NEST, 0);
-
-ret:
- in_directive = FALSE;
- keep_comments = cflag && compiling && !no_output;
- if (! wrong_line)
- newlines++;
+ skip_nl();
+ }
+ goto ret;
+
+ in_file_nest_err:
+ cerror( not_in_section, 0, 0L, 0);
+ goto skip_line;
+ nest_err:
+ cerror( "Not in a #if (#ifdef) section", 0, 0L, 0); /* _E_ */
+ goto skip_line;
+ else_seen_err:
+ cerror( "Already seen #else at line %.0s%ld" /* _E_ */
+ , 0, ifptr->elseline, 0);
+ skip_line:
+ skip_nl(); /* Ignore rest of line */
+ goto ret;
+
+ if_nest_err:
+ cfatal( many_nesting, 0, (long) BLK_NEST, 0);
+
+ ret:
+ in_directive = FALSE;
+ keep_comments = option_flags.c && compiling && !no_output;
+ keep_spaces = option_flags.k && compiling;
+ /* keep_spaces is on for #define line even if no_output is TRUE */
+ if (! wrong_line)
+ newlines++;
}
-static int do_if( int hash)
+static int do_if( int hash, const char * directive_name)
/*
* Process an #if (#elif), #ifdef or #ifndef. The latter two are straight-
- * forward, while #if needs a subroutine of its own to evaluate the
- * expression.
+ * forward, while #if needs a subroutine to evaluate the expression.
* do_if() is called only if compiling is TRUE. If false, compilation is
* always supressed, so we don't need to evaluate anything. This supresses
* unnecessary warnings.
*/
{
- int c;
- int found;
-
- if ((c = skip_ws()) == '\n') {
- unget_ch();
- cerror( no_arg, 0, 0L, 0);
- return FALSE;
- }
- if (hash == L_if) { /* #if or #elif */
- unget_ch();
- found = (eval_if() != 0L); /* Evaluate expression */
- hash = L_ifdef; /* #if is now like #ifdef */
- } else { /* #ifdef or #ifndef */
- if (scan_token( c, (workp = work_buf, &workp), work_end) != NAM) {
- cerror( not_ident, work_buf, 0L, 0);
- return FALSE; /* Next token is not an identifier */
- }
- found = (look_id( identifier) != 0); /* Look in table */
+ int c;
+ int found;
+ DEFBUF * defp;
+
+ if ((c = skip_ws()) == '\n') {
+ unget_ch();
+ cerror( no_arg, 0, 0L, 0);
+ return FALSE;
+ }
+ if (mcpp_debug & MACRO_CALL) {
+ sync_linenum();
+ mcpp_fprintf( OUT, "/*%s %ld*/", directive_name, src_line);
+ }
+ if (hash == L_if) { /* #if or #elif */
+ unget_ch();
+ found = (eval_if() != 0L); /* Evaluate expression */
+ if (mcpp_debug & MACRO_CALL)
+ in_if = FALSE; /* 'in_if' is dynamically set in eval_lex() */
+ hash = L_ifdef; /* #if is now like #ifdef */
+ } else { /* #ifdef or #ifndef */
+ if (scan_token( c, (workp = work_buf, &workp), work_end) != NAM) {
+ cerror( not_ident, work_buf, 0L, 0);
+ return FALSE; /* Next token is not an identifier */
}
- if (found == (hash == L_ifdef)) {
- compiling = TRUE;
- ifptr->stat |= TRUE_SEEN;
- } else {
- compiling = FALSE;
+ found = ((defp = look_id( identifier)) != 0); /* Look in table*/
+ if (mcpp_debug & MACRO_CALL) {
+ if (found)
+ mcpp_fprintf( OUT, "/*%s*/", defp->name);
}
- return TRUE;
+ }
+ if (found == (hash == L_ifdef)) {
+ compiling = TRUE;
+ ifptr->stat |= TRUE_SEEN;
+ } else {
+ compiling = FALSE;
+ }
+ if (mcpp_debug & MACRO_CALL) {
+ mcpp_fprintf( OUT, "/*i %c*/\n", compiling ? 'T' : 'F');
+ /* Report wheather the directive is evaluated TRUE or FALSE */
+ }
+ return TRUE;
+}
+
+static void sync_linenum( void)
+/*
+ * Put out newlines or #line line to synchronize line number with the
+ * annotations about #if, #elif, #ifdef, #ifndef, #else or #endif on -K option.
+ */
+{
+ if (wrong_line || newlines > 10) {
+ sharp( 0, 0);
+ } else {
+ while (newlines-- > 0)
+ mcpp_fputc('\n', OUT);
+ }
+ newlines = -1;
}
static long do_line( void)
@@ -445,127 +499,124 @@ static long do_line( void)
* do_line() always absorbs the line (except the <newline>).
*/
{
- const char * const not_digits
- = "Line number \"%s\" isn't a decimal digits sequence"; /* _E_ _W1_ */
- const char * const out_of_range
- = "Line number \"%s\" is out of range of [1,%ld]"; /* _E_ _W1_ */
- int token_type;
- VAL_SIGN * valp;
- char * save;
- int c;
-
- if ((c = skip_ws()) == '\n') {
- cerror( no_arg, 0, 0L, 0);
- unget_ch(); /* Push back <newline> */
- return -1L; /* Line number is not changed */
+ const char * const not_digits
+ = "Line number \"%s\" isn't a decimal digits sequence"; /* _E_ _W1_ */
+ const char * const out_of_range
+ = "Line number \"%s\" is out of range of [1,%ld]"; /* _E_ _W1_ */
+ int token_type;
+ VAL_SIGN * valp;
+ char * save;
+ int c;
+
+ if ((c = skip_ws()) == '\n') {
+ cerror( no_arg, 0, 0L, 0);
+ unget_ch(); /* Push back <newline> */
+ return -1L; /* Line number is not changed */
+ }
+
+ if (standard) {
+ token_type = get_unexpandable( c, FALSE);
+ if (macro_line == MACRO_ERROR) /* Unterminated macro */
+ return -1L; /* already diagnosed. */
+ if (token_type == NO_TOKEN) /* Macro expanded to 0 token */
+ goto no_num;
+ if (token_type != NUM)
+ goto illeg_num;
+ } else if (scan_token( c, (workp = work_buf, &workp), work_end) != NUM) {
+ goto illeg_num;
+ }
+ for (workp = work_buf; *workp != EOS; workp++) {
+ if (! isdigit( *workp & UCHARMAX)) {
+ if (standard) {
+ cerror( not_digits, work_buf, 0L, 0);
+ return -1L;
+ } else if (warn_level & 1) {
+ cwarn( not_digits, work_buf, 0L, 0);
+ }
}
-
- if (standard) {
- token_type = get_unexpandable( c, FALSE);
- if (macro_line == MACRO_ERROR) /* Unterminated macro */
- return -1L; /* already diagnosed. */
- if (token_type == NO_TOKEN) /* Macro expanded to 0 token */
- goto no_num;
- if (token_type != NUM)
- goto illeg_num;
- } else if (scan_token( c, (workp = work_buf, &workp), work_end) != NUM) {
- goto illeg_num;
+ }
+ valp = eval_num( work_buf); /* Evaluate number */
+ if (valp->sign == VAL_ERROR) { /* Error diagnosed by eval_num()*/
+ return -1;
+ } else if (standard
+ && (std_limits.line_num < valp->val || valp->val <= 0L)) {
+ if (valp->val < LINE99LIMIT && valp->val > 0L) {
+ if (warn_level & 1)
+ cwarn( out_of_range, work_buf, std_limits.line_num, 0);
+ } else {
+ cerror( out_of_range, work_buf, std_limits.line_num, 0);
+ return -1L;
}
- for (workp = work_buf; *workp != EOS; workp++) {
- if (! ACE_OS::ace_isdigit( *workp & UCHARMAX)) {
- if (standard) {
- cerror( not_digits, work_buf, 0L, 0);
- return -1L;
- } else if (warn_level & 1) {
- cwarn( not_digits, work_buf, 0L, 0);
- }
- }
+ }
+
+ if (standard) {
+ token_type = get_unexpandable( skip_ws(), FALSE);
+ if (macro_line == MACRO_ERROR)
+ return -1L;
+ if (token_type != STR) {
+ if (token_type == NO_TOKEN) { /* Filename is absent */
+ return (long) valp->val;
+ } else { /* Expanded macro should be a quoted string */
+ goto not_fname;
+ }
}
- valp = eval_num( work_buf); /* Evaluate number */
- if (valp->sign == VAL_ERROR) { /* Error diagnosed by eval_num()*/
- return -1;
- } else if (standard && (line_limit < valp->val || valp->val <= 0L)) {
- if (valp->val < LINE99LIMIT && valp->val > 0L) {
- if (warn_level & 1)
- cwarn( out_of_range, work_buf, line_limit, 0);
- } else {
- cerror( out_of_range, work_buf, line_limit, 0);
- return -1L;
- }
- }
-
- if (standard) {
- token_type = get_unexpandable( skip_ws(), FALSE);
- if (macro_line == MACRO_ERROR)
- return -1L;
- if (token_type != STR) {
- if (token_type == NO_TOKEN) { /* Filename is absent */
- return (long) valp->val;
- } else { /* Expanded macro should be a quoted string */
- goto not_fname;
- }
- }
- } else {
- if ((c = skip_ws()) == '\n') {
- unget_ch();
- return (long) valp->val;
- }
- if (scan_token( c, (workp = work_buf, &workp), work_end) != STR)
- goto not_fname;
+ } else {
+ if ((c = skip_ws()) == '\n') {
+ unget_ch();
+ return (long) valp->val;
}
+ if (scan_token( c, (workp = work_buf, &workp), work_end) != STR)
+ goto not_fname;
+ }
#if COMPILER == GNUC
- if (ACE_OS::memcmp( workp - 3, "//", 2) == 0) { /* "/cur-dir//" */
- save = infile->filename; /* Do not change the file name */
- } else
+ if (memcmp( workp - 3, "//", 2) == 0) { /* "/cur-dir//" */
+ save = infile->filename; /* Do not change the file name */
+ } else
#endif
{
- *(workp - 1) = EOS; /* Ignore right '"' */
- save = save_string( &work_buf[ 1]); /* Ignore left '"' */
+ *(workp - 1) = EOS; /* Ignore right '"' */
+ save = save_string( &work_buf[ 1]); /* Ignore left '"' */
}
- if (standard) {
- if (get_unexpandable( skip_ws(), FALSE) != NO_TOKEN) {
- cerror( excess, work_buf, 0L, 0);
- ACE_OS::free( save);
- return -1L;
- }
- } else if (mcpp_mode == OLD_PREP) {
- skip_nl();
- unget_ch();
- } else if ((c = skip_ws()) == '\n') {
- unget_ch();
- } else {
- if (warn_level & 1) {
- scan_token( c, (workp = work_buf, &workp), work_end);
- cwarn( excess, work_buf, 0, 0);
- }
- skip_nl();
- unget_ch();
+ if (standard) {
+ if (get_unexpandable( skip_ws(), FALSE) != NO_TOKEN) {
+ cerror( excess, work_buf, 0L, 0);
+ ACE_OS::free( save);
+ return -1L;
}
-
- if (infile->filename)
- ACE_OS::free( infile->filename);
- infile->filename = save; /* New file name */
- /* Note that this does not change infile->real_fname */
- return (long) valp->val; /* New line number */
-
-no_num:
- cerror( "No line number", 0, 0L, 0); /* _E_ */
- return -1L;
-illeg_num:
- cerror( "Not a line number \"%s\"", work_buf, 0L, 0); /* _E_ */
- return -1L;
-not_fname:
- cerror( "Not a file name \"%s\"", work_buf, 0L, 0); /* _E_ */
- return -1L;
+ } else if (mcpp_mode == OLD_PREP) {
+ skip_nl();
+ unget_ch();
+ } else if ((c = skip_ws()) == '\n') {
+ unget_ch();
+ } else {
+ if (warn_level & 1) {
+ scan_token( c, (workp = work_buf, &workp), work_end);
+ cwarn( excess, work_buf, 0, 0);
+ }
+ skip_nl();
+ unget_ch();
+ }
+
+ if (infile->filename)
+ ACE_OS::free( infile->filename);
+ infile->filename = save; /* New file name */
+ /* Note that this does not change infile->real_fname */
+ return (long) valp->val; /* New line number */
+
+ no_num:
+ cerror( "No line number", 0, 0L, 0); /* _E_ */
+ return -1L;
+ illeg_num:
+ cerror( "Not a line number \"%s\"", work_buf, 0L, 0); /* _E_ */
+ return -1L;
+ not_fname:
+ cerror( "Not a file name \"%s\"", work_buf, 0L, 0); /* _E_ */
+ return -1L;
}
/*
* M a c r o D e f i n i t i o n s
- *
- * Edit History (cpp4.c) of original version
- * 31-Aug-84 MM USENET net.sources release
- * 2-May-85 MM Latest revision
*/
/*
@@ -576,21 +627,32 @@ not_fname:
*/
/*
- * Global work_buf[] are used to store #define parameter lists and parlist[]
- * point to them.
+ * Global work_buf[] are used to store #define parameter lists and
+ * parms[].name point to them.
* 'nargs' contains the actual number of parameters stored.
*/
-static char * parlist[ NMACPARS]; /* -> Start of each parameter */
-static size_t parlen[ NMACPARS]; /* Length of parameter name */
-static int nargs; /* Number of parameters */
-static char * token_p; /* Pointer to the token scanned */
-static char * repl_base; /* Base of buffer for repl-text */
-static char * repl_end; /* End of buffer for repl-text */
+typedef struct {
+ char * name; /* -> Start of each parameter */
+ size_t len; /* Length of parameter name */
+} PARM;
+static PARM parms[ NMACPARS];
+static int nargs; /* Number of parameters */
+static char * token_p; /* Pointer to the token scanned */
+static char * repl_base; /* Base of buffer for repl-text */
+static char * repl_end; /* End of buffer for repl-text */
static const char * const no_ident = "No identifier"; /* _E_ */
+#if COMPILER == GNUC
+static int gcc2_va_arg; /* GCC2-spec variadic macro */
+#endif
DEFBUF * do_define(
- int ignore_redef /* Do not redefine */
-)
+ int ignore_redef, /* Do not redefine */
+ int predefine /* Predefine compiler-specific name */
+ /*
+ * Note: The value of 'predefine' should be one of 0, DEF_NOARGS_PREDEF
+ * or DEF_NOARGS_PREDEF_OLD, the other values cause errors.
+ */
+ )
/*
* Called from directive() when a #define is scanned or called from
* do_options() when a -D option is scanned. This module parses formal
@@ -629,207 +691,264 @@ DEFBUF * do_define(
* redefinition.
*/
{
- const char * const predef = "\"%s\" shouldn't be redefined"; /* _E_ */
- char repl_list[ NMACWORK + IDMAX]; /* Replacement text */
- char macroname[ IDMAX + 1]; /* Name of the macro defining */
- DEFBUF * defp; /* -> Old definition */
- DEFBUF ** prevp; /* -> Pointer to previous def in list */
- int c;
- int redefined; /* TRUE if redefined */
- int dnargs = 0; /* defp->nargs */
- int cmp; /* Result of name comparison */
-
- repl_base = repl_list;
- repl_end = & repl_list[ NMACWORK];
- if ((c = skip_ws()) == '\n') {
- cerror( no_ident, 0, 0L, 0);
- unget_ch();
- return 0;
- } else if (scan_token( c, (workp = work_buf, &workp), work_end) != NAM) {
- cerror( not_ident, work_buf, 0L, 0);
- return 0;
- } else {
- prevp = look_prev( identifier, &cmp);
- defp = *prevp;
- if (standard) {
- if (cmp || defp->push) { /* Not known or 'pushed' macro */
- if (str_eq( identifier, "defined")
- || ((stdc_val || cplus_val)
- && str_eq( identifier, "__VA_ARGS__"))) {
- cerror(
- "\"%s\" shouldn't be defined", identifier, 0L, 0); /* _E_ */
- return 0;
- }
- redefined = FALSE; /* Quite new definition */
- } else { /* It's known: */
- if (ignore_redef)
- return defp;
- dnargs = (defp->nargs == DEF_NOARGS-1) ? DEF_NOARGS
- : defp->nargs;
- if (dnargs < DEF_NOARGS - 1 /* Standard predefined */
- || dnargs == DEF_PRAGMA /* _Pragma() pseudo-macro */
- ) {
- cerror( predef, identifier, 0L, 0);
- return 0;
- } else {
- redefined = TRUE; /* Remember this fact */
- }
- }
+ const char * const predef = "\"%s\" shouldn't be redefined"; /* _E_ */
+ char repl_list[ NMACWORK + IDMAX]; /* Replacement text */
+ char macroname[ IDMAX + 1]; /* Name of the macro defining */
+ DEFBUF * defp; /* -> Old definition */
+ DEFBUF ** prevp; /* -> Pointer to previous def in list */
+ int c;
+ int redefined; /* TRUE if redefined */
+ int dnargs = 0; /* defp->nargs */
+ int cmp; /* Result of name comparison */
+ size_t def_start = 0, def_end = 0; /* Column of macro definition */
+
+ repl_base = repl_list;
+ repl_end = & repl_list[ NMACWORK];
+ c = skip_ws();
+ if ((mcpp_debug & MACRO_CALL) && src_line) /* Start of definition */
+ def_start = infile->bptr - infile->buffer - 1;
+ if (c == '\n') {
+ cerror( no_ident, 0, 0L, 0);
+ unget_ch();
+ return 0;
+ } else if (scan_token( c, (workp = work_buf, &workp), work_end) != NAM) {
+ cerror( not_ident, work_buf, 0L, 0);
+ return 0;
+ } else {
+ prevp = look_prev( identifier, &cmp);
+ /* Find place in the macro list to insert the definition */
+ defp = *prevp;
+ if (standard) {
+ if (cmp || defp->push) { /* Not known or 'pushed' macro */
+ if (str_eq( identifier, "defined")
+ || ((stdc_val || cplus_val)
+ && str_eq( identifier, "__VA_ARGS__"))) {
+ cerror(
+ "\"%s\" shouldn't be defined", identifier, 0L, 0); /* _E_ */
+ return 0;
+ }
+ redefined = FALSE; /* Quite new definition */
+ } else { /* It's known: */
+ if (ignore_redef)
+ return defp;
+ dnargs = (defp->nargs == DEF_NOARGS_STANDARD
+ || defp->nargs == DEF_NOARGS_PREDEF
+ || defp->nargs == DEF_NOARGS_PREDEF_OLD)
+ ? DEF_NOARGS : defp->nargs;
+ if (dnargs <= DEF_NOARGS_DYNAMIC /* __FILE__ and such */
+ || dnargs == DEF_PRAGMA /* _Pragma() pseudo-macro */
+ ) {
+ cerror( predef, identifier, 0L, 0);
+ return 0;
} else {
- if (cmp) {
- redefined = FALSE; /* Quite new definition */
- } else { /* It's known: */
- if (ignore_redef)
- return defp;
- dnargs = (defp->nargs == DEF_NOARGS-1) ? DEF_NOARGS
- : defp->nargs;
- redefined = TRUE;
- }
+ redefined = TRUE; /* Remember this fact */
}
+ }
+ } else {
+ if (cmp) {
+ redefined = FALSE; /* Quite new definition */
+ } else { /* It's known: */
+ if (ignore_redef)
+ return defp;
+ dnargs = (defp->nargs == DEF_NOARGS_STANDARD
+ || defp->nargs == DEF_NOARGS_PREDEF
+ || defp->nargs == DEF_NOARGS_PREDEF_OLD)
+ ? DEF_NOARGS : defp->nargs;
+ redefined = TRUE;
+ }
}
- ACE_OS::strcpy( macroname, identifier); /* Remember the name */
-
- in_define = TRUE; /* Recognize '#', '##' */
- if (get_parm() == FALSE) { /* Get parameter list */
- in_define = FALSE;
- return 0; /* Syntax error */
- }
- if (get_repl( macroname) == FALSE) { /* Get replacement text */
- in_define = FALSE;
- return 0; /* Syntax error */
- }
+ }
+ ACE_OS::strcpy( macroname, identifier); /* Remember the name */
+ in_define = TRUE; /* Recognize '#', '##' */
+ if (get_parm() == FALSE) { /* Get parameter list */
in_define = FALSE;
- if (redefined) {
- if (dnargs != nargs || ! str_eq( defp->repl, repl_list)
- || (mcpp_mode == STD && ! str_eq( defp->parmnames, work_buf))
- ) { /* Warn if differently redefined */
- if (warn_level & 1) {
- cwarn(
- "The macro is redefined", 0, 0L, 0); /* _W1_ */
- if (! no_source_line)
- dump_a_def( " previously macro", defp, FALSE, FALSE
- , TRUE, fp_err);
- }
- } else { /* Identical redefinition */
- return defp;
- }
- } /* Else new or re-definition*/
- defp = install_macro( macroname, nargs, work_buf, repl_list, prevp, cmp);
- if (mcpp_mode == STD && cplus_val && id_operator( macroname)
- && (warn_level & 1))
- /* These are operators, not identifiers, in C++98 */
- cwarn( "\"%s\" is defined as macro", macroname /* _W1_ */
- , 0L, 0);
- return defp;
+ return 0; /* Syntax error */
+ }
+ if (get_repl( macroname) == FALSE) { /* Get replacement text */
+ in_define = FALSE;
+ return 0; /* Syntax error */
+ }
+ if ((mcpp_debug & MACRO_CALL) && src_line) {
+ /* Remember location on source */
+ char * cp;
+ cp = infile->bptr - 1; /* Before '\n' */
+ while (char_type[ *cp & UCHARMAX] & HSP)
+ cp--; /* Trailing space */
+ cp++; /* Just after the last token */
+ def_end = cp - infile->buffer; /* End of definition */
+ }
+
+ in_define = FALSE;
+ if (redefined) {
+ if (dnargs != nargs || ! str_eq( defp->repl, repl_list)
+ || (mcpp_mode == STD && ! str_eq( defp->parmnames, work_buf))
+ ) { /* Warn if differently redefined */
+ if (warn_level & 1) {
+ cwarn(
+ "The macro is redefined", 0, 0L, 0); /* _W1_ */
+ if (! option_flags.no_source_line)
+ dump_a_def( " previously macro", defp, FALSE, TRUE
+ , fp_err);
+ }
+ } else { /* Identical redefinition */
+ return defp;
+ }
+ } /* Else new or re-definition*/
+ defp = install_macro( macroname, nargs, work_buf, repl_list, prevp, cmp
+ , predefine);
+ if ((mcpp_debug & MACRO_CALL) && src_line) {
+ /* Get location on source file */
+ LINE_COL s_line_col, e_line_col;
+ s_line_col.line = src_line;
+ s_line_col.col = def_start;
+ get_src_location( & s_line_col);
+ /* Convert to pre-line-splicing data */
+ e_line_col.line = src_line;
+ e_line_col.col = def_end;
+ get_src_location( & e_line_col);
+ /* Putout the macro definition information embedded in comment */
+ mcpp_fprintf( OUT, "/*m%s %ld:%d-%ld:%d*/\n", defp->name
+ , s_line_col.line, s_line_col.col
+ , e_line_col.line, e_line_col.col);
+ wrong_line = TRUE; /* Need #line later */
+ }
+ if (mcpp_mode == STD && cplus_val && id_operator( macroname)
+ && (warn_level & 1))
+ /* These are operators, not identifiers, in C++98 */
+ cwarn( "\"%s\" is defined as macro", macroname /* _W1_ */
+ , 0L, 0);
+ return defp;
}
static int get_parm( void)
/*
* Get parameters i.e. numbers into nargs, name into work_buf[], name-length
- * into parlen[].
+ * into parms[].len. parms[].name point into work_buf.
* Return TRUE if the parameters are legal, else return FALSE.
* In STD mode preprocessor must remember the parameter names, only for
* checking the validity of macro redefinitions. This is required by the
* Standard (what an overhead !).
*/
{
- const char * const many_parms
- = "More than %.0s%ld parameters"; /* _E_ _W4_ */
- const char * const illeg_parm
- = "Illegal parameter \"%s\""; /* _E_ */
- int token_type;
- int c;
-
- parlist[ 0] = workp = work_buf;
- work_buf[ 0] = EOS;
-
- /* POST_STD mode */
- insert_sep = NO_SEP; /* Clear the inserted token separator */
- c = get_ch();
+ const char * const many_parms
+ = "More than %.0s%ld parameters"; /* _E_ _W4_ */
+ const char * const illeg_parm
+ = "Illegal parameter \"%s\""; /* _E_ */
+ const char * const misplaced_ellip
+ = "\"...\" isn't the last parameter"; /* _E_ */
+ int token_type;
+ int c;
+
+ parms[ 0].name = workp = work_buf;
+ work_buf[ 0] = EOS;
+#if COMPILER == GNUC
+ gcc2_va_arg = FALSE;
+#endif
- if (c == '(') { /* With arguments? */
- nargs = 0; /* Init parms counter */
- if (skip_ws() == ')')
- return TRUE; /* Macro with 0 parm */
- else
- unget_ch();
-
- do { /* Collect parameters */
- if (nargs >= NMACPARS) {
- cerror( many_parms, 0, (long) NMACPARS, 0);
- return FALSE;
- }
- parlist[ nargs] = workp; /* Save its start */
- if ((token_type = scan_token( c = skip_ws(), &workp, work_end))
- != NAM) {
- if (c == '\n') {
- break;
- } else if (c == ',' || c == ')') {
- cerror( "Empty parameter", 0, 0L, 0); /* _E_ */
- return FALSE;
- } else if (standard && (stdc_val || cplus_val)
- && token_type == OPE && openum == OP_ELL) {
- /*
- * Enable variable argument macro which is a feature of
- * C99. We enable this even on C90 or C++ for GCC
- * compatibility.
- */
- if (skip_ws() != ')') {
- cerror( "\"...\" isn't the last parameter", /* _E_ */
- 0, 0L, 0);
- return FALSE;
- }
- parlen[ nargs++] = 3;
- nargs |= VA_ARGS;
- goto ret;
- } else {
- cerror( illeg_parm , parlist[ nargs], 0L, 0);
- return FALSE; /* Bad parameter syntax */
- }
- }
- if (standard && (stdc_val || cplus_val)
- && str_eq( identifier, "__VA_ARGS__")) {
- cerror( illeg_parm, parlist[ nargs], 0L, 0);
- return FALSE;
- /* __VA_ARGS__ should not be used as a parameter */
- }
- if (is_formal( parlist[ nargs], FALSE)) {
- cerror( "Duplicate parameter name \"%s\"" /* _E_ */
- , parlist[ nargs], 0L, 0);
- return FALSE;
- }
- parlen[ nargs] = (size_t) (workp - parlist[ nargs]);
- /* Save length of param */
- *workp++ = ',';
- nargs++;
- } while ((c = skip_ws()) == ','); /* Get another parameter*/
-
- *--workp = EOS; /* Remove excessive ',' */
- if (c != ')') { /* Must end at ) */
- unget_ch(); /* Push back '\n' */
- cerror(
- "Missing \",\" or \")\" in parameter list \"(%s\"" /* _E_ */
- , work_buf, 0L, 0);
+ /* POST_STD mode */
+ insert_sep = NO_SEP; /* Clear the inserted token separator */
+ c = get_ch();
+
+ if (c == '(') { /* With arguments? */
+ nargs = 0; /* Init parms counter */
+ if (skip_ws() == ')')
+ return TRUE; /* Macro with 0 parm */
+ else
+ unget_ch();
+
+ do { /* Collect parameters */
+ if (nargs >= NMACPARS) {
+ cerror( many_parms, 0, (long) NMACPARS, 0);
+ return FALSE;
+ }
+ parms[ nargs].name = workp; /* Save its start */
+ if ((token_type = scan_token( c = skip_ws(), &workp, work_end))
+ != NAM) {
+ if (c == '\n') {
+ break;
+ } else if (c == ',' || c == ')') {
+ cerror( "Empty parameter", 0, 0L, 0); /* _E_ */
+ return FALSE;
+ } else if (standard && (stdc_val || cplus_val)
+ && token_type == OPE && openum == OP_ELL) {
+ /*
+ * Enable variable argument macro which is a feature of
+ * C99. We enable this even on C90 or C++ for GCC
+ * compatibility.
+ */
+ if (skip_ws() != ')') {
+ cerror( misplaced_ellip, 0, 0L, 0);
return FALSE;
+ }
+ parms[ nargs++].len = 3;
+ nargs |= VA_ARGS;
+ goto ret;
+ } else {
+ cerror( illeg_parm, parms[ nargs].name, 0L, 0);
+ return FALSE; /* Bad parameter syntax */
}
- } else {
- /*
- * DEF_NOARGS is needed to distinguish between
- * "#define foo" and "#define foo()".
- */
- nargs = DEF_NOARGS; /* Object-like macro */
- unget_ch();
+ }
+ if (standard && (stdc_val || cplus_val)
+ && str_eq( identifier, "__VA_ARGS__")) {
+ cerror( illeg_parm, parms[ nargs].name, 0L, 0);
+ return FALSE;
+ /* __VA_ARGS__ should not be used as a parameter */
+ }
+ if (is_formal( parms[ nargs].name, FALSE)) {
+ cerror( "Duplicate parameter name \"%s\"" /* _E_ */
+ , parms[ nargs].name, 0L, 0);
+ return FALSE;
+ }
+ parms[ nargs].len = (size_t) (workp - parms[ nargs].name);
+ /* Save length of param */
+ *workp++ = ',';
+ nargs++;
+ } while ((c = skip_ws()) == ','); /* Get another parameter*/
+
+ *--workp = EOS; /* Remove excessive ',' */
+ if (c != ')') { /* Must end at ) */
+#if COMPILER == GNUC
+ /* Handle GCC2 variadic params like par... */
+ char * tp = workp;
+ if (mcpp_mode == STD
+ &&(token_type = scan_token( c, &workp, work_end)) == OPE
+ && openum == OP_ELL) {
+ if ((c = skip_ws()) != ')') {
+ cerror( misplaced_ellip, 0, 0L, 0);
+ return FALSE;
+ }
+ *tp = EOS; /* Remove "..." */
+ nargs |= VA_ARGS;
+ gcc2_va_arg = TRUE;
+ goto ret;
+ }
+#endif
+ unget_ch(); /* Push back '\n' */
+ cerror(
+ "Missing \",\" or \")\" in parameter list \"(%s\"" /* _E_ */
+ , work_buf, 0L, 0);
+ return FALSE;
}
-ret:
+ } else {
+ /*
+ * DEF_NOARGS is needed to distinguish between
+ * "#define foo" and "#define foo()".
+ */
+ nargs = DEF_NOARGS; /* Object-like macro */
+ unget_ch();
+ }
+ ret:
#if NMACPARS > NMACPARS90MIN
- if ((warn_level & 4) && (nargs & ~AVA_ARGS) > n_mac_pars_min)
- cwarn( many_parms, 0 , (long) n_mac_pars_min , 0);
+ if ((warn_level & 4) && (nargs & ~AVA_ARGS) > std_limits.n_mac_pars)
+ cwarn( many_parms, 0 , (long) std_limits.n_mac_pars, 0);
#endif
- return TRUE;
+ return TRUE;
}
-static int get_repl( const char * macroname)
+static int get_repl(
+ const char * macroname
+ )
/*
* Get replacement text i.e. names of formal parameters are converted to
* the magic numbers, and operators #, ## is converted to magic characters.
@@ -842,209 +961,240 @@ static int get_repl( const char * macroname)
* of token separator makes no difference.
*/
{
- const char * const mixed_ops
+ const char * const mixed_ops
= "Macro with mixing of ## and # operators isn't portable"; /* _W4_ */
- const char * const multiple_cats
+ const char * const multiple_cats
= "Macro with multiple ## operators isn't portable"; /* _W4_ */
- char * prev_token = 0; /* Preceding token */
- char * prev_prev_token = 0; /* Pre-preceding token */
- int multi_cats = FALSE; /* Multiple ## operators*/
- int c;
- int token_type; /* Type of token */
- char * temp;
- char * repl_cur = repl_base; /* Pointer into repl-text buffer*/
-
- *repl_cur = EOS;
- token_p = 0;
- if (mcpp_mode == STD) {
- c = get_ch();
- unget_ch();
- if (((char_type[ c] & SPA) == 0) && (nargs < 0) && (warn_level & 1))
- cwarn( "No space between macro name \"%s\" and repl-text"/* _W1_ */
- , macroname, 0L, 0);
+ char * prev_token = 0; /* Preceding token */
+ char * prev_prev_token = 0; /* Pre-preceding token */
+ int multi_cats = FALSE; /* Multiple ## operators*/
+ int c;
+ int token_type; /* Type of token */
+ char * temp;
+ char * repl_cur = repl_base; /* Pointer into repl-text buffer*/
+
+ *repl_cur = EOS;
+ token_p = 0;
+ if (mcpp_mode == STD) {
+ c = get_ch();
+ unget_ch();
+ if (((char_type[ c] & SPA) == 0) && (nargs < 0) && (warn_level & 1))
+ cwarn( "No space between macro name \"%s\" and repl-text"/* _W1_ */
+ , macroname, 0L, 0);
+ }
+ c = skip_ws(); /* Get to the body */
+
+ while (c != '\n') {
+ if (standard) {
+ prev_prev_token = prev_token;
+ prev_token = token_p;
}
- c = skip_ws(); /* Get to the body */
+ token_p = repl_cur; /* Remember the pointer */
+ token_type = scan_token( c, &repl_cur, repl_end);
- while (c != CHAR_EOF && c != '\n') {
- if (standard) {
- prev_prev_token = prev_token;
- prev_token = token_p;
+ switch (token_type) {
+ case OPE: /* Operator or punctuator */
+ if (! standard)
+ break;
+ switch (openum) {
+ case OP_CAT: /* ## */
+ if (prev_token == 0) {
+ cerror( "No token before ##" /* _E_ */
+ , 0, 0L, 0);
+ return FALSE;
+ } else if (*prev_token == CAT) {
+ cerror( "## after ##", 0, 0L, 0); /* _E_ */
+ return FALSE;
+ } else if (prev_prev_token && *prev_prev_token == CAT) {
+ multi_cats = TRUE;
+ } else if (prev_prev_token && *prev_prev_token == ST_QUOTE
+ && (warn_level & 4)) { /* # parm ## */
+ cwarn( mixed_ops, 0, 0L, 0);
}
- token_p = repl_cur; /* Remember the pointer */
- token_type = scan_token( c, &repl_cur, repl_end);
-
- switch (token_type) {
- case OPE: /* Operator or punctuator */
- if (! standard)
- break;
- switch (openum) {
- case OP_CAT: /* ## */
- if (prev_token == 0) {
- cerror( "No token before ##" /* _E_ */
- , 0, 0L, 0);
- return FALSE;
- } else if (*prev_token == CAT) {
- cerror( "## after ##", 0, 0L, 0); /* _E_ */
- return FALSE;
- } else if (prev_prev_token && *prev_prev_token == CAT) {
- multi_cats = TRUE;
- } else if (prev_prev_token && *prev_prev_token == ST_QUOTE
- && (warn_level & 4)) { /* # parm ## */
- cwarn( mixed_ops, 0, 0L, 0);
- }
- repl_cur = token_p;
- *repl_cur++ = CAT; /* Convert to CAT */
- break;
- case OP_STR: /* # */
- if (nargs < 0) /* In object-like macro */
- break; /* '#' is an usual char */
- if (prev_token && *prev_token == CAT
- && (warn_level & 4)) /* ## # */
- cwarn( mixed_ops, 0, 0L, 0);
- repl_cur = token_p; /* Overwrite on # */
- if ((temp = def_stringization( repl_cur)) == 0) {
- return FALSE; /* Error */
- } else {
- repl_cur = temp;
- }
- break;
- default: /* Any operator as it is */
- break;
- }
- break;
- case NAM:
- /*
- * Replace this name if it's a parm. Note that the macro name is a
- * possible replacement token. We stuff DEF_MAGIC in front of the
- * token which is treated as a LETTER by the token scanner and eaten
- * by the macro expanding routine. This prevents the macro expander
- * from looping if someone writes "#define foo foo".
- */
- temp = is_formal( identifier, TRUE);
- if (temp == 0) { /* Not a parameter name */
- if (! standard)
- break;
- if ((stdc_val || cplus_val)
- && str_eq( identifier, "__VA_ARGS__")) {
- cerror( "\"%s\" without corresponding \"...\"" /* _E_ */
- , identifier, 0L, 0);
- return FALSE;
- }
- if ((temp = mgtoken_save( macroname)) != 0)
- repl_cur = temp; /* Macro name */
- } else { /* Parameter name */
- repl_cur = temp;
+ repl_cur = token_p;
+ *repl_cur++ = CAT; /* Convert to CAT */
+ break;
+ case OP_STR: /* # */
+ if (nargs < 0) /* In object-like macro */
+ break; /* '#' is an usual char */
+ if (prev_token && *prev_token == CAT
+ && (warn_level & 4)) /* ## # */
+ cwarn( mixed_ops, 0, 0L, 0);
+ repl_cur = token_p; /* Overwrite on # */
+ if ((temp = def_stringization( repl_cur)) == 0) {
+ return FALSE; /* Error */
+ } else {
+ repl_cur = temp;
+ }
+ break;
+ default: /* Any operator as it is */
+ break;
+ }
+ break;
+ case NAM:
+ /*
+ * Replace this name if it's a parm. Note that the macro name is a
+ * possible replacement token. We stuff DEF_MAGIC in front of the
+ * token which is treated as a LETTER by the token scanner and eaten
+ * by the macro expanding routine. This prevents the macro expander
+ * from looping if someone writes "#define foo foo".
+ */
+ temp = is_formal( identifier, TRUE);
+ if (temp == 0) { /* Not a parameter name */
+ if (! standard)
+ break;
+ if ((stdc_val || cplus_val)
+ && str_eq( identifier, "__VA_ARGS__")) {
#if COMPILER == GNUC
- if (mcpp_mode == STD && str_eq( identifier, "__VA_ARGS__")
- && prev_token && *prev_token == CAT
- && prev_prev_token && *prev_prev_token == ',')
- /* ", ## __VA_ARGS__" sequence */
- /* This is a GCC3-specific variadic macro */
- nargs |= GVA_ARGS; /* Mark as GCC3 variadic*/
+ if (gcc2_va_arg) {
+ cerror( "\"%s\" cannot be used in GCC2-spec variadic macro" /* _E_ */
+ , identifier, 0L, 0);
+ return FALSE;
+ }
#endif
- }
- break;
-
- case STR: /* String in mac. body */
- case CHR: /* Character constant */
- if (mcpp_mode == OLD_PREP)
- repl_cur = str_parm_scan( repl_cur);
- break;
- case SEP:
- if (mcpp_mode == OLD_PREP && c == COM_SEP)
- repl_cur--; /* Skip comment now */
- break;
- default: /* Any token as it is */
- break;
+ cerror( "\"%s\" without corresponding \"...\"" /* _E_ */
+ , identifier, 0L, 0);
+ return FALSE;
}
-
- c = get_ch();
- if (c == ' ') {
- *repl_cur++ = ' ';
- c = get_ch();
+ if ((temp = mgtoken_save( macroname)) != 0)
+ repl_cur = temp; /* Macro name */
+ } else { /* Parameter name */
+ repl_cur = temp;
+#if COMPILER == GNUC
+ if (mcpp_mode == STD && (nargs & VA_ARGS)
+ && *(repl_cur - 1) == (nargs & ~AVA_ARGS)) {
+ if (! str_eq( identifier, "__VA_ARGS__")
+ && (warn_level & 2))
+ cwarn(
+ "GCC2-spec variadic macro is defined" /* _W2_ */
+ , 0, 0L, 0);
+ if (prev_token && *prev_token == CAT
+ && prev_prev_token && *prev_prev_token == ',')
+ /* ", ## __VA_ARGS__" is sequence peculiar */
+ /* to GCC3-spec variadic macro. */
+ /* Or ", ## last_arg" is sequence peculiar */
+ /* to GCC2-spec variadic macro. */
+ nargs |= GVA_ARGS;
+ /* Mark as sequence peculiar to GCC */
+ /* This will be warned at expansion time */
}
+#endif
+ }
+ break;
+
+ case STR: /* String in mac. body */
+ case CHR: /* Character constant */
+ if (mcpp_mode == OLD_PREP)
+ repl_cur = str_parm_scan( repl_cur);
+ break;
+ case SEP:
+ if (mcpp_mode == OLD_PREP && c == COM_SEP)
+ repl_cur--; /* Skip comment now */
+ break;
+ default: /* Any token as it is */
+ break;
}
- unget_ch(); /* For syntax check */
- if (standard) {
- if (token_p && *token_p == CAT) {
- cerror( "No token after ##", 0, 0L, 0); /* _E_ */
- return FALSE;
- }
- if (multi_cats && (warn_level & 4))
- cwarn( multiple_cats, 0, 0L, 0);
- if ((nargs & VA_ARGS) && stdc_ver < 199901L && (warn_level & 2))
- /* Variable arg macro is the spec of C99, not C90 nor C++98 */
- cwarn( "Variable argument macro is defined", /* _W2_ */
- 0, 0L, 0);
+ if ((c = get_ch()) == ' ' || c == '\t') {
+ *repl_cur++ = ' '; /* Space */
+ while ((c = get_ch()) == ' ' || c == '\t')
+ ; /* Skip excessive spaces */
}
- *repl_cur = EOS; /* Terminate work */
-
- return TRUE;
+ }
+
+ while (repl_base < repl_cur
+ && (*(repl_cur - 1) == ' ' || *(repl_cur - 1) == '\t'))
+ repl_cur--; /* Remove trailing spaces */
+ *repl_cur = EOS; /* Terminate work */
+
+ unget_ch(); /* For syntax check */
+ if (standard) {
+ if (token_p && *token_p == CAT) {
+ cerror( "No token after ##", 0, 0L, 0); /* _E_ */
+ return FALSE;
+ }
+ if (multi_cats && (warn_level & 4))
+ cwarn( multiple_cats, 0, 0L, 0);
+ if ((nargs & VA_ARGS) && stdc_ver < 199901L && (warn_level & 2))
+ /* Variable arg macro is the spec of C99, not C90 nor C++98 */
+ cwarn( "Variable argument macro is defined", /* _W2_ */
+ 0, 0L, 0);
+ }
+
+ return TRUE;
}
static char * is_formal(
- const char * name,
- int conv /* Convert to magic number? */
-)
+ const char * name,
+ int conv /* Convert to magic number? */
+ )
/*
* If the identifier is a formal parameter, save the MAC_PARM and formal
* offset, returning the advanced pointer into the replacement text.
* Else, return 0.
*/
{
- char * repl_cur;
- size_t len;
- int i;
-
- len = ACE_OS::strlen( name);
- for (i = 0; i < (nargs & ~AVA_ARGS); i++) { /* For each parameter */
- if ((len == parlen[ i] /* Note: parlist[] are comma separated */
- && ACE_OS::memcmp( name, parlist[ i], parlen[ i]) == 0)
- || (standard && (nargs & VA_ARGS)
- && i == (nargs & ~AVA_ARGS) - 1 && conv
- && ACE_OS::memcmp( name, "__VA_ARGS__", 12) == 0)) {
+ char * repl_cur;
+ const char * va_arg = "__VA_ARGS__";
+ PARM parm;
+ size_t len;
+ int i;
+
+ len = ACE_OS::strlen( name);
+ for (i = 0; i < (nargs & ~AVA_ARGS); i++) { /* For each parameter */
+ parm = parms[ i];
+ if ((len == parm.len
+ /* Note: parms[].name are comma separated */
+ && ACE_OS::memcmp( name, parm.name, parm.len) == 0)
+ || (standard && (nargs & VA_ARGS)
+ && i == (nargs & ~AVA_ARGS) - 1 && conv
+ && str_eq( name, va_arg))) { /* __VA_ARGS__ */
/* If it's known */
- if (conv) {
- repl_cur = token_p; /* Overwrite on the name*/
- *repl_cur++ = MAC_PARM; /* Save the signal */
- *repl_cur++ = i + 1; /* Save the parm number */
- return repl_cur; /* Return "gotcha" */
- } else {
- return parlist[ i]; /* Duplicate parm name */
- }
- }
+#if COMPILER == GNUC
+ if (gcc2_va_arg && str_eq( name, va_arg))
+ return 0; /* GCC2 variadic macro */
+#endif
+ if (conv) {
+ repl_cur = token_p; /* Overwrite on the name*/
+ *repl_cur++ = MAC_PARM; /* Save the signal */
+ *repl_cur++ = i + 1; /* Save the parm number */
+ return repl_cur; /* Return "gotcha" */
+ } else {
+ return parm.name; /* Duplicate parm name */
+ }
}
+ }
- return 0; /* Not a formal param */
+ return 0; /* Not a formal param */
}
static char * def_stringization( char * repl_cur)
/*
* Define token stringization.
- * We store a magic cookie (which becomes " on output) preceding the
- * parameter as an operand of # operator.
+ * We store a magic cookie (which becomes surrouding " on expansion) preceding
+ * the parameter as an operand of # operator.
* Return the current pointer into replacement text if the token following #
* is a parameter name, else return 0.
*/
{
- int c;
- char * temp;
-
- *repl_cur++ = ST_QUOTE; /* prefix */
- if ((c = get_ch()) == ' ') {
- *repl_cur++ = ' ';
- c = get_ch();
+ int c;
+ char * temp;
+
+ *repl_cur++ = ST_QUOTE; /* Prefix */
+ if (char_type[ c = get_ch()] & HSP) { /* There is a space */
+ *repl_cur++ = ' ';
+ while (char_type[ c = get_ch()] & HSP) /* Skip excessive spaces*/
+ ;
+ }
+ token_p = repl_cur; /* Remember the pointer */
+ if (scan_token( c, &repl_cur, repl_end) == NAM) {
+ if ((temp = is_formal( identifier, TRUE)) != 0) {
+ repl_cur = temp;
+ return repl_cur;
}
- token_p = repl_cur; /* Remember the pointer */
- if (scan_token( c, &repl_cur, repl_end) == NAM) {
- if ((temp = is_formal( identifier, TRUE)) != 0) {
- repl_cur = temp;
- return repl_cur;
- }
- }
- cerror( "Not a formal parameter \"%s\"", token_p, 0L, 0); /* _E_ */
- return 0;
+ }
+ cerror( "Not a formal parameter \"%s\"", token_p, 0L, 0); /* _E_ */
+ return 0;
}
static char * mgtoken_save( const char * macroname)
@@ -1054,21 +1204,21 @@ static char * mgtoken_save( const char * macroname)
* Return the advanced pointer into the replacement text or 0.
*/
{
- char * repl_cur;
-
- if (str_eq( macroname, identifier)) { /* Macro name in body */
- repl_cur = token_p; /* Overwrite on token */
- *repl_cur++ = DEF_MAGIC; /* Save magic marker */
- repl_cur = mcpp_stpcpy( repl_cur, identifier);
- /* And save the token */
- return repl_cur;
- } else {
- return 0;
- }
+ char * repl_cur;
+
+ if (str_eq( macroname, identifier)) { /* Macro name in body */
+ repl_cur = token_p; /* Overwrite on token */
+ *repl_cur++ = DEF_MAGIC; /* Save magic marker */
+ repl_cur = stpcpy( repl_cur, identifier);
+ /* And save the token */
+ return repl_cur;
+ } else {
+ return 0;
+ }
}
static char * str_parm_scan( char * string_end)
-/* FUZZ: disable check_for_lack_ACE_OS
+/*
* String parameter scan.
* This code -- if enabled -- recognizes a formal parameter in a string
* literal or in a character constant.
@@ -1079,26 +1229,26 @@ static char * str_parm_scan( char * string_end)
* str_parm_scan() return the advanced pointer into the replacement text.
* This has been superceded by # stringizing and string concatenation.
* This routine is called only in OLD_PREP mode.
- */ //FUZZ: enable check_for_lack_ACE_OS
+ */
{
- int delim;
- int c;
- char * tp;
- char * wp; /* Pointer into the quoted literal */
-
- delim = *token_p;
- unget_string( ++token_p, 0);
- /* Pseudo-token-parsing in a string literal */
- wp = token_p;
- while ((c = get_ch()) != delim) {
- token_p = wp;
- if (scan_token( c, &wp, string_end) != NAM)
- continue;
- if ((tp = is_formal( token_p, TRUE)) != 0)
- wp = tp;
- }
- *wp++ = delim;
- return wp;
+ int delim;
+ int c;
+ char * tp;
+ char * wp; /* Pointer into the quoted literal */
+
+ delim = *token_p;
+ unget_string( ++token_p, 0);
+ /* Pseudo-token-parsing in a string literal */
+ wp = token_p;
+ while ((c = get_ch()) != delim) {
+ token_p = wp;
+ if (scan_token( c, &wp, string_end) != NAM)
+ continue;
+ if ((tp = is_formal( token_p, TRUE)) != 0)
+ wp = tp;
+ }
+ *wp++ = delim;
+ return wp;
}
static void do_undef( void)
@@ -1107,40 +1257,40 @@ static void do_undef( void)
* Called from directive().
*/
{
- DEFBUF * defp;
- int c;
-
- if ((c = skip_ws()) == '\n') {
- cerror( no_ident, 0, 0L, 0);
- unget_ch();
+ DEFBUF * defp;
+ int c;
+
+ if ((c = skip_ws()) == '\n') {
+ cerror( no_ident, 0, 0L, 0);
+ unget_ch();
+ return;
+ }
+ if (scan_token( c, (workp = work_buf, &workp), work_end) != NAM) {
+ cerror( not_ident, work_buf, 0L, 0);
+ skip_nl();
+ unget_ch();
+ } else {
+ if ((defp = look_id( identifier)) == 0) {
+ if (warn_level & 8)
+ cwarn( "\"%s\" wasn't defined" /* _W8_ */
+ , identifier, 0L, 0);
+ } else if (standard && (defp->nargs <= DEF_NOARGS_STANDARD
+ /* Standard predef */
+ || defp->nargs == DEF_PRAGMA)) {
+ /* _Pragma() pseudo-macro */
+ cerror( "\"%s\" shouldn't be undefined" /* _E_ */
+ , identifier, 0L, 0);
+ } else if (standard) {
+ c = skip_ws();
+ unget_ch();
+ if (c != '\n') /* Trailing junk */
return;
- }
- if (scan_token( c, (workp = work_buf, &workp), work_end) != NAM) {
- cerror( not_ident, work_buf, 0L, 0);
- skip_nl();
- unget_ch();
+ else
+ undefine( identifier);
} else {
- if ((defp = look_id( identifier)) == 0) {
- if (warn_level & 8)
- cwarn( "\"%s\" wasn't defined" /* _W8_ */
- , identifier, 0L, 0);
- } else if (standard
- && (defp->nargs < DEF_NOARGS - 1 /* Standard predef */
- || defp->nargs == DEF_PRAGMA)) {
- /* _Pragma() pseudo-macro */
- cerror( "\"%s\" shouldn't be undefined" /* _E_ */
- , identifier, 0L, 0);
- } else if (standard) {
- c = skip_ws();
- unget_ch();
- if (c != '\n') /* Trailing junk */
- return;
- else
- undefine( identifier);
- } else {
- undefine( identifier);
- }
+ undefine( identifier);
}
+ }
}
/*
@@ -1154,11 +1304,11 @@ static void do_undef( void)
static DEFBUF * symtab[ SBSIZE];
static long num_of_macro = 0;
-#if MCPP_LIB
+#ifdef MCPP_LIB
void init_directive( void)
/* Initialize static variables. */
{
- num_of_macro = 0;
+ num_of_macro = 0;
}
#endif
@@ -1168,225 +1318,242 @@ DEFBUF * look_id( const char * name)
* If found, return the table pointer; Else return 0.
*/
{
- DEFBUF ** prevp;
- int cmp;
+ DEFBUF ** prevp;
+ int cmp;
- prevp = look_prev( name, &cmp);
+ prevp = look_prev( name, &cmp);
- if (standard)
- return ((cmp == 0 && (*prevp)->push == 0) ? *prevp : 0);
- else
- return ((cmp == 0) ? *prevp : 0);
+ if (standard)
+ return ((cmp == 0 && (*prevp)->push == 0) ? *prevp : 0);
+ else
+ return ((cmp == 0) ? *prevp : 0);
}
DEFBUF ** look_prev(
- const char * name, /* Name of the macro */
- int * cmp /* Result of comparison */
-)
+ const char * name, /* Name of the macro */
+ int * cmp /* Result of comparison */
+ )
/*
* Look for the place to insert the macro definition.
* Return a pointer to the previous member in the linked list.
*/
{
- const char * np;
- DEFBUF ** prevp;
- DEFBUF * dp;
- size_t s_name;
- int hash;
-
- for (hash = 0, np = name; *np != EOS; )
- hash += *np++;
- hash += s_name = (size_t)(np - name);
- s_name++;
- prevp = & symtab[ hash & SBMASK];
- *cmp = -1; /* Initialize */
-
- while ((dp = *prevp) != 0) {
- if ((*cmp = ACE_OS::memcmp( dp->name, name, s_name)) >= 0)
- break;
- prevp = &dp->link;
- }
-
- return prevp;
+ const char * np;
+ DEFBUF ** prevp;
+ DEFBUF * dp;
+ size_t s_name;
+ int hash;
+
+ for (hash = 0, np = name; *np != EOS; )
+ hash += *np++;
+ hash += s_name = (size_t)(np - name);
+ s_name++;
+ prevp = & symtab[ hash & SBMASK];
+ *cmp = -1; /* Initialize */
+
+ while ((dp = *prevp) != 0) {
+ if ((*cmp = ACE_OS::memcmp( dp->name, name, s_name)) >= 0)
+ break;
+ prevp = &dp->link;
+ }
+
+ return prevp;
}
DEFBUF * look_and_install(
- const char * name, /* Name of the macro */
- int numargs, /* The numbers of parms */
- const char * parmnames, /* Names of parameters concatenated */
- const char * repl /* Replacement text */
-)
+ const char * name, /* Name of the macro */
+ int numargs, /* The numbers of parms */
+ const char * parmnames, /* Names of parameters concatenated */
+ const char * repl /* Replacement text */
+ )
/*
* Look for the name and (re)define it.
* Returns a pointer to the definition block.
* Returns 0 if the symbol was Standard-predefined.
*/
{
- DEFBUF ** prevp; /* Place to insert definition */
- DEFBUF * defp; /* New definition block */
- int cmp; /* Result of comparison of new name and old */
+ DEFBUF ** prevp; /* Place to insert definition */
+ DEFBUF * defp; /* New definition block */
+ int cmp; /* Result of comparison of new name and old */
- prevp = look_prev( name, &cmp);
- defp = install_macro( name, numargs, parmnames, repl, prevp, cmp);
- return defp;
+ prevp = look_prev( name, &cmp);
+ defp = install_macro( name, numargs, parmnames, repl, prevp, cmp, 0);
+ return defp;
}
DEFBUF * install_macro(
- const char * name, /* Name of the macro */
- int numargs, /* The numbers of parms */
- const char * parmnames, /* Names of parameters concatenated */
- const char * repl, /* Replacement text */
- DEFBUF ** prevp, /* The place to insert definition */
- int cmp /* Result of comparison of new name and old */
-)
+ const char * name, /* Name of the macro */
+ int numargs, /* The numbers of parms */
+ const char * parmnames, /* Names of parameters concatenated */
+ const char * repl, /* Replacement text */
+ DEFBUF ** prevp, /* The place to insert definition */
+ int cmp, /* Result of comparison of new name and old */
+ int predefine /* Predefined macro without leading '_' */
+ )
/*
* Enter this name in the lookup table.
* Returns a pointer to the definition block.
* Returns 0 if the symbol was Standard-predefined.
+ * Note that predefinedness can be specified by either of 'numargs' or
+ * 'predefine'.
*/
{
- DEFBUF * dp;
- DEFBUF * defp;
- size_t s_name, s_parmnames, s_repl;
-
- defp = *prevp;
- if (cmp == 0 && defp->nargs < DEF_NOARGS - 1)
- return 0; /* Standard predefined */
+ DEFBUF * dp;
+ DEFBUF * defp;
+ size_t s_name, s_parmnames, s_repl;
+
+ defp = *prevp; /* Old definition, if cmp == 0 */
+ if (cmp == 0 && defp->nargs < DEF_NOARGS - 1)
+ return 0; /* Standard predefined */
+ if (parmnames == 0 || repl == 0 || (predefine && numargs > 0)
+ || (predefine && predefine != DEF_NOARGS_PREDEF
+ && predefine != DEF_NOARGS_PREDEF_OLD))
+ /* Shouldn't happen */
+ cfatal( "Bug: Illegal macro installation of \"%s\"" /* _F_ */
+ , name, 0L, 0); /* Use "" instead of 0 */
+ s_name = ACE_OS::strlen( name);
+ if (mcpp_mode == STD)
+ s_parmnames = ACE_OS::strlen( parmnames) + 1;
+ else
s_parmnames = 0;
- if (parmnames == 0 || repl == 0) /* Shouldn't happen */
- cfatal( "Bug: Illegal macro installation of \"%s\"" /* _F_ */
- , name, 0L, 0); /* Use "" instead of 0 */
- s_name = ACE_OS::strlen( name);
+ s_repl = ACE_OS::strlen( repl) + 1;
+ dp = (DEFBUF *)
+ xmalloc( sizeof (DEFBUF) + s_name + s_parmnames + s_repl);
+ if (cmp || (standard && (*prevp)->push)) { /* New definition */
+ dp->link = defp; /* Insert to linked list */
+ *prevp = dp;
+ } else { /* Redefinition */
+ dp->link = defp->link; /* Replace old def with new */
+ *prevp = dp;
+ ACE_OS::free( defp);
+ }
+ dp->nargs = predefine ? predefine : numargs;
+ if (standard) {
+ dp->push = 0;
+ dp->parmnames = (char *)dp + sizeof (DEFBUF) + s_name;
+ dp->repl = dp->parmnames + s_parmnames;
if (mcpp_mode == STD)
- s_parmnames = ACE_OS::strlen( parmnames) + 1;
- s_repl = ACE_OS::strlen( repl) + 1;
- dp = (DEFBUF *)
- xmalloc( sizeof (DEFBUF) + s_name + s_parmnames + s_repl);
- if (cmp || (standard && (*prevp)->push)) { /* New definition */
- dp->link = defp; /* Insert to linked list */
- *prevp = dp;
- } else { /* Redefinition */
- dp->link = defp->link; /* Replace old def with new */
- *prevp = dp;
- ACE_OS::free( defp);
- }
- dp->nargs = numargs;
- if (standard) {
- dp->push = 0;
- dp->parmnames = (char *)dp + sizeof (DEFBUF) + s_name;
- dp->repl = dp->parmnames + s_parmnames;
- if (mcpp_mode == STD)
- ACE_OS::memcpy( dp->parmnames, parmnames, s_parmnames);
- } else {
- dp->repl = (char *)dp + sizeof (DEFBUF) + s_name;
- }
- ACE_OS::memcpy( dp->name, name, s_name + 1);
- ACE_OS::memcpy( dp->repl, repl, s_repl);
- /* Remember where the macro is defined */
- dp->dir = *inc_dirp;
- dp->fname = cur_fname;
- dp->mline = src_line;
- if (standard && cmp && ++num_of_macro == n_macro_min + 1 && n_macro_min
- && (warn_level & 4))
- cwarn( "More than %.0s%ld macros defined" /* _W4_ */
- , 0 , n_macro_min , 0);
- return dp;
+ ACE_OS::memcpy( dp->parmnames, parmnames, s_parmnames);
+ } else {
+ dp->repl = (char *)dp + sizeof (DEFBUF) + s_name;
+ }
+ ACE_OS::memcpy( dp->name, name, s_name + 1);
+ ACE_OS::memcpy( dp->repl, repl, s_repl);
+ /* Remember where the macro is defined */
+ dp->fname = cur_fullname; /* Full-path-list of current file */
+ dp->mline = src_line;
+ if (standard && cmp && ++num_of_macro == std_limits.n_macro + 1
+ && std_limits.n_macro && (warn_level & 4))
+ /* '&& std_limits.n_macro' to avoid warning before initialization */
+ cwarn( "More than %.0s%ld macros defined" /* _W4_ */
+ , 0 , std_limits.n_macro, 0);
+ return dp;
}
int undefine(
- const char * name /* Name of the macro */
-)
+ const char * name /* Name of the macro */
+ )
/*
* Delete the macro definition from the symbol table.
* Returns TRUE, if deleted;
- * Else returns FALSE (when the macro was not defined or was predefined).
+ * Else returns FALSE (when the macro was not defined or was Standard
+ * predefined).
*/
{
- DEFBUF ** prevp; /* Preceding definition in list */
- DEFBUF * dp; /* Definition to delete */
- int cmp;
-
- prevp = look_prev( name, &cmp);
- dp = *prevp; /* Definition to delete */
- if (cmp || dp->nargs < DEF_NOARGS - 1)
- return FALSE; /* Standard predefined */
- if (standard && dp->push)
- return FALSE; /* 'Pushed' macro */
- *prevp = dp->link; /* Link the previous and the next */
- ACE_OS::free( dp); /* Delete the definition */
- if (standard)
- num_of_macro--;
- return TRUE;
+ DEFBUF ** prevp; /* Preceding definition in list */
+ DEFBUF * dp; /* Definition to delete */
+ int cmp; /* 0 if defined, else not defined */
+
+ prevp = look_prev( name, &cmp);
+ dp = *prevp; /* Definition to delete */
+ if (cmp || dp->nargs <= DEF_NOARGS_STANDARD)
+ return FALSE; /* Not defined or Standard predefined */
+ if (standard && dp->push)
+ return FALSE; /* 'Pushed' macro */
+ *prevp = dp->link; /* Link the previous and the next */
+ if ((mcpp_debug & MACRO_CALL) && dp->mline) {
+ /* Notice this directive unless the macro is predefined */
+ mcpp_fprintf( OUT, "/*undef %ld*//*%s*/\n", src_line, dp->name);
+ wrong_line = TRUE;
+ }
+ ACE_OS::free( dp); /* Delete the definition */
+ if (standard)
+ num_of_macro--;
+ return TRUE;
}
static void dump_repl(
- const DEFBUF * dp,
- FILE * fp
-)
+ const DEFBUF * dp,
+ FILE * fp,
+ int gcc2_va
+ )
/*
* Dump replacement text.
*/
{
- int numargs = dp->nargs;
- char * cp1;
- size_t i;
- int c;
- const char * cp;
-
- for (cp = dp->repl; (c = *cp++ & UCHARMAX) != EOS; ) {
-
- switch (c) {
- case MAC_PARM: /* Parameter */
- c = (*cp++ & UCHARMAX) - 1;
- if (standard) {
- if ((numargs & VA_ARGS) && c == (numargs & ~AVA_ARGS) - 1) {
- mcpp_fputs( "__VA_ARGS__", FP2DEST( fp));
- } else {
- if (mcpp_mode == STD) {
- for (i = 0, cp1 = parlist[ c]; i < parlen[ c]; i++)
- mcpp_fputc( *cp1++, FP2DEST( fp));
- } else {
- mcpp_fputc( 'a' + c % 26, FP2DEST( fp));
- if (c > 26)
- mcpp_fputc( '0' + c / 26, FP2DEST( fp));
- }
- }
- } else {
- mcpp_fputc( 'a' + c % 26, FP2DEST( fp));
- if (c > 26)
- mcpp_fputc( '0' + c / 26, FP2DEST( fp));
- }
- break;
- case DEF_MAGIC:
- if (! standard)
- mcpp_fputc( c, FP2DEST( fp));
- /* Else skip */
- break;
- case CAT:
- if (standard)
- mcpp_fputs( "##", FP2DEST( fp));
- else
- mcpp_fputc( c, FP2DEST( fp));
- break;
- case ST_QUOTE:
- if (standard)
- mcpp_fputs( "#", FP2DEST( fp));
- else
- mcpp_fputc( c, FP2DEST( fp));
- break;
- case COM_SEP:
- /*
- * Though TOK_SEP coincides to COM_SEP, this cannot appear in
- * Standard mode.
- */
- if (mcpp_mode == OLD_PREP)
- mcpp_fputs( "/**/", FP2DEST( fp));
- break;
- default:
- mcpp_fputc( c, FP2DEST( fp));
- break;
+ int numargs = dp->nargs;
+ char * cp1;
+ size_t i;
+ int c;
+ const char * cp;
+
+ for (cp = dp->repl; (c = *cp++ & UCHARMAX) != EOS; ) {
+
+ switch (c) {
+ case MAC_PARM: /* Parameter */
+ c = (*cp++ & UCHARMAX) - 1;
+ if (standard) {
+ PARM parm = parms[ c];
+ if ((numargs & VA_ARGS) && c == (numargs & ~AVA_ARGS) - 1) {
+ mcpp_fputs( gcc2_va ? parm.name : "__VA_ARGS__"
+ , FP2DEST( fp));
+ /* gcc2_va is possible only in STD mode */
+ } else {
+ if (mcpp_mode == STD) {
+ for (i = 0, cp1 = parm.name; i < parm.len; i++)
+ mcpp_fputc( *cp1++, FP2DEST( fp));
+ } else {
+ mcpp_fputc( 'a' + c % 26, FP2DEST( fp));
+ if (c > 26)
+ mcpp_fputc( '0' + c / 26, FP2DEST( fp));
+ }
}
+ } else {
+ mcpp_fputc( 'a' + c % 26, FP2DEST( fp));
+ if (c > 26)
+ mcpp_fputc( '0' + c / 26, FP2DEST( fp));
+ }
+ break;
+ case DEF_MAGIC:
+ if (! standard)
+ mcpp_fputc( c, FP2DEST( fp));
+ /* Else skip */
+ break;
+ case CAT:
+ if (standard)
+ mcpp_fputs( "##", FP2DEST( fp));
+ else
+ mcpp_fputc( c, FP2DEST( fp));
+ break;
+ case ST_QUOTE:
+ if (standard)
+ mcpp_fputs( "#", FP2DEST( fp));
+ else
+ mcpp_fputc( c, FP2DEST( fp));
+ break;
+ case COM_SEP:
+ /*
+ * Though TOK_SEP coincides to COM_SEP, this cannot appear in
+ * Standard mode.
+ */
+ if (mcpp_mode == OLD_PREP)
+ mcpp_fputs( "/**/", FP2DEST( fp));
+ break;
+ default:
+ mcpp_fputc( c, FP2DEST( fp));
+ break;
}
+ }
}
/*
@@ -1396,125 +1563,137 @@ static void dump_repl(
#if ONE_PASS
#define CAN_REDEF DEF_NOARGS
#else
-#define CAN_REDEF (DEF_NOARGS - 1)
+#define CAN_REDEF DEF_NOARGS_PREDEF
#endif
void dump_a_def(
- const char * why,
- const DEFBUF * dp,
- int newdef, /* TRUE if parmnames are currently in parlist[] */
- int dDflag, /* TRUE if -dD option is used (for GCC) */
- int comment, /* Show location of the definition in comment */
- FILE * fp
-)
+ const char * why,
+ const DEFBUF * dp,
+ int newdef, /* TRUE if parmnames are currently in parms[] */
+ int comment, /* Show location of the definition in comment */
+ FILE * fp
+ )
/*
* Dump a macro definition.
*/
{
- char * cp, * cp1;
- int numargs = dp->nargs & ~AVA_ARGS;
- int commented; /* To be commented out */
- int i;
-
- if (standard && numargs == DEF_PRAGMA) /* _Pragma pseudo-macro */
- return;
- if ((numargs < CAN_REDEF) || (dDflag && (numargs == DEF_NOARGS - 1))
- || (standard && dp->push))
- commented = TRUE;
- else
- commented = FALSE;
- if (! comment && commented) /* For -dM option */
- return;
- if (why)
- mcpp_fprintf( FP2DEST( fp), "%s \"%s\" defined as: ", why, dp->name);
- mcpp_fprintf( FP2DEST( fp), "%s#define %s", commented ? "/* " : "",
- dp->name); /* Macro name */
- if (numargs >= 0) { /* Parameter list */
- if (mcpp_mode == STD) {
- mcpp_fprintf( FP2DEST( fp), "(%s)", dp->parmnames);
- if (! newdef) {
- for (i = 0, cp = dp->parmnames; i < numargs;
- i++, cp = cp1 + 1) {
- if ((cp1 = ACE_OS::strchr( cp, ',')) == 0) /* The last arg */
- parlen[ i] = ACE_OS::strlen( cp);
- else
- parlen[ i] = (size_t) (cp1 - cp);
- parlist[ i] = cp;
- }
- }
- } else {
- if (newdef) {
- mcpp_fprintf( FP2DEST( fp), "(%s)", parlist[0]);
- } else if (numargs == 0) {
- mcpp_fputs( "()", FP2DEST( fp));
- } else {
- mcpp_fputc( '(', FP2DEST( fp));
- for (i = 0; i < numargs; i++) { /* Make parameter list */
- mcpp_fputc( 'a' + i % 26, FP2DEST( fp));
- if (i >= 26)
- mcpp_fputc( '0' + i / 26, FP2DEST( fp));
- if (i + 1 < numargs)
- mcpp_fputc( ',', FP2DEST( fp));
- }
- mcpp_fputc( ')', FP2DEST( fp));
- }
+ char * cp, * cp1;
+ int numargs = dp->nargs & ~AVA_ARGS;
+ int commented; /* To be commented out */
+ int gcc2_va = FALSE; /* GCC2-spec variadic */
+ int i;
+
+ if (standard && numargs == DEF_PRAGMA) /* _Pragma pseudo-macro */
+ return;
+ if ((numargs < CAN_REDEF) || (standard && dp->push))
+ commented = TRUE;
+ else
+ commented = FALSE;
+ if (! comment && commented) /* For -dM option */
+ return;
+ if (why)
+ mcpp_fprintf( FP2DEST( fp), "%s \"%s\" defined as: ", why, dp->name);
+ mcpp_fprintf( FP2DEST( fp), "%s#define %s", commented ? "/* " : "",
+ dp->name); /* Macro name */
+ if (numargs >= 0) { /* Parameter list */
+ if (mcpp_mode == STD) {
+ const char * appendix = null;
+ if (! newdef) {
+ /* Make parms[] for dump_repl() */
+ for (i = 0, cp = dp->parmnames; i < numargs;
+ i++, cp = cp1 + 1) {
+ if ((cp1 = ACE_OS::strchr( cp, ',')) == 0) /* The last arg */
+ parms[ i].len = ACE_OS::strlen( cp);
+ else
+ parms[ i].len = (size_t) (cp1 - cp);
+ parms[ i].name = cp;
}
+ }
+#if COMPILER == GNUC
+ if ((dp->nargs & VA_ARGS)
+ && ACE_OS::memcmp( parms[ numargs - 1].name, "...", 3) != 0) {
+ appendix = "..."; /* Append ... so as to become 'args...' */
+ gcc2_va = TRUE;
+ }
+#endif
+ mcpp_fprintf( FP2DEST( fp), "(%s%s)", dp->parmnames, appendix);
+ } else {
+ if (newdef) {
+ mcpp_fprintf( FP2DEST( fp), "(%s)", parms[ 0].name);
+ } else if (numargs == 0) {
+ mcpp_fputs( "()", FP2DEST( fp));
+ } else {
+ /* Print parameter list automatically made as: */
+ /* a, b, c, ..., a0, b0, c0, ..., a1, b1, c1, ... */
+ mcpp_fputc( '(', FP2DEST( fp));
+ for (i = 0; i < numargs; i++) { /* Make parameter list */
+ mcpp_fputc( 'a' + i % 26, FP2DEST( fp));
+ if (i >= 26)
+ mcpp_fputc( '0' + i / 26, FP2DEST( fp));
+ if (i + 1 < numargs)
+ mcpp_fputc( ',', FP2DEST( fp));
+ }
+ mcpp_fputc( ')', FP2DEST( fp));
+ }
}
- if (*dp->repl) {
- mcpp_fputc( ' ', FP2DEST( fp));
- dump_repl( dp, fp); /* Replacement text */
- }
- if (commented)
- /* Standard predefined or one-pass-compiler-predefined */
- mcpp_fputs( " */", FP2DEST( fp));
- if (comment) /* Not -dM option */
- mcpp_fprintf( FP2DEST( fp), " \t/* %s%s:%ld\t*/", dp->dir, dp->fname
- , dp->mline);
- mcpp_fputc( '\n', FP2DEST( fp));
+ }
+ if (*dp->repl) {
+ mcpp_fputc( ' ', FP2DEST( fp));
+ dump_repl( dp, fp, gcc2_va); /* Replacement text */
+ }
+ if (commented)
+ /* Standard predefined or one-pass-compiler-predefined */
+ mcpp_fputs( " */", FP2DEST( fp));
+ if (comment) /* Not -dM option */
+ mcpp_fprintf( FP2DEST( fp), " \t/* %s:%ld\t*/", dp->fname, dp->mline);
+ mcpp_fputc( '\n', FP2DEST( fp));
}
void dump_def(
- int dDflag, /* -dD option (for GCC) */
- int comment /* Location of definition in comment */
-)
+ int comment, /* Location of definition in comment */
+ int K_opt /* -K option is specified */
+ )
/*
* Dump all the current macro definitions to output stream.
*/
{
- DEFBUF * dp;
- DEFBUF ** symp;
-
- sharp(); /* Report the current source file & line */
- if (comment)
- mcpp_fputs( "/* Currently defined macros. */\n", OUT);
- for (symp = symtab; symp < &symtab[ SBSIZE]; symp++) {
- if ((dp = *symp) != 0) {
- do {
- dump_a_def( 0, dp, FALSE, dDflag, comment, fp_out);
- } while ((dp = dp->link) != 0);
- }
+ DEFBUF * dp;
+ DEFBUF ** symp;
+
+ sharp( 0, 0); /* Report the current source file & line */
+ if (comment)
+ mcpp_fputs( "/* Currently defined macros. */\n", OUT);
+ for (symp = symtab; symp < &symtab[ SBSIZE]; symp++) {
+ if ((dp = *symp) != 0) {
+ do {
+ if (K_opt)
+ mcpp_fprintf( OUT, "/*m%s*/\n", dp->name);
+ else
+ dump_a_def( 0, dp, FALSE, comment, fp_out);
+ } while ((dp = dp->link) != 0);
}
- wrong_line = TRUE; /* Line number is out of sync */
+ }
+ wrong_line = TRUE; /* Line number is out of sync */
}
-#if MCPP_LIB
+#ifdef MCPP_LIB
void clear_symtable( void)
/*
- * ACE_OS::Free all the macro definitions.
+ * Free all the macro definitions.
*/
{
- DEFBUF * next;
- DEFBUF * dp;
- DEFBUF ** symp;
-
- for (symp = symtab; symp < &symtab[ SBSIZE]; symp++) {
- for (next = *symp; next != 0; ) {
- dp = next;
- next = dp->link;
- ACE_OS::free( dp); /* free the symbol */
- }
- *symp = 0;
+ DEFBUF * next;
+ DEFBUF * dp;
+ DEFBUF ** symp;
+
+ for (symp = symtab; symp < &symtab[ SBSIZE]; symp++) {
+ for (next = *symp; next != 0; ) {
+ dp = next;
+ next = dp->link;
+ ACE_OS::free( dp); /* Free the symbol */
}
+ *symp = 0;
+ }
}
#endif
diff --git a/TAO/TAO_IDL/contrib/mcpp/eval.cpp b/TAO/TAO_IDL/contrib/mcpp/eval.cpp
index a5d2a05e538..1ece434f222 100644
--- a/TAO/TAO_IDL/contrib/mcpp/eval.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/eval.cpp
@@ -1,5 +1,5 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
* All rights reserved.
*
* Some parts of this code are derived from the public domain software
@@ -42,54 +42,50 @@
#include "internal.H"
#endif
-#include "ace/OS_NS_ctype.h"
-#include "ace/OS_NS_stdio.h"
-#include "ace/OS_NS_stdlib.h"
-
typedef struct optab {
- char op; /* Operator */
- char prec; /* Its precedence */
- char skip; /* Short-circuit: non-0 to skip */
+ char op; /* Operator */
+ char prec; /* Its precedence */
+ char skip; /* Short-circuit: non-0 to skip */
} OPTAB;
static int eval_lex( void);
- /* Get type and value of token */
+/* Get type and value of token */
static int chk_ops( void);
- /* Check identifier-like ops */
+/* Check identifier-like ops */
static VAL_SIGN * eval_char( char * const token);
- /* Evaluate character constant */
+/* Evaluate character constant */
static expr_t eval_one( char ** seq_pp, int wide, int mbits, int * ucn8);
- /* Evaluate a character */
+/* Evaluate a character */
static VAL_SIGN * eval_eval( VAL_SIGN * valp, int op);
- /* Entry to #if arithmetic */
+/* Entry to #if arithmetic */
static expr_t eval_signed( VAL_SIGN ** valpp, expr_t v1, expr_t v2, int op);
- /* Do signed arithmetic of expr.*/
+/* Do signed arithmetic of expr.*/
static expr_t eval_unsigned( VAL_SIGN ** valpp, uexpr_t v1u, uexpr_t v2u
- , int op);
- /* Do unsigned arithmetic */
+ , int op);
+/* Do unsigned arithmetic */
static void overflow( const char * op_name, VAL_SIGN ** valpp
- , int ll_overflow);
- /* Diagnose overflow of expr. */
+ , int ll_overflow);
+/* Diagnose overflow of expr. */
static int do_sizeof( void);
- /* Evaluate sizeof (type) */
+/* Evaluate sizeof (type) */
static int look_type( int typecode);
- /* Look for type of the name */
+/* Look for type of the name */
static void dump_val( const char * msg, const VAL_SIGN * valp);
- /* Print value of an operand */
+/* Print value of an operand */
static void dump_stack( const OPTAB * opstack, const OPTAB * opp
- , const VAL_SIGN * value, const VAL_SIGN * valp);
- /* Print stacked operators */
+ , const VAL_SIGN * value, const VAL_SIGN * valp);
+/* Print stacked operators */
/* For debug and error messages. */
static const char * const opname[ OP_END + 1] = {
- "end of expression", "val", "(",
- "unary +", "unary -", "~", "!",
- "*", "/", "%",
- "+", "-", "<<", ">>",
- "<", "<=", ">", ">=", "==", "!=",
- "&", "^", "|", "&&", "||",
- "?", ":",
- ")", "(none)"
+ "end of expression", "val", "(",
+ "unary +", "unary -", "~", "!",
+ "*", "/", "%",
+ "+", "-", "<<", ">>",
+ "<", "<=", ">", ">=", "==", "!=",
+ "&", "^", "|", "&&", "||",
+ "?", ":",
+ ")", "(none)"
};
/*
@@ -111,18 +107,18 @@ static const char * const opname[ OP_END + 1] = {
*/
static const char opdope[ OP_END + 1] = {
- 0001, /* End of expression */
- 0002, 0170, /* VAL (constant), LPA */
-/* Unary op's */
- 0160, 0160, 0160, 0160, /* PLU, NEG, COM, NOT */
-/* Binary op's */
- 0151, 0151, 0151, /* MUL, DIV, MOD, */
- 0141, 0141, 0131, 0131, /* ADD, SUB, SL, SR */
- 0121, 0121, 0121, 0121, 0111, 0111, /* LT, LE, GT, GE, EQ, NE */
- 0101, 0071, 0061, 0051, 0041, /* AND, XOR, OR, ANA, ORO */
- 0031, 0031, /* QUE, COL */
-/* Parens */
- 0013, 0023 /* RPA, END */
+ 0001, /* End of expression */
+ 0002, 0170, /* VAL (constant), LPA */
+ /* Unary op's */
+ 0160, 0160, 0160, 0160, /* PLU, NEG, COM, NOT */
+ /* Binary op's */
+ 0151, 0151, 0151, /* MUL, DIV, MOD, */
+ 0141, 0141, 0131, 0131, /* ADD, SUB, SL, SR */
+ 0121, 0121, 0121, 0121, 0111, 0111, /* LT, LE, GT, GE, EQ, NE */
+ 0101, 0071, 0061, 0051, 0041, /* AND, XOR, OR, ANA, ORO */
+ 0031, 0031, /* QUE, COL */
+ /* Parens */
+ 0013, 0023 /* RPA, END */
};
/*
* OP_QUE, OP_RPA and unary operators have alternate precedences:
@@ -142,12 +138,12 @@ static const char opdope[ OP_END + 1] = {
static VAL_SIGN ev; /* Current value and signedness */
static int skip = 0; /* 3-way signal of skipping expr*/
static const char * const non_eval
- = " (in non-evaluated sub-expression)"; /* _W8_ */
+= " (in non-evaluated sub-expression)"; /* _W8_ */
#if HAVE_LONG_LONG && COMPILER == INDEPENDENT
- static int w_level = 1; /* warn_level at overflow of long */
+static int w_level = 1; /* warn_level at overflow of long */
#else
- static int w_level = 2;
+static int w_level = 2;
#endif
/*
@@ -171,13 +167,13 @@ static const char * const non_eval
* The SIZES structure is used to store the values for #if sizeof.
*/
typedef struct sizes {
- int bits; /* If this bit is set, */
- int size; /* this is the datum size value */
- int psize; /* this is the pointer size */
+ int bits; /* If this bit is set, */
+ int size; /* this is the datum size value */
+ int psize; /* this is the pointer size */
} SIZES;
/*
- * S_CHAR etc. define the sizeof the basic TARGET machine word types.
+ * S_CHAR, etc. define the sizeof the basic TARGET machine word types.
* By default, sizes are set to the values for the HOST computer. If
* this is inappropriate, see those tables for details on what to change.
* Also, if you have a machine where sizeof (signed int) differs from
@@ -200,7 +196,10 @@ typedef struct sizes {
#define S_PDOUBLE (sizeof (double *))
#define S_PFPTR (sizeof (int (*)()))
#if HAVE_LONG_LONG
-#if HOST_COMPILER == BORLANDC
+// FUZZ: disable check_for_msc_ver
+#if (HOST_COMPILER == BORLANDC) \
+ || (HOST_COMPILER == MSC && defined(_MSC_VER) && (_MSC_VER <= 1300))
+// FUZZ: enable check_for_msc_ver
#define S_LLINT (sizeof (__int64))
#define S_PLLINT (sizeof (__int64 *))
#else
@@ -212,9 +211,9 @@ typedef struct sizes {
#define S_PLDOUBLE (sizeof (long double *))
typedef struct types {
- int type; /* This is the bits for types */
- const char * token_name; /* this is the token word */
- int excluded; /* but these aren't legal here. */
+ int type; /* This is the bits for types */
+ const char * token_name; /* this is the token word */
+ int excluded; /* but these aren't legal here. */
} TYPES;
#define ANYSIGN (T_SIGNED | T_UNSIGNED)
@@ -226,58 +225,58 @@ typedef struct types {
#endif
static const TYPES basic_types[] = {
- { T_CHAR, "char", ANYFLOAT | ANYINT },
- { T_SHORT, "short", ANYFLOAT | ANYINT },
- { T_INT, "int", ANYFLOAT | T_CHAR | T_INT },
- { T_LONG, "long", ANYFLOAT | ANYINT },
+ { T_CHAR, "char", ANYFLOAT | ANYINT },
+ { T_SHORT, "short", ANYFLOAT | ANYINT },
+ { T_INT, "int", ANYFLOAT | T_CHAR | T_INT },
+ { T_LONG, "long", ANYFLOAT | ANYINT },
#if HAVE_LONG_LONG
#if HOST_COMPILER == BORLANDC
- { T_LONGLONG, "__int64", ANYFLOAT | ANYINT },
+ { T_LONGLONG, "__int64", ANYFLOAT | ANYINT },
#else
- { T_LONGLONG, "long long", ANYFLOAT | ANYINT },
+ { T_LONGLONG, "long long", ANYFLOAT | ANYINT },
#endif
#endif
- { T_FLOAT, "float", ANYFLOAT | ANYINT | ANYSIGN },
- { T_DOUBLE, "double", ANYFLOAT | ANYINT | ANYSIGN },
- { T_LONGDOUBLE, "long double", ANYFLOAT | ANYINT | ANYSIGN },
- { T_SIGNED, "signed", ANYFLOAT | ANYINT | ANYSIGN },
- { T_UNSIGNED, "unsigned", ANYFLOAT | ANYINT | ANYSIGN },
- { 0, 0, 0 } /* Signal end */
+ { T_FLOAT, "float", ANYFLOAT | ANYINT | ANYSIGN },
+ { T_DOUBLE, "double", ANYFLOAT | ANYINT | ANYSIGN },
+ { T_LONGDOUBLE, "long double", ANYFLOAT | ANYINT | ANYSIGN },
+ { T_SIGNED, "signed", ANYFLOAT | ANYINT | ANYSIGN },
+ { T_UNSIGNED, "unsigned", ANYFLOAT | ANYINT | ANYSIGN },
+ { 0, 0, 0 } /* Signal end */
};
/*
* In this table, T_FPTR (pointer to function) should be placed last.
*/
static const SIZES size_table[] = {
- { T_CHAR, S_CHAR, S_PCHAR }, /* char */
- { T_SHORT, S_SINT, S_PSINT }, /* short int */
- { T_INT, S_INT, S_PINT }, /* int */
- { T_LONG, S_LINT, S_PLINT }, /* long */
+ { T_CHAR, S_CHAR, S_PCHAR }, /* char */
+ { T_SHORT, S_SINT, S_PSINT }, /* short int */
+ { T_INT, S_INT, S_PINT }, /* int */
+ { T_LONG, S_LINT, S_PLINT }, /* long */
#if HAVE_LONG_LONG
- { T_LONGLONG, S_LLINT, S_PLLINT }, /* long long */
+ { T_LONGLONG, S_LLINT, S_PLLINT }, /* long long */
#endif
- { T_FLOAT, S_FLOAT, S_PFLOAT }, /* float */
- { T_DOUBLE, S_DOUBLE, S_PDOUBLE }, /* double */
- { T_LONGDOUBLE, S_LDOUBLE, S_PLDOUBLE }, /* long double */
- { T_FPTR, 0, S_PFPTR }, /* int (*()) */
- { 0, 0, 0 } /* End of table */
+ { T_FLOAT, S_FLOAT, S_PFLOAT }, /* float */
+ { T_DOUBLE, S_DOUBLE, S_PDOUBLE }, /* double */
+ { T_LONGDOUBLE, S_LDOUBLE, S_PLDOUBLE }, /* long double */
+ { T_FPTR, 0, S_PFPTR }, /* int (*()) */
+ { 0, 0, 0 } /* End of table */
};
#define is_binary(op) (FIRST_BINOP <= op && op <= LAST_BINOP)
#define is_unary(op) (FIRST_UNOP <= op && op <= LAST_UNOP)
-#if MCPP_LIB
+#ifdef MCPP_LIB
void init_eval( void)
{
- skip = 0;
+ skip = 0;
}
#endif
expr_t eval_if( void)
/*
* Evaluate a #if expression. Straight-forward operator precedence.
- * This is called from directive() on encountering an #if statement.
+ * This is called from directive() on encountering an #if directive.
* It calls the following routines:
* eval_lex() Lexical analyser -- returns the type and value of
* the next input token.
@@ -285,317 +284,324 @@ expr_t eval_if( void)
* value stack. Returns a pointer to the (new) value stack.
*/
{
- VAL_SIGN value[ NEXP * 2 + 1]; /* Value stack */
- OPTAB opstack[ NEXP * 3 + 1]; /* Operator stack */
- int parens = 0; /* Nesting levels of (, ) */
- int prec; /* Operator precedence */
- int binop = 0; /* Set if binary op. needed */
- int op1; /* Operator from stack */
- int skip_cur; /* For short-circuit testing */
- VAL_SIGN * valp = value; /* -> Value and signedness */
- OPTAB * opp = opstack; /* -> Operator stack */
- int op; /* Current operator */
-
- opp->op = OP_END; /* Mark bottom of stack */
- opp->prec = opdope[ OP_END]; /* And its precedence */
- skip = skip_cur = opp->skip = 0; /* Not skipping now */
-
- while (1) {
- if (mcpp_debug & EXPRESSION)
- mcpp_fprintf( DBG
+ VAL_SIGN value[ NEXP * 2 + 1]; /* Value stack */
+ OPTAB opstack[ NEXP * 3 + 1]; /* Operator stack */
+ int parens = 0; /* Nesting levels of (, ) */
+ int prec; /* Operator precedence */
+ int binop = 0; /* Set if binary op. needed */
+ int op1; /* Operator from stack */
+ int skip_cur; /* For short-circuit testing */
+ VAL_SIGN * valp = value; /* -> Value and signedness */
+ OPTAB * opp = opstack; /* -> Operator stack */
+ int op; /* Current operator */
+
+ opp->op = OP_END; /* Mark bottom of stack */
+ opp->prec = opdope[ OP_END]; /* And its precedence */
+ skip = skip_cur = opp->skip = 0; /* Not skipping now */
+
+ while (1) {
+ if (mcpp_debug & EXPRESSION)
+ mcpp_fprintf( DBG
, "In eval loop skip = %d, binop = %d, line is: %s\n"
, opp->skip, binop, infile->bptr);
- skip = opp->skip;
- op = eval_lex();
- skip = 0; /* Reset to be ready to return */
- switch (op) {
- case OP_SUB :
- if (binop == 0)
- op = OP_NEG; /* Unary minus */
- break;
- case OP_ADD :
- if (binop == 0)
- op = OP_PLU; /* Unary plus */
- break;
- case OP_FAIL:
- return 0L; /* Token error */
- }
- if (mcpp_debug & EXPRESSION)
- mcpp_fprintf( DBG
+ skip = opp->skip;
+ op = eval_lex();
+ skip = 0; /* Reset to be ready to return */
+ switch (op) {
+ case OP_SUB :
+ if (binop == 0)
+ op = OP_NEG; /* Unary minus */
+ break;
+ case OP_ADD :
+ if (binop == 0)
+ op = OP_PLU; /* Unary plus */
+ break;
+ case OP_FAIL:
+ return 0L; /* Token error */
+ }
+ if (mcpp_debug & EXPRESSION)
+ mcpp_fprintf( DBG
, "op = %s, opdope = %04o, binop = %d, skip = %d\n"
, opname[ op], opdope[ op], binop, opp->skip);
- if (op == VAL) { /* Value? */
- if (binop != 0) { /* Binop is needed */
- cerror( "Misplaced constant \"%s\"" /* _E_ */
- , work_buf, 0L, 0);
- return 0L;
- } else if (& value[ NEXP * 2] <= valp) {
- cerror( "More than %.0s%ld constants stacked at %s" /* _E_ */
- , 0, (long) (NEXP * 2 - 1), work_buf);
- return 0L;
- } else {
- if (mcpp_debug & EXPRESSION) {
- dump_val( "pushing ", &ev);
- mcpp_fprintf( DBG, " onto value stack[%d]\n"
- , (int)(valp - value));
- }
- valp->val = ev.val;
- (valp++)->sign = ev.sign;
- binop = 1; /* Binary operator or so should follow */
- }
- continue;
- } /* Else operators */
- prec = opdope[ op];
- if (binop != (prec & 1)) {
- if (op == OP_EOE)
- cerror( "Unterminated expression" /* _E_ */
- , 0, 0L, 0);
- else
- cerror( "Operator \"%s\" in incorrect context" /* _E_ */
- , opname[ op], 0L, 0);
- return 0L;
+ if (op == VAL) { /* Value? */
+ if (binop != 0) { /* Binop is needed */
+ cerror( "Misplaced constant \"%s\"" /* _E_ */
+ , work_buf, 0L, 0);
+ return 0L;
+ } else if (& value[ NEXP * 2] <= valp) {
+ cerror( "More than %.0s%ld constants stacked at %s" /* _E_ */
+ , 0, (long) (NEXP * 2 - 1), work_buf);
+ return 0L;
+ } else {
+ if (mcpp_debug & EXPRESSION) {
+ dump_val( "pushing ", &ev);
+ mcpp_fprintf( DBG, " onto value stack[%d]\n"
+ , (int)(valp - value));
}
- binop = (prec & 2) >> 1; /* Binop should follow? */
-
- while (1) {
- if (mcpp_debug & EXPRESSION)
- mcpp_fprintf( DBG
- , "op %s, prec %d, stacked op %s, prec %d, skip %d\n"
- , opname[ op], prec, opname[ static_cast<size_t> (opp->op)], opp->prec, opp->skip);
-
- /* Stack coming sub-expression of higher precedence. */
- if (opp->prec < prec) {
- if (op == OP_LPA) {
- prec = OP_RPA_PREC;
- if (standard && (warn_level & 4)
- && ++parens == exp_nest_min + 1)
- cwarn(
- "More than %.0s%ld nesting of parens" /* _W4_ */
- , 0, (long) exp_nest_min, 0);
- } else if (op == OP_QUE) {
- prec = OP_QUE_PREC;
- } else if (is_unary( op)) {
- prec = OP_UNOP_PREC;
- }
- op1 = opp->skip; /* Save skip for test */
- /*
- * Push operator onto operator stack.
- */
- opp++;
- if (& opstack[ NEXP * 3] <= opp) {
- cerror(
- "More than %.0s%ld operators and parens stacked at %s" /* _E_ */
- , 0, (long) (NEXP * 3 - 1), opname[ op]);
- return 0L;
- }
- opp->op = op;
- opp->prec = prec;
- if (&value[0] < valp)
- skip_cur = (valp[-1].val != 0L);
- /* Short-circuit tester */
- /*
- * Do the short-circuit stuff here. Short-circuiting
- * stops automagically when operators are evaluated.
- */
- if ((op == OP_ANA && ! skip_cur)
- || (op == OP_ORO && skip_cur)) {
- opp->skip = S_ANDOR; /* And/or skip starts */
- if (skip_cur) /* Evaluate non-zero */
- valp[-1].val = 1L; /* value to 1 */
- } else if (op == OP_QUE) { /* Start of ?: operator */
- opp->skip = (op1 & S_ANDOR) | (!skip_cur ? S_QUEST : 0);
- } else if (op == OP_COL) { /* : inverts S_QUEST */
- opp->skip = (op1 & S_ANDOR)
- | (((op1 & S_QUEST) != 0) ? 0 : S_QUEST);
- } else { /* Other operators leave*/
- opp->skip = op1; /* skipping unchanged. */
- }
- if (mcpp_debug & EXPRESSION) {
- mcpp_fprintf( DBG, "stacking %s, ", opname[ op]);
- if (&value[0] < valp)
- dump_val( "valp[-1].val == ", valp - 1);
- mcpp_fprintf( DBG, " at %s\n", infile->bptr);
- dump_stack( opstack, opp, value, valp);
- }
- break;
- }
-
- /*
- * Coming sub-expression is of lower precedence.
- * Evaluate stacked sub-expression.
- * Pop operator from operator stack and evaluate it.
- * End of stack and '(', ')' are specials.
- */
- skip_cur = opp->skip; /* Remember skip value */
- switch ((op1 = opp->op)) { /* Look at stacked op */
- case OP_END: /* Stack end marker */
- if (op == OP_RPA) { /* No corresponding ( */
- cerror( "Excessive \")\"", 0, 0L, 0); /* _E_ */
- return 0L;
- }
- if (op == OP_EOE)
- return valp[-1].val; /* Finished ok. */
- break;
- case OP_LPA: /* ( on stack */
- if (op != OP_RPA) { /* Matches ) on input? */
- cerror( "Missing \")\"", 0, 0L, 0); /* _E_ */
- return 0L;
- }
- opp--; /* Unstack it */
- parens--; /* Count down nest level*/
- break;
- case OP_QUE: /* Evaluate true expr. */
- break;
- case OP_COL: /* : on stack */
- opp--; /* Unstack : */
- if (opp->op != OP_QUE) { /* Matches ? on stack? */
- cerror(
- "Misplaced \":\", previous operator is \"%s\"" /* _E_ */
- , opname[static_cast<size_t> (opp->op)], 0L, 0);
- return 0L;
- }
- /* Evaluate op1. Fall through */
- default: /* Others: */
- opp--; /* Unstack the operator */
- if (mcpp_debug & EXPRESSION) {
- mcpp_fprintf( DBG, "Stack before evaluation of %s\n"
- , opname[ op1]);
- dump_stack( opstack, opp, value, valp);
- }
- if (op1 == OP_COL)
- skip = 0;
- else
- skip = skip_cur;
- valp = eval_eval( valp, op1);
- if (valp->sign == VAL_ERROR)
- return 0L; /* Out of range or divide by 0 */
- valp++;
- skip = 0;
- if (mcpp_debug & EXPRESSION) {
- mcpp_fprintf( DBG, "Stack after evaluation\n");
- dump_stack( opstack, opp, value, valp);
- }
- } /* op1 switch end */
-
- if (op1 == OP_END || op1 == OP_LPA || op1 == OP_QUE)
- break; /* Read another op. */
- } /* Stack unwind loop */
-
+ valp->val = ev.val;
+ (valp++)->sign = ev.sign;
+ binop = 1; /* Binary operator or so should follow */
+ }
+ continue;
+ } /* Else operators */
+ prec = opdope[ op];
+ if (binop != (prec & 1)) {
+ if (op == OP_EOE)
+ cerror( "Unterminated expression" /* _E_ */
+ , 0, 0L, 0);
+ else
+ cerror( "Operator \"%s\" in incorrect context" /* _E_ */
+ , opname[ op], 0L, 0);
+ return 0L;
}
+ binop = (prec & 2) >> 1; /* Binop should follow? */
- return 0L; /* Never reach here */
+ while (1) {
+ if (mcpp_debug & EXPRESSION)
+ mcpp_fprintf( DBG
+ , "op %s, prec %d, stacked op %s, prec %d, skip %d\n"
+ , opname[ op], prec, opname[ static_cast <size_t> (opp->op)], opp->prec, opp->skip);
+
+ /* Stack coming sub-expression of higher precedence. */
+ if (opp->prec < prec) {
+ if (op == OP_LPA) {
+ prec = OP_RPA_PREC;
+ if (standard && (warn_level & 4)
+ && ++parens == std_limits.exp_nest + 1)
+ cwarn(
+ "More than %.0s%ld nesting of parens" /* _W4_ */
+ , 0, (long) std_limits.exp_nest, 0);
+ } else if (op == OP_QUE) {
+ prec = OP_QUE_PREC;
+ } else if (is_unary( op)) {
+ prec = OP_UNOP_PREC;
+ }
+ op1 = opp->skip; /* Save skip for test */
+ /*
+ * Push operator onto operator stack.
+ */
+ opp++;
+ if (& opstack[ NEXP * 3] <= opp) {
+ cerror(
+ "More than %.0s%ld operators and parens stacked at %s" /* _E_ */
+ , 0, (long) (NEXP * 3 - 1), opname[ op]);
+ return 0L;
+ }
+ opp->op = op;
+ opp->prec = prec;
+ if (&value[0] < valp)
+ skip_cur = (valp[-1].val != 0L);
+ /* Short-circuit tester */
+ /*
+ * Do the short-circuit stuff here. Short-circuiting
+ * stops automagically when operators are evaluated.
+ */
+ if ((op == OP_ANA && ! skip_cur)
+ || (op == OP_ORO && skip_cur)) {
+ opp->skip = S_ANDOR; /* And/or skip starts */
+ if (skip_cur) /* Evaluate non-zero */
+ valp[-1].val = 1L; /* value to 1 */
+ } else if (op == OP_QUE) { /* Start of ?: operator */
+ opp->skip = (op1 & S_ANDOR) | (!skip_cur ? S_QUEST : 0);
+ } else if (op == OP_COL) { /* : inverts S_QUEST */
+ opp->skip = (op1 & S_ANDOR)
+ | (((op1 & S_QUEST) != 0) ? 0 : S_QUEST);
+ } else { /* Other operators leave*/
+ opp->skip = op1; /* skipping unchanged. */
+ }
+ if (mcpp_debug & EXPRESSION) {
+ mcpp_fprintf( DBG, "stacking %s, ", opname[ op]);
+ if (&value[0] < valp)
+ dump_val( "valp[-1].val == ", valp - 1);
+ mcpp_fprintf( DBG, " at %s\n", infile->bptr);
+ dump_stack( opstack, opp, value, valp);
+ }
+ break;
+ }
+
+ /*
+ * Coming sub-expression is of lower precedence.
+ * Evaluate stacked sub-expression.
+ * Pop operator from operator stack and evaluate it.
+ * End of stack and '(', ')' are specials.
+ */
+ skip_cur = opp->skip; /* Remember skip value */
+ switch ((op1 = opp->op)) { /* Look at stacked op */
+ case OP_END: /* Stack end marker */
+ if (op == OP_RPA) { /* No corresponding ( */
+ cerror( "Excessive \")\"", 0, 0L, 0); /* _E_ */
+ return 0L;
+ }
+ if (op == OP_EOE)
+ return valp[-1].val; /* Finished ok. */
+ break;
+ case OP_LPA: /* ( on stack */
+ if (op != OP_RPA) { /* Matches ) on input? */
+ cerror( "Missing \")\"", 0, 0L, 0); /* _E_ */
+ return 0L;
+ }
+ opp--; /* Unstack it */
+ parens--; /* Count down nest level*/
+ break;
+ case OP_QUE: /* Evaluate true expr. */
+ break;
+ case OP_COL: /* : on stack */
+ opp--; /* Unstack : */
+ if (opp->op != OP_QUE) { /* Matches ? on stack? */
+ cerror(
+ "Misplaced \":\", previous operator is \"%s\"" /* _E_ */
+ , opname[static_cast <size_t> (opp->op)], 0L, 0);
+ return 0L;
+ }
+ /* Evaluate op1. Fall through */
+ default: /* Others: */
+ opp--; /* Unstack the operator */
+ if (mcpp_debug & EXPRESSION) {
+ mcpp_fprintf( DBG, "Stack before evaluation of %s\n"
+ , opname[ op1]);
+ dump_stack( opstack, opp, value, valp);
+ }
+ if (op1 == OP_COL)
+ skip = 0;
+ else
+ skip = skip_cur;
+ valp = eval_eval( valp, op1);
+ if (valp->sign == VAL_ERROR)
+ return 0L; /* Out of range or divide by 0 */
+ valp++;
+ skip = 0;
+ if (mcpp_debug & EXPRESSION) {
+ mcpp_fprintf( DBG, "Stack after evaluation\n");
+ dump_stack( opstack, opp, value, valp);
+ }
+ } /* op1 switch end */
+
+ if (op1 == OP_END || op1 == OP_LPA || op1 == OP_QUE)
+ break; /* Read another op. */
+ } /* Stack unwind loop */
+
+ }
+
+ return 0L; /* Never reach here */
}
static int eval_lex( void)
/*
- * Return next operator or value to evaluate. Called from eval_if(). It calls
- * a special-purpose routines for character constants and numeric values:
+ * Return next operator or constant to evaluate. Called from eval_if(). It
+ * calls a special-purpose routines for character constants and numeric values:
* eval_char() called to evaluate 'x'
* eval_num() called to evaluate numbers
* C++98 treats 11 identifier-like tokens as operators.
* POST_STD forbids character constants in #if expression.
*/
{
- int c1;
- VAL_SIGN * valp;
- int warn = ! skip || (warn_level & 8);
- int token_type;
- int c;
-
- ev.sign = SIGNED; /* Default signedness */
- ev.val = 0L; /* Default value (on error or 0 value) */
- c = skip_ws();
- if (c == '\n') {
- unget_ch();
- return OP_EOE; /* End of expression */
- }
- token_type = get_unexpandable( c, warn);
- if (standard && macro_line == MACRO_ERROR)
- return OP_FAIL; /* Unterminated macro call */
- if (token_type == NO_TOKEN)
- return OP_EOE; /* Only macro(s) expanding to 0-token */
-
- switch (token_type) {
- case NAM:
- if (standard && str_eq( identifier, "defined")) { /* defined name */
- c1 = c = skip_ws();
- if (c == '(') /* Allow defined (name) */
- c = skip_ws();
- if (scan_token( c, (workp = work_buf, &workp), work_end) == NAM) {
- if (warn)
- ev.val = (look_id( identifier) != 0);
- if (c1 != '(' || skip_ws() == ')') /* Balanced ? */
- return VAL; /* Parsed ok */
- }
- cerror( "Bad defined syntax: %s" /* _E_ */
- , infile->fp ? "" : infile->buffer, 0L, 0);
- break;
- } else if (cplus_val) {
- if (str_eq( identifier, "true")) {
- ev.val = 1L;
- return VAL;
- } else if (str_eq( identifier, "false")) {
- ev.val = 0L;
- return VAL;
- } else if (mcpp_mode != POST_STD
- && (openum = id_operator( identifier)) != 0) {
- /* Identifier-like operator in C++98 */
- ACE_OS::strcpy( work_buf, identifier);
- return chk_ops();
- }
- } else if (! standard && str_eq( identifier, "sizeof")) {
- /* sizeof hackery */
- return do_sizeof(); /* Gets own routine */
+ int c1;
+ VAL_SIGN * valp;
+ int warn = ! skip || (warn_level & 8);
+ int token_type;
+ int c;
+
+ ev.sign = SIGNED; /* Default signedness */
+ ev.val = 0L; /* Default value (on error or 0 value) */
+ in_if = ! skip; /* Inform to expand_macro() that the macro is */
+ /* in #if line and not skipped expression. */
+ c = skip_ws();
+ if (c == '\n') {
+ unget_ch();
+ return OP_EOE; /* End of expression */
+ }
+ token_type = get_unexpandable( c, warn);
+ if (standard && macro_line == MACRO_ERROR)
+ return OP_FAIL; /* Unterminated macro call */
+ if (token_type == NO_TOKEN)
+ return OP_EOE; /* Only macro(s) expanding to 0-token */
+
+ switch (token_type) {
+ case NAM:
+ if (standard && str_eq( identifier, "defined")) { /* defined name */
+ c1 = c = skip_ws();
+ if (c == '(') /* Allow defined (name) */
+ c = skip_ws();
+ if (scan_token( c, (workp = work_buf, &workp), work_end) == NAM) {
+ DEFBUF * defp = look_id( identifier);
+ if (warn) {
+ ev.val = (defp != 0);
+ if ((mcpp_debug & MACRO_CALL) && ! skip && defp)
+ /* Annotate if the macro is in non-skipped expr. */
+ mcpp_fprintf( OUT, "/*%s*/", defp->name);
}
- /*
- * The ANSI C Standard says that an undefined symbol
- * in an #if has the value zero. We are a bit pickier,
- * warning except where the programmer was careful to write
- * #if defined(foo) ? foo : 0
- */
- if ((! skip && (warn_level & 4)) || (skip && (warn_level & 8)))
- cwarn( "Undefined symbol \"%s\"%.0ld%s" /* _W4_ _W8_ */
- , identifier, 0L, skip ? non_eval : ", evaluated to 0");
+ if (c1 != '(' || skip_ws() == ')') /* Balanced ? */
+ return VAL; /* Parsed ok */
+ }
+ cerror( "Bad defined syntax: %s" /* _E_ */
+ , infile->fp ? "" : infile->buffer, 0L, 0);
+ break;
+ } else if (cplus_val) {
+ if (str_eq( identifier, "true")) {
+ ev.val = 1L;
return VAL;
- case CHR: /* Character constant */
- case WCHR: /* Wide char constant */
- if (mcpp_mode == POST_STD) {
- cerror( "Can't use a character constant %s" /* _E_ */
- , work_buf, 0L, 0);
- break;
- }
- valp = eval_char( work_buf); /* 'valp' points 'ev' */
- if (valp->sign == VAL_ERROR)
- break;
- if (mcpp_debug & EXPRESSION) {
- dump_val( "eval_char returns ", &ev);
- mcpp_fputc( '\n', DBG);
- }
- return VAL; /* Return a value */
- case STR: /* String literal */
- case WSTR: /* Wide string literal */
- cerror(
- "Can't use a string literal %s", work_buf, 0L, 0); /* _E_ */
- break;
- case NUM: /* Numbers are harder */
- valp = eval_num( work_buf); /* 'valp' points 'ev' */
- if (valp->sign == VAL_ERROR)
- break;
- if (mcpp_debug & EXPRESSION) {
- dump_val( "eval_num returns ", &ev);
- mcpp_fputc( '\n', DBG);
- }
+ } else if (str_eq( identifier, "false")) {
+ ev.val = 0L;
return VAL;
- case OPE: /* Operator or punctuator */
+ } else if (mcpp_mode != POST_STD
+ && (openum = id_operator( identifier)) != 0) {
+ /* Identifier-like operator in C++98 */
+ ACE_OS::strcpy( work_buf, identifier);
return chk_ops();
-
- default: /* Total nonsense */
- cerror( "Can't use the character %.0s0x%02lx" /* _E_ */
- , 0, (long) c, 0);
- break;
+ }
+ } else if (! standard && str_eq( identifier, "sizeof")) {
+ /* sizeof hackery */
+ return do_sizeof(); /* Gets own routine */
+ }
+ /*
+ * The ANSI C Standard says that an undefined symbol
+ * in an #if has the value zero. We are a bit pickier,
+ * warning except where the programmer was careful to write
+ * #if defined(foo) ? foo : 0
+ */
+ if ((! skip && (warn_level & 4)) || (skip && (warn_level & 8)))
+ cwarn( "Undefined symbol \"%s\"%.0ld%s" /* _W4_ _W8_ */
+ , identifier, 0L, skip ? non_eval : ", evaluated to 0");
+ return VAL;
+ case CHR: /* Character constant */
+ case WCHR: /* Wide char constant */
+ if (mcpp_mode == POST_STD) {
+ cerror( "Can't use a character constant %s" /* _E_ */
+ , work_buf, 0L, 0);
+ break;
}
+ valp = eval_char( work_buf); /* 'valp' points 'ev' */
+ if (valp->sign == VAL_ERROR)
+ break;
+ if (mcpp_debug & EXPRESSION) {
+ dump_val( "eval_char returns ", &ev);
+ mcpp_fputc( '\n', DBG);
+ }
+ return VAL; /* Return a value */
+ case STR: /* String literal */
+ case WSTR: /* Wide string literal */
+ cerror(
+ "Can't use a string literal %s", work_buf, 0L, 0); /* _E_ */
+ break;
+ case NUM: /* Numbers are harder */
+ valp = eval_num( work_buf); /* 'valp' points 'ev' */
+ if (valp->sign == VAL_ERROR)
+ break;
+ if (mcpp_debug & EXPRESSION) {
+ dump_val( "eval_num returns ", &ev);
+ mcpp_fputc( '\n', DBG);
+ }
+ return VAL;
+ case OPE: /* Operator or punctuator */
+ return chk_ops();
+
+ default: /* Total nonsense */
+ cerror( "Can't use the character %.0s0x%02lx" /* _E_ */
+ , 0, (long) c, 0);
+ break;
+ }
- return OP_FAIL; /* Any errors */
+ return OP_FAIL; /* Any errors */
}
static int chk_ops( void)
@@ -605,15 +611,15 @@ static int chk_ops( void)
* else return openum.
*/
{
- switch (openum) {
- case OP_STR: case OP_CAT: case OP_ELL:
- case OP_1: case OP_2: case OP_3:
- cerror( "Can't use the operator \"%s\"" /* _E_ */
- , work_buf, 0L, 0);
- return OP_FAIL;
- default:
- return openum;
- }
+ switch (openum) {
+ case OP_STR: case OP_CAT: case OP_ELL:
+ case OP_1: case OP_2: case OP_3:
+ cerror( "Can't use the operator \"%s\"" /* _E_ */
+ , work_buf, 0L, 0);
+ return OP_FAIL;
+ default:
+ return openum;
+ }
}
static int do_sizeof( void)
@@ -625,186 +631,186 @@ static int do_sizeof( void)
* This routine is never called in STD and POST_STD mode.
*/
{
- const char * const no_type = "sizeof: No type specified"; /* _E_ */
- int warn = ! skip || (warn_level & 8);
- int type_end = FALSE;
- int typecode = 0;
- int token_type = NO_TOKEN;
- const SIZES * sizp = 0;
-
- if (get_unexpandable( skip_ws(), warn) != OPE || openum != OP_LPA)
- goto no_good; /* Not '(' */
-
- /*
- * Scan off the tokens.
- */
-
- while (! type_end) {
- token_type = get_unexpandable( skip_ws(), warn);
- /* Get next token expanding macros */
- switch (token_type) {
- case OPE:
- if (openum == OP_LPA) { /* thing (*)() func ptr */
- if (get_unexpandable( skip_ws(), warn) == OPE
- && openum == OP_MUL
- && get_unexpandable( skip_ws(), warn) == OPE
- && openum == OP_RPA) { /* (*) */
- if (get_unexpandable( skip_ws(), warn) != OPE
- || openum != OP_LPA
- || get_unexpandable( skip_ws(), warn) != OPE
- || openum != OP_RPA) /* Not () */
- goto no_good;
- typecode |= T_FPTR; /* Function pointer */
- } else { /* Junk is an error */
- goto no_good;
- }
- } else { /* '*' or ')' */
- type_end = TRUE;
- }
- break;
- case NAM: /* Look for type comb. */
- if ((typecode = look_type( typecode)) == 0)
- return OP_FAIL; /* Illegal type or comb.*/
- break;
- default: goto no_good; /* Illegal token */
- }
- } /* End of while */
-
- /*
- * We are at the end of the type scan. Chew off '*' if necessary.
- */
- if (token_type == OPE) {
- if (openum == OP_MUL) { /* '*' */
- typecode |= T_PTR;
- if (get_unexpandable( skip_ws(), warn) != OPE)
- goto no_good;
+ const char * const no_type = "sizeof: No type specified"; /* _E_ */
+ int warn = ! skip || (warn_level & 8);
+ int type_end = FALSE;
+ int typecode = 0;
+ int token_type = NO_TOKEN;
+ const SIZES * sizp = 0;
+
+ if (get_unexpandable( skip_ws(), warn) != OPE || openum != OP_LPA)
+ goto no_good; /* Not '(' */
+
+ /*
+ * Scan off the tokens.
+ */
+
+ while (! type_end) {
+ token_type = get_unexpandable( skip_ws(), warn);
+ /* Get next token expanding macros */
+ switch (token_type) {
+ case OPE:
+ if (openum == OP_LPA) { /* thing (*)() func ptr */
+ if (get_unexpandable( skip_ws(), warn) == OPE
+ && openum == OP_MUL
+ && get_unexpandable( skip_ws(), warn) == OPE
+ && openum == OP_RPA) { /* (*) */
+ if (get_unexpandable( skip_ws(), warn) != OPE
+ || openum != OP_LPA
+ || get_unexpandable( skip_ws(), warn) != OPE
+ || openum != OP_RPA) /* Not () */
+ goto no_good;
+ typecode |= T_FPTR; /* Function pointer */
+ } else { /* Junk is an error */
+ goto no_good;
}
- if (openum == OP_RPA) { /* ')' */
- /*
- * Last syntax check
- * We assume that all function pointers are the same size:
- * sizeof (int (*)()) == sizeof (float (*)())
- * We assume that signed and unsigned don't change the size:
- * sizeof (signed int) == sizeof (unsigned int)
- */
- if ((typecode & T_FPTR) != 0) { /* Function pointer */
- typecode = T_FPTR | T_PTR;
- } else { /* Var or var * datum */
- typecode &= ~(T_SIGNED | T_UNSIGNED);
+ } else { /* '*' or ')' */
+ type_end = TRUE;
+ }
+ break;
+ case NAM: /* Look for type comb. */
+ if ((typecode = look_type( typecode)) == 0)
+ return OP_FAIL; /* Illegal type or comb.*/
+ break;
+ default: goto no_good; /* Illegal token */
+ }
+ } /* End of while */
+
+ /*
+ * We are at the end of the type scan. Chew off '*' if necessary.
+ */
+ if (token_type == OPE) {
+ if (openum == OP_MUL) { /* '*' */
+ typecode |= T_PTR;
+ if (get_unexpandable( skip_ws(), warn) != OPE)
+ goto no_good;
+ }
+ if (openum == OP_RPA) { /* ')' */
+ /*
+ * Last syntax check
+ * We assume that all function pointers are the same size:
+ * sizeof (int (*)()) == sizeof (float (*)())
+ * We assume that signed and unsigned don't change the size:
+ * sizeof (signed int) == sizeof (unsigned int)
+ */
+ if ((typecode & T_FPTR) != 0) { /* Function pointer */
+ typecode = T_FPTR | T_PTR;
+ } else { /* Var or var * datum */
+ typecode &= ~(T_SIGNED | T_UNSIGNED);
#if HAVE_LONG_LONG
- if ((typecode & (T_SHORT | T_LONG | T_LONGLONG)) != 0)
+ if ((typecode & (T_SHORT | T_LONG | T_LONGLONG)) != 0)
#else
- if ((typecode & (T_SHORT | T_LONG)) != 0)
+ if ((typecode & (T_SHORT | T_LONG)) != 0)
#endif
- typecode &= ~T_INT;
- }
- if ((typecode & ~T_PTR) == 0) {
- cerror( no_type, 0, 0L, 0);
- return OP_FAIL;
- } else {
- /*
- * Exactly one bit (and possibly T_PTR) may be set.
- */
- for (sizp = size_table; sizp->bits != 0; sizp++) {
- if ((typecode & ~T_PTR) == sizp->bits) {
- ev.val = ((typecode & T_PTR) != 0)
- ? sizp->psize : sizp->size;
- break;
- }
- }
- }
- } else {
- goto no_good;
+ typecode &= ~T_INT;
+ }
+ if ((typecode & ~T_PTR) == 0) {
+ cerror( no_type, 0, 0L, 0);
+ return OP_FAIL;
+ } else {
+ /*
+ * Exactly one bit (and possibly T_PTR) may be set.
+ */
+ for (sizp = size_table; sizp->bits != 0; sizp++) {
+ if ((typecode & ~T_PTR) == sizp->bits) {
+ ev.val = ((typecode & T_PTR) != 0)
+ ? sizp->psize : sizp->size;
+ break;
+ }
}
+ }
} else {
- goto no_good;
+ goto no_good;
}
-
- if (mcpp_debug & EXPRESSION) {
- if (sizp)
- mcpp_fprintf( DBG,
- "sizp->bits:0x%x sizp->size:0x%x sizp->psize:0x%x ev.val:0x%lx\n"
+ } else {
+ goto no_good;
+ }
+
+ if (mcpp_debug & EXPRESSION) {
+ if (sizp)
+ mcpp_fprintf( DBG,
+ "sizp->bits:0x%x sizp->size:0x%x sizp->psize:0x%x ev.val:0x%lx\n"
, sizp->bits, sizp->size, sizp->psize
, (unsigned long) ev.val);
- }
- return VAL;
+ }
+ return VAL;
-no_good:
- unget_ch();
- cerror( "sizeof: Syntax error", 0, 0L, 0); /* _E_ */
- return OP_FAIL;
+ no_good:
+ unget_ch();
+ cerror( "sizeof: Syntax error", 0, 0L, 0); /* _E_ */
+ return OP_FAIL;
}
static int look_type(
- int typecode
-)
+ int typecode
+ )
{
- const char * const unknown_type
- = "sizeof: Unknown type \"%s\"%.0ld%s"; /* _E_ _W8_ */
- const char * const illeg_comb
+ const char * const unknown_type
+ = "sizeof: Unknown type \"%s\"%.0ld%s"; /* _E_ _W8_ */
+ const char * const illeg_comb
= "sizeof: Illegal type combination with \"%s\"%.0ld%s"; /* _E_ _W8_ */
- int token_type;
- const TYPES * tp;
-
- if (str_eq( identifier, "long")) {
- if ((token_type
- = get_unexpandable( skip_ws(), !skip || (warn_level & 8)))
- == NO_TOKEN)
- return typecode;
- if (token_type == NAM) {
+ int token_type;
+ const TYPES * tp;
+
+ if (str_eq( identifier, "long")) {
+ if ((token_type
+ = get_unexpandable( skip_ws(), !skip || (warn_level & 8)))
+ == NO_TOKEN)
+ return typecode;
+ if (token_type == NAM) {
#if HAVE_LONG_LONG
- if (str_eq( identifier, "long")) {
- ACE_OS::strcpy( work_buf, "long long");
- goto basic;
- }
+ if (str_eq( identifier, "long")) {
+ ACE_OS::strcpy( work_buf, "long long");
+ goto basic;
+ }
#endif
- if (str_eq( identifier, "double")) {
- ACE_OS::strcpy( work_buf, "long double");
- goto basic;
- }
- }
- unget_string( work_buf, 0); /* Not long long */
- ACE_OS::strcpy( work_buf, "long"); /* nor long double */
+ if (str_eq( identifier, "double")) {
+ ACE_OS::strcpy( work_buf, "long double");
+ goto basic;
+ }
}
-
- /*
- * Look for this unexpandable token in basic_types.
- */
-basic:
- for (tp = basic_types; tp->token_name != 0; tp++) {
- if (str_eq( work_buf, tp->token_name))
- break;
+ unget_string( work_buf, 0); /* Not long long */
+ ACE_OS::strcpy( work_buf, "long"); /* nor long double */
+ }
+
+ /*
+ * Look for this unexpandable token in basic_types.
+ */
+ basic:
+ for (tp = basic_types; tp->token_name != 0; tp++) {
+ if (str_eq( work_buf, tp->token_name))
+ break;
+ }
+
+ if (tp->token_name == 0) {
+ if (! skip) {
+ cerror( unknown_type, work_buf, 0L, 0);
+ return 0;
+ } else if (warn_level & 8) {
+ cwarn( unknown_type, work_buf, 0L, non_eval);
}
-
- if (tp->token_name == 0) {
- if (! skip) {
- cerror( unknown_type, work_buf, 0L, 0);
- return 0;
- } else if (warn_level & 8) {
- cwarn( unknown_type, work_buf, 0L, non_eval);
- }
- }
- if ((typecode & tp->excluded) != 0) {
- if (! skip) {
- cerror( illeg_comb, work_buf, 0L, 0);
- return 0;
- } else if (warn_level & 8) {
- cwarn( illeg_comb, work_buf, 0L, non_eval);
- }
+ }
+ if ((typecode & tp->excluded) != 0) {
+ if (! skip) {
+ cerror( illeg_comb, work_buf, 0L, 0);
+ return 0;
+ } else if (warn_level & 8) {
+ cwarn( illeg_comb, work_buf, 0L, non_eval);
}
+ }
- if (mcpp_debug & EXPRESSION) {
- if (tp->token_name)
- mcpp_fprintf( DBG,
- "sizeof -- typecode:0x%x tp->token_name:\"%s\" tp->type:0x%x\n"
+ if (mcpp_debug & EXPRESSION) {
+ if (tp->token_name)
+ mcpp_fprintf( DBG,
+ "sizeof -- typecode:0x%x tp->token_name:\"%s\" tp->type:0x%x\n"
, typecode, tp->token_name, tp->type);
- }
- return typecode |= tp->type; /* Or in the type bit */
+ }
+ return typecode |= tp->type; /* Or in the type bit */
}
VAL_SIGN * eval_num(
- const char * nump /* Preprocessing number */
-)
+ const char * nump /* Preprocessing number */
+ )
/*
* Evaluate number for #if lexical analysis. Note: eval_num recognizes
* the unsigned suffix, but only returns a signed expr_t value, and stores
@@ -812,289 +818,289 @@ VAL_SIGN * eval_num(
* value is not in the range of positive (signed) expr_t.
*/
{
- const char * const not_integer = "Not an integer \"%s\""; /* _E_ */
- const char * const out_of_range
- = "Constant \"%s\"%.0ld%s is out of range"; /* _E_ _W1_ _W8_ */
- expr_t value;
- uexpr_t v, v1; /* unsigned long long or unsigned long */
- int uflag = FALSE;
- int lflag = FALSE;
- int erange = FALSE;
- int base;
- int c, c1;
- const char * cp = nump;
+ const char * const not_integer = "Not an integer \"%s\""; /* _E_ */
+ const char * const out_of_range
+ = "Constant \"%s\"%.0ld%s is out of range"; /* _E_ _W1_ _W8_ */
+ expr_t value;
+ uexpr_t v, v1; /* unsigned long long or unsigned long */
+ int uflag = FALSE;
+ int lflag = FALSE;
+ int erange = FALSE;
+ int base;
+ int c, c1;
+ const char * cp = nump;
#if HAVE_LONG_LONG
- const char * const out_of_range_long =
- "Constant \"%s\"%.0ld%s is out of range " /* _E_ _W1_ _W2_ _W8_ */
- "of (unsigned) long";
- const char * const ll_suffix =
-"LL suffix is used in other than C99 mode \"%s\"%.0ld%s"; /* _W1_ _W2_ _W8_ */
+ const char * const out_of_range_long =
+ "Constant \"%s\"%.0ld%s is out of range " /* _E_ _W1_ _W2_ _W8_ */
+ "of (unsigned) long";
+ const char * const ll_suffix =
+ "LL suffix is used in other than C99 mode \"%s\"%.0ld%s"; /* _W1_ _W2_ _W8_ */
#if COMPILER == MSC || COMPILER == BORLANDC
- const char * const i64_suffix =
-"I64 suffix is used in other than C99 mode \"%s\"%.0ld%s"; /* _W2_ _W8_ */
+ const char * const i64_suffix =
+ "I64 suffix is used in other than C99 mode \"%s\"%.0ld%s"; /* _W2_ _W8_ */
#endif
- int llflag = FALSE;
- int erange_long = FALSE;
+ int llflag = FALSE;
+ int erange_long = FALSE;
#endif
- ev.sign = SIGNED; /* Default signedness */
- ev.val = 0L; /* Default value */
- if ((char_type[ c = *cp++ & UCHARMAX] & DIG) == 0) /* Dot */
- goto num_err;
- if (c != '0') { /* Decimal */
- base = 10;
- } else if ((c = *cp++ & UCHARMAX) == 'x' || c == 'X') {
- base = 16; /* Hexadecimal */
- c = *cp++ & UCHARMAX;
- } else if (c == EOS) { /* 0 */
- return & ev;
- } else { /* Octal or illegal */
- base = 8;
+ ev.sign = SIGNED; /* Default signedness */
+ ev.val = 0L; /* Default value */
+ if ((char_type[ c = *cp++ & UCHARMAX] & DIG) == 0) /* Dot */
+ goto num_err;
+ if (c != '0') { /* Decimal */
+ base = 10;
+ } else if ((c = *cp++ & UCHARMAX) == 'x' || c == 'X') {
+ base = 16; /* Hexadecimal */
+ c = *cp++ & UCHARMAX;
+ } else if (c == EOS) { /* 0 */
+ return & ev;
+ } else { /* Octal or illegal */
+ base = 8;
+ }
+
+ v = v1 = 0L;
+ for (;;) {
+ c1 = c;
+ if (isupper( c1))
+ c1 = tolower( c1);
+ if (c1 >= 'a')
+ c1 -= ('a' - 10);
+ else
+ c1 -= '0';
+ if (c1 < 0 || base <= c1)
+ break;
+ v1 *= base;
+ v1 += c1;
+ if (v1 / base < v) { /* Overflow */
+ if (! skip)
+ goto range_err;
+ else
+ erange = TRUE;
}
-
- v = v1 = 0L;
- for (;;) {
- c1 = c;
- if (ACE_OS::ace_isupper( c1))
- c1 = ACE_OS::ace_tolower( c1);
- if (c1 >= 'a')
- c1 -= ('a' - 10);
- else
- c1 -= '0';
- if (c1 < 0 || base <= c1)
- break;
- v1 *= base;
- v1 += c1;
- if (v1 / base < v) { /* Overflow */
- if (! skip)
- goto range_err;
- else
- erange = TRUE;
- }
#if HAVE_LONG_LONG
- if (! stdc3 && v1 > ULONGMAX)
- /* Overflow of long or unsigned long */
- erange_long = TRUE;
+ if (! stdc3 && v1 > ULONGMAX)
+ /* Overflow of long or unsigned long */
+ erange_long = TRUE;
#endif
- v = v1;
- c = *cp++ & UCHARMAX;
- }
-
- value = v;
- while (c == 'u' || c == 'U' || c == 'l' || c == 'L') {
- if (c == 'u' || c == 'U') {
- if (uflag)
- goto num_err;
- uflag = TRUE;
- } else if (c == 'l' || c == 'L') {
+ v = v1;
+ c = *cp++ & UCHARMAX;
+ }
+
+ value = v;
+ while (c == 'u' || c == 'U' || c == 'l' || c == 'L') {
+ if (c == 'u' || c == 'U') {
+ if (uflag)
+ goto num_err;
+ uflag = TRUE;
+ } else if (c == 'l' || c == 'L') {
#if HAVE_LONG_LONG
- if (llflag) {
- goto num_err;
- } else if (lflag) {
- llflag = TRUE;
- if (! stdc3 && ((! skip && (warn_level & w_level))
+ if (llflag) {
+ goto num_err;
+ } else if (lflag) {
+ llflag = TRUE;
+ if (! stdc3 && ((! skip && (warn_level & w_level))
|| (skip && (warn_level & 8))))
- cwarn( ll_suffix, nump, 0L, skip ? non_eval : 0);
- } else {
- lflag = TRUE;
- }
+ cwarn( ll_suffix, nump, 0L, skip ? non_eval : 0);
+ } else {
+ lflag = TRUE;
+ }
#else
- if (lflag)
- goto num_err;
- else
- lflag = TRUE;
+ if (lflag)
+ goto num_err;
+ else
+ lflag = TRUE;
#endif
- }
- c = *cp++;
}
+ c = *cp++;
+ }
#if HAVE_LONG_LONG && (COMPILER == MSC || COMPILER == BORLANDC)
- if (ACE_OS::ace_tolower( c) == 'i') {
- c1 = ACE_OS::atoi( cp);
- if (c1 == 64) {
- if (! stdc3 && ((! skip && (warn_level & w_level))
- || (skip && (warn_level & 8))))
- cwarn( i64_suffix, nump, 0L, skip ? non_eval : 0);
- cp += 2;
- } else if (c1 == 32 || c1 == 16) {
- cp += 2;
- } else if (c1 == 8) {
- cp++;
- }
- c = *cp++;
+ if (tolower( c) == 'i') {
+ c1 = atoi( cp);
+ if (c1 == 64) {
+ if (! stdc3 && ((! skip && (warn_level & w_level))
+ || (skip && (warn_level & 8))))
+ cwarn( i64_suffix, nump, 0L, skip ? non_eval : 0);
+ cp += 2;
+ } else if (c1 == 32 || c1 == 16) {
+ cp += 2;
+ } else if (c1 == 8) {
+ cp++;
}
+ c = *cp++;
+ }
#endif
- if (c != EOS)
- goto num_err;
+ if (c != EOS)
+ goto num_err;
- if (standard) {
- if (uflag) /* If 'U' suffixed, uexpr_t is treated as unsigned */
- ev.sign = UNSIGNED;
- else
- ev.sign = (value >= 0L);
+ if (standard) {
+ if (uflag) /* If 'U' suffixed, uexpr_t is treated as unsigned */
+ ev.sign = UNSIGNED;
+ else
+ ev.sign = (value >= 0L);
#if HAVE_LONG_LONG
- } else {
- if (value > LONGMAX)
- erange_long = TRUE;
+ } else {
+ if (value > LONGMAX)
+ erange_long = TRUE;
#endif
- }
+ }
- ev.val = value;
- if (erange && (warn_level & 8))
- cwarn( out_of_range, nump, 0L, non_eval);
+ ev.val = value;
+ if (erange && (warn_level & 8))
+ cwarn( out_of_range, nump, 0L, non_eval);
#if HAVE_LONG_LONG
- else if (erange_long && ((skip && (warn_level & 8))
- || (! stdc3 && ! skip && (warn_level & w_level))))
- cwarn( out_of_range_long, nump, 0L, skip ? non_eval : 0);
+ else if (erange_long && ((skip && (warn_level & 8))
+ || (! stdc3 && ! skip && (warn_level & w_level))))
+ cwarn( out_of_range_long, nump, 0L, skip ? non_eval : 0);
#endif
- return & ev;
-
-range_err:
- cerror( out_of_range, nump, 0L, 0);
- ev.sign = VAL_ERROR;
- return & ev;
-num_err:
- cerror( not_integer, nump, 0L, 0);
- ev.sign = VAL_ERROR;
- return & ev;
+ return & ev;
+
+ range_err:
+ cerror( out_of_range, nump, 0L, 0);
+ ev.sign = VAL_ERROR;
+ return & ev;
+ num_err:
+ cerror( not_integer, nump, 0L, 0);
+ ev.sign = VAL_ERROR;
+ return & ev;
}
static VAL_SIGN * eval_char(
- char * const token
-)
+ char * const token
+ )
/*
* Evaluate a character constant.
* This routine is never called in POST_STD mode.
*/
{
- const char * const w_out_of_range
- = "Wide character constant %s%.0ld%s is out of range"; /* _E_ _W8_ */
- const char * const c_out_of_range
+ const char * const w_out_of_range
+ = "Wide character constant %s%.0ld%s is out of range"; /* _E_ _W8_ */
+ const char * const c_out_of_range
= "Integer character constant %s%.0ld%s is out of range"; /* _E_ _W8_ */
- uexpr_t value;
- uexpr_t tmp;
- expr_t cl;
- int erange = FALSE;
- int wide = (*token == 'L');
- int ucn8;
- int i;
- int bits, mbits, u8bits, bits_save;
- char * cp = token + 1; /* Character content */
+ uexpr_t value;
+ uexpr_t tmp;
+ expr_t cl;
+ int erange = FALSE;
+ int wide = (*token == 'L');
+ int ucn8;
+ int i;
+ int bits, mbits, u8bits, bits_save;
+ char * cp = token + 1; /* Character content */
#if HAVE_LONG_LONG
- const char * const w_out_of_range_long =
- "Wide character constant %s%.0ld%s is " /* _E_ _W1_ _W2_ _W8_ */
- "out of range of unsigned long";
- const char * const c_out_of_range_long =
- "Integer character constant %s%.0ld%s is " /* _E_ _W1_ _W2_ _W8_ */
- "out of range of unsigned long";
- int erange_long = FALSE;
+ const char * const w_out_of_range_long =
+ "Wide character constant %s%.0ld%s is " /* _E_ _W1_ _W2_ _W8_ */
+ "out of range of unsigned long";
+ const char * const c_out_of_range_long =
+ "Integer character constant %s%.0ld%s is " /* _E_ _W1_ _W2_ _W8_ */
+ "out of range of unsigned long";
+ int erange_long = FALSE;
#endif
- bits = CHARBIT;
- u8bits = CHARBIT * 4;
- if (mbchar & UTF8)
- mbits = CHARBIT * 4;
- else
- mbits = CHARBIT * 2;
- if (mcpp_mode == STD && wide) { /* Wide character constant */
- cp++; /* Skip 'L' */
- bits = mbits;
- }
- if (char_type[ *cp & UCHARMAX] & mbstart) {
- cl = mb_eval( &cp);
- bits = mbits;
- } else if ((cl = eval_one( &cp, wide, mbits, (ucn8 = FALSE, &ucn8)))
- == -1L) {
+ bits = CHARBIT;
+ u8bits = CHARBIT * 4;
+ if (mbchar & UTF8)
+ mbits = CHARBIT * 4;
+ else
+ mbits = CHARBIT * 2;
+ if (mcpp_mode == STD && wide) { /* Wide character constant */
+ cp++; /* Skip 'L' */
+ bits = mbits;
+ }
+ if (char_type[ *cp & UCHARMAX] & mbchk) {
+ cl = mb_eval( &cp);
+ bits = mbits;
+ } else if ((cl = eval_one( &cp, wide, mbits, (ucn8 = FALSE, &ucn8)))
+ == -1L) {
+ ev.sign = VAL_ERROR;
+ return & ev;
+ }
+ bits_save = bits;
+ value = cl;
+
+ for (i = 0; *cp != '\'' && *cp != EOS; i++) {
+ if (char_type[ *cp & UCHARMAX] & mbchk) {
+ cl = mb_eval( &cp);
+ if (cl == 0)
+ /* Shift-out sequence of multi-byte or wide character */
+ continue;
+ bits = mbits;
+ } else {
+ cl = eval_one( &cp, wide, mbits, (ucn8 = FALSE, &ucn8));
+ if (cl == -1L) {
ev.sign = VAL_ERROR;
return & ev;
- }
- bits_save = bits;
- value = cl;
-
- for (i = 0; *cp != '\'' && *cp != EOS; i++) {
- if (char_type[ *cp & UCHARMAX] & mbstart) {
- cl = mb_eval( &cp);
- if (cl == 0)
- /* Shift-out sequence of multi-byte or wide character */
- continue;
- bits = mbits;
- } else {
- cl = eval_one( &cp, wide, mbits, (ucn8 = FALSE, &ucn8));
- if (cl == -1L) {
- ev.sign = VAL_ERROR;
- return & ev;
- }
+ }
#if OK_UCN
- if (ucn8 == TRUE)
- bits = u8bits;
- else
- bits = bits_save;
+ if (ucn8 == TRUE)
+ bits = u8bits;
+ else
+ bits = bits_save;
#endif
- }
- tmp = value;
- value = (value << bits) | cl; /* Multi-char or multi-byte char */
- if ((value >> bits) < tmp) { /* Overflow */
- if (! skip)
- goto range_err;
- else
- erange = TRUE;
- }
+ }
+ tmp = value;
+ value = (value << bits) | cl; /* Multi-char or multi-byte char */
+ if ((value >> bits) < tmp) { /* Overflow */
+ if (! skip)
+ goto range_err;
+ else
+ erange = TRUE;
+ }
#if HAVE_LONG_LONG
- if ((mcpp_mode == STD && (! stdc3 && value > ULONGMAX))
- || (! standard && value > LONGMAX))
- erange_long = TRUE;
+ if ((mcpp_mode == STD && (! stdc3 && value > ULONGMAX))
+ || (! standard && value > LONGMAX))
+ erange_long = TRUE;
#endif
- }
+ }
- ev.sign = ((expr_t) value >= 0L);
- ev.val = value;
+ ev.sign = ((expr_t) value >= 0L);
+ ev.val = value;
- if (erange && skip && (warn_level & 8)) {
- if (wide)
- cwarn( w_out_of_range, token, 0L, non_eval);
- else
- cwarn( c_out_of_range, token, 0L, non_eval);
+ if (erange && skip && (warn_level & 8)) {
+ if (wide)
+ cwarn( w_out_of_range, token, 0L, non_eval);
+ else
+ cwarn( c_out_of_range, token, 0L, non_eval);
#if HAVE_LONG_LONG
- } else if (erange_long && ((skip && (warn_level & 8))
- || (! stdc3 && ! skip && (warn_level & w_level)))) {
- if (wide)
- cwarn( w_out_of_range_long, token, 0L, skip ? non_eval : 0);
- else
- cwarn( c_out_of_range_long, token, 0L, skip ? non_eval : 0);
+ } else if (erange_long && ((skip && (warn_level & 8))
+ || (! stdc3 && ! skip && (warn_level & w_level)))) {
+ if (wide)
+ cwarn( w_out_of_range_long, token, 0L, skip ? non_eval : 0);
+ else
+ cwarn( c_out_of_range_long, token, 0L, skip ? non_eval : 0);
#endif
- }
-
- if (i == 0) /* Constant of single (character or wide-character) */
- return & ev;
+ }
- if ((! skip && (warn_level & 4)) || (skip && (warn_level & 8))) {
- if (mcpp_mode == STD && wide)
- cwarn(
-"Multi-character wide character constant %s%.0ld%s isn't portable" /* _W4_ _W8_ */
- , token, 0L, skip ? non_eval : 0);
- else
- cwarn(
-"Multi-character or multi-byte character constant %s%.0ld%s isn't portable" /* _W4_ _W8_ */
- , token, 0L, skip ? non_eval : 0);
- }
+ if (i == 0) /* Constant of single (character or wide-character) */
return & ev;
-range_err:
- if (wide)
- cerror( w_out_of_range, token, 0L, 0);
+ if ((! skip && (warn_level & 4)) || (skip && (warn_level & 8))) {
+ if (mcpp_mode == STD && wide)
+ cwarn(
+ "Multi-character wide character constant %s%.0ld%s isn't portable" /* _W4_ _W8_ */
+ , token, 0L, skip ? non_eval : 0);
else
- cerror( c_out_of_range, token, 0L, 0);
- ev.sign = VAL_ERROR;
- return & ev;
+ cwarn(
+ "Multi-character or multi-byte character constant %s%.0ld%s isn't portable" /* _W4_ _W8_ */
+ , token, 0L, skip ? non_eval : 0);
+ }
+ return & ev;
+
+ range_err:
+ if (wide)
+ cerror( w_out_of_range, token, 0L, 0);
+ else
+ cerror( c_out_of_range, token, 0L, 0);
+ ev.sign = VAL_ERROR;
+ return & ev;
}
static expr_t eval_one(
- char ** seq_pp, /* Address of pointer to sequence */
- /* eval_one() advances the pointer to sequence */
- int wide, /* Flag of wide-character */
- int mbits, /* Number of bits of a wide-char */
- int * ucn8 /* Flag of UCN-32 bits */
-)
+ char ** seq_pp, /* Address of pointer to sequence */
+ /* eval_one() advances the pointer to sequence */
+ int wide, /* Flag of wide-character */
+ int mbits, /* Number of bits of a wide-char */
+ int * ucn8 /* Flag of UCN-32 bits */
+ )
/*
* Called from eval_char() above to get a single character, single multi-
* byte character or wide character (with or without \ escapes).
@@ -1102,568 +1108,568 @@ static expr_t eval_one(
*/
{
#if OK_UCN
- const char * const ucn_malval
- = "UCN cannot specify the value %.0s\"%08lx\""; /* _E_ _W8_ */
+ const char * const ucn_malval
+ = "UCN cannot specify the value %.0s\"%08lx\""; /* _E_ _W8_ */
#endif
- const char * const out_of_range
- = "%s%ld bits can't represent escape sequence '%s'"; /* _E_ _W8_ */
- uexpr_t value;
- int erange = FALSE;
- char * seq = *seq_pp; /* Initial seq_pp for diagnostic*/
- const char * cp;
- const char * digits;
- unsigned uc;
- unsigned uc1;
- int count;
- int bits;
- size_t wchar_max;
-
- uc = *(*seq_pp)++ & UCHARMAX;
-
- if (uc != '\\') /* Other than escape sequence */
- return (expr_t) uc;
-
- /* escape sequence */
- uc1 = uc = *(*seq_pp)++ & UCHARMAX;
- switch (uc) {
- case 'a':
- return '\a';
- case 'b':
- return '\b';
- case 'f':
- return '\f';
- case 'n':
- return '\n';
- case 'r':
- return '\r';
- case 't':
- return '\t';
- case 'v':
- return '\v';
+ const char * const out_of_range
+ = "%s%ld bits can't represent escape sequence '%s'"; /* _E_ _W8_ */
+ uexpr_t value;
+ int erange = FALSE;
+ char * seq = *seq_pp; /* Initial seq_pp for diagnostic*/
+ const char * cp;
+ const char * digits;
+ unsigned uc;
+ unsigned uc1;
+ int count;
+ int bits;
+ size_t wchar_max;
+
+ uc = *(*seq_pp)++ & UCHARMAX;
+
+ if (uc != '\\') /* Other than escape sequence */
+ return (expr_t) uc;
+
+ /* escape sequence */
+ uc1 = uc = *(*seq_pp)++ & UCHARMAX;
+ switch (uc) {
+ case 'a':
+ return '\a';
+ case 'b':
+ return '\b';
+ case 'f':
+ return '\f';
+ case 'n':
+ return '\n';
+ case 'r':
+ return '\r';
+ case 't':
+ return '\t';
+ case 'v':
+ return '\v';
#if OK_UCN
- case 'u': case 'U':
- if (! stdc2)
- goto undefined;
- /* Else Universal character name */
- /* Fall through */
+ case 'u': case 'U':
+ if (! stdc2)
+ goto undefined;
+ /* Else Universal character name */
+ /* Fall through */
#endif
- case 'x': /* '\xFF' */
- if (! standard)
- goto undefined;
- digits = "0123456789abcdef";
- bits = 4;
- uc = *(*seq_pp)++ & UCHARMAX;
- break;
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- digits = "01234567";
- bits = 3;
- break;
- case '\'': case '"': case '?': case '\\':
- return (expr_t) uc;
- default:
- goto undefined;
- }
-
- wchar_max = (UCHARMAX << CHARBIT) | UCHARMAX;
- if (mbits == CHARBIT * 4) {
- if (mcpp_mode == STD)
- wchar_max = (wchar_max << CHARBIT * 2) | wchar_max;
- else
- wchar_max = LONGMAX;
- }
-
- value = 0L;
- for (count = 0; ; ++count) {
- if (ACE_OS::ace_isupper( uc))
- uc = ACE_OS::ace_tolower( uc);
- if ((cp = ACE_OS::strchr( digits, uc)) == 0)
- break;
- if (count >= 3 && bits == 3)
- break; /* Octal escape sequence at most 3 digits */
+ case 'x': /* '\xFF' */
+ if (! standard)
+ goto undefined;
+ digits = "0123456789abcdef";
+ bits = 4;
+ uc = *(*seq_pp)++ & UCHARMAX;
+ break;
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ digits = "01234567";
+ bits = 3;
+ break;
+ case '\'': case '"': case '?': case '\\':
+ return (expr_t) uc;
+ default:
+ goto undefined;
+ }
+
+ wchar_max = (UCHARMAX << CHARBIT) | UCHARMAX;
+ if (mbits == CHARBIT * 4) {
+ if (mcpp_mode == STD)
+ wchar_max = (wchar_max << CHARBIT * 2) | wchar_max;
+ else
+ wchar_max = LONGMAX;
+ }
+
+ value = 0L;
+ for (count = 0; ; ++count) {
+ if (isupper( uc))
+ uc = tolower( uc);
+ if ((cp = ACE_OS::strchr( digits, uc)) == 0)
+ break;
+ if (count >= 3 && bits == 3)
+ break; /* Octal escape sequence at most 3 digits */
#if OK_UCN
- if ((count >= 4 && uc1 == 'u') || (count >= 8 && uc1 == 'U'))
- break;
+ if ((count >= 4 && uc1 == 'u') || (count >= 8 && uc1 == 'U'))
+ break;
#endif
- value = (value << bits) | (cp - digits);
+ value = (value << bits) | (cp - digits);
#if OK_UCN
- if (wchar_max < value && uc1 != 'u' && uc1 != 'U')
+ if (wchar_max < value && uc1 != 'u' && uc1 != 'U')
#else
- if (wchar_max < value)
+ if (wchar_max < value)
#endif
{
- if (! skip)
- goto range_err;
- else
- erange = TRUE;
+ if (! skip)
+ goto range_err;
+ else
+ erange = TRUE;
}
- uc = *(*seq_pp)++ & UCHARMAX;
- }
- (*seq_pp)--;
+ uc = *(*seq_pp)++ & UCHARMAX;
+ }
+ (*seq_pp)--;
- if (erange) {
- value &= wchar_max;
- goto range_err;
- }
+ if (erange) {
+ value &= wchar_max;
+ goto range_err;
+ }
- if (count == 0 && bits == 4) /* '\xnonsense' */
- goto undefined;
+ if (count == 0 && bits == 4) /* '\xnonsense' */
+ goto undefined;
#if OK_UCN
- if (uc1 == 'u' || uc1 == 'U') {
- if ((count < 4 && uc1 == 'u') || (count < 8 && uc1 == 'U'))
- goto undefined;
- if ((/*value >= 0L &&*/ value <= 0x9FL
- && value != 0x24L && value != 0x40L && value != 0x60L)
- || (!stdc3 && value >= 0xD800L && value <= 0xDFFFL)) {
- if (!skip)
- cerror( ucn_malval, 0, (long) value, 0);
- else if (warn_level & 8)
- cwarn( ucn_malval, 0, (long) value, 0);
- }
- if (count >= 8 && uc1 == 'U')
- *ucn8 = TRUE;
- return (expr_t) value;
- }
-#endif /* OK_UCN */
- if (! wide && (UCHARMAX < value)) {
- value &= UCHARMAX;
- goto range_err;
+ if (uc1 == 'u' || uc1 == 'U') {
+ if ((count < 4 && uc1 == 'u') || (count < 8 && uc1 == 'U'))
+ goto undefined;
+ if ((value <= 0x9FL
+ && value != 0x24L && value != 0x40L && value != 0x60L)
+ || (!stdc3 && value >= 0xD800L && value <= 0xDFFFL)) {
+ if (!skip)
+ cerror( ucn_malval, 0, (long) value, 0);
+ else if (warn_level & 8)
+ cwarn( ucn_malval, 0, (long) value, 0);
}
+ if (count >= 8 && uc1 == 'U')
+ *ucn8 = TRUE;
return (expr_t) value;
-
-undefined:
- uc1 = **seq_pp;
- **seq_pp = EOS; /* For diagnostic */
- if ((! skip && (warn_level & 1)) || (skip && (warn_level & 8)))
- cwarn(
- "Undefined escape sequence%s %.0ld'%s'" /* _W1_ _W8_ */
- , skip ? non_eval : 0, 0L, seq);
- **seq_pp = uc1;
- *seq_pp = seq + 1;
- return (expr_t) '\\'; /* Returns the escape char */
-
-range_err:
- uc1 = **seq_pp;
- **seq_pp = EOS; /* For diagnostic */
- if (wide) {
- if (! skip)
- cerror( out_of_range, 0, (long) mbits, seq);
- else if (warn_level & 8)
- cwarn( out_of_range, non_eval, (long) mbits, seq);
- } else {
- if (! skip)
- cerror( out_of_range, 0, (long) CHARBIT, seq);
- else if (warn_level & 8)
- cwarn( out_of_range, non_eval, (long) CHARBIT, seq);
- }
-
- **seq_pp = uc1;
+ }
+#endif /* OK_UCN */
+ if (! wide && (UCHARMAX < value)) {
+ value &= UCHARMAX;
+ goto range_err;
+ }
+ return (expr_t) value;
+
+ undefined:
+ uc1 = **seq_pp;
+ **seq_pp = EOS; /* For diagnostic */
+ if ((! skip && (warn_level & 1)) || (skip && (warn_level & 8)))
+ cwarn(
+ "Undefined escape sequence%s %.0ld'%s'" /* _W1_ _W8_ */
+ , skip ? non_eval : 0, 0L, seq);
+ **seq_pp = uc1;
+ *seq_pp = seq + 1;
+ return (expr_t) '\\'; /* Returns the escape char */
+
+ range_err:
+ uc1 = **seq_pp;
+ **seq_pp = EOS; /* For diagnostic */
+ if (wide) {
if (! skip)
- return -1L;
- else
- return (expr_t) value;
+ cerror( out_of_range, 0, (long) mbits, seq);
+ else if (warn_level & 8)
+ cwarn( out_of_range, non_eval, (long) mbits, seq);
+ } else {
+ if (! skip)
+ cerror( out_of_range, 0, (long) CHARBIT, seq);
+ else if (warn_level & 8)
+ cwarn( out_of_range, non_eval, (long) CHARBIT, seq);
+ }
+
+ **seq_pp = uc1;
+ if (! skip)
+ return -1L;
+ else
+ return (expr_t) value;
}
static VAL_SIGN * eval_eval(
- VAL_SIGN * valp,
- int op
-)
+ VAL_SIGN * valp,
+ int op
+ )
/*
* One or two values are popped from the value stack and do arithmetic.
* The result is pushed onto the value stack.
* eval_eval() returns the new pointer to the top of the value stack.
*/
{
- const char * const zero_div = "%sDivision by zero%.0ld%s"; /* _E_ _W8_ */
+ const char * const zero_div = "%sDivision by zero%.0ld%s"; /* _E_ _W8_ */
#if HAVE_LONG_LONG
- const char * const neg_format =
-"Negative value \"%" LL_FORM "d\" is converted to positive \"%" /* _W1_ _W8_*/
- LL_FORM "u\"%%s";
+ const char * const neg_format =
+ "Negative value \"%" LL_FORM "d\" is converted to positive \"%" /* _W1_ _W8_*/
+ LL_FORM "u\"%%s";
#else
- const char * const neg_format =
-"Negative value \"%ld\" is converted to positive \"%lu\"%%s"; /* _W1_ _W8_*/
+ const char * const neg_format =
+ "Negative value \"%ld\" is converted to positive \"%lu\"%%s"; /* _W1_ _W8_*/
#endif
- expr_t v1, v2;
- int sign1, sign2;
-
- if (is_binary( op)) {
- v2 = (--valp)->val;
- sign2 = valp->sign;
- } else {
- v2 = 0L; /* Dummy */
- sign2 = SIGNED; /* Dummy */
+ expr_t v1, v2;
+ int sign1, sign2;
+
+ if (is_binary( op)) {
+ v2 = (--valp)->val;
+ sign2 = valp->sign;
+ } else {
+ v2 = 0L; /* Dummy */
+ sign2 = SIGNED; /* Dummy */
+ }
+ v1 = (--valp)->val;
+ sign1 = valp->sign;
+ if (mcpp_debug & EXPRESSION) {
+ mcpp_fprintf( DBG, "%s op %s", (is_binary( op)) ? "binary" : "unary"
+ , opname[ op]);
+ dump_val( ", v1 = ", valp);
+ if (is_binary( op))
+ dump_val( ", v2 = ", valp + 1);
+ mcpp_fputc( '\n', DBG);
+ }
+
+ if (standard
+ && (sign1 == UNSIGNED || sign2 == UNSIGNED) && is_binary( op)
+ && op != OP_ANA && op != OP_ORO && op != OP_SR && op != OP_SL) {
+ if (((sign1 == SIGNED && v1 < 0L) || (sign2 == SIGNED && v2 < 0L)
+ ) && ((! skip && (warn_level & 1))
+ || (skip && (warn_level & 8)))) {
+ char negate[(((sizeof (expr_t) * 8) / 3) + 1) * 2 + 50];
+ expr_t v3;
+
+ v3 = (sign1 == SIGNED ? v1 : v2);
+ ACE_OS::sprintf( negate, neg_format, v3, v3);
+ cwarn( negate, skip ? non_eval : 0, 0L, 0);
}
- v1 = (--valp)->val;
- sign1 = valp->sign;
- if (mcpp_debug & EXPRESSION) {
- mcpp_fprintf( DBG, "%s op %s", (is_binary( op)) ? "binary" : "unary"
- , opname[ op]);
- dump_val( ", v1 = ", valp);
- if (is_binary( op))
- dump_val( ", v2 = ", valp + 1);
- mcpp_fputc( '\n', DBG);
- }
-
- if (standard
- && (sign1 == UNSIGNED || sign2 == UNSIGNED) && is_binary( op)
- && op != OP_ANA && op != OP_ORO && op != OP_SR && op != OP_SL) {
- if (((sign1 == SIGNED && v1 < 0L) || (sign2 == SIGNED && v2 < 0L)
- ) && ((! skip && (warn_level & 1))
- || (skip && (warn_level & 8)))) {
- char negate[(((sizeof (expr_t) * 8) / 3) + 1) * 2 + 50];
- expr_t v3;
-
- v3 = (sign1 == SIGNED ? v1 : v2);
- ACE_OS::sprintf( negate, neg_format, v3, v3);
- cwarn( negate, skip ? non_eval : 0, 0L, 0);
- }
- valp->sign = sign1 = sign2 = UNSIGNED;
- }
- if ((op == OP_SL || op == OP_SR)
- && ((! skip && (warn_level & 1)) || (skip && (warn_level & 8)))) {
- if (v2 < 0L || v2 >= sizeof (expr_t) * CHARBIT)
- cwarn( "Illegal shift count %.0s\"%ld\"%s" /* _W1_ _W8_ */
- , 0, (long) v2, skip ? non_eval : 0);
+ valp->sign = sign1 = sign2 = UNSIGNED;
+ }
+ if ((op == OP_SL || op == OP_SR)
+ && ((! skip && (warn_level & 1)) || (skip && (warn_level & 8)))) {
+ if (v2 < 0L || v2 >= sizeof (expr_t) * CHARBIT)
+ cwarn( "Illegal shift count %.0s\"%ld\"%s" /* _W1_ _W8_ */
+ , 0, (long) v2, skip ? non_eval : 0);
#if HAVE_LONG_LONG
- else if (! stdc3 && v2 >= sizeof (long) * CHARBIT
- && ((! skip && (warn_level & w_level))
- || (skip && (warn_level & 8))))
- cwarn(
-"Shift count %.0s\"%ld\" is larger than bit count of long%s" /* _W1_ _W8_*/
- , 0, (long) v2, skip ? non_eval : 0);
+ else if (! stdc3 && v2 >= sizeof (long) * CHARBIT
+ && ((! skip && (warn_level & w_level))
+ || (skip && (warn_level & 8))))
+ cwarn(
+ "Shift count %.0s\"%ld\" is larger than bit count of long%s" /* _W1_ _W8_*/
+ , 0, (long) v2, skip ? non_eval : 0);
#endif
+ }
+ if ((op == OP_DIV || op == OP_MOD) && v2 == 0L) {
+ if (! skip) {
+ cerror( zero_div, 0, 0L, 0);
+ valp->sign = VAL_ERROR;
+ return valp;
+ } else {
+ if (warn_level & 8)
+ cwarn( zero_div, 0, 0L, non_eval);
+ valp->sign = sign1;
+ valp->val = (expr_t) EXPR_MAX;
+ return valp;
}
- if ((op == OP_DIV || op == OP_MOD) && v2 == 0L) {
- if (! skip) {
- cerror( zero_div, 0, 0L, 0);
- valp->sign = VAL_ERROR;
- return valp;
- } else {
- if (warn_level & 8)
- cwarn( zero_div, 0, 0L, non_eval);
- valp->sign = sign1;
- valp->val = (expr_t) EXPR_MAX;
- return valp;
- }
- }
-
- if (! standard || sign1 == SIGNED)
- v1 = eval_signed( & valp, v1, v2, op);
- else
- v1 = eval_unsigned( & valp, (uexpr_t) v1, (uexpr_t) v2, op);
+ }
- if (valp->sign == VAL_ERROR) /* Out of range */
- return valp;
+ if (! standard || sign1 == SIGNED)
+ v1 = eval_signed( & valp, v1, v2, op);
+ else
+ v1 = eval_unsigned( & valp, (uexpr_t) v1, (uexpr_t) v2, op);
- switch (op) {
- case OP_NOT: case OP_EQ: case OP_NE:
- case OP_LT: case OP_LE: case OP_GT: case OP_GE:
- case OP_ANA: case OP_ORO:
- valp->sign = SIGNED;
- break;
- default:
- valp->sign = sign1;
- break;
- }
- valp->val = v1;
+ if (valp->sign == VAL_ERROR) /* Out of range */
return valp;
+
+ switch (op) {
+ case OP_NOT: case OP_EQ: case OP_NE:
+ case OP_LT: case OP_LE: case OP_GT: case OP_GE:
+ case OP_ANA: case OP_ORO:
+ valp->sign = SIGNED;
+ break;
+ default:
+ valp->sign = sign1;
+ break;
+ }
+ valp->val = v1;
+ return valp;
}
static expr_t eval_signed(
- VAL_SIGN ** valpp,
- expr_t v1,
- expr_t v2,
- int op
-)
+ VAL_SIGN ** valpp,
+ expr_t v1,
+ expr_t v2,
+ int op
+ )
/*
* Apply the argument operator to the signed data.
* OP_COL is a special case.
*/
{
- const char * const illeg_op
- = "Bug: Illegal operator \"%s\" in eval_signed()"; /* _F_ */
- const char * const not_portable
- = "\"%s\" of negative number isn't portable%.0ld%s"; /* _W1_ _W8_*/
- const char * op_name = opname[ op];
- VAL_SIGN * valp = *valpp;
- expr_t val;
- int chk; /* Flag of overflow in long long */
-
- switch (op) {
- case OP_EOE:
- case OP_PLU: break;
- case OP_NEG:
- chk = v1 && v1 == -v1;
- if (chk
+ const char * const illeg_op
+ = "Bug: Illegal operator \"%s\" in eval_signed()"; /* _F_ */
+ const char * const not_portable
+ = "\"%s\" of negative number isn't portable%.0ld%s"; /* _W1_ _W8_*/
+ const char * op_name = opname[ op];
+ VAL_SIGN * valp = *valpp;
+ expr_t val;
+ int chk; /* Flag of overflow in long long */
+
+ switch (op) {
+ case OP_EOE:
+ case OP_PLU: break;
+ case OP_NEG:
+ chk = v1 && v1 == -v1;
+ if (chk
#if HAVE_LONG_LONG
- || (! stdc3 && v1 && (long) v1 == (long) -v1)
+ || (! stdc3 && v1 && (long) v1 == (long) -v1)
#endif
- )
- overflow( op_name, valpp, chk);
- v1 = -v1;
- break;
- case OP_COM: v1 = ~v1; break;
- case OP_NOT: v1 = !v1; break;
- case OP_MUL:
- val = v1 * v2;
- chk = v1 && v2 && (val / v1 != v2 || val / v2 != v1);
- if (chk
+ )
+ overflow( op_name, valpp, chk);
+ v1 = -v1;
+ break;
+ case OP_COM: v1 = ~v1; break;
+ case OP_NOT: v1 = !v1; break;
+ case OP_MUL:
+ val = v1 * v2;
+ chk = v1 && v2 && (val / v1 != v2 || val / v2 != v1);
+ if (chk
#if HAVE_LONG_LONG
- || (! stdc3 && v1 && v2
- && ((long)val / (long)v1 != (long)v2
- || (long)val / (long)v2 != (long)v1))
+ || (! stdc3 && v1 && v2
+ && ((long)val / (long)v1 != (long)v2
+ || (long)val / (long)v2 != (long)v1))
#endif
- )
- overflow( op_name, valpp, chk);
- v1 = val;
- break;
- case OP_DIV:
- case OP_MOD:
- /* Division by 0 has been already diagnosed by eval_eval(). */
- chk = -v1 == v1 && v2 == -1;
- if (chk /* LONG_MIN / -1 on two's complement */
+ )
+ overflow( op_name, valpp, chk);
+ v1 = val;
+ break;
+ case OP_DIV:
+ case OP_MOD:
+ /* Division by 0 has been already diagnosed by eval_eval(). */
+ chk = -v1 == v1 && v2 == -1;
+ if (chk /* LONG_MIN / -1 on two's complement */
#if HAVE_LONG_LONG
- || (! stdc3
- && (long)-v1 == (long)v1 && (long)v2 == (long)-1)
+ || (! stdc3
+ && (long)-v1 == (long)v1 && (long)v2 == (long)-1)
#endif
- )
- overflow( op_name, valpp, chk);
- else if (! stdc3 && (v1 < 0L || v2 < 0L)
- && ((! skip && (warn_level & 1))
- || (skip && (warn_level & 8))))
- cwarn( not_portable, op_name, 0L, skip ? non_eval : 0);
- if (op == OP_DIV)
- v1 /= v2;
- else
- v1 %= v2;
- break;
- case OP_ADD:
- val = v1 + v2;
- chk = (v2 > 0L && v1 > val) || (v2 < 0L && v1 < val);
- if (chk
+ )
+ overflow( op_name, valpp, chk);
+ else if (! stdc3 && (v1 < 0L || v2 < 0L)
+ && ((! skip && (warn_level & 1))
+ || (skip && (warn_level & 8))))
+ cwarn( not_portable, op_name, 0L, skip ? non_eval : 0);
+ if (op == OP_DIV)
+ v1 /= v2;
+ else
+ v1 %= v2;
+ break;
+ case OP_ADD:
+ val = v1 + v2;
+ chk = (v2 > 0L && v1 > val) || (v2 < 0L && v1 < val);
+ if (chk
#if HAVE_LONG_LONG
- || (! stdc3
- && (((long)v2 > 0L && (long)v1 > (long)val)
- || ((long)v2 < 0L && (long)v1 < (long)val)))
+ || (! stdc3
+ && (((long)v2 > 0L && (long)v1 > (long)val)
+ || ((long)v2 < 0L && (long)v1 < (long)val)))
#endif
- )
- overflow( op_name, valpp, chk);
- v1 = val;
- break;
- case OP_SUB:
- val = v1 - v2;
- chk = (v2 > 0L && val > v1) || (v2 < 0L && val < v1);
- if (chk
+ )
+ overflow( op_name, valpp, chk);
+ v1 = val;
+ break;
+ case OP_SUB:
+ val = v1 - v2;
+ chk = (v2 > 0L && val > v1) || (v2 < 0L && val < v1);
+ if (chk
#if HAVE_LONG_LONG
- || (! stdc3
- && (((long)v2 > 0L && (long)val > (long)v1)
- || ((long)v2 < 0L && (long)val < (long)v1)))
+ || (! stdc3
+ && (((long)v2 > 0L && (long)val > (long)v1)
+ || ((long)v2 < 0L && (long)val < (long)v1)))
#endif
- )
- overflow( op_name, valpp, chk);
- v1 = val;
- break;
- case OP_SL: v1 <<= v2; break;
- case OP_SR:
- if (v1 < 0L
- && ((!skip && (warn_level & 1))
- || (skip && (warn_level & 8))))
- cwarn( not_portable, op_name, 0L, skip ? non_eval : 0);
- v1 >>= v2;
- break;
- case OP_LT: v1 = (v1 < v2); break;
- case OP_LE: v1 = (v1 <= v2); break;
- case OP_GT: v1 = (v1 > v2); break;
- case OP_GE: v1 = (v1 >= v2); break;
- case OP_EQ: v1 = (v1 == v2); break;
- case OP_NE: v1 = (v1 != v2); break;
- case OP_AND: v1 &= v2; break;
- case OP_XOR: v1 ^= v2; break;
- case OP_OR: v1 |= v2; break;
- case OP_ANA: v1 = (v1 && v2); break;
- case OP_ORO: v1 = (v1 || v2); break;
- case OP_COL:
- /*
- * If v1 has the "true" value, v2 has the "false" value.
- * The top of the value stack has the test.
- */
- v1 = (--*valpp)->val ? v1 : v2;
- break;
- default:
- cfatal( illeg_op, op_name, 0L, 0);
- }
-
- *valpp = valp;
- return v1;
+ )
+ overflow( op_name, valpp, chk);
+ v1 = val;
+ break;
+ case OP_SL: v1 <<= v2; break;
+ case OP_SR:
+ if (v1 < 0L
+ && ((!skip && (warn_level & 1))
+ || (skip && (warn_level & 8))))
+ cwarn( not_portable, op_name, 0L, skip ? non_eval : 0);
+ v1 >>= v2;
+ break;
+ case OP_LT: v1 = (v1 < v2); break;
+ case OP_LE: v1 = (v1 <= v2); break;
+ case OP_GT: v1 = (v1 > v2); break;
+ case OP_GE: v1 = (v1 >= v2); break;
+ case OP_EQ: v1 = (v1 == v2); break;
+ case OP_NE: v1 = (v1 != v2); break;
+ case OP_AND: v1 &= v2; break;
+ case OP_XOR: v1 ^= v2; break;
+ case OP_OR: v1 |= v2; break;
+ case OP_ANA: v1 = (v1 && v2); break;
+ case OP_ORO: v1 = (v1 || v2); break;
+ case OP_COL:
+ /*
+ * If v1 has the "true" value, v2 has the "false" value.
+ * The top of the value stack has the test.
+ */
+ v1 = (--*valpp)->val ? v1 : v2;
+ break;
+ default:
+ cfatal( illeg_op, op_name, 0L, 0);
+ }
+
+ *valpp = valp;
+ return v1;
}
static expr_t eval_unsigned(
- VAL_SIGN ** valpp,
- uexpr_t v1u,
- uexpr_t v2u,
- int op
-)
+ VAL_SIGN ** valpp,
+ uexpr_t v1u,
+ uexpr_t v2u,
+ int op
+ )
/*
* Apply the argument operator to the unsigned data.
* Called from eval_eval() only in Standard mode.
*/
{
- const char * const illeg_op
- = "Bug: Illegal operator \"%s\" in eval_unsigned()"; /* _F_ */
- const char * op_name = opname[ op];
- VAL_SIGN * valp = *valpp;
- uexpr_t v1 = 0;
- int chk; /* Flag of overflow in unsigned long long */
- int minus; /* Big integer converted from signed long */
-
- minus = ! stdc3 && (v1u > ULONGMAX || v2u > ULONGMAX);
-
- switch (op) {
- case OP_EOE:
- case OP_PLU: v1 = v1u; break;
- case OP_NEG:
- v1 = static_cast<uexpr_t> (- (static_cast<expr_t> (v1u)));
- if (v1u)
- overflow( op_name, valpp, TRUE);
- break;
- case OP_COM: v1 = ~v1u; break;
- case OP_NOT: v1 = !v1u; break;
- case OP_MUL:
- v1 = v1u * v2u;
- chk = v1u && v2u && (v1 / v2u != v1u || v1 / v1u != v2u);
- if (chk
+ const char * const illeg_op
+ = "Bug: Illegal operator \"%s\" in eval_unsigned()"; /* _F_ */
+ const char * op_name = opname[ op];
+ VAL_SIGN * valp = *valpp;
+ uexpr_t v1 = 0;
+ int chk; /* Flag of overflow in unsigned long long */
+ int minus; /* Big integer converted from signed long */
+
+ minus = ! stdc3 && (v1u > ULONGMAX || v2u > ULONGMAX);
+
+ switch (op) {
+ case OP_EOE:
+ case OP_PLU: v1 = v1u; break;
+ case OP_NEG:
+ v1 = v1u;
+ if (v1u)
+ overflow( op_name, valpp, TRUE);
+ break;
+ case OP_COM: v1 = ~v1u; break;
+ case OP_NOT: v1 = !v1u; break;
+ case OP_MUL:
+ v1 = v1u * v2u;
+ chk = v1u && v2u && (v1 / v2u != v1u || v1 / v1u != v2u);
+ if (chk
#if HAVE_LONG_LONG
- || (! stdc3 && ! minus && v1 > ULONGMAX)
+ || (! stdc3 && ! minus && v1 > ULONGMAX)
#endif
- )
- overflow( op_name, valpp, chk);
- break;
- case OP_DIV:
- /* Division by 0 has been already diagnosed by eval_eval(). */
- v1 = v1u / v2u;
- break;
- case OP_MOD:
- v1 = v1u % v2u;
- break;
- case OP_ADD:
- v1 = v1u + v2u;
- chk = v1 < v1u;
- if (chk
+ )
+ overflow( op_name, valpp, chk);
+ break;
+ case OP_DIV:
+ /* Division by 0 has been already diagnosed by eval_eval(). */
+ v1 = v1u / v2u;
+ break;
+ case OP_MOD:
+ v1 = v1u % v2u;
+ break;
+ case OP_ADD:
+ v1 = v1u + v2u;
+ chk = v1 < v1u;
+ if (chk
#if HAVE_LONG_LONG
- || (! stdc3 && ! minus && v1 > ULONGMAX)
+ || (! stdc3 && ! minus && v1 > ULONGMAX)
#endif
- )
- overflow( op_name, valpp, chk);
- break;
- case OP_SUB:
- v1 = v1u - v2u;
- chk = v1 > v1u;
- if (chk
+ )
+ overflow( op_name, valpp, chk);
+ break;
+ case OP_SUB:
+ v1 = v1u - v2u;
+ chk = v1 > v1u;
+ if (chk
#if HAVE_LONG_LONG
- || (! stdc3 && ! minus && v1 > ULONGMAX)
+ || (! stdc3 && ! minus && v1 > ULONGMAX)
#endif
- )
- overflow( op_name, valpp, chk);
- break;
- case OP_SL: v1 = v1u << v2u; break;
- case OP_SR: v1 = v1u >> v2u; break;
- case OP_LT: v1 = (v1u < v2u); break;
- case OP_LE: v1 = (v1u <= v2u); break;
- case OP_GT: v1 = (v1u > v2u); break;
- case OP_GE: v1 = (v1u >= v2u); break;
- case OP_EQ: v1 = (v1u == v2u); break;
- case OP_NE: v1 = (v1u != v2u); break;
- case OP_AND: v1 = v1u & v2u; break;
- case OP_XOR: v1 = v1u ^ v2u; break;
- case OP_OR: v1 = v1u | v2u; break;
- case OP_ANA: v1 = (v1u && v2u); break;
- case OP_ORO: v1 = (v1u || v2u); break;
- case OP_COL: valp--;
- if (valp->val)
- v1 = v1u;
- else
- v1 = v2u;
- break;
- default:
- cfatal( illeg_op, op_name, 0L, 0);
- }
-
- *valpp = valp;
- return v1;
+ )
+ overflow( op_name, valpp, chk);
+ break;
+ case OP_SL: v1 = v1u << v2u; break;
+ case OP_SR: v1 = v1u >> v2u; break;
+ case OP_LT: v1 = (v1u < v2u); break;
+ case OP_LE: v1 = (v1u <= v2u); break;
+ case OP_GT: v1 = (v1u > v2u); break;
+ case OP_GE: v1 = (v1u >= v2u); break;
+ case OP_EQ: v1 = (v1u == v2u); break;
+ case OP_NE: v1 = (v1u != v2u); break;
+ case OP_AND: v1 = v1u & v2u; break;
+ case OP_XOR: v1 = v1u ^ v2u; break;
+ case OP_OR: v1 = v1u | v2u; break;
+ case OP_ANA: v1 = (v1u && v2u); break;
+ case OP_ORO: v1 = (v1u || v2u); break;
+ case OP_COL: valp--;
+ if (valp->val)
+ v1 = v1u;
+ else
+ v1 = v2u;
+ break;
+ default:
+ cfatal( illeg_op, op_name, 0L, 0);
+ }
+
+ *valpp = valp;
+ return v1;
}
static void overflow(
- const char * op_name,
- VAL_SIGN ** valpp,
- int ll_overflow /* Flag of overflow in long long */
-)
+ const char * op_name,
+ VAL_SIGN ** valpp,
+ int ll_overflow /* Flag of overflow in long long */
+ )
{
- const char * const out_of_range
- = "Result of \"%s\" is out of range%.0ld%s"; /* _E_ _W1_ _W8_ */
+ const char * const out_of_range
+ = "Result of \"%s\" is out of range%.0ld%s"; /* _E_ _W1_ _W8_ */
#if HAVE_LONG_LONG
- if (standard && ! ll_overflow) {
- /* Overflow of long not in C99 mode */
- if ((! skip && (warn_level & w_level)) || (skip && (warn_level & 8)))
- cwarn( out_of_range, op_name, 0L, " of (unsigned) long");
- } else
+ if (standard && ! ll_overflow) {
+ /* Overflow of long not in C99 mode */
+ if ((! skip && (warn_level & w_level)) || (skip && (warn_level & 8)))
+ cwarn( out_of_range, op_name, 0L, " of (unsigned) long");
+ } else
#endif
if (skip) {
- if (warn_level & 8)
- cwarn( out_of_range, op_name, 0L, non_eval);
- /* Else don't warn */
+ if (warn_level & 8)
+ cwarn( out_of_range, op_name, 0L, non_eval);
+ /* Else don't warn */
} else if (standard && (*valpp)->sign == UNSIGNED) {/* Never overflow */
- if (warn_level & 1)
- cwarn( out_of_range, op_name, 0L, 0);
+ if (warn_level & 1)
+ cwarn( out_of_range, op_name, 0L, 0);
} else {
- cerror( out_of_range, op_name, 0L, 0);
- (*valpp)->sign = VAL_ERROR;
+ cerror( out_of_range, op_name, 0L, 0);
+ (*valpp)->sign = VAL_ERROR;
}
}
static void dump_val(
- const char * msg,
- const VAL_SIGN * valp
-)
+ const char * msg,
+ const VAL_SIGN * valp
+ )
/*
* Dump a value by internal representation.
*/
{
#if HAVE_LONG_LONG
- const char * const format
- = "%s(%ssigned long long) 0x%016" LL_FORM "x";
+ const char * const format
+ = "%s(%ssigned long long) 0x%016" LL_FORM "x";
#else
- const char * const format = "%s(%ssigned long) 0x%08lx";
+ const char * const format = "%s(%ssigned long) 0x%08lx";
#endif
- int sign = valp->sign;
+ int sign = valp->sign;
- mcpp_fprintf( DBG, format, msg, sign ? "" : "un", valp->val);
+ mcpp_fprintf( DBG, format, msg, sign ? "" : "un", valp->val);
}
static void dump_stack(
- const OPTAB * opstack, /* Operator stack */
- const OPTAB * opp, /* Pointer into operator stack */
- const VAL_SIGN * value, /* Value stack */
- const VAL_SIGN * valp /* -> value vector */
-)
+ const OPTAB * opstack, /* Operator stack */
+ const OPTAB * opp, /* Pointer into operator stack */
+ const VAL_SIGN * value, /* Value stack */
+ const VAL_SIGN * valp /* -> value vector */
+ )
/*
* Dump stacked operators and values.
*/
{
- if (opstack < opp)
- mcpp_fprintf( DBG, "Index op prec skip name -- op stack at %s"
- , infile->bptr);
-
- while (opstack < opp) {
- mcpp_fprintf( DBG, " [%2d] %2d %04o %d %s\n", (int)(opp - opstack)
- , opp->op, opp->prec, opp->skip, opname[ static_cast<size_t> (opp->op)]);
- opp--;
- }
-
- while (value <= --valp) {
- mcpp_fprintf( DBG, "value[%d].val = ", (int)(valp - value));
- dump_val( "", valp);
- mcpp_fputc( '\n', DBG);
- }
+ if (opstack < opp)
+ mcpp_fprintf( DBG, "Index op prec skip name -- op stack at %s"
+ , infile->bptr);
+
+ while (opstack < opp) {
+ mcpp_fprintf( DBG, " [%2d] %2d %04o %d %s\n", (int)(opp - opstack)
+ , opp->op, opp->prec, opp->skip, opname[ static_cast<size_t> (opp->op)]);
+ opp--;
+ }
+
+ while (value <= --valp) {
+ mcpp_fprintf( DBG, "value[%d].val = ", (int)(valp - value));
+ dump_val( "", valp);
+ mcpp_fputc( '\n', DBG);
+ }
}
diff --git a/TAO/TAO_IDL/contrib/mcpp/expand.cpp b/TAO/TAO_IDL/contrib/mcpp/expand.cpp
index b571587c827..cf8008bb9da 100644
--- a/TAO/TAO_IDL/contrib/mcpp/expand.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/expand.cpp
@@ -1,5 +1,5 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
* All rights reserved.
*
* Some parts of this code are derived from the public domain software
@@ -41,95 +41,121 @@
#include "internal.H"
#endif
-#include "ace/OS_NS_stdlib.h"
-#include "ace/OS_NS_stdio.h"
-
#define ARG_ERROR (-255)
#define CERROR 1
#define CWARN 2
-static char * expand_std( DEFBUF * defp, char * out, char * out_end);
- /* Expand a macro completely (for Standard modes) */
-static char * expand_prestd( DEFBUF * defp, char * out, char * out_end);
- /* Expand a macro completely (for pre-Standard modes) */
-static DEFBUF * is_macro_call( DEFBUF * defp, char ** cp);
- /* Is this really a macro call ? */
-static int collect_args( const DEFBUF * defp, char ** arglist);
- /* Collect arguments of a macro call*/
+typedef struct location { /* Where macro or arg locate */
+ long start_line; /* Beginning at 1 */
+ size_t start_col; /* Beginning at 0 */
+ long end_line;
+ size_t end_col;
+} LOCATION;
+typedef struct magic_seq { /* Data of a sequence inserted between tokens */
+ char * magic_start; /* First MAC_INF sequence */
+ char * magic_end; /* End of last MAC_INF seq */
+ int space; /* Space succeeds or not */
+} MAGIC_SEQ;
+
+static int compat_mode;
+/* Expand recursive macro more than Standard (for compatibility with GNUC) */
+#if COMPILER == GNUC
+static int ansi; /* __STRICT_ANSI__ flag */
+#endif
+
+static char * expand_std( DEFBUF * defp, char * out, char * out_end
+ , LINE_COL line_col, int * pragma_op);
+/* Expand a macro completely (for Standard modes) */
+static char * expand_prestd( DEFBUF * defp, char * out, char * out_end
+ , LINE_COL line_col, int * pragma_op);
+/* Expand a macro completely (for pre-Standard modes) */
+static DEFBUF * is_macro_call( DEFBUF * defp, char ** cp, char ** endf
+ , MAGIC_SEQ * mgc_seq); /* Is this really a macro call ? */
+static int collect_args( const DEFBUF * defp, char ** arglist, int m_num);
+/* Collect arguments of a macro call*/
static int get_an_arg( int c, char ** argpp, char * arg_end
- , char ** seqp, int var_arg);
- /* Get an argument */
-static int squeeze_ws( char ** out);
- /* Squeeze white spaces to a space */
+ , char ** seqp, int var_arg, int nargs, LOCATION ** locp, int m_num
+ , MAGIC_SEQ * mgc_prefix); /* Get an argument */
+static int squeeze_ws( char ** out, char ** endf, MAGIC_SEQ * mgc_seq);
+/* Squeeze white spaces to a space */
static void skip_macro( void);
- /* Skip the rest of macro call */
+/* Skip the rest of macro call */
static void diag_macro( int severity, const char * format
- , const char * arg1, long arg2, const char * arg3, const DEFBUF * defp1
- , const DEFBUF * defp2) ;
- /* Supplement diagnostic information*/
-static void dump_args( const char * why, int nargs, char ** arglist);
- /* Dump arguments list */
+ , const char * arg1, long arg2, const char * arg3, const DEFBUF * defp1
+ , const DEFBUF * defp2) ;
+/* Supplement diagnostic information*/
+static void dump_args( const char * why, int nargs, const char ** arglist);
+/* Dump arguments list */
+
+static int rescan_level; /* Times of macro rescan */
-static int rescan_level; /* Times of macro rescan */
static const char * const macbuf_overflow
- = "Buffer overflow expanding macro \"%s\" at %.0ld\"%s\""; /* _E_ */
+= "Buffer overflow expanding macro \"%s\" at %.0ld\"%s\""; /* _E_ */
static const char * const empty_arg
- = "Empty argument in macro call \"%s\""; /* _W2_ */
+= "Empty argument in macro call \"%s\""; /* _W2_ */
static const char * const unterm_macro
- = "Unterminated macro call \"%s\""; /* _E_ */
+= "Unterminated macro call \"%s\""; /* _E_ */
static const char * const narg_error
- = "%s than necessary %ld argument(s) in macro call \"%s\""; /* _E_ _W1_ */
+= "%s than necessary %ld argument(s) in macro call \"%s\""; /* _E_ _W1_ */
static const char * const only_name
- = "Macro \"%s\" needs arguments"; /* _W8_ */
+= "Macro \"%s\" needs arguments"; /* _W8_ */
-void expand_init( void)
+void expand_init(
+ int compat, /* "Compatible" to GNUC expansion of recursive macro*/
+ int /*strict_ansi*/ /* __STRICT_ANSI__ flag for GNUC */
+ )
/* Set expand_macro() function */
{
- expand_macro = standard ? expand_std : expand_prestd;
+ expand_macro = standard ? expand_std : expand_prestd;
+ compat_mode = compat;
+#if COMPILER == GNUC
+ ansi = strict_ansi;
+#endif
}
DEFBUF * is_macro(
- char ** cp
-)
+ char ** cp
+ )
/*
* The name is already in 'identifier', the next token is not yet read.
- * Return TRUE if the name is a macro call, else return FALSE.
+ * Return the definition info if the name is a macro call, else return NULL.
*/
{
- DEFBUF * defp;
+ DEFBUF * defp;
- if ((defp = look_id( identifier)) != 0) /* Is a macro name */
- return is_macro_call( defp, cp);
- else
- return 0;
+ if ((defp = look_id( identifier)) != 0) /* Is a macro name */
+ return is_macro_call( defp, cp, 0, 0);
+ else
+ return 0;
}
static DEFBUF * is_macro_call(
- DEFBUF * defp,
- char ** cp
-)
+ DEFBUF * defp,
+ char ** cp, /* Pointer to output buffer */
+ char ** endf, /* Pointer to indicate end of infile buffer */
+ MAGIC_SEQ * mgc_seq /* Infs on MAC_INF sequences and space */
+ )
/*
- * Return TRUE if the defp->name is a macro call, else return FALSE.
+ * Return DEFBUF if the defp->name is a macro call, else return 0.
*/
{
- int c;
-
- if (defp->nargs >= 0 /* Function-like macro */
- || defp->nargs == DEF_PRAGMA) { /* _Pragma() pseudo-macro */
- c = squeeze_ws( cp); /* See the next char. */
- if (c == CHAR_EOF) { /* End of file */
- unget_string( "\n", 0); /* Restore skipped '\n' */
- } else if (! standard || c != RT_END) {
- /* Still in the file and rescan boundary ? */
- unget_ch(); /* To see it again */
- }
- if (c != '(') { /* Only the name of function-like macro */
- if (! standard && warn_level & 8)
- cwarn( only_name, defp->name, 0L, 0);
- return 0;
- }
+ int c;
+
+ if (defp->nargs >= 0 /* Function-like macro */
+ || defp->nargs == DEF_PRAGMA) { /* _Pragma() pseudo-macro */
+ c = squeeze_ws( cp, endf, mgc_seq); /* See the next char. */
+ if (c == CHAR_EOF) /* End of file */
+ unget_string( "\n", 0); /* Restore skipped '\n' */
+ else if (! standard || c != RT_END)
+ /* Still in the file and rescan boundary ? */
+ unget_ch(); /* To see it again */
+ if (c != '(') { /* Only the name of function-like macro */
+ if (! standard && warn_level & 8)
+ cwarn( only_name, defp->name, 0L, 0);
+ return 0;
}
- return defp; /* Really a macro call */
+ }
+ return defp; /* Really a macro call */
}
/*
@@ -145,855 +171,1984 @@ static DEFBUF * is_macro_call(
* 1998/08 First released. kmatsui
*/
+/* For debug of -K option: should be turned off on release version. */
+#define DEBUG_MACRO_ANN FALSE
+
/* Return value of is_able_repl() */
#define NO 0 /* "Blue-painted" */
#define YES 1 /* Not blue-painted */
#define READ_OVER 2
- /* Still "blue-painted", yet has read over repl-list */
+/* Still "blue-painted", yet has read over repl-list */
+
+/*
+ * Macros related to macro notification mode.
+ * The macro notification routines are hacks on the normal processing
+ * routines, and very complicated and cumbersome. Be sure to keep symmetry
+ * of starting and closing magic sequences. Enable the routines enclosed
+ * by #if 0 - #endif for debugging.
+ * Any byte in the sequences beginning with MAC_INF can coincide with any
+ * other character. Hence, the data stream should be read from the top,
+ * not from the tail, in principle.
+ */
+/* Length of sequence of MAC_INF, MAC_CALL_START, mac_num-1, mac_num-2 */
+#define MAC_S_LEN 4
+/* Length of sequence of MAC_INF, MAC_ARG_START, mac_num1, mac_num2, arg-num*/
+#define ARG_S_LEN 5
+#define MAC_E_LEN 2 /* Length of MAC_INF, MAC_CALL_END sequence */
+#define ARG_E_LEN MAC_E_LEN /* Lenght of MAC_INF, MAC_ARG_END sequence */
+#define MAC_E_LEN_V 4 /* Length of macro closing sequence in verbose mode */
+ /* MAC_INF, MAC_CALL_END, mac_num1, mac_num2 */
+#define ARG_E_LEN_V 5 /* Length of argument closing sequence in verbose */
+/* MAC_INF, MAC_ARG_END, mac_num1, mac_num2, arg_num */
+#define IN_SRC_LEN 3 /* Length of sequence of IN_SRC, num-1, num-2 */
+#define INIT_MAC_INF 0x100 /* Initial num of elements in mac_inf[] */
+#define MAX_MAC_INF 0x1000 /* Maximum num of elements in mac_inf[] */
+#define INIT_IN_SRC_NUM 0x100 /* Initial num of elements in in_src[] */
+#define MAX_IN_SRC_NUM 0x1000 /* Maximum num of elements in in_src[] */
+
+/* Variables for macro notification mode */
+typedef struct macro_inf { /* Informations of a macro */
+ const DEFBUF * defp; /* Definition of the macro */
+ char * args; /* Arguments, if any */
+ int num_args; /* Number of real arguments */
+ int recur; /* Recurrence of this macro */
+ LOCATION locs; /* Location of macro call */
+ LOCATION * loc_args; /* Location of arguments */
+} MACRO_INF;
+static MACRO_INF * mac_inf;
+static int max_mac_num; /* Current num of elements in mac_inf[] */
+static int mac_num; /* Index into mac_inf[] */
+static LOCATION * in_src; /* Location of identifiers in macro arguments */
+static int max_in_src_num; /* Current num of elements in in_src[] */
+static int in_src_num; /* Index into in_src[] */
+static int trace_macro; /* Enable to trace macro infs */
static struct {
- const DEFBUF * def; /* Macro definition */
- int read_over; /* Has read over repl-list */
- /* 'read_over' is never used in POST_STD mode and in compat_mode*/
+ const DEFBUF * def; /* Macro definition */
+ int read_over; /* Has read over repl-list */
+ /* 'read_over' is never used in POST_STD mode and in compat_mode*/
} replacing[ RESCAN_LIMIT]; /* Macros currently replacing */
-
+static int has_pragma = FALSE; /* Flag of _Pragma() operator */
+
+static int print_macro_inf( int c, char ** cpp, char ** opp);
+/* Embed macro infs into comments */
+static char * print_macro_arg( char *out, MACRO_INF * m_inf, int argn
+ , int real_arg, int start);
+/* Embed macro arg inf into comments*/
+static char * chk_magic_balance( char * buf, char * buf_end, int move
+ , int diag); /* Check imbalance of magics */
static char * replace( DEFBUF * defp, char * out, char * out_end
- , const DEFBUF * outer, FILEINFO * rt_file);
- /* Replace a macro recursively */
+ , const DEFBUF * outer, FILEINFO * rt_file, LINE_COL line_col
+ , int in_src_n);
+/* Replace a macro recursively */
+static char * close_macro_inf( char * out_p, int m_num, int in_src_n);
+/* Put closing mark for a macro call*/
static DEFBUF * def_special( DEFBUF * defp);
- /* Re-define __LINE__, __FILE__ */
-static int prescan( const DEFBUF * defp, char ** arglist, char * out
- , char * out_end);
- /* Process #, ## operator */
-static char * catenate( const DEFBUF * defp, char ** arglist, char * out
- , char * out_end, char ** token_p);
- /* Catenate tokens */
-static char * stringize( const DEFBUF * defp, char * argp, char * out);
- /* Stringize an argument */
-static char * substitute( const DEFBUF * defp, int gvar_arg, char ** arglist
- , const char * in, char * out, char * out_end);
- /* Substitute parms with arguments */
+/* Re-define __LINE__, __FILE__ */
+static int prescan( const DEFBUF * defp, const char ** arglist
+ , char * out, char * out_end);
+/* Process #, ## operator */
+static char * catenate( const DEFBUF * defp, const char ** arglist
+ , char * out, char * out_end, char ** token_p);
+/* Catenate tokens */
+static const char * remove_magics( const char * argp, int from_last);
+/* Remove pair of magic characters */
+#if DEBUG_MACRO_ANN
+static void chk_symmetry( char * start_id, char * end_id, size_t len);
+/* Check if a pair of magics are symmetrical */
+#endif
+static char * stringize( const DEFBUF * defp, const char * argp, char * out);
+/* Stringize an argument */
+static char * substitute( const DEFBUF * defp, const char ** arglist
+ , const char * in, char * out, char * out_end);
+/* Substitute parms with arguments */
static char * rescan( const DEFBUF * outer, const char * in, char * out
- , char * out_end);
- /* Rescan once replaced sequences */
+ , char * out_end);
+/* Rescan once replaced sequences */
static int disable_repl( const DEFBUF * defp);
- /* Disable the macro once replaced */
+/* Disable the macro once replaced */
static void enable_repl( const DEFBUF * defp, int done);
- /* Enable the macro for later use */
+/* Enable the macro for later use */
static int is_able_repl( const DEFBUF * defp);
- /* Is the macro allowed to replace? */
+/* Is the macro allowed to replace? */
+static char * insert_to_bptr( char * ins, size_t len);
+/* Insert a sequence into infile->bptr */
static char * expand_std(
- DEFBUF * defp, /* Macro definition */
- char * out, /* Output buffer */
- char * out_end /* End of output buffer */
-)
+ DEFBUF * defp, /* Macro definition */
+ char * out, /* Output buffer */
+ char * out_end, /* End of output buffer */
+ LINE_COL line_col, /* Location of macro */
+ int * pragma_op /* _Pragma() is found ? */
+ )
/*
* Expand a macro call completely, write the results to the specified buffer
- * and return the advanced pointer.
+ * and return the advanced output pointer.
*/
{
- char macrobuf[ NMACWORK + IDMAX]; /* Buffer for replace() */
- char * out_p = out;
- size_t len;
- int c, c1;
- char * cp;
-
- macro_line = src_line; /* Line number for diag */
- macro_name = defp->name;
- rescan_level = 0;
- if (replace( defp, macrobuf, macrobuf + NMACWORK, 0
- , infile) == 0) { /* Illegal macro call */
- skip_macro();
- macro_line = MACRO_ERROR;
- goto exp_end;
- }
- len = (size_t) (out_end - out);
- if (ACE_OS::strlen( macrobuf) > len) {
- cerror( macbuf_overflow, macro_name, 0, macrobuf);
- ACE_OS::memcpy( out, macrobuf, len);
- out_p = out + len;
- macro_line = MACRO_ERROR;
- goto exp_end;
- }
-
- cp = macrobuf;
- c1 = '\0';
- while ((c = *cp++) != EOS) {
- if (c == DEF_MAGIC)
- continue; /* Skip DEF_MAGIC */
- if (mcpp_mode == STD) {
- if (c == IN_SRC)
- continue; /* Skip IN_SRC */
- else if (c == TOK_SEP) {
- if (c1 == ' ' || in_include || lang_asm)
- continue;
- /* Skip separator just after ' ' and in #include line */
- /* Also skip this in lang_asm mode */
- else
- c = ' ';
- }
+ char macrobuf[ NMACWORK + IDMAX]; /* Buffer for replace() */
+ char * out_p = out;
+ size_t len;
+ int c, c1;
+ char * cp;
+
+ has_pragma = FALSE; /* Have to re-initialize*/
+ macro_line = src_line; /* Line number for diag */
+ macro_name = defp->name;
+ rescan_level = 0;
+ trace_macro = (mcpp_mode == STD) && (mcpp_debug & MACRO_CALL)
+ && ! in_directive;
+ if (trace_macro) {
+ max_mac_num = INIT_MAC_INF;
+ mac_inf = (MACRO_INF *) xmalloc( sizeof (MACRO_INF) * max_mac_num);
+ ACE_OS::memset( mac_inf, 0, sizeof (MACRO_INF) * max_mac_num);
+ max_in_src_num = INIT_IN_SRC_NUM;
+ in_src = (LOCATION *) xmalloc( sizeof (LOCATION) * max_in_src_num);
+ ACE_OS::memset( in_src, 0, sizeof (LOCATION) * max_in_src_num);
+ mac_num = in_src_num = 0; /* Initialize */
+ }
+ if (replace( defp, macrobuf, macrobuf + NMACWORK, 0, infile, line_col
+ , 0) == 0) { /* Illegal macro call */
+ skip_macro();
+ macro_line = MACRO_ERROR;
+ goto exp_end;
+ }
+ len = (size_t) (out_end - out);
+ if (ACE_OS::strlen( macrobuf) > len) {
+ cerror( macbuf_overflow, macro_name, 0, macrobuf);
+ ACE_OS::memcpy( out, macrobuf, len);
+ out_p = out + len;
+ macro_line = MACRO_ERROR;
+ goto exp_end;
+ }
+
+#if DEBUG_MACRO_ANN
+ chk_magic_balance( macrobuf, macrobuf + ACE_OS::strlen( macrobuf), FALSE, TRUE);
+#endif
+ cp = macrobuf;
+ c1 = '\0'; /* The char previous to 'c' */
+ while ((c = *cp++) != EOS) {
+ if (c == DEF_MAGIC)
+ continue; /* Skip DEF_MAGIC */
+ if (mcpp_mode == STD) {
+ if (c == IN_SRC) { /* Skip IN_SRC */
+ if (trace_macro)
+ cp += 2; /* Skip also the number (coded in 2 bytes) */
+ continue;
+ } else if (c == TOK_SEP) {
+ /* Remove redundant token separator */
+ if ((char_type[ c1 & UCHARMAX] & HSP)
+ || (char_type[ *cp & UCHARMAX] & HSP)
+ || in_include || option_flags.lang_asm
+ || (*cp == MAC_INF && *(cp + 1) == MAC_CALL_END)
+ || (!option_flags.v && c1 == MAC_CALL_END)
+ || (option_flags.v
+ && *(cp - MAC_E_LEN_V - 1) == MAC_INF
+ && *(cp - MAC_E_LEN_V) == MAC_CALL_END))
+ continue;
+ /* Skip separator just after ' ', '\t' */
+ /* and just after MAC_CALL_END. */
+ /* Also skip this in lang_asm mode, #include */
+ /* Skip just before another TOK_SEP, ' ', '\t' */
+ /* Skip just before MAC_INF,MAC_CALL_END seq too*/
+ else
+ c = ' '; /* Else convert to ' ' */
+ } else if (trace_macro && (c == MAC_INF)) {
+ /* Embed macro expansion informations into comments */
+ c = *cp++;
+ c1 = print_macro_inf( c, &cp, &out_p);
+ if (out_end <= out_p) {
+ cerror( macbuf_overflow, macro_name, 0, out);
+ macro_line = MACRO_ERROR;
+ goto exp_end;
}
- c1 = c;
- *out_p++ = c;
+ continue;
+ }
}
+ *out_p++ = c1 = c;
+ }
+
+ macro_line = 0;
+ exp_end:
+ *out_p = EOS;
+ if (mcpp_debug & EXPAND)
+ dump_string( "expand_std exit", out);
+ macro_name = 0;
+ clear_exp_mac(); /* Clear the information for diagnostic */
+ if (trace_macro) { /* Clear macro informations */
+ int num;
+ for (num = 1; num < mac_num; num++) { /* 'num' start at 1 */
+ if (mac_inf[ num].num_args >= 0) { /* Macro with args */
+ ACE_OS::free( mac_inf[ num].args); /* Saved arguments */
+ ACE_OS::free( mac_inf[ num].loc_args); /* Location of args */
+ }
+ }
+ ACE_OS::free( mac_inf);
+ ACE_OS::free( in_src);
+ }
+ *pragma_op = has_pragma;
- macro_line = 0;
-exp_end:
- *out_p = EOS;
- if (mcpp_debug & EXPAND)
- dump_string( "expand_std exit", out);
- macro_name = 0;
- clear_exp_mac(); /* Clear the information for diagnostic */
- return out_p;
+ return out_p;
+}
+
+static int print_macro_inf(
+ int c,
+ char ** cpp, /* Magic character sequence */
+ char ** opp /* Output for macro information */
+ )
+/*
+ * Embed macro expansion information into comments.
+ * Enabled by '#pragma MCPP debug macro_call' or -K option in STD mode.
+ */
+{
+ MACRO_INF * m_inf = 0;
+ int num;
+ int num_args; /* Number of actual args (maybe less than expected) */
+ int i;
+
+ if (*((*opp) - 1) == '/' && *((*opp) - 2) != '*')
+ /* Immediately preceding token is '/' (not '*' and '/') */
+ *((*opp)++) = ' ';
+ /* Insert a space to separate with following '/' and '*' */
+ if (option_flags.v || c == MAC_CALL_START || c == MAC_ARG_START) {
+ num = ((*(*cpp)++ & UCHARMAX) - 1) * UCHARMAX;
+ num += (*(*cpp)++ & UCHARMAX) - 1;
+ m_inf = & mac_inf[ num]; /* Saved information */
+ }
+ switch (c) {
+ case MAC_CALL_START : /* Start of a macro expansion */
+ *opp += ACE_OS::sprintf( *opp, "/*<%s", m_inf->defp->name); /* Macro name */
+ if (m_inf->locs.start_line) {
+ /* Location of the macro call in source file */
+ *opp += ACE_OS::sprintf( *opp, " %ld:%d-%ld:%d"
+ , m_inf->locs.start_line, (int) m_inf->locs.start_col
+ , m_inf->locs.end_line, (int) m_inf->locs.end_col);
+ }
+ *opp = stpcpy( *opp, "*/");
+ if ((num_args = m_inf->num_args) >= 1) {
+ /* The macro has arguments. Show the locations. */
+ for (i = 0; i < num_args; i++) /* Arg num begins at 0 */
+ *opp = print_macro_arg( *opp, m_inf, i, TRUE, TRUE);
+ }
+ break;
+ case MAC_ARG_START : /* Start of an argument */
+ i = (*(*cpp)++ & UCHARMAX) - 1; /* Argument number */
+ *opp = print_macro_arg( *opp, m_inf, i, FALSE, TRUE);
+ break;
+ case MAC_CALL_END : /* End of a macro expansion */
+ if (option_flags.v) { /* Verbose mode */
+ *opp += ACE_OS::sprintf( *opp, "/*%s>*/", m_inf->defp->name);
+ break;
+ }
+ /* Else fall through */
+ case MAC_ARG_END : /* End of an argument */
+ if (option_flags.v) {
+ i = (*(*cpp)++ & UCHARMAX) - 1;
+ /* Output verbose infs symmetrical to start of the arg infs */
+ *opp = print_macro_arg( *opp, m_inf, i, FALSE, FALSE);
+ } else {
+ *opp = stpcpy( *opp, "/*>*/");
+ }
+ break;
+ }
+
+ return **cpp & UCHARMAX;
+}
+
+static char * print_macro_arg(
+ char * out, /* Output buffer */
+ MACRO_INF * m_inf, /* &mac_inf[ m_num] */
+ int argn, /* Argument number */
+ int real_arg, /* Real argument or expanded argument ? */
+ int start /* Start of an argument or end ? */
+ )
+/*
+ * Embed an argument information into a comment.
+ * This routine is only called from above print_macro_inf().
+ */
+{
+ LOCATION * loc = m_inf->loc_args + argn;
+
+ out += ACE_OS::sprintf( out, "/*%s%s:%d-%d", real_arg ? "!" : (start ? "<" : "")
+ , m_inf->defp->name, m_inf->recur, argn);
+
+ if (real_arg && m_inf->loc_args && loc->start_line) {
+ /* Location of the argument in source file */
+ out += ACE_OS::sprintf( out, " %ld:%d-%ld:%d", loc->start_line
+ , (int) loc->start_col, loc->end_line, (int) loc->end_col);
+ }
+ if (! start) /* End of an argument in verbose mode */
+ out = stpcpy( out, ">");
+ out = stpcpy( out, "*/");
+
+ return out;
+}
+
+static char * chk_magic_balance(
+ char * buf, /* Sequence to check */
+ char * buf_end, /* End of the sequence */
+ int move, /* Move a straying magic ? */
+ int diag /* Output a diagnostic? */
+ )
+/*
+ * Check imbalance of macro information magics and warn it.
+ * get_an_arg() calls this routine setting 'move' argument on, hence a stray
+ * magic is moved to an edge if found.
+ * This routine does not do token parsing. Yet it will do fine practically.
+ */
+{
+#define MAX_NEST_MAGICS 255
+ char mac_id[ MAX_NEST_MAGICS][ MAC_E_LEN_V - 2];
+ char arg_id[ MAX_NEST_MAGICS][ ARG_E_LEN_V - 2];
+ char * mac_loc[ MAX_NEST_MAGICS];
+ char * arg_loc[ MAX_NEST_MAGICS];
+ const char * mesg = "%s %ld %s-closing-comment(s) in tracing macro";
+ int mac, arg;
+ int mac_s_n, mac_e_n, arg_s_n, arg_e_n;
+ char * buf_p = buf; /* Save 'buf' for debugging purpose */
+
+ mac = arg = 0;
+
+ while (buf_p < buf_end) {
+ if (*buf_p++ != MAC_INF)
+ continue;
+ switch (*buf_p++) {
+ case MAC_CALL_START :
+ if (option_flags.v) {
+ mac_loc[ mac] = buf_p - 2;
+ ACE_OS::memcpy( mac_id[ mac], buf_p, MAC_S_LEN - 2);
+ }
+ mac++;
+ buf_p += MAC_S_LEN - 2;
+ break;
+ case MAC_ARG_START :
+ if (option_flags.v) {
+ arg_loc[ arg] = buf_p - 2;
+ ACE_OS::memcpy( arg_id[ arg], buf_p, ARG_S_LEN - 2);
+ }
+ arg++;
+ buf_p += ARG_S_LEN - 2;
+ break;
+ case MAC_ARG_END :
+ arg--;
+ if (option_flags.v) {
+ if (arg < 0) { /* Perhaps moved magic */
+ if (diag)
+ cwarn( mesg, "Redundant", (long) -arg, "argument");
+ } else if (ACE_OS::memcmp( arg_id[ arg], buf_p, ARG_E_LEN_V - 2) != 0)
+ {
+ char * to_be_edge = 0;
+ char * cur_edge;
+
+ if (arg >= 1 && ACE_OS::memcmp( arg_id[ 0], buf_p, ARG_E_LEN_V - 2)
+ == 0) {
+ to_be_edge = arg_loc[ arg];
+ /* To be moved to top */
+ cur_edge = arg_loc[ 0]; /* Current top */
+ } else if (arg == 0) {
+ char arg_end_magic[ 2] = { MAC_INF, MAC_ARG_END};
+ cur_edge = buf_end - ARG_E_LEN_V;
+ /* Search the last magic */
+ /* Sequence from get_an_arg() is always */
+ /* surrounded by starting of an arg magic */
+ /* and its corresponding closing magic. */
+ while (buf_p + (ARG_E_LEN_V - 2) <= cur_edge
+ && ACE_OS::memcmp( cur_edge, arg_end_magic, 2) != 0)
+ cur_edge--;
+ if (buf_p + (ARG_E_LEN_V - 2) <= cur_edge
+ && ACE_OS::memcmp( arg_id[ 0], cur_edge + 2
+ , ARG_E_LEN_V - 2) == 0) {
+ to_be_edge = buf_p - 2; /* To be moved to end */
+ }
+ }
+ if (to_be_edge) { /* Appropriate place found */
+ if (diag) {
+ mac_s_n = ((to_be_edge[ 2] & UCHARMAX) - 1)
+ * UCHARMAX;
+ mac_s_n += (to_be_edge[ 3] & UCHARMAX) - 1;
+ arg_s_n = (to_be_edge[ 4] & UCHARMAX) - 1;
+ mcpp_fprintf( ERR,
+ "Stray arg inf of macro: %d:%d at line:%d\n"
+ , mac_s_n, arg_s_n, src_line);
+ }
+ if (move) {
+ /* Move a stray magic to outside of sequences */
+ char magic[ ARG_E_LEN_V];
+ size_t len = ARG_E_LEN_V;
+ ACE_OS::memcpy( magic, cur_edge, len);
+ /* Save current edge */
+ if (to_be_edge == arg_loc[ arg])
+ /* Shift followings to cur_edge */
+ ACE_OS::memmove( cur_edge, cur_edge + len
+ , to_be_edge - cur_edge);
+ else /* Shift precedents to cur_edge */
+ ACE_OS::memmove( to_be_edge + len, to_be_edge
+ , cur_edge - to_be_edge);
+ ACE_OS::memcpy( to_be_edge, magic, len);
+ /* Restore old 'cur_edge' into old 'to_be_edge' */
+ }
+ } else { /* Serious imbalance, just warn */
+ char * arg_p = arg_id[ arg];
+ arg_s_n = ((arg_p[ 0] & UCHARMAX) - 1) * UCHARMAX;
+ arg_s_n += (arg_p[ 1] & UCHARMAX) - 1;
+ arg_e_n = ((buf_p[ 0] & UCHARMAX) - 1) * UCHARMAX;
+ arg_e_n += (buf_p[ 1] & UCHARMAX) - 1;
+ mcpp_fprintf( ERR,
+ "Asymmetry of arg inf found: start %d, end %d at line:%d\n"
+ , arg_s_n, arg_e_n, src_line);
+ }
+ }
+ buf_p += ARG_E_LEN_V - 2;
+ }
+ break;
+ case MAC_CALL_END :
+ mac--;
+ if (option_flags.v) {
+ if (mac < 0) {
+ if (diag)
+ cwarn( mesg, "Redundant", (long) -mac, "macro");
+ } else if (ACE_OS::memcmp( mac_id[ mac], buf_p, MAC_E_LEN_V - 2) != 0)
+ {
+ char * mac_p = mac_id[ mac];
+ mac_s_n = ((mac_p[ 0] & UCHARMAX) - 1) * UCHARMAX;
+ mac_s_n += (mac_p[ 1] & UCHARMAX) - 1;
+ mac_e_n = ((buf_p[ 0] & UCHARMAX) - 1) * UCHARMAX;
+ mac_e_n += (buf_p[ 1] & UCHARMAX) - 1;
+ mcpp_fprintf( ERR,
+ "Asymmetry of macro inf found: start %d, end %d at line:%d\n"
+ , mac_s_n, mac_e_n, src_line);
+ }
+ buf_p += MAC_E_LEN_V - 2;
+ }
+ break;
+ default : /* Not a MAC_INF sequence */
+ break; /* Continue */
+ }
+ }
+
+ if (diag && (warn_level & 1)) {
+ if (mac > 0)
+ cwarn( mesg, "Lacking", (long) mac, "macro");
+ if (arg > 0)
+ cwarn( mesg, "Lacking", (long) arg, "argument");
+ if ((mac || arg) && (mcpp_debug & EXPAND))
+ mcpp_fputs(
+ "Imbalance of magics occurred (perhaps a moved magic), see <expand_std exit> and diagnostics.\n"
+ , DBG);
+ }
+
+ return buf;
}
static char * replace(
- DEFBUF * defp, /* Macro to be replaced */
- char * out, /* Output Buffer */
- char * out_end, /* End of output buffer */
- const DEFBUF * outer, /* Outer macro replacing*/
- FILEINFO * rt_file /* Repl-text "file" */
-)
+ DEFBUF * defp, /* Macro to be replaced */
+ char * out, /* Output Buffer */
+ char * out_end, /* End of output buffer */
+ const DEFBUF * outer, /* Outer macro replacing*/
+ FILEINFO * rt_file, /* Repl-text "file" */
+ LINE_COL line_col, /* Location of macro */
+ int in_src_n /* Index into in_src[] */
+ )
/*
* Replace a possibly nested macro recursively.
* replace() and rescan() call each other recursively.
* Return the advanced output pointer or 0 on error.
*/
{
- char ** arglist = 0; /* Pointers to arguments*/
- int nargs; /* Number of arguments expected */
- char * catbuf; /* Buffer for prescan() */
- char * expbuf; /* Buffer for substitute() */
- char * out_p; /* Output pointer */
-
- if (mcpp_debug & EXPAND) {
- dump_a_def( "replace entry", defp, FALSE, FALSE, TRUE, fp_debug);
- dump_unget( "replace entry");
- }
- nargs = (defp->nargs == DEF_PRAGMA) ? 1 : (defp->nargs & ~AVA_ARGS);
-
- if (nargs < DEF_NOARGS - 2) { /* __FILE__, __LINE__ */
- defp = def_special( defp);
- if (mcpp_mode == STD) {
- *out++ = TOK_SEP; /* Wrap repl-text with token */
- out = mcpp_stpcpy( out, defp->repl); /* separators to pre- */
- *out++ = TOK_SEP; /* vent token merging.*/
- *out = EOS;
- } else {
- out = mcpp_stpcpy( out, defp->repl);
- }
- return out;
- } else if (nargs >= 0) { /* Function-like macro */
- squeeze_ws( 0); /* Skip to '(' */
- arglist = (char **) xmalloc( (nargs + 1) * sizeof (char *));
- arglist[ 0] = xmalloc( (size_t) (NMACWORK + IDMAX * 2));
- /* Note: arglist[ n] may be reallocated */
- /* and re-written by collect_args() */
- if (collect_args( defp, arglist) == ARG_ERROR) {
- ACE_OS::free( arglist[ 0]); /* Syntax error */
- ACE_OS::free( arglist);
- return 0;
- }
- if (mcpp_mode == STD && outer && rt_file != infile) {
- /* Has read over replacement-text */
- if (compat_mode) {
- enable_repl( outer, FALSE); /* Enable re-expansion */
- if (mcpp_debug & EXPAND)
- dump_string( "enabled re-expansion"
- , outer ? outer->name : "<arg>");
- } else {
- replacing[ rescan_level-1].read_over = READ_OVER;
- }
- }
+ char ** arglist = 0; /* Pointers to arguments*/
+ int nargs; /* Number of arguments expected */
+ char * catbuf; /* Buffer for prescan() */
+ char * expbuf; /* Buffer for substitute() */
+ char * out_p; /* Output pointer */
+ char * cur_out = out; /* One more output pointer */
+ int num_args;
+ /* Number of actual arguments (maybe less than expected) */
+ int enable_trace_macro; /* To exclude _Pragma() pseudo macro */
+ int m_num = 0; /* 'mac_num' of current macro */
+ MACRO_INF * m_inf = 0; /* Pointer into mac_inf[] */
+
+ if (mcpp_debug & EXPAND) {
+ dump_a_def( "replace entry", defp, FALSE, TRUE, fp_debug);
+ dump_unget( "replace entry");
+ }
+ if ((mcpp_debug & MACRO_CALL) && in_if)
+ mcpp_fprintf( OUT, "/*%s*/", defp->name);
+
+ enable_trace_macro = trace_macro && defp->nargs != DEF_PRAGMA;
+ if (enable_trace_macro) {
+ int num;
+ int recurs;
+
+ if (mac_num >= MAX_MAC_INF - 1) {
+ cerror( "Too many nested macros in tracing %s" /* _E_ */
+ , defp->name, 0L, 0);
+ return 0;
+ } else if (mac_num >= max_mac_num - 1) {
+ size_t len = sizeof (MACRO_INF) * max_mac_num;
+ /* Enlarge the array */
+ mac_inf = (MACRO_INF *) xrealloc( (char *) mac_inf, len * 2);
+ ACE_OS::memset( mac_inf + max_mac_num, 0, len);
+ /* Clear the latter half */
+ max_mac_num *= 2;
}
-
- catbuf = xmalloc( (size_t) (NMACWORK + IDMAX));
- if (mcpp_debug & EXPAND) {
- mcpp_fprintf( DBG, "(%s)", defp->name);
- dump_string( "prescan entry", defp->repl);
+ m_num = ++mac_num; /* Remember this number */
+ /* Note 'mac_num' starts at 1 */
+ *cur_out++ = MAC_INF; /* Embed a magic char */
+ *cur_out++ = MAC_CALL_START; /* A macro call */
+ /* Its index number, can be greater than UCHARMAX */
+ /* We represent the number by 2 bytes where each byte is not '\0' */
+ *cur_out++ = (m_num / UCHARMAX) + 1;
+ *cur_out++ = (m_num % UCHARMAX) + 1;
+ *cur_out = EOS;
+ m_inf = & mac_inf[ m_num];
+ m_inf->defp = defp; /* The macro definition */
+ m_inf->num_args = 0; /* Default num of args */
+ if (line_col.line) {
+ get_src_location( & line_col);
+ m_inf->locs.start_line = line_col.line;
+ m_inf->locs.start_col = line_col.col;
+ } else {
+ m_inf->locs.start_col = m_inf->locs.start_line = 0L;
+ }
+ m_inf->args = 0;
+ m_inf->loc_args = 0; /* Default args */
+ for (num = 1, recurs = 0; num < m_num; num++)
+ if (mac_inf[ num].defp == defp)
+ recurs++; /* Recursively nested macro */
+ m_inf->recur = recurs;
+ }
+
+ nargs = (defp->nargs == DEF_PRAGMA) ? 1 : (defp->nargs & ~AVA_ARGS);
+
+ if (nargs < DEF_NOARGS_DYNAMIC) { /* __FILE__, __LINE__ */
+ defp = def_special( defp); /* These are redefined dynamically */
+ if (mcpp_mode == STD) {
+ /* Wrap repl-text with token separators to prevent token merging */
+ *cur_out++ = TOK_SEP;
+ cur_out = stpcpy( cur_out, defp->repl);
+ *cur_out++ = TOK_SEP;
+ *cur_out = EOS;
+ } else {
+ cur_out = stpcpy( cur_out, defp->repl);
+ }
+ if (enable_trace_macro) {
+ m_inf->defp = defp; /* Redefined dynamically*/
+ cur_out = close_macro_inf( cur_out, m_num, in_src_n);
+ }
+ return cur_out;
+ } else if (nargs == DEF_NOARGS_PREDEF_OLD && standard
+ && (warn_level & 1)) { /* Some macros on GCC */
+ cwarn( "Old style predefined macro \"%s\" is used", /* _W2_ */
+ defp->name, 0L, 0);
+ } else if (nargs >= 0) { /* Function-like macro */
+ squeeze_ws( 0, 0, 0); /* Skip to '(' */
+ /* Magic sequences are already read over by is_macro_call() */
+ arglist = (char **) xmalloc( (nargs + 1) * sizeof (char *));
+ arglist[ 0] = xmalloc( (size_t) (NMACWORK + IDMAX * 2));
+ /* Note: arglist[ n] may be reallocated */
+ /* and re-written by collect_args() */
+ if ((num_args = collect_args( defp, arglist, m_num)) == ARG_ERROR) {
+ ACE_OS::free( arglist[ 0]); /* Syntax error */
+ ACE_OS::free( arglist);
+ return 0;
}
- if (prescan( defp, arglist, catbuf, catbuf + NMACWORK) == FALSE) {
- /* Process #, ## operators */
- diag_macro( CERROR, macbuf_overflow, defp->name, 0L, catbuf, defp
+ if (enable_trace_macro) {
+ /* Save the arglist for later informations */
+ m_inf->args = arglist[ 0];
+ m_inf->num_args = num_args; /* Number of actual args*/
+ }
+ if (mcpp_mode == STD && outer && rt_file != infile) {
+ /* Has read over replacement-text */
+ if (compat_mode) {
+ enable_repl( outer, FALSE); /* Enable re-expansion */
+ if (mcpp_debug & EXPAND)
+ dump_string( "enabled re-expansion"
+ , outer ? outer->name : "<arg>");
+ } else {
+ replacing[ rescan_level-1].read_over = READ_OVER;
+ }
+ }
+ }
+
+ catbuf = xmalloc( (size_t) (NMACWORK + IDMAX));
+ if (mcpp_debug & EXPAND) {
+ mcpp_fprintf( DBG, "(%s)", defp->name);
+ dump_string( "prescan entry", defp->repl);
+ }
+ if (prescan( defp, (const char **) arglist, catbuf, catbuf + NMACWORK)
+ == FALSE) { /* Process #, ## operators */
+ diag_macro( CERROR, macbuf_overflow, defp->name, 0L, catbuf, defp
, 0);
- if (nargs >= 0) {
- ACE_OS::free( arglist[ 0]);
- ACE_OS::free( arglist);
- }
- ACE_OS::free( catbuf);
- return 0;
+ if (nargs >= 0) {
+ if (! enable_trace_macro)
+ /* arglist[0] is needed for macro infs */
+ ACE_OS::free( arglist[ 0]);
+ ACE_OS::free( arglist);
}
- catbuf = xrealloc( catbuf, ACE_OS::strlen( catbuf) + 1);
- /* Use memory sparingly */
+ ACE_OS::free( catbuf);
+ return 0;
+ }
+ catbuf = xrealloc( catbuf, ACE_OS::strlen( catbuf) + 1);
+ /* Use memory sparingly */
+ if (mcpp_debug & EXPAND) {
+ mcpp_fprintf( DBG, "(%s)", defp->name);
+ dump_string( "prescan exit", catbuf);
+ }
+
+ if (nargs > 0) { /* Function-like macro with any argument */
+ expbuf = xmalloc( (size_t) (NMACWORK + IDMAX));
if (mcpp_debug & EXPAND) {
- mcpp_fprintf( DBG, "(%s)", defp->name);
- dump_string( "prescan exit", catbuf);
+ mcpp_fprintf( DBG, "(%s)", defp->name);
+ dump_string( "substitute entry", catbuf);
}
-
- if (nargs > 0) { /* Function-like macro with any argument */
- int gvar_arg;
- expbuf = xmalloc( (size_t) (NMACWORK + IDMAX));
- if (mcpp_debug & EXPAND) {
- mcpp_fprintf( DBG, "(%s)", defp->name);
- dump_string( "substitute entry", catbuf);
- }
- gvar_arg = (defp->nargs & GVA_ARGS) ? (defp->nargs & ~AVA_ARGS) : 0;
- out_p = substitute( defp, gvar_arg, arglist, catbuf, expbuf
- , expbuf + NMACWORK); /* Expand each arguments*/
- ACE_OS::free( arglist[ 0]);
- ACE_OS::free( arglist);
- ACE_OS::free( catbuf);
- expbuf = xrealloc( expbuf, ACE_OS::strlen( expbuf) + 1);
- /* Use memory sparingly */
- if (mcpp_debug & EXPAND) {
- mcpp_fprintf( DBG, "(%s)", defp->name);
- dump_string( "substitute exit", expbuf);
- }
- } else { /* Object-like macro or */
- if (nargs == 0) { /* Function-like macro with no argument */
- ACE_OS::free( arglist[ 0]);
- ACE_OS::free( arglist);
+ out_p = substitute( defp, (const char **) arglist, catbuf, expbuf
+ , expbuf + NMACWORK); /* Expand each arguments */
+ if (! enable_trace_macro)
+ ACE_OS::free( arglist[ 0]);
+ ACE_OS::free( arglist);
+ ACE_OS::free( catbuf);
+ expbuf = xrealloc( expbuf, ACE_OS::strlen( expbuf) + 1);
+ /* Use memory sparingly */
+ if (mcpp_debug & EXPAND) {
+ mcpp_fprintf( DBG, "(%s)", defp->name);
+ dump_string( "substitute exit", expbuf);
+ }
+ } else { /* Object-like macro or */
+ if (nargs == 0 && ! enable_trace_macro)
+ /* Function-like macro with no argument */
+ ACE_OS::free( arglist[ 0]);
+ ACE_OS::free( arglist);
+ out_p = expbuf = catbuf;
+ }
+
+ if (out_p)
+ out_p = rescan( defp, expbuf, cur_out, out_end);
+ if (out_p && defp->nargs == DEF_PRAGMA)
+ has_pragma = TRUE;
+ /* Inform mcpp_main() that _Pragma() was found */
+ ACE_OS::free( expbuf);
+ if (enable_trace_macro && out_p)
+ out_p = close_macro_inf( out_p, m_num, in_src_n);
+ if (mcpp_debug & EXPAND)
+ dump_string( "replace exit", out);
+
+ if (trace_macro && defp->nargs == DEF_PRAGMA) {
+ /* Remove intervening magics if the macro is _Pragma pseudo-macro */
+ /* These magics have been inserted by macros in _Pragma()'s args */
+ int c;
+ cur_out = out_p = out;
+ while ((c = *cur_out++) != EOS) {
+ if (c == MAC_INF) {
+ if (! option_flags.v) {
+ switch (*cur_out) {
+ case MAC_ARG_START :
+ cur_out++;
+ /* Fall through */
+ case MAC_CALL_START :
+ cur_out++;
+ cur_out++;
+ /* Fall through */
+ default:
+ cur_out++;
+ break;
+ }
+ } else {
+ switch (*cur_out) {
+ case MAC_ARG_START :
+ case MAC_ARG_END :
+ cur_out++;
+ /* Fall through */
+ default:
+ cur_out += 3;
+ break;
+ }
}
- out_p = expbuf = catbuf;
+ } else {
+ *out_p++ = c;
+ }
}
+ *out_p = EOS;
+ }
- if (out_p)
- out_p = rescan( defp, expbuf, out, out_end);
- if (out_p && defp->nargs == DEF_PRAGMA)
- has_pragma = TRUE;
- /* Inform mcpp_main() that _Pragma() was found */
- ACE_OS::free( expbuf);
- return out_p;
+ return out_p;
+}
+
+static char * close_macro_inf(
+ char * out_p, /* Current output pointer */
+ int m_num, /* 'mac_num' of this macro */
+ int in_src_n /* Location of macro in arg */
+ )
+/*
+ * Mark up closing of a macro expansion.
+ * Note that 'm_num' argument is necessary rather than 'm_inf' from replace(),
+ * because mac_inf[] may have been reallocated while rescanning.
+ */
+{
+ MACRO_INF * m_inf;
+ LINE_COL e_line_col;
+
+ m_inf = & mac_inf[ m_num];
+ *out_p++ = MAC_INF; /* Magic for end of macro expansion */
+ *out_p++ = MAC_CALL_END;
+ if (option_flags.v) {
+ *out_p++ = (m_num / UCHARMAX) + 1;
+ *out_p++ = (m_num % UCHARMAX) + 1;
+ }
+ *out_p = EOS;
+ get_ch(); /* Clear the garbage */
+ unget_ch();
+ if (infile->fp || in_src_n) {
+ if (infile->fp) { /* Macro call on source file */
+ e_line_col.line = src_line;
+ e_line_col.col = infile->bptr - infile->buffer;
+ } else { /* Macro in argument of parent macro and from source */
+ e_line_col.line = in_src[ in_src_n].end_line;
+ e_line_col.col = in_src[ in_src_n].end_col;
+ }
+ /* Get the location before line splicing by <backslash><newline> */
+ /* or by a line-crossing comment */
+ get_src_location( & e_line_col);
+ m_inf->locs.end_line = e_line_col.line;
+ m_inf->locs.end_col = e_line_col.col;
+ } else {
+ m_inf->locs.end_col = m_inf->locs.end_line = 0L;
+ }
+
+ return out_p;
}
static DEFBUF * def_special(
- DEFBUF * defp /* Macro definition */
-)
+ DEFBUF * defp /* Macro definition */
+ )
/*
* Re-define __LINE__, __FILE__.
* Return the new definition.
*/
{
- const FILEINFO * file;
- DEFBUF ** prevp;
- int cmp;
-
- switch (defp->nargs) {
- case DEF_NOARGS - 3: /* __LINE__ */
- if ((src_line > line_limit || src_line <= 0) && (warn_level & 1))
- diag_macro( CWARN
- , "Line number %.0s\"%ld\" is out of range" /* _W1_ */
- , 0, src_line, 0, defp, 0);
- ACE_OS::sprintf( defp->repl, "%ld", src_line); /* Re-define */
- break;
- case DEF_NOARGS - 4: /* __FILE__ */
- for (file = infile; file != 0; file = file->parent) {
- if (file->fp != 0) {
- ACE_OS::sprintf( work_buf, "\"%s%s\"", *(file->dirp), file->filename);
- if (str_eq( work_buf, defp->repl))
- break; /* No change */
- defp->nargs = DEF_NOARGS; /* Enable to redefine */
- prevp = look_prev( defp->name, &cmp);
- defp = install_macro( "__FILE__", DEF_NOARGS - 4, "", work_buf
- , prevp, cmp); /* Re-define */
- break;
- }
- }
- break;
+ const FILEINFO * file;
+ DEFBUF ** prevp;
+ int cmp;
+
+ switch (defp->nargs) {
+ case DEF_NOARGS_DYNAMIC - 1: /* __LINE__ */
+ if ((src_line > std_limits.line_num || src_line <= 0)
+ && (warn_level & 1))
+ diag_macro( CWARN
+ , "Line number %.0s\"%ld\" is out of range" /* _W1_ */
+ , 0, src_line, 0, defp, 0);
+ ACE_OS::sprintf( defp->repl, "%ld", src_line); /* Re-define */
+ break;
+ case DEF_NOARGS_DYNAMIC - 2: /* __FILE__ */
+ for (file = infile; file != 0; file = file->parent) {
+ if (file->fp != 0) {
+ ACE_OS::sprintf( work_buf, "\"%s\"", file->filename);
+ if (str_eq( work_buf, defp->repl))
+ break; /* No change */
+ defp->nargs = DEF_NOARGS; /* Enable to redefine */
+ prevp = look_prev( defp->name, &cmp);
+ defp = install_macro( "__FILE__", DEF_NOARGS_DYNAMIC - 2, ""
+ , work_buf, prevp, cmp, 0); /* Re-define */
+ break;
+ }
}
- return defp;
+ break;
+ }
+ return defp;
}
static int prescan(
- const DEFBUF * defp, /* Definition of the macro */
- char ** arglist, /* Pointers to actual arguments */
- char * out, /* Output buffer */
- char * out_end /* End of output buffer */
-)
+ const DEFBUF * defp, /* Definition of the macro */
+ const char ** arglist, /* Pointers to actual arguments */
+ char * out, /* Output buffer */
+ char * out_end /* End of output buffer */
+ )
/*
* Concatenate the tokens surounding ## by catenate(), and stringize the
* argument following # by stringize().
*/
{
- FILEINFO * file;
- char * prev_token = 0; /* Preceding token */
- int c; /* Value of a character */
- /*
- * The replacement lists are --
- * stuff1<SEP>stuff2
- * or stuff1<SEP>stuff2<SEP>stuff3...
- * where <SEP> is CAT, maybe with preceding space and following space,
- * stuff might be
- * ordinary-token
- * MAC_PARM<n>
- * or <QUO>MAC_PARM<n>
- * where <QUO> is ST_QUO, possibly with following space.
- */
+ FILEINFO * file;
+ char * prev_token = 0; /* Preceding token */
+ char * horiz_space = 0; /* Horizontal white space */
+ int c; /* Value of a character */
+ /*
+ * The replacement lists are --
+ * stuff1<SEP>stuff2
+ * or stuff1<SEP>stuff2<SEP>stuff3...
+ * where <SEP> is CAT, maybe with preceding space and following space,
+ * stuff might be
+ * ordinary-token
+ * MAC_PARM<n>
+ * or <QUO>MAC_PARM<n>
+ * where <QUO> is ST_QUO, possibly with following space.
+ *
+ * DEF_MAGIC may has been inserted sometimes.
+ * In other than POST_STD modes, TOK_SEP and IN_SRC may have been
+ * inserted, and TOK_SEPs are inserted also in this routine.
+ * In trace_macro mode, many magic character sequences may have been
+ * inserted here and there.
+ */
+
+ if (mcpp_mode == POST_STD) {
+ file = unget_string( defp->repl, defp->name);
+ } else {
+ *out++ = TOK_SEP; /* Wrap replacement */
+ workp = work_buf; /* text with token */
+ workp = stpcpy( workp, defp->repl); /* separators to */
+ *workp++ = TOK_SEP; /* prevent unintended*/
+ *workp = EOS; /* token merging. */
+ file = unget_string( work_buf, defp->name);
+ }
+
+ while (c = get_ch(), file == infile) { /* To the end of repl */
- if (mcpp_mode == POST_STD) {
- file = unget_string( defp->repl, defp->name);
- } else {
- *out++ = TOK_SEP; /* Wrap replacement */
- workp = work_buf; /* text with token */
- workp = mcpp_stpcpy( workp, defp->repl); /* separators to */
- *workp++ = TOK_SEP; /* prevent unintended*/
- *workp = EOS; /* token merging. */
- file = unget_string( work_buf, defp->name);
- }
-
- while (c = get_ch(), file == infile) { /* To the end of repl */
-
- switch (c) {
- case ST_QUOTE:
- skip_ws(); /* Skip space, MAC_PARM */
- c = get_ch() - 1; /* Parameter number */
- prev_token = out; /* Remember the token */
- out = stringize( defp, arglist[ c], out);
- /* Stringize without expansion */
- break;
- case CAT:
- if (*prev_token == DEF_MAGIC || *prev_token == IN_SRC) {
- ACE_OS::memmove( prev_token, prev_token + 1, ACE_OS::strlen( prev_token + 1));
- *--out = EOS; /* Remove DEF_MAGIC, IN_SRC */
- }
+ switch (c) {
+ case ST_QUOTE:
+ skip_ws(); /* Skip spaces and the returned MAC_PARM*/
+ c = get_ch() - 1; /* Parameter number */
+ prev_token = out; /* Remember the token */
+ out = stringize( defp, arglist[ c], out);
+ /* Stringize without expansion */
+ horiz_space = 0;
+ break;
+ case CAT:
+ if (*prev_token == DEF_MAGIC || *prev_token == IN_SRC) {
+ /* Rare case yet possible after catenate() */
+ size_t len = 1;
+ /* Remove trailing white space prior to removing DEF_MAGIC */
+ if (horiz_space == out - 1) {
+ *--out = EOS;
+ horiz_space = 0;
+ }
+ if (*prev_token == IN_SRC && trace_macro)
+ len = IN_SRC_LEN;
+ ACE_OS::memmove( prev_token, prev_token + len
+ , ACE_OS::strlen( prev_token + len));
+ out -= len;
+ *out = EOS; /* Remove DEF_MAGIC, IN_SRC */
+ }
#if COMPILER == GNUC
- if (*prev_token == ',')
- break; /* ', ##' sequence (peculiar to GCC) */
+ if (*prev_token == ',')
+ break; /* ', ##' sequence (peculiar to GCC) */
#endif
- out = catenate( defp, arglist, out, out_end, &prev_token);
- break;
- case MAC_PARM:
- prev_token = out;
- *out++ = MAC_PARM;
- *out++ = get_ch(); /* Parameter number */
- break;
- case TOK_SEP:
- /* Fall through */
- case ' ':
- *out++ = c;
- break;
- default:
- prev_token = out;
- scan_token( c, &out, out_end); /* Ordinary token */
- break;
- }
-
- *out = EOS; /* Ensure termination */
- if (out_end <= out) /* Buffer overflow */
- return FALSE;
+ if (horiz_space == out - 1) {
+ *--out = EOS; /* Remove trailing white space */
+ horiz_space = 0;
+ }
+ out = catenate( defp, arglist, out, out_end, &prev_token);
+ if (char_type[ *(out - 1) & UCHARMAX] & HSP)
+ horiz_space = out - 1; /* TOK_SEP has been appended */
+ break;
+ case MAC_PARM:
+ prev_token = out;
+ *out++ = MAC_PARM;
+ *out++ = get_ch(); /* Parameter number */
+ break;
+ case TOK_SEP:
+ case ' ':
+ case '\t' :
+ if (out - 1 == horiz_space)
+ continue; /* Squeeze white spaces */
+ horiz_space = out;
+ *out++ = c;
+ break;
+ default:
+ prev_token = out;
+ scan_token( c, &out, out_end); /* Ordinary token */
+ break;
}
- *out = EOS; /* Ensure terminatation in case of no token */
- unget_ch();
- return TRUE;
+ *out = EOS; /* Ensure termination */
+ if (out_end <= out) /* Buffer overflow */
+ return FALSE;
+ }
+
+ *out = EOS; /* Ensure terminatation in case of no token */
+ unget_ch();
+ return TRUE;
}
static char * catenate(
- const DEFBUF * defp, /* The macro definition */
- char ** arglist, /* Pointers to actual arguments */
- char * out, /* Output buffer */
- char * out_end, /* End of output buffer */
- char ** token_p /* Address of preceding token pointer */
-)
+ const DEFBUF * defp, /* The macro definition */
+ const char ** arglist, /* Pointers to actual arguments */
+ char * out, /* Output buffer */
+ char * out_end, /* End of output buffer */
+ char ** token_p /* Address of preceding token pointer */
+ )
/*
* Concatenate the previous and the following tokens.
* Note: The parameter codes may coincide with white spaces or any
* other characters.
*/
{
- FILEINFO * file;
- char * prev_prev_token = 0;
- const char * invalid_token
+ FILEINFO * file;
+ char * prev_prev_token = 0;
+ const char * invalid_token
= "Not a valid preprocessing token \"%s\""; /* _E_ _W2_ */
- const char * argp; /* Pointer to an actual argument*/
- char * prev_token = *token_p; /* Preceding token */
- int in_arg = FALSE;
- int c; /* Value of a character */
-
- while ((*(out - 1) == ' ' || *(out - 1) == TOK_SEP)
- && (*(out - 2) != MAC_PARM || prev_token != out - 2))
- out--; /* Remove spaces and inserted separators */
- *out = EOS;
-
- /* Get the previous token */
- if (*prev_token == MAC_PARM) { /* Formal parameter */
- c = (*(prev_token + 1) & UCHARMAX) - 1; /* Parm number */
- argp = arglist[ c]; /* Actual argument */
- out = prev_token; /* To overwrite */
- if ((mcpp_mode == POST_STD && *argp == EOS)
- || (mcpp_mode == STD && *argp == RT_END)) {
- *out = EOS; /* An empty argument */
- } else {
- if (mcpp_mode == POST_STD) {
- file = unget_string( argp, 0);
- while (c = get_ch(), file == infile) {
- prev_token = out; /* Remember the last token */
- scan_token( c, &out, out_end);
- } /* Copy actual argument without expansion */
- unget_ch();
- } else {
- unget_string( argp, 0);
- while ((c = get_ch()) != RT_END) {
- prev_prev_token = prev_token;
- prev_token = out; /* Remember the last token */
- scan_token( c, &out, out_end);
- } /* Copy actual argument without expansion */
- if (*prev_token == TOK_SEP) {
- out = prev_token;
- prev_token = prev_prev_token; /* Skip separator */
- }
- }
- if (*prev_token == DEF_MAGIC
- || (mcpp_mode == STD && *prev_token == IN_SRC)) {
- ACE_OS::memmove( prev_token, prev_token + 1
- , (size_t) (out-- - prev_token));
- /* Remove DEF_MAGIC enabling the name to replace later */
- }
+ const char * argp; /* Pointer to an actual argument*/
+ char * prev_token = *token_p; /* Preceding token */
+ int in_arg = FALSE;
+ int c; /* Value of a character */
+
+ /* Get the previous token */
+ if (*prev_token == MAC_PARM) { /* Formal parameter */
+ c = (*(prev_token + 1) & UCHARMAX) - 1; /* Parm number */
+ argp = arglist[ c]; /* Actual argument */
+ out = prev_token; /* To overwrite */
+ if (trace_macro)
+ argp = remove_magics( argp, TRUE); /* Remove pair of magics */
+ if ((mcpp_mode == POST_STD && *argp == EOS)
+ || (mcpp_mode == STD && *argp == RT_END)) {
+ *out = EOS; /* An empty argument */
+ } else {
+ if (mcpp_mode == POST_STD) {
+ file = unget_string( argp, 0);
+ while (c = get_ch(), file == infile) {
+ prev_token = out; /* Remember the last token */
+ scan_token( c, &out, out_end);
+ } /* Copy actual argument without expansion */
+ unget_ch();
+ } else {
+ unget_string( argp, 0);
+ if (trace_macro)
+ ACE_OS::free( (char *) argp);
+ /* malloc()ed in remove_magics() */
+ while ((c = get_ch()) != RT_END) {
+ prev_prev_token = prev_token;
+ prev_token = out; /* Remember the last token */
+ scan_token( c, &out, out_end);
+ } /* Copy actual argument without expansion */
+ if (*prev_token == TOK_SEP) {
+ out = prev_token;
+ prev_token = prev_prev_token; /* Skip separator */
+ }
+ }
+ if (*prev_token == DEF_MAGIC
+ || (mcpp_mode == STD && *prev_token == IN_SRC)) {
+ size_t len = 1;
+ if (trace_macro && *prev_token == IN_SRC)
+ len = IN_SRC_LEN;
+ ACE_OS::memmove( prev_token, prev_token + len
+ , (size_t) ((out -= len) - prev_token));
+ /* Remove DEF_MAGIC enabling the name to replace later */
+ }
+ }
+ } /* Else the previous token is an ordinary token, not an argument */
+
+ c = skip_ws();
+
+ /* Catenate */
+ switch (c) {
+ case ST_QUOTE: /* First stringize and then catenate */
+ skip_ws(); /* Skip MAC_PARM, ST_QUOTE */
+ c = get_ch() - 1;
+ out = stringize( defp, arglist[ c], out);
+ break;
+ case MAC_PARM:
+ c = get_ch() - 1; /* Parameter number */
+ argp = arglist[ c]; /* Actual argument */
+ if (trace_macro)
+ argp = remove_magics( argp, FALSE); /* Remove pair of magics */
+ if ((mcpp_mode == POST_STD && *argp == EOS)
+ || (mcpp_mode == STD && *argp == RT_END)) {
+ *out = EOS; /* An empty argument */
+ } else {
+ unget_string( argp, 0);
+ if (trace_macro)
+ ACE_OS::free( (char *) argp);
+ if ((c = get_ch()) == DEF_MAGIC) { /* Remove DEF_MAGIC */
+ c = get_ch(); /* enabling to replace */
+ } else if (c == IN_SRC) { /* Remove IN_SRC */
+ if (trace_macro) {
+ get_ch(); /* Also its number */
+ get_ch();
}
+ c = get_ch();
+ }
+ scan_token( c, &out, out_end); /* The first token */
+ if (*infile->bptr) /* There are more tokens*/
+ in_arg = TRUE;
+ }
+ break;
+ case IN_SRC:
+ if (trace_macro) {
+ get_ch();
+ get_ch();
+ }
+ /* Fall through */
+ case DEF_MAGIC:
+ c = get_ch(); /* Skip DEF_MAGIC, IN_SRC */
+ /* Fall through */
+ default:
+ scan_token( c, &out, out_end); /* Copy the token */
+ break;
+ }
+
+ /* The generated sequence is a valid preprocessing-token ? */
+ if (*prev_token) { /* There is any token */
+ unget_string( prev_token, 0); /* Scan once more */
+ c = get_ch(); /* This line should be before the next line. */
+ infile->fp = (FILE *)-1; /* To check token length*/
+ if (mcpp_debug & EXPAND)
+ dump_string( "checking generated token", infile->buffer);
+ scan_token( c, (workp = work_buf, &workp), work_end);
+ infile->fp = 0;
+ if (*infile->bptr != EOS) { /* More than a token */
+ if (option_flags.lang_asm) { /* Assembler source */
+ if (warn_level & 2)
+ diag_macro( CWARN, invalid_token, prev_token, 0L, 0
+ , defp, 0);
+ } else {
+ diag_macro( CERROR, invalid_token, prev_token, 0L, 0, defp
+ , 0);
+ }
+ infile->bptr += ACE_OS::strlen( infile->bptr);
}
- c = skip_ws();
+ get_ch(); /* To the parent "file" */
+ unget_ch();
+ }
- /* Catenate */
- switch (c) {
- case ST_QUOTE: /* First stringize and then catenate */
- skip_ws(); /* Skip MAC_PARM, ST_QUOTE */
- c = get_ch() - 1;
- out = stringize( defp, arglist[ c], out);
+ if (mcpp_mode == STD && ! option_flags.lang_asm) {
+ *out++ = TOK_SEP; /* Prevent token merging*/
+ *out = EOS;
+ }
+ if (in_arg) { /* There are more tokens after the generated one */
+ if (mcpp_mode == POST_STD) {
+ file = infile;
+ while (c = get_ch(), file == infile) {
+ prev_token = out; /* Remember the last token */
+ scan_token( c, &out, out_end);
+ } /* Copy rest of argument without expansion */
+ unget_ch();
+ } else {
+ while ((c = get_ch()) != RT_END) {
+ if (c == TOK_SEP)
+ continue; /* Skip separator */
+ prev_token = out; /* Remember the last token */
+ scan_token( c, &out, out_end);
+ } /* Copy rest of argument without expansion */
+ }
+ }
+ *token_p = prev_token; /* Report back the last token */
+
+ return out;
+}
+
+static const char * remove_magics(
+ const char * argp, /* The argument list */
+ int from_last /* token is the last or first? */
+ )
+/*
+ * Remove pair of magic character sequences in an argument in order to catenate
+ * the last or first token to another.
+ * Or remove pair of magic character sequences surrounding an argument in order
+ * to keep symmetry of magics.
+ */
+{
+#define INIT_MAGICS 128
+
+ char (* mac_id)[ MAC_S_LEN];
+ char (* arg_id)[ ARG_S_LEN];
+ char ** mac_loc;
+ char ** arg_loc;
+ char * mgc_index;
+ size_t max_magics;
+ unsigned int mac_n, arg_n, ind, n;
+ char * first = 0;
+ char * last = 0;
+ char * token;
+ char * arg_p;
+ char * ap;
+ char * ep;
+ char * tp;
+ char * space = 0;
+ int with_rtend;
+ int c;
+ FILEINFO * file;
+
+ mac_id = (char (*)[ MAC_S_LEN]) xmalloc( MAC_S_LEN * INIT_MAGICS);
+ arg_id = (char (*)[ ARG_S_LEN]) xmalloc( ARG_S_LEN * INIT_MAGICS * 2);
+ mac_loc = (char **) xmalloc( sizeof (char *) * INIT_MAGICS);
+ arg_loc = (char **) xmalloc( sizeof (char *) * INIT_MAGICS * 2);
+ mgc_index = xmalloc( INIT_MAGICS * 3);
+ max_magics = INIT_MAGICS;
+
+ mac_n = arg_n = ind = 0;
+ ap = arg_p = xmalloc( ACE_OS::strlen( argp) + 1);
+ ACE_OS::strcpy( arg_p, argp);
+ ep = arg_p + ACE_OS::strlen( arg_p);
+ if (*(ep - 1) == RT_END) {
+ with_rtend = TRUE;
+ ep--; /* Point to RT_END */
+ } else {
+ with_rtend = FALSE;
+ }
+ file = unget_string( arg_p, 0); /* Stack to "file" for token parsing*/
+
+ /* Search all the magics in argument, as well as first and last token */
+ /* Read stacked arg_p and write it to arg_p as a dummy buffer */
+ while ((*ap++ = c = get_ch()) != RT_END && file == infile) {
+ if (c == MAC_INF) {
+ if (mac_n >= max_magics ||
+ arg_n >= max_magics * 2) {
+ max_magics *= 2;
+ mac_id = (char (*)[ MAC_S_LEN]) xrealloc( reinterpret_cast<char *> (mac_id), MAC_S_LEN * max_magics);
+ arg_id = (char (*)[ ARG_S_LEN]) xrealloc( reinterpret_cast<char *> (arg_id), ARG_S_LEN * max_magics * 2);
+ mac_loc = (char **) xrealloc( reinterpret_cast <char *> (mac_loc), sizeof (char *) * max_magics);
+ arg_loc = (char **) xrealloc( reinterpret_cast <char *> (arg_loc), sizeof (char *) * max_magics * 2);
+ mgc_index = xrealloc( mgc_index, max_magics * 3);
+ }
+ *ap++ = c = get_ch();
+ switch (c) {
+ case MAC_CALL_START :
+ *ap++ = get_ch();
+ *ap++ = get_ch();
+ mac_loc[ mac_n] = ap - MAC_S_LEN; /* Location of the seq */
+ ACE_OS::memcpy( mac_id[ mac_n], ap - (MAC_S_LEN - 1), MAC_S_LEN - 1);
+ /* Copy the sequence from its second byte */
+ mac_id[ mac_n++][ MAC_S_LEN - 1] = FALSE;
+ /* Mark of to-be-removed or not */
break;
- case MAC_PARM:
- c = get_ch() - 1; /* Parameter number */
- argp = arglist[ c]; /* Actual argument */
- if ((mcpp_mode == POST_STD && *argp == EOS)
- || (mcpp_mode == STD && *argp == RT_END))
- *out = EOS; /* An empty argument */
- else {
- unget_string( argp, 0);
- if ((c = get_ch()) == DEF_MAGIC) /* Remove DEF_MAGIC */
- c = get_ch(); /* enabling to replace */
- else if (c == IN_SRC) /* Remove IN_SRC */
- c = get_ch();
- scan_token( c, &out, out_end); /* The first token */
- if (*infile->bptr) /* There are more tokens*/
- in_arg = TRUE;
- }
+ case MAC_ARG_START :
+ *ap++ = get_ch();
+ *ap++ = get_ch();
+ *ap++ = get_ch();
+ arg_loc[ arg_n] = ap - ARG_S_LEN;
+ ACE_OS::memcpy( arg_id[ arg_n], ap - (ARG_S_LEN - 1), ARG_S_LEN - 1);
+ arg_id[ arg_n++][ ARG_S_LEN - 1] = FALSE;
break;
- case DEF_MAGIC:
- case IN_SRC:
- c = get_ch(); /* Skip DEF_MAGIC, IN_SRC */
- /* Fall through */
- default:
- scan_token( c, &out, out_end); /* Copy the token */
+ case MAC_CALL_END :
+ mac_loc[ mac_n] = ap - MAC_E_LEN;
+ mac_id[ mac_n][ 0] = c;
+ mac_id[ mac_n++][ MAC_E_LEN_V - 1] = FALSE;
+ break;
+ case MAC_ARG_END :
+ arg_loc[ arg_n] = ap - ARG_E_LEN;
+ arg_id[ arg_n][ 0] = c;
+ arg_id[ arg_n++][ ARG_E_LEN_V - 1] = FALSE;
break;
+ }
+ if (option_flags.v) {
+ switch (c) {
+ case MAC_CALL_END :
+ mac_id[ mac_n - 1][ 1] = *ap++ = get_ch();
+ mac_id[ mac_n - 1][ 2] = *ap++ = get_ch();
+ break;
+ case MAC_ARG_END :
+ arg_id[ arg_n - 1][ 1] = *ap++ = get_ch();
+ arg_id[ arg_n - 1][ 2] = *ap++ = get_ch();
+ arg_id[ arg_n - 1][ 3] = *ap++ = get_ch();
+ break;
+ }
+ }
+ mgc_index[ ind++] = c; /* Index to mac_id[] and arg_id[] */
+ continue;
+ } else if (char_type[ c & UCHARMAX] & HSP) {
+ if (! first) {
+ ap--; /* Skip white space on top of the argument */
+ ep--;
+ }
+ continue;
}
-
- /* The generated sequence is a valid preprocessing-token ? */
- if (*prev_token) { /* There is any token */
- unget_string( prev_token, 0); /* Scan once more */
- c = get_ch(); /* This line should be before the next line. */
- infile->fp = (FILE *)-1; /* To check token length*/
- if (mcpp_debug & EXPAND)
- dump_string( "checking generated token", infile->buffer);
- scan_token( c, (workp = work_buf, &workp), work_end);
- infile->fp = 0;
- if (*infile->bptr != EOS) { /* More than a token */
- if (lang_asm) { /* Assembler source */
- if (warn_level & 2)
- diag_macro( CWARN, invalid_token, prev_token, 0L, 0
- , defp, 0);
- } else {
- diag_macro( CERROR, invalid_token, prev_token, 0L, 0, defp
- , 0);
+ last = --ap;
+ if (! first)
+ first = ap;
+ if (char_type[ c & UCHARMAX] & HSP)
+ space = ap; /* Remember the last white space */
+ scan_token( c, &ap, ep);
+ }
+ if (file == infile)
+ get_ch(); /* Clear the "file" */
+ unget_ch();
+ if (space == ep - 1)
+ ep--; /* Remove trailing white space */
+ if (with_rtend)
+ *ep++ = RT_END;
+ *ep = EOS;
+ if ((from_last && !last) || (!from_last && !first))
+ return arg_p;
+ if (mac_n == 0 && arg_n == 0) /* No magic sequence */
+ return arg_p;
+ token = from_last ? last : first;
+
+ /* Remove pair of magics surrounding the last (or first) token */
+ if (mac_n) {
+ /* Remove pair of macro magics surrounding the token */
+ unsigned int magic, mac_s, mac_e;
+ unsigned int nest_s, nest_e;
+
+ nest_s = 0;
+ for (mac_s = 0; mac_loc[ mac_s] < token; mac_s++) {
+ magic = mac_id[ mac_s][ 0];
+ if (magic == MAC_CALL_START) { /* Starting magic */
+ nest_e = ++nest_s;
+ /* Search the corresponding closing magic */
+ for (mac_e = mac_s + 1; mac_e < mac_n; mac_e++) {
+ magic = mac_id[ mac_e][ 0];
+ if (magic == MAC_CALL_START) {
+ nest_e++;
+ } else { /* MAC_CALL_END: Closing magic */
+ nest_e--;
+ /* Search after the token */
+ if (token < mac_loc[ mac_e] && nest_e == nest_s - 1) {
+#if DEBUG_MACRO_ANN
+ if (option_flags.v)
+ chk_symmetry( mac_id[ mac_s], mac_id[ mac_e]
+ , MAC_E_LEN - 2);
+#endif
+ mac_id[ mac_e][ MAC_S_LEN - 1] = TRUE;
+ /* To be removed */
+ break; /* Done for this mac_s */
}
- infile->bptr += ACE_OS::strlen( infile->bptr);
+ }
}
- get_ch(); /* To the parent "file" */
- unget_ch();
- }
-
- if (mcpp_mode == STD && ! lang_asm) {
- *out++ = TOK_SEP; /* Prevent token merging*/
- *out = EOS;
+ if (mac_e < mac_n) /* Found corresponding magic */
+ mac_id[ mac_s][ MAC_S_LEN - 1] = TRUE; /* To be removed*/
+ else /* Not found */
+ break;
+ } else {
+ nest_s--; /* MAC_CALL_END: Closing magic */
+ }
}
- if (in_arg) {
- if (mcpp_mode == POST_STD) {
- file = infile;
- while (c = get_ch(), file == infile) {
- prev_token = out; /* Remember the last token */
- scan_token( c, &out, out_end);
- } /* Copy rest of argument without expansion */
- unget_ch();
- } else {
- while ((c = get_ch()) != RT_END) {
- prev_token = out; /* Remember the last token */
- scan_token( c, &out, out_end);
- } /* Copy rest of argument without expansion */
+ }
+ if (arg_n) {
+ /* Remove pair of arg magics surrounding the token */
+ unsigned int magic, arg_s, arg_e;
+ unsigned int nest_s, nest_e;
+
+ nest_s = 0;
+ for (arg_s = 0; arg_loc[ arg_s] < token; arg_s++) {
+ magic = arg_id[ arg_s][ 0];
+ if (magic == MAC_ARG_START) {
+ nest_e = ++nest_s;
+ for (arg_e = arg_s + 1; arg_e < arg_n; arg_e++) {
+ magic = arg_id[ arg_e][ 0];
+ if (magic == MAC_ARG_START) {
+ nest_e++;
+ } else {
+ nest_e--;
+ if (token < arg_loc[ arg_e] && nest_e == nest_s - 1) {
+#if DEBUG_MACRO_ANN
+ if (option_flags.v)
+ chk_symmetry( arg_id[ arg_s], arg_id[ arg_e]
+ , ARG_E_LEN_V - 2);
+#endif
+ arg_id[ arg_e][ ARG_S_LEN - 1] = TRUE;
+ break;
+ }
+ }
}
+ if (arg_e < arg_n)
+ arg_id[ arg_s][ ARG_S_LEN - 1] = TRUE;
+ else
+ break;
+ } else {
+ nest_s--;
+ }
+ }
+ }
+
+ /* Copy the sequences skipping the to-be-removed magic seqs */
+ file = unget_string( arg_p, 0); /* Stack to "file" for token parsing*/
+ tp = arg_p;
+ ep = arg_p + ACE_OS::strlen( arg_p);
+ mac_n = arg_n = n = 0;
+
+ while ((*tp++ = c = get_ch()) != RT_END && file == infile) {
+ char ** loc_tab = 0;
+ int num = 0, mark = 0, rm = 0, magic = 0;
+ size_t len = 0;
+
+ if (c != MAC_INF) {
+ scan_token( c, (--tp, &tp), ep);
+ continue;
+ }
+ unget_ch(); /* Pushback MAC_INF */
+ tp--;
+
+ switch (magic = mgc_index[ n++]) {
+ case MAC_CALL_START :
+ len = MAC_S_LEN;
+ mark = MAC_S_LEN - 1;
+ break;
+ case MAC_CALL_END :
+ len = option_flags.v ? MAC_E_LEN_V : MAC_E_LEN;
+ mark = MAC_E_LEN_V - 1;
+ break;
+ case MAC_ARG_START :
+ len = ARG_S_LEN;
+ mark = ARG_S_LEN - 1;
+ break;
+ case MAC_ARG_END :
+ len = option_flags.v ? ARG_E_LEN_V : ARG_E_LEN;
+ mark = ARG_E_LEN_V - 1;
+ break;
+ }
+ switch (magic) {
+ case MAC_CALL_START :
+ case MAC_CALL_END :
+ loc_tab = mac_loc;
+ num = mac_n;
+ rm = mac_id[ mac_n++][ mark];
+ break;
+ case MAC_ARG_START :
+ case MAC_ARG_END :
+ loc_tab = arg_loc;
+ num = arg_n;
+ rm = arg_id[ arg_n++][ mark];
+ break;
}
- *token_p = prev_token; /* Report back the generated token */
+ if (rm == FALSE) { /* Not to be removed */
+ ACE_OS::memmove( tp, loc_tab[ num], len);
+ /* Copy it (from arg_p buffer for convenience) */
+ tp += len;
+ }
+ infile->bptr += len;
+ }
+ if (! with_rtend)
+ tp--;
+ *tp = EOS;
+ if (file == infile)
+ get_ch(); /* Clear the "file" */
+ unget_ch();
+
+ return arg_p;
+}
- return out;
+#if DEBUG_MACRO_ANN
+static void chk_symmetry(
+ char * start_id, /* Sequence of macro (or arg) starting inf */
+ char * end_id, /* Sequence of macro (or arg) closing inf */
+ size_t len /* Length of the sequence */
+ )
+/*
+ * Check whether starting sequence and corresponding closing sequence is the
+ * same.
+ */
+{
+ int s_id, e_id, arg_s_n, arg_e_n;
+
+ if (ACE_OS::memcmp( start_id + 1, end_id + 1, len) == 0)
+ return; /* The sequences are the same */
+ s_id = ((start_id[ 1] & UCHARMAX) - 1) * UCHARMAX;
+ s_id += (start_id[ 2] & UCHARMAX) - 1;
+ e_id = ((end_id[ 1] & UCHARMAX) - 1) * UCHARMAX;
+ e_id += (end_id[ 2] & UCHARMAX) - 1;
+ if (len >= 3) {
+ arg_s_n = (start_id[ 3] & UCHARMAX) - 1;
+ arg_e_n = (end_id[ 3] & UCHARMAX) - 1;
+ mcpp_fprintf( ERR,
+ "Asymmetry of arg inf found removing magics: start %d:%d, end: %d:%d at line:%d\n"
+ , s_id, arg_s_n, e_id, arg_e_n, src_line);
+ } else {
+ mcpp_fprintf( ERR,
+ "Asymmetry of macro inf found removing magics: start %d, end: %d at line:%d\n"
+ , s_id, e_id, src_line);
+ }
}
+#endif
static char * stringize(
- const DEFBUF * defp, /* The macro definition */
- char * argp, /* Pointer to argument */
- char * out /* Output buffer */
-)
+ const DEFBUF * defp, /* The macro definition */
+ const char * argp, /* Pointer to argument */
+ char * out /* Output buffer */
+ )
/*
* Make a string literal from an argument.
*/
{
- FILEINFO * file;
- int stray_bsl = FALSE; /* '\\' not in literal */
- char * out_p = out;
- int token_type;
- int c;
-
- *out_p++ = '"';
-
- file = unget_string( argp, 0);
-
- while ((c = get_ch()), ((mcpp_mode == POST_STD && file == infile)
- || (mcpp_mode == STD && c != RT_END))) {
- if (c == ' ') {
- *out_p++ = ' ';
- continue;
+ char arg_end_inf[ 8][ ARG_E_LEN_V - 1];
+ /* Verbose information of macro arguments */
+ FILEINFO * file;
+ int stray_bsl = FALSE; /* '\\' not in literal */
+ char * out_p = out;
+ int token_type;
+ int num_arg_magic = 0;
+ size_t len;
+ size_t arg_e_len = option_flags.v ? ARG_E_LEN_V : ARG_E_LEN;
+ int c;
+
+ if (trace_macro) {
+ while ((*argp == MAC_INF && *(argp + 1) == MAC_ARG_START)
+ /* Argument is prefixed with macro tracing magics */
+ || (char_type[ *argp & UCHARMAX] & HSP)) {
+ if (*argp == MAC_INF) { /* Move magics to outside of string */
+ ACE_OS::memcpy( out_p, argp, ARG_S_LEN);
+ out_p += ARG_S_LEN;
+ argp += ARG_S_LEN;
+ num_arg_magic++;
+ } else { /* Skip white spaces */
+ argp++;
+ }
+ }
+ }
+
+ file = unget_string( argp, 0);
+ len = ACE_OS::strlen( infile->buffer); /* Sequence ends with RT_END */
+ if (trace_macro) { /* Remove suffixed argument closing magics */
+ /* There are 0 or more argument closing magic sequences and */
+ /* 0 or more TOK_SEPs and no space at the end of argp. */
+ /* This is assured by get_an_arg(). */
+ int nmagic = 0;
+ while (len > arg_e_len
+ && (((*(infile->buffer + len - arg_e_len - 1) == MAC_INF
+ && *(infile->buffer + len - arg_e_len) == MAC_ARG_END)
+ || *(infile->buffer + len - 2) == TOK_SEP))) {
+ if (*(infile->buffer + len - arg_e_len - 1) == MAC_INF
+ && *(infile->buffer + len - arg_e_len) == MAC_ARG_END) {
+ if (option_flags.v) {
+ ACE_OS::memcpy( arg_end_inf[ nmagic]
+ , infile->buffer + len - arg_e_len + 1
+ , arg_e_len - 2);
+ arg_end_inf[ nmagic][ arg_e_len - 2] = EOS;
}
- if (mcpp_mode == STD && (c == TOK_SEP || c == IN_SRC))
- continue; /* Skip inserted separator and in-src magic */
- if (c == '\\')
- stray_bsl = TRUE; /* May cause a trouble */
- token_type = scan_token( c, (workp = work_buf, &workp), work_end);
-
- switch (token_type) {
- case WSTR:
- case WCHR:
- case STR:
- case CHR:
- workp = work_buf;
- while ((c = *workp++ & UCHARMAX) != EOS) {
- if (char_type[ c] & mbstart) { /* Multi-byte character */
- mb_read( c, &workp, (*out_p++ = c, &out_p));
- /* Copy as it is */
- continue;
- }
- if (c == '"') {
- *out_p++ = '\\'; /* Insert '\\' */
- } else if (c == '\\') {
+ nmagic++;
+ len -= arg_e_len;
+ *(infile->buffer + len - 1) = RT_END;
+ *(infile->buffer + len) = EOS;
+ } else if (*(infile->buffer + len - 2) == TOK_SEP) {
+ len--;
+ *(infile->buffer + len - 1) = RT_END;
+ *(infile->buffer + len) = EOS;
+ }
+ }
+ if (nmagic != num_arg_magic) { /* There are some imbalances */
+ /* Some surrounding magics correspond to intervening ones. */
+ /* So, unmatched surrounding magics should be removed. */
+ if (num_arg_magic > nmagic) {
+ num_arg_magic = nmagic; /* Ignore the surplus */
+ out_p = out + ARG_S_LEN * num_arg_magic;
+ } /* Else simply ignore the surplus nmagic */
+ }
+ }
+ *out_p++ = '"'; /* Starting quote */
+
+ while ((c = get_ch()), ((mcpp_mode == POST_STD && file == infile)
+ || (mcpp_mode == STD && c != RT_END))) {
+ if (c == ' ' || c == '\t') {
+ *out_p++ = c;
+ continue;
+ } else if (c == TOK_SEP) {
+ continue; /* Skip inserted separator */
+ } else if (c == IN_SRC) { /* Skip magics */
+ if (trace_macro) {
+ get_ch();
+ get_ch();
+ }
+ continue;
+ } else if (c == '\\') {
+ stray_bsl = TRUE; /* May cause a trouble */
+ } else if (c == MAC_INF) { /* Remove intervening magics */
+ switch (c = get_ch()) {
+ case MAC_ARG_START :
+ get_ch();
+ /* Fall through */
+ case MAC_CALL_START :
+ get_ch();
+ get_ch();
+ break;
+ }
+ if (option_flags.v) {
+ switch (c) {
+ case MAC_ARG_END :
+ get_ch();
+ /* Fall through */
+ case MAC_CALL_END :
+ get_ch();
+ get_ch();
+ break;
+ }
+ }
+ continue;
+ }
+ token_type = scan_token( c, (workp = work_buf, &workp), work_end);
+
+ switch (token_type) {
+ case WSTR:
+ case WCHR:
+ case STR:
+ case CHR:
+ workp = work_buf;
+ while ((c = *workp++ & UCHARMAX) != EOS) {
+ if (char_type[ c] & mbchk) { /* Multi-byte character */
+ mb_read( c, &workp, (*out_p++ = c, &out_p));
+ /* Copy as it is */
+ continue;
+ } else if (c == '"') {
+ *out_p++ = '\\'; /* Insert '\\' */
+ } else if (c == '\\') {
#if OK_UCN
- if (mcpp_mode == POST_STD || ! stdc3
- || (*workp != 'u' && *workp != 'U'))
- /* Not UCN */
+ if (mcpp_mode == POST_STD || ! stdc3
+ || (*workp != 'u' && *workp != 'U'))
+ /* Not UCN */
#endif
- *out_p++ = '\\';
- }
- *out_p++ = c;
- }
- *out_p = EOS;
- break;
- default:
- out_p = mcpp_stpcpy( out_p, work_buf);
- break;
+ *out_p++ = '\\';
}
+ *out_p++ = c;
+ }
+ *out_p = EOS;
+ break;
+ default:
+ out_p = stpcpy( out_p, work_buf);
+ break;
}
+ }
- if (mcpp_mode == POST_STD)
- unget_ch();
- *out_p++ = '"';
- *out_p = EOS;
-
- if (stray_bsl) {
- int invalid = FALSE;
- unget_string( out, defp->name);
- if (mcpp_debug & EXPAND)
- dump_string( "checking generated token", infile->buffer);
- scan_quote( get_ch(), work_buf, work_end, TRUE);
- /* Unterminated or too long string will be diagnosed */
- if (*infile->bptr != EOS) /* More than a token */
- invalid = TRUE; /* Diagnose after clearing the "file" */
- infile->bptr += ACE_OS::strlen( infile->bptr);
- get_ch(); /* Clear the "file" */
- unget_ch();
- if (invalid)
- diag_macro( CERROR
- , "Not a valid string literal %s" /* _E_ */
- , out, 0L, 0, defp, 0);
+ if (mcpp_mode == POST_STD)
+ unget_ch();
+ *out_p++ = '"'; /* Closing quote */
+ if (trace_macro) {
+ while (num_arg_magic--) {
+ *out_p++ = MAC_INF; /* Restore removed magic*/
+ *out_p++ = MAC_ARG_END;
+ if (option_flags.v)
+ out_p = stpcpy( out_p, arg_end_inf[ num_arg_magic]);
}
+ }
+ *out_p = EOS;
+
+ if (stray_bsl) { /* '\\' outside of quotation has been found */
+ int invalid = FALSE;
+ unget_string( out, defp->name);
+ if (mcpp_debug & EXPAND)
+ dump_string( "checking generated token", infile->buffer);
+ scan_quote( get_ch(), work_buf, work_end, TRUE);
+ /* Unterminated or too long string will be diagnosed */
+ if (*infile->bptr != EOS) /* More than a token */
+ invalid = TRUE; /* Diagnose after clearing the "file" */
+ infile->bptr += ACE_OS::strlen( infile->bptr);
+ get_ch(); /* Clear the "file" */
+ unget_ch();
+ if (invalid)
+ diag_macro( CERROR
+ , "Not a valid string literal %s" /* _E_ */
+ , out, 0L, 0, defp, 0);
+ }
#if NWORK-2 > SLEN90MIN
- else if ((warn_level & 4) && out_p - out > str_len_min)
- diag_macro( CWARN
+ else if ((warn_level & 4) && out_p - out > std_limits.str_len)
+ diag_macro( CWARN
, "String literal longer than %.0s%ld bytes %s" /* _W4_ */
- , 0 , (long) str_len_min, out, defp, 0);
+ , 0 , (long) std_limits.str_len, out, defp, 0);
#endif
- return out_p;
+ return out_p;
}
static char * substitute(
- const DEFBUF * , /* The macro getting arguments */
- int , /* gvar_arg's argument is GCC3 variable argument*/
- char ** arglist, /* Pointers to actual arguments */
- const char * in, /* Replacement text */
- char * out, /* Output buffer */
- char * out_end /* End of output buffer */
-)
+ const DEFBUF * defp, /* The macro getting arguments */
+ const char ** arglist, /* Pointers to actual arguments */
+ const char * in, /* Replacement text */
+ char * out, /* Output buffer */
+ char * out_end /* End of output buffer */
+ )
/*
* Replace completely each actual arguments of the macro, and substitute for
* the formal parameters in the replacement list.
*/
{
//char * out_start = out;
- int c;
-
- *out = EOS; /* Ensure to termanate */
- while ((c = *in++) != EOS) {
- if (c == MAC_PARM) { /* Formal parameter */
- c = *in++ & UCHARMAX; /* Parameter number */
- if (mcpp_debug & EXPAND) {
- mcpp_fprintf( DBG, " (expanding arg[%d])", c);
- dump_string( 0, arglist[ c - 1]);
- }
+ //const char * arg;
+ int c;
+ int gvar_arg; /* gvar_arg'th argument is GCC variable argument */
+
+ gvar_arg = (defp->nargs & GVA_ARGS) ? (defp->nargs & ~AVA_ARGS) : 0;
+ *out = EOS; /* Ensure to termanate */
+
+ while ((c = *in++) != EOS) {
+ if (c == MAC_PARM) { /* Formal parameter */
+ c = *in++ & UCHARMAX; /* Parameter number */
+ if (mcpp_debug & EXPAND) {
+ mcpp_fprintf( DBG, " (expanding arg[%d])", c);
+ dump_string( 0, arglist[ c - 1]);
+ }
+#if COMPILER == GNUC || COMPILER == MSC
+ arg = arglist[ c - 1];
+ if (trace_macro) {
+ if (*arg == MAC_INF) {
+ if (*++arg == MAC_ARG_START)
+ arg += ARG_S_LEN - 1; /* Next to magic chars */
+ }
+ }
#if COMPILER == GNUC
- if (c == gvar_arg && *(arglist[ c - 1]) == RT_END) {
- /* GCC3 variadic macro and its variable argument is absent */
- char * tmp;
- tmp = out - 1;
- while (*tmp == ' ')
- tmp--;
- if (*tmp == ',') {
- out = tmp; /* Remove the immediately preceding ',' */
- if (warn_level & 1) {
- *out = EOS;
- diag_macro( CWARN,
- "Removed ',' preceding the absent variable argument: %s" /* _W1_ */
- , out_start, 0L, 0, defp, 0);
- }
- }
- } else
+ if (c == gvar_arg && *arg == RT_END && ! ansi) {
+ /*
+ * GCC variadic macro and its variable argument is absent.
+ * Note that in its "strict-ansi" mode GCC does not remove
+ * ',', nevertheless it ignores '##' (inconsistent
+ * behavior). Though GCC2 changes behavior depending the
+ * ',' is preceded by space or not, we only count on the
+ * "strict-ansi" flag.
+ */
+#else
+ if ((defp->nargs & VA_ARGS) && c == (defp->nargs & ~VA_ARGS)
+ && *arg == RT_END && mcpp_mode == STD) {
+ /* Visual C 2005 also removes ',' immediately preceding */
+ /* absent variable arguments. It does not use '##' though. */
#endif
- if ((out = rescan( 0, arglist[ c - 1], out, out_end))
- == 0) { /* Replace completely */
- return 0; /* Error */
+ char * tmp;
+ tmp = out - 1;
+ while (char_type[ *tmp & UCHARMAX] & HSP)
+ tmp--;
+ if (*tmp == ',') {
+ out = tmp; /* Remove the immediately preceding ',' */
+ if (warn_level & 1) {
+ *out = EOS;
+ diag_macro( CWARN,
+ "Removed ',' preceding the absent variable argument: %s" /* _W1_ */
+ , out_start, 0L, 0, defp, 0);
}
- } else {
- *out++ = c; /* Copy the character */
- }
+ }
+ } else
+#endif
+ if ((out = rescan( 0, arglist[ c - 1], out, out_end))
+ == 0) { /* Replace completely */
+ return 0; /* Error */
+ }
+ } else {
+ *out++ = c; /* Copy the character */
+ }
}
*out = EOS;
return out;
-}
-
-static char * rescan(
- const DEFBUF * outer, /* Outer macro just replacing */
- const char * in, /* Sequences to be rescanned */
- char * out, /* Output buffer */
- char * out_end /* End of output buffer */
-)
-/*
- * Re-scan the once replaced sequences to replace the remaining macros
- * completely.
- * rescan() and replace() call each other recursively.
- *
- * Note: POST_STD mode does not use IN_SRC nor TOK_SEP and seldom uses RT_END.
- * Checking of those are unnecessary overhead for POST_STD mode. To integrate
- * the code for POST_STD with STD mode, however, we use these checkings
- * commonly.
- * compat_mode also does not use IN_SRC.
- */
-{
+ }
+
+ static char * rescan(
+ const DEFBUF * outer, /* Outer macro just replacing */
+ const char * in, /* Sequences to be rescanned */
+ char * out, /* Output buffer */
+ char * out_end /* End of output buffer */
+ )
+ /*
+ * Re-scan the once replaced sequences to replace the remaining macros
+ * completely.
+ * rescan() and replace() call each other recursively.
+ *
+ * Note: POST_STD mode does not use IN_SRC nor TOK_SEP and seldom uses RT_END.
+ * Checking of those are unnecessary overhead for POST_STD mode. To integrate
+ * the code for POST_STD with STD mode, however, we use these checkings
+ * commonly.
+ * Also compat_mode does not use IN_SRC unless in trace_macro mode.
+ * STD mode has macro notification mode (trace_macro mode), too. Its routines
+ * are complicated and not easy to understand.
+ */
+ {
char * cur_cp = 0;
char * tp = 0; /* Temporary pointer into buffer*/
char * out_p = out; /* Current output pointer */
FILEINFO * file; /* Input sequences stacked on a "file" */
DEFBUF * inner = 0; /* Inner macro to replace */
int c; /* First character of token */
+ int token_type;
+ char * mac_arg_start = 0;
+#if COMPILER == GNUC
+ int within_defined = FALSE;
+ int within_defined_arg_depth = 0;
+#endif
if (mcpp_debug & EXPAND) {
- mcpp_fprintf( DBG, "rescan_level--%d (%s) "
- , rescan_level + 1, outer ? outer->name : "<arg>");
- dump_string( "rescan entry", in);
+ mcpp_fprintf( DBG, "rescan_level--%d (%s) "
+ , rescan_level + 1, outer ? outer->name : "<arg>");
+ dump_string( "rescan entry", in);
}
if (! disable_repl( outer)) /* Don't re-replace replacing macro */
- return 0; /* Too deeply nested macro call */
+ return 0; /* Too deeply nested macro call */
if (mcpp_mode == STD) {
- get_ch(); /* Clear empty "file"s */
- unget_ch(); /* for diagnostic */
- cur_cp = infile->bptr; /* Remember current location */
+ get_ch(); /* Clear empty "file"s */
+ unget_ch(); /* for diagnostic */
+ cur_cp = infile->bptr; /* Remember current location */
}
file = unget_string( in, outer ? outer->name : 0);
- /* Stack input on a "file" */
+ /* Stack input on a "file" */
while ((c = get_ch()), file == infile
- /* Rescanning is limited to the "file" */
- && c != RT_END) {
- /*
- * This is the trick of STD mode. collect_args() via replace()
- * may read over to file->parent (provided the "file" is macro)
- * unless stopped by RT_END.
- */
-
- if (c == ' ' || c == TOK_SEP) {
- *out_p++ = c;
- continue;
+ /* Rescanning is limited to the "file" */
+ && c != RT_END) {
+ /*
+ * This is the trick of STD mode. collect_args() via replace()
+ * may read over to file->parent (provided the "file" is macro)
+ * unless stopped by RT_END.
+ */
+ size_t len = 0;
+
+ if (char_type[ c] & HSP) {
+ *out_p++ = c;
+ continue;
+ } else if (c == MAC_INF) { /* Only in STD mode */
+ *out_p++ = c;
+ *out_p++ = c = get_ch();
+ switch (c) {
+ case MAC_ARG_START :
+ mac_arg_start = out_p - 2; /* Remember the position */
+ *out_p++ = get_ch();
+ /* Fall through */
+ case MAC_CALL_START :
+ *out_p++ = get_ch();
+ *out_p++ = get_ch();
+ break;
+ case MAC_ARG_END :
+ if (! option_flags.v)
+ break;
+ else
+ *out_p++ = get_ch();
+ /* Fall through */
+ case MAC_CALL_END :
+ if (option_flags.v) {
+ *out_p++ = get_ch();
+ *out_p++ = get_ch();
+ }
+ break;
+ } /* Pass these characters as they are */
+ continue;
+ }
+ token_type = scan_token( c, (tp = out_p, &out_p), out_end);
+#if COMPILER == GNUC
+ if (mcpp_mode == STD) {
+ /* Pass stuff within defined() as they are, if in_directive */
+ if ((within_defined || within_defined_arg_depth)) {
+ if (c == '(') {
+ within_defined_arg_depth++;
+ within_defined = FALSE;
+ } else if (within_defined_arg_depth && c == ')') {
+ within_defined_arg_depth--;
+ } /* Else should be a name (possibly macro) */
+ continue;
+ } else if (token_type == NAM && in_directive
+ && str_eq(identifier, "defined")) {
+ within_defined = TRUE;
+ /* 'defined' token in directive line */
+ continue;
}
- if (scan_token( c, (tp = out_p, &out_p), out_end) == NAM
- && c != DEF_MAGIC && (inner =
- look_id( (mcpp_mode == STD && c == IN_SRC) ? tp+1 : tp))
- != 0) { /* A macro name */
- int is_able; /* Macro is not "blue-painted" */
- char * inp_save = infile->bptr; /* Remember current bptr*/
-
- if (is_macro_call( inner, &out_p)
- && ((mcpp_mode == POST_STD && is_able_repl( inner))
- || (mcpp_mode == STD
- && (((is_able = is_able_repl( inner)) == YES)
- || (is_able == READ_OVER && c == IN_SRC))))) {
- /* Really a macro call */
- if ((out_p = replace( inner, tp, out_end, outer, file))
- == 0) /* Error of macro call */
- break;
- } else {
- if (file != infile && infile->bptr != inp_save
- && *(infile->bptr - 1) == ' ') {
- /* Has read over spaces into the parent "file" */
- infile->bptr--; /* Pushback forcibly */
- out_p--;
- }
- if ((is_able = is_able_repl( inner)) == NO
- || (mcpp_mode == STD && is_able == READ_OVER
- && c != IN_SRC)) {
- if (mcpp_mode == POST_STD || c != IN_SRC)
- ACE_OS::memmove( tp + 1, tp, (size_t) (out_p++ - tp));
- *tp = DEF_MAGIC; /* Mark not to replace */
- } /* Else not a macro call*/
+ }
+#endif
+ if (mcpp_mode == STD && c == IN_SRC)
+ len = trace_macro ? IN_SRC_LEN : 1;
+ if (token_type == NAM && c != DEF_MAGIC
+ && (inner = look_id( tp + len)) != 0) { /* A macro name */
+ int is_able; /* Macro is not "blue-painted" */
+ char * endf = 0; /* Output stream at end of infile */
+ MAGIC_SEQ mgc_seq; /* Magics between macro name and '(' */
+
+ if (trace_macro)
+ ACE_OS::memset( &mgc_seq, 0, sizeof (MAGIC_SEQ));
+ if (is_macro_call( inner, &out_p, &endf
+ , trace_macro ? &mgc_seq : 0)
+ && ((mcpp_mode == POST_STD && is_able_repl( inner))
+ || (mcpp_mode == STD
+ && (((is_able = is_able_repl( inner)) == YES)
+ || (is_able == READ_OVER
+ && (c == IN_SRC || compat_mode)))))) {
+ /* Really a macro call */
+ LINE_COL in_src_line_col = { 0L, 0};
+ int in_src_n = 0;
+
+ if (trace_macro) {
+ if (c == IN_SRC) { /* Macro in argument from source */
+ /* Get the location in source */
+ in_src_n = ((*(tp + 1) & UCHARMAX) - 1) * UCHARMAX;
+ in_src_n += (*(tp + 2) & UCHARMAX) - 1;
+ in_src_line_col.line = in_src[ in_src_n].start_line;
+ in_src_line_col.col = in_src[ in_src_n].start_col;
}
- }
- if (out_end <= out_p) {
+ if (inner->nargs >= 0 && mgc_seq.magic_start) {
+ /* Magic sequence is found between macro */
+ /* name and '('. This is a nuisance. */
+ char * mgc_cleared;
+ size_t seq_len;
+ size_t arg_elen = option_flags.v ? ARG_E_LEN_V
+ : ARG_E_LEN;
+ if ((tp - ARG_S_LEN) == mac_arg_start
+ && *mgc_seq.magic_start == MAC_INF
+ && *(mgc_seq.magic_start + 1) == MAC_ARG_END) {
+ /* Name of function-like macro is surrounded by */
+ /* magics, which were inserted by outer macro. */
+ /* Remove the starting magic. (The closing magic*/
+ /* has already been removed by is_macro_call(). */
+ tp -= ARG_S_LEN;
+ mgc_seq.magic_start += arg_elen; /* Next seq */
+ }
+ /* Restore once skipped magic sequences, */
+ /* then remove "pair"s of sequences. */
+ seq_len = mgc_seq.magic_end - mgc_seq.magic_start;
+ if (seq_len) {
+ insert_to_bptr( mgc_seq.magic_start, seq_len);
+ mgc_cleared = const_cast<char *> (remove_magics(const_cast <const char *> (infile->bptr), FALSE));
+ /* Remove pair of magics */
+ ACE_OS::strcpy( infile->bptr, mgc_cleared);
+ ACE_OS::free( mgc_cleared);
+ }
+ }
+ }
+ if ((out_p = replace( inner, tp, out_end, outer, file
+ , in_src_line_col, in_src_n)) == 0)
+ break; /* Error of macro call */
+ } else {
+ if (endf && ACE_OS::strlen( endf)) {
+ /* Has read over to parent file: another nuisance. */
+ /* Restore the read-over sequence into current buffer. */
+ /* Don't use unget_string() here. */
+ insert_to_bptr( endf, out_p - endf);
+ out_p = endf;
*out_p = EOS;
- diag_macro( CERROR, macbuf_overflow, outer ? outer->name : in, 0L
- , out, outer, inner);
- out_p = 0;
- break;
+ }
+ if ((is_able = is_able_repl( inner)) == NO
+ || (mcpp_mode == STD && is_able == READ_OVER
+ && c != IN_SRC && ! compat_mode)) {
+ if (mcpp_mode == POST_STD || c != IN_SRC)
+ ACE_OS::memmove( tp + 1, tp, (size_t) (out_p++ - tp));
+ *tp = DEF_MAGIC; /* Mark not to replace */
+ } /* Else not a macro call*/
}
+ }
+ if (out_end <= out_p) {
+ *out_p = EOS;
+ diag_macro( CERROR, macbuf_overflow, outer ? outer->name : in, 0L
+ , out, outer, inner);
+ out_p = 0;
+ break;
+ }
}
if (out_p) {
- *out_p = EOS;
- if (mcpp_mode == STD) {
- if (c != RT_END) {
- unget_ch();
- if (outer != 0) { /* outer isn't a macro in argument */
- if (infile && infile->bptr != cur_cp
- /* Have overrun replacement list*/
- && !(tp && *tp == DEF_MAGIC)
- /* Macro is enabled */
- && ((!compat_mode && (warn_level & 1))
- || (compat_mode && (warn_level & 8)))) {
- diag_macro( CWARN,
-"Replacement text \"%s\" of macro %.0ld\"%s\" involved subsequent text" /* _W1_ */
- , in, 0L, outer->name, outer, inner);
- }
- }
- } /* Else remove RT_END */
- } else {
- unget_ch();
- }
+ *out_p = EOS;
+ if (mcpp_mode == STD) {
+ if (c != RT_END) {
+ unget_ch();
+ if (outer != 0) { /* outer isn't a macro in argument */
+ if (infile && infile->bptr != cur_cp
+ /* Have overrun replacement list*/
+ && !(tp && *tp == DEF_MAGIC)
+ /* Macro is enabled */
+ && ((!compat_mode && (warn_level & 1))
+ || (compat_mode && (warn_level & 8)))) {
+ diag_macro( CWARN,
+ "Replacement text \"%s\" of macro %.0ld\"%s\" involved subsequent text" /* _W1_ */
+ , in, 0L, outer->name, outer, inner);
+ }
+ }
+ } /* Else remove RT_END */
+ } else {
+ unget_ch();
+ }
}
enable_repl( outer, TRUE); /* Enable macro for later text */
if (mcpp_debug & EXPAND) {
- mcpp_fprintf( DBG, "rescan_level--%d (%s) "
- , rescan_level + 1, outer ? outer->name : "<arg>");
- dump_string( "rescan exit", out);
+ mcpp_fprintf( DBG, "rescan_level--%d (%s) "
+ , rescan_level + 1, outer ? outer->name : "<arg>");
+ dump_string( "rescan exit", out);
}
return out_p;
-}
-
-static int
-disable_repl(
- const DEFBUF * defp
-)
-/*
- * Register the macro name currently replacing.
- */
-{
+ }
+
+ static int disable_repl(
+ const DEFBUF * defp
+ )
+ /*
+ * Register the macro name currently replacing.
+ */
+ {
if (defp == 0)
- return TRUE;
+ return TRUE;
if (rescan_level >= RESCAN_LIMIT) {
- diag_macro( CERROR,
- "Rescanning macro \"%s\" more than %ld times at \"%s\"" /* _E_ */
- , macro_name, (long) RESCAN_LIMIT, defp->name, defp, 0);
- return FALSE;
+ diag_macro( CERROR,
+ "Rescanning macro \"%s\" more than %ld times at \"%s\"" /* _E_ */
+ , macro_name, (long) RESCAN_LIMIT, defp->name, defp, 0);
+ return FALSE;
}
replacing[ rescan_level].def = defp;
replacing[ rescan_level++].read_over = NO;
return TRUE;
-}
-
-static void enable_repl(
- const DEFBUF * defp,
- int done
-)
-/*
- * Un-register the macro name just replaced for later text.
- */
-{
+ }
+
+ static void enable_repl(
+ const DEFBUF * defp,
+ int done
+ )
+ /*
+ * Un-register the macro name just replaced for later text.
+ */
+ {
if (defp == 0)
- return;
+ return;
replacing[ rescan_level - 1].def = 0;
if (done && rescan_level)
- rescan_level--;
-}
-
-static int is_able_repl(
- const DEFBUF * defp
-)
-/*
- * The macro is permitted to replace ?
- */
-{
+ rescan_level--;
+ }
+
+ static int is_able_repl(
+ const DEFBUF * defp
+ )
+ /*
+ * The macro is permitted to replace ?
+ */
+ {
int i;
if (defp == 0)
- return YES;
+ return YES;
for (i = rescan_level-1; i >= 0; i--) {
- if (defp == replacing[ i].def)
- return replacing[ i].read_over;
+ if (defp == replacing[ i].def)
+ return replacing[ i].read_over;
}
return YES;
-}
+ }
+
+ static char * insert_to_bptr(
+ char * ins, /* Sequence to be inserted */
+ size_t len /* Byte to be inserted */
+ )
+ /*
+ * Insert a sequence into infile->bptr.
+ * infile->buffer is reallocated to ensure buffer size.
+ * This routine changes absolute address of infile->bptr, hence rescan() emits
+ * a "Replacement text ... involved subsequent text" warning. Anyway,
+ * a macro which needs this routine deserves that warning.
+ */
+ {
+ size_t bptr_offset = infile->bptr - infile->buffer;
+
+ if (infile->fp == 0) { /* Not source file */
+ infile->buffer = xrealloc( infile->buffer
+ , ACE_OS::strlen( infile->buffer) + len + 1);
+ infile->bptr = infile->buffer + bptr_offset;
+ }
+ ACE_OS::memmove( infile->bptr + len, infile->bptr, ACE_OS::strlen( infile->bptr) + 1);
+ ACE_OS::memcpy( infile->bptr, ins, len);
+ return infile->buffer;
+ }
-/*
- * M a c r o E x p a n s i o n i n P R E - S T A N D A R D M o d e
- */
+ /*
+ * M a c r o E x p a n s i o n i n P R E - S T A N D A R D M o d e
+ */
#include "setjmp.h"
-static jmp_buf jump;
-
-static char * arglist_pre[ NMACPARS]; /* Pointers to args */
-
-static int rescan_pre( int c, char * mp, char * mac_end);
- /* Replace a macro repeatedly */
-static int replace_pre( DEFBUF * defp);
- /* Replace a macro once */
-static void substitute_pre( DEFBUF * defp);
- /* Substitute parms with args */
-
-static char * expand_prestd(
- DEFBUF * defp, /* Macro definition */
- char * out, /* Output buffer */
- char * out_end /* End of output buffer */
-)
-/*
- * Expand a macro call completely, write the results to the specified buffer
- * and return the advanced pointer.
- */
-{
+ static jmp_buf jump;
+
+ static char * arglist_pre[ NMACPARS]; /* Pointers to args */
+
+ static int rescan_pre( int c, char * mp, char * mac_end);
+ /* Replace a macro repeatedly */
+ static int replace_pre( DEFBUF * defp);
+ /* Replace a macro once */
+ static void substitute_pre( DEFBUF * defp);
+ /* Substitute parms with args */
+
+ static char * expand_prestd(
+ DEFBUF * defp, /* Macro definition */
+ char * out, /* Output buffer */
+ char * out_end, /* End of output buffer */
+ LINE_COL /* line_col*/, /* Location of macro (not used in prestd) */
+ int * pragma_op /* Flag of _Pragma (not used in prestd) */
+ )
+ /*
+ * Expand a macro call completely, write the results to the specified buffer
+ * and return the advanced pointer.
+ */
+ {
char macrobuf[ NMACWORK + IDMAX]; /* Buffer for rescan_pre() */
char * mac_end = &macrobuf[ NMACWORK]; /* End of macrobuf[] */
char * out_p; /* Pointer into out[] */
- char * volatile mp = macrobuf; /* Pointer into macrobuf*/
+ char * mp = macrobuf; /* Pointer into macrobuf*/
int len; /* Length of a token */
int token_type; /* Type of token */
int c;
@@ -1003,261 +2158,254 @@ static char * expand_prestd(
macro_name = defp->name;
rescan_level = 0;
if (setjmp( jump) == 1) {
- skip_macro();
- mp = macrobuf;
- *mp = EOS;
- macro_line = MACRO_ERROR;
- goto err_end;
+ skip_macro();
+ mp = macrobuf;
+ *mp = EOS;
+ macro_line = MACRO_ERROR;
+ goto err_end;
}
while ((c = get_ch()) != CHAR_EOF && infile->fp == 0) {
- /* While the input stream is a macro */
- while (c == ' ') { /* Output the spaces */
- *mp++ = c;
- c = get_ch();
- if (infile == 0 || infile->fp != 0)
- goto exp_end;
- }
- token_type = rescan_pre( c, mp, mac_end); /* Scan token */
- /* and expand. Result of expansion is written at mp. */
-
- switch (token_type) {
- case STR: /* String literal */
- case CHR: /* Character constant */
- case NUM: /* Number token */
- case OPE: /* Operator or punct. */
- case NAM: /* Identifier */
- len = ACE_OS::strlen( mp);
- mp += len;
- break;
- case SEP: /* Special character */
- switch( *mp) {
- case COM_SEP:
- if (mcpp_mode == OLD_PREP)
- break; /* Zero-length comment is removed now */
- /* Else fall through */
- default: /* Who knows ? */
- mp++; /* Copy the character */
- break;
- }
- break;
- case NO_TOKEN: break; /* End of file */
- default: /* Unkown token char. */
- mp++; /* Copy the character */
- break;
+ /* While the input stream is a macro */
+ while (c == ' ' || c == '\t') { /* Output the spaces */
+ *mp++ = c;
+ c = get_ch();
+ if (infile == 0 || infile->fp != 0)
+ goto exp_end;
+ }
+ token_type = rescan_pre( c, mp, mac_end); /* Scan token */
+ /* and expand. Result of expansion is written at mp. */
+
+ switch (token_type) {
+ case STR: /* String literal */
+ case CHR: /* Character constant */
+ case NUM: /* Number token */
+ case OPE: /* Operator or punct. */
+ case NAM: /* Identifier */
+ len = ACE_OS::strlen( mp);
+ mp += len;
+ break;
+ case SEP: /* Special character */
+ switch( *mp) {
+ case COM_SEP:
+ if (mcpp_mode == OLD_PREP)
+ break; /* Zero-length comment is removed now */
+ /* Else fall through */
+ default: /* Who knows ? */
+ mp++; /* Copy the character */
+ break;
}
+ break;
+ case NO_TOKEN: break; /* End of file */
+ default: /* Unkown token char. */
+ mp++; /* Copy the character */
+ break;
+ }
- if (mac_end <= mp) {
- *mp = EOS;
- cerror( macbuf_overflow, macro_name, 0L, macrobuf);
- longjmp( jump, 1);
- }
- if (mcpp_debug & GETC) {
- *mp = EOS;
- dump_string( "macrobuf", macrobuf);
- }
+ if (mac_end <= mp) {
+ *mp = EOS;
+ cerror( macbuf_overflow, macro_name, 0L, macrobuf);
+ longjmp( jump, 1);
+ }
+ if (mcpp_debug & GETC) {
+ *mp = EOS;
+ dump_string( "macrobuf", macrobuf);
+ }
}
-exp_end:
+ exp_end:
unget_ch();
- while (macrobuf < mp && *(mp - 1) == ' ')
- mp--; /* Remove trailing blank */
+ while (macrobuf < mp && (*(mp - 1) == ' ' || *(mp - 1) == '\t'))
+ mp--; /* Remove trailing blank */
macro_line = 0;
*mp = EOS;
if (mp - macrobuf > out_end - out) {
- cerror( macbuf_overflow, macro_name, 0L, macrobuf);
- macro_line = MACRO_ERROR;
+ cerror( macbuf_overflow, macro_name, 0L, macrobuf);
+ macro_line = MACRO_ERROR;
}
-err_end:
- out_p = mcpp_stpcpy( out, macrobuf);
+ err_end:
+ out_p = stpcpy( out, macrobuf);
if (mcpp_debug & EXPAND) {
- dump_string( "expand_prestd exit", out);
+ dump_string( "expand_prestd exit", out);
}
macro_name = 0;
clear_exp_mac();
+ *pragma_op = FALSE;
return out_p;
-}
-
-static int rescan_pre(
- int c, /* First character of token */
- char * mp, /* Output buffer */
- char * mac_end /* End of output buffer */
-)
-/*
- * If the token is a macro name, replace the macro repeatedly until the first
- * token becomes a non-macro and return the type of token after expansion.
- */
-{
+ }
+
+ static int rescan_pre(
+ int c, /* First character of token */
+ char * mp, /* Output buffer */
+ char * mac_end /* End of output buffer */
+ )
+ /*
+ * If the token is a macro name, replace the macro repeatedly until the first
+ * token becomes a non-macro and return the type of token after expansion.
+ */
+ {
int token_type; /* Type of token */
char * cp = mp; /* Value of mp should not be changed */
DEFBUF * defp;
FILEINFO * file;
while ((token_type = scan_token( c, &cp, mac_end)) == NAM
- && (defp = look_id( identifier)) != 0) { /* Macro */
- if (replace_pre( defp) == FALSE)
- break; /* Macro name with no argument */
- file = infile;
- c = get_ch();
- if (file != infile) { /* Replaced to 0 token */
- unget_ch();
- token_type = NO_TOKEN;
- break;
- }
- cp = mp; /* Overwrite on the macro call */
+ && (defp = look_id( identifier)) != 0) { /* Macro */
+ if (replace_pre( defp) == FALSE)
+ break; /* Macro name with no argument */
+ file = infile;
+ c = get_ch();
+ if (file != infile) { /* Replaced to 0 token */
+ unget_ch();
+ token_type = NO_TOKEN;
+ break;
+ }
+ cp = mp; /* Overwrite on the macro call */
} /* The macro call is replaced */
return token_type;
-}
-
-static int replace_pre(
- DEFBUF * defp /* Definition of the macro */
-)
-/*
- * Replace a macro one level. Called from expand_prestd() (via rescan_pre())
- * when an identifier is found in the symbol table. It calls collect_args()
- * to parse actual arguments, checking for the correct number. It then
- * creates a "file" containing single line containing the replacement text
- * with the actual arguments inserted appropriately. This is "pushed back"
- * onto the input stream. (When get_ch() routine runs off the end of the macro
- * line, it will dismiss the macro itself.)
- */
-{
- int nargs; /* Number of arguments */
+ }
+
+ static int replace_pre(
+ DEFBUF * defp /* Definition of the macro */
+ )
+ /*
+ * Replace a macro one level. Called from expand_prestd() (via rescan_pre())
+ * when an identifier is found in the macro table. It calls collect_args()
+ * to parse actual arguments, checking for the correct number. It then
+ * creates a "file" containing single line containing the replacement text
+ * with the actual arguments inserted appropriately. This is "pushed back"
+ * onto the input stream. (When get_ch() routine runs off the end of the macro
+ * line, it will dismiss the macro itself.)
+ */
+ {
+ int arg_len;
int c;
if (mcpp_debug & EXPAND) {
- dump_a_def( "replace_pre entry", defp, FALSE, FALSE, TRUE, fp_debug);
- dump_unget( "replace_pre entry");
+ dump_a_def( "replace_pre entry", defp, FALSE, TRUE, fp_debug);
+ dump_unget( "replace_pre entry");
}
if (++rescan_level >= PRESTD_RESCAN_LIMIT) {
- diag_macro( CERROR
- , "Recursive macro definition of \"%s\"" /* _E_ */
- , defp->name, 0L, 0, defp, 0);
- longjmp( jump, 1);
+ diag_macro( CERROR
+ , "Recursive macro definition of \"%s\"" /* _E_ */
+ , defp->name, 0L, 0, defp, 0);
+ longjmp( jump, 1);
}
/*
* Here's a macro to replace.
*/
switch (defp->nargs) {
-
case DEF_NOARGS: /* No argument just stuffs */
- case DEF_NOARGS - 1: /* Non-standard predef */
- break;
-
+ case DEF_NOARGS_PREDEF_OLD: /* Compiler-specific predef without '_' */
+ case DEF_NOARGS_PREDEF: /* Compiler-specific predef */
+ break;
default: /* defp->nargs >= 0 */
- /*
- * Nothing funny about this macro.
- */
- c = squeeze_ws( 0); /* Look for and skip '('*/
- if (c != '(') {
- /*
- * If the programmer writes
- * #define foo() ...
- * ...
- * foo [no ()]
- * just write foo to output.
- */
- unget_ch();
- if (warn_level & 8)
- diag_macro( CWARN, only_name, defp->name, 0L, 0, defp, 0);
- return FALSE;
- } else {
- arglist_pre[ 0] = xmalloc( (size_t) (NMACWORK + IDMAX * 2));
- nargs = collect_args( defp, arglist_pre);
- /* Collect arguments */
- if (nargs == ARG_ERROR) { /* End of input */
- ACE_OS::free( arglist_pre[ 0]);
- longjmp( jump, 1);
- }
+ c = squeeze_ws( 0, 0, 0); /* Look for and skip '('*/
+ if (c != '(') { /* Macro name without following '(' */
+ unget_ch();
+ if (warn_level & 8)
+ diag_macro( CWARN, only_name, defp->name, 0L, 0, defp, 0);
+ return FALSE;
+ } else {
+ arglist_pre[ 0] = xmalloc( (size_t) (NMACWORK + IDMAX * 2));
+ arg_len = collect_args( defp, arglist_pre, 0);
+ /* Collect arguments */
+ if (arg_len == ARG_ERROR) { /* End of input */
+ ACE_OS::free( arglist_pre[ 0]);
+ longjmp( jump, 1);
}
- break;
- } /* defp->nargs switch */
+ }
+ break;
+ }
if (defp->nargs > 0)
- substitute_pre( defp); /* Do actual arguments */
+ substitute_pre( defp); /* Do actual arguments */
else
- unget_string( defp->repl, defp->name);
+ unget_string( defp->repl, defp->name);
if (mcpp_debug & EXPAND)
- dump_unget( "replace_pre exit");
+ dump_unget( "replace_pre exit");
if (defp->nargs >= 0)
- ACE_OS::free( arglist_pre[ 0]);
+ ACE_OS::free( arglist_pre[ 0]);
return TRUE;
-}
-
-static void substitute_pre(
- DEFBUF * defp /* Current macro being replaced */
-)
-/*
- * Stuff the macro body, substituting formal parameters with actual arguments.
- */
-{
+ }
+
+ static void substitute_pre(
+ DEFBUF * defp /* Current macro being replaced */
+ )
+ /*
+ * Stuff the macro body, substituting formal parameters with actual arguments.
+ */
+ {
int c; /* Current character */
FILEINFO * file; /* Funny #include */
char * out_end; /* -> output buffer end */
char * in_p; /* -> replacement text */
char * out_p; /* -> macro output buff */
- file = get_file( defp->name, (size_t) (NMACWORK + 1));
+ file = get_file( defp->name, 0, 0, (size_t) (NMACWORK + 1), FALSE);
+ /* file == infile */
in_p = defp->repl; /* -> macro replacement */
out_p = file->buffer; /* -> output buffer */
out_end = file->buffer + NMACWORK; /* -> buffer end */
while ((c = *in_p++) != EOS) {
- if (c == MAC_PARM) {
- c = (*in_p++ & UCHARMAX) - 1; /* Parm number */
- /*
- * Substitute formal parameter with actual argument.
- */
- if (out_end <= (out_p + ACE_OS::strlen( arglist_pre[ c])))
- goto nospace;
- out_p = mcpp_stpcpy( out_p, arglist_pre[ c]);
- } else {
- *out_p++ = c;
- }
- if (out_end <= out_p)
- goto nospace;
+ if (c == MAC_PARM) {
+ c = (*in_p++ & UCHARMAX) - 1; /* Parm number */
+ /*
+ * Substitute formal parameter with actual argument.
+ */
+ if (out_end <= (out_p + ACE_OS::strlen( arglist_pre[ c])))
+ goto nospace;
+ out_p = stpcpy( out_p, arglist_pre[ c]);
+ } else {
+ *out_p++ = c;
+ }
+ if (out_end <= out_p)
+ goto nospace;
}
*out_p = EOS;
file->buffer = xrealloc( file->buffer, ACE_OS::strlen( file->buffer) + 1);
file->bptr = file->buffer; /* Truncate buffer */
if (mcpp_debug & EXPAND)
- dump_string( "substitute_pre macroline", file->buffer);
+ dump_string( "substitute_pre macroline", file->buffer);
return;
-nospace:
+ nospace:
*out_p = EOS;
diag_macro( CERROR, macbuf_overflow, defp->name, 0L, file->buffer, defp
- , 0);
+ , 0);
longjmp( jump, 1);
-}
-
-
-/*
- * C O M M O N R O U T I N E S
- * f o r S T A N D A R D a n d p r e - S T A N D A R D M o d e s
- */
-
-static int collect_args(
- const DEFBUF * defp, /* Definition of the macro */
- char ** arglist /* Pointers to actual arguments */
-)
-/*
- * Collect the actual arguments for the macro, checking for correct number
- * of arguments.
- * Variable arguments (on Standard modes) are read as a merged argument.
- * Return number of arguments, or ARG_ERROR on error of unterminated macro.
- * collect_args() may read over to the next line unless 'in_directive' is
- * set to TRUE.
- * collect_args() may read over into file->parent to complete a macro call
- * unless stopped by RT_END (provided the "file" is macro). This is a key
- * trick of STD mode macro expansion. Meanwhile, POST_STD mode limits the
- * arguments in the "file" (macro or not).
- * Note: arglist[ n] may be reallocated by collect_args().
- */
-{
+ }
+
+
+ /*
+ * C O M M O N R O U T I N E S
+ * f o r S T A N D A R D a n d p r e - S T A N D A R D M o d e s
+ */
+
+ static int collect_args(
+ const DEFBUF * defp, /* Definition of the macro */
+ char ** arglist, /* Pointers to actual arguments */
+ int m_num /* Index into mac_inf[] */
+ )
+ /*
+ * Collect the actual arguments for the macro, checking for correct number
+ * of arguments.
+ * Variable arguments (on Standard modes) are read as a merged argument.
+ * Return number of real arguments, or ARG_ERROR on error of unterminated
+ * macro.
+ * collect_args() may read over to the next line unless 'in_directive' is
+ * set to TRUE.
+ * collect_args() may read over into file->parent to complete a macro call
+ * unless stopped by RT_END (provided the "file" is macro). This is a key
+ * trick of STD mode macro expansion. Meanwhile, POST_STD mode limits the
+ * arguments in the "file" (macro or not).
+ * Note: arglist[ n] may be reallocated by collect_args().
+ */
+ {
const char * name = defp->name;
char * argp = arglist[ 0]; /* Pointer to an argument */
char * arg_end; /* End of arguments buffer */
@@ -1269,316 +2417,561 @@ static int collect_args(
int nargs = 0; /* Number of collected args */
int var_arg = defp->nargs & VA_ARGS; /* Variable args */
int more_to_come = FALSE; /* Next argument is expected*/
- int ret = ARG_ERROR; /* Return value */
+ LOCATION * locs = 0; /* Location of args in source file */
+ LOCATION * loc; /* Current locs */
+ MAGIC_SEQ mgc_prefix; /* MAC_INF seqs and spaces preceding an arg */
int c;
if (mcpp_debug & EXPAND)
- dump_unget( "collect_args entry");
+ dump_unget( "collect_args entry");
args = (defp->nargs == DEF_PRAGMA) ? 1 : (defp->nargs & ~AVA_ARGS);
if (args == 0) /* Need no argument */
- valid_argp = argp;
+ valid_argp = argp;
*argp = EOS; /* Make sure termination */
arg_end = argp + NMACWORK/2;
seq = sequence = arg_end + IDMAX; /* Use latter half of argp */
seq_end = seq + NMACWORK/2;
- seq = mcpp_stpcpy( seq, name);
+ seq = stpcpy( seq, name);
*seq++ = '(';
- /*
- * in_getarg is set TRUE while getting macro arguments, for the sake of
- * diagnostic's convenience.
- * in_getarg is used only in STD mode.
- */
- if (mcpp_mode == STD)
- in_getarg = TRUE;
+ if (mcpp_mode == STD) {
+ /*
+ * in_getarg is set TRUE while getting macro arguments, for the sake
+ * of diagnostic's convenience. in_getarg is used only in STD mode.
+ */
+ in_getarg = TRUE;
+ if (trace_macro && m_num) {
+ /* #pragma MCPP debug macro_call, and the macro is on source */
+ mac_inf[ m_num].loc_args = loc = locs
+ = (LOCATION *) xmalloc( (sizeof (LOCATION)) * UCHARMAX);
+ ACE_OS::memset( loc, 0, (sizeof (LOCATION)) * UCHARMAX);
+ /* 0-clear for default values, including empty argument */
+ }
+ }
while (1) {
- c = squeeze_ws( &seq); /* Skip white spaces */
- if (c == ')' || c == ',')
- scan_token( c, &seq, seq_end); /* Ensure token parsing */
- else
- *seq = EOS;
-
- switch (c) { /* First character of token */
- case ')':
- if (! more_to_come) /* Zero argument */
- break; /* Else fall through */
- case ',': /* Empty argument */
- if (warn_level & 2)
- diag_macro( CWARN, empty_arg, sequence, 0L, 0, defp, 0);
- if (standard && var_arg && nargs == args - 1) {
- /* Variable arguments begin with an empty argument */
- c = get_an_arg( c, &argp, arg_end, &seq, 1);
- } else {
- if (mcpp_mode == STD)
- *argp++ = RT_END;
- *argp++ = EOS;
- }
- if (++nargs == args)
- valid_argp = argp;
- if (c == ',') {
- more_to_come = TRUE;
- continue;
- } else { /* ')' */
- break;
- }
- case '\n': /* Unterminated macro call in control line */
- unget_ch(); /* Fall through */
- case RT_END: /* Error of missing ')' */
- diag_macro( CERROR, unterm_macro, sequence, 0L, 0, defp, 0);
- /* Fall through */
- case CHAR_EOF: /* End of file in macro call*/
- goto arg_ret; /* Diagnosed by at_eof() */
- default: /* Nomal argument */
- break;
+ ACE_OS::memset( &mgc_prefix, 0, sizeof (MAGIC_SEQ));
+ c = squeeze_ws( &seq, 0
+ , (trace_macro && m_num) ? &mgc_prefix : 0);
+ /* Skip MAC_INF seqs and white spaces, still remember */
+ /* the sequence in buffer, if necessary. */
+ if (c == ')' || c == ',')
+ scan_token( c, &seq, seq_end); /* Ensure token parsing */
+ else
+ *seq = EOS;
+
+ switch (c) { /* First character of token */
+ case ')':
+ if (! more_to_come) { /* Zero argument */
+ if (trace_macro && m_num)
+ loc++;
+ break;
+ } /* Else fall through */
+ case ',': /* Empty argument */
+ if (trace_macro && m_num)
+ loc++; /* Advance pointer to infs */
+ if (warn_level & 2)
+ diag_macro( CWARN, empty_arg, sequence, 0L, 0, defp, 0);
+ if (standard && var_arg && nargs == args - 1) {
+ /* Variable arguments begin with an empty argument */
+ c = get_an_arg( c, &argp, arg_end, &seq, 1, nargs, &loc
+ , m_num, (trace_macro && m_num) ? &mgc_prefix : 0);
+ } else {
+ if (mcpp_mode == STD)
+ *argp++ = RT_END;
+ *argp++ = EOS;
+ }
+ if (++nargs == args)
+ valid_argp = argp;
+ if (c == ',') {
+ more_to_come = TRUE;
+ continue;
+ } else { /* ')' */
+ break;
}
+ case '\n': /* Unterminated macro call in directive line*/
+ unget_ch(); /* Fall through */
+ case RT_END: /* Error of missing ')' */
+ diag_macro( CERROR, unterm_macro, sequence, 0L, 0, defp, 0);
+ /* Fall through */
+ case CHAR_EOF: /* End of file in macro call*/
+ nargs = ARG_ERROR;
+ goto arg_ret; /* Diagnosed by at_eof() */
+ default: /* Nomal argument */
+ break;
+ }
- if (c == ')') /* At end of all args */
- break;
+ if (c == ')') /* At end of all args */
+ break;
- c = get_an_arg( c, &argp, arg_end, &seq,
- (var_arg && nargs == args - 1) ? 1 : 0);
+ c = get_an_arg( c, &argp, arg_end, &seq
+ , (var_arg && nargs == args - 1) ? 1 : 0, nargs, &loc
+ , m_num, (trace_macro && m_num) ? &mgc_prefix : 0);
- if (++nargs == args)
- valid_argp = argp; /* End of valid arguments */
- if (c == ')')
- break;
- if (c == 0) /* End of file */
- goto arg_ret; /* Diagnosed by at_eof() */
- if (c == -1) { /* Untermanated macro call */
- diag_macro( CERROR, unterm_macro, sequence, 0L, 0, defp, 0);
- goto arg_ret;
- }
- more_to_come = (c == ',');
+ if (++nargs == args)
+ valid_argp = argp; /* End of valid arguments */
+ if (c == ')')
+ break;
+ if (c == 0) { /* End of file */
+ nargs = ARG_ERROR;
+ goto arg_ret; /* Diagnosed by at_eof() */
+ }
+ if (c == -1) { /* Untermanated macro call */
+ diag_macro( CERROR, unterm_macro, sequence, 0L, 0, defp, 0);
+ nargs = ARG_ERROR;
+ goto arg_ret;
+ }
+ more_to_come = (c == ',');
} /* Collected all arguments */
if (nargs == 0 && args == 1) { /* Only and empty argument */
- if (warn_level & 2)
- diag_macro( CWARN, empty_arg, sequence, 0L, 0, defp, 0);
+ if (warn_level & 2)
+ diag_macro( CWARN, empty_arg, sequence, 0L, 0, defp, 0);
} else if (nargs != args) { /* Wrong number of arguments*/
- if (mcpp_mode != OLD_PREP || (warn_level & 1)) {
- if ((standard && var_arg && (nargs == args - 1))
- /* Absence of variable arguments */
- || (mcpp_mode == OLD_PREP)) {
- if (warn_level & 1)
- diag_macro( CWARN, narg_error, nargs < args ? "Less"
- : "More", (long) args, sequence, defp, 0);
- } else {
- diag_macro( CERROR, narg_error, nargs < args ? "Less" : "More"
- , (long) args, sequence, defp, 0);
- }
+ if (mcpp_mode != OLD_PREP || (warn_level & 1)) {
+ if ((standard && var_arg && (nargs == args - 1))
+ /* Absence of variable arguments */
+ || (mcpp_mode == OLD_PREP)) {
+ if (warn_level & 1)
+ diag_macro( CWARN, narg_error, nargs < args ? "Less"
+ : "More", (long) args, sequence, defp, 0);
+ } else {
+ diag_macro( CERROR, narg_error, nargs < args ? "Less" : "More"
+ , (long) args, sequence, defp, 0);
}
+ }
}
if (args < nargs) {
- argp = valid_argp; /* Truncate excess arguments*/
+ argp = valid_argp; /* Truncate excess arguments*/
} else {
- for (c = nargs; c < args; c++) {
- if (mcpp_mode == STD)
- *argp++ = RT_END; /* For rescan() */
- *argp++ = EOS; /* Missing arguments */
- }
- if (c == 0)
- argp++; /* Ensure positive length */
+ for (c = nargs; c < args; c++) {
+ if (mcpp_mode == STD)
+ *argp++ = RT_END; /* For rescan() */
+ *argp++ = EOS; /* Missing arguments */
+ }
+ if (c == 0)
+ argp++; /* Ensure positive length */
}
arglist[ 0] = argp
- = xrealloc( arglist[ 0], (size_t)(argp - arglist[ 0]));
- /* Use memory sparingly */
+ = xrealloc( arglist[ 0], (size_t) (argp - arglist[ 0]));
+ /* Use memory sparingly */
for (c = 1; c < args; c++)
- arglist[ c] = argp += ACE_OS::strlen( argp) + 1;
+ arglist[ c] = argp += ACE_OS::strlen( argp) + 1;
+ if (trace_macro && m_num)
+ mac_inf[ m_num].loc_args /* Truncate excess memory */
+ = (LOCATION *) xrealloc( (char *) locs
+ , (loc - locs) * sizeof (LOCATION));
- ret = nargs;
-arg_ret:
if (mcpp_debug & EXPAND) {
- if (nargs > 0)
- dump_args( "collect_args exit"
- , nargs < args ? nargs : args, arglist);
- dump_unget( "collect_args exit");
+ if (nargs > 0) {
+ if (nargs > args)
+ nargs = args;
+ dump_args( "collect_args exit", nargs, (const char **) arglist);
+ }
+ dump_unget( "collect_args exit");
}
+ arg_ret:
if (mcpp_mode == STD)
- in_getarg = FALSE;
-
- return ret;
-}
-
-static int get_an_arg(
- int c,
- char ** argpp, /* Address of pointer into argument list */
- char * arg_end, /* End of argument list buffer */
- char ** seqp, /* Buffer for diagnostics */
- int var_arg /* 1 on __VA_ARGS__, 0 on others*/
-)
-/*
- * Get an argument of macro into '*argpp', return the next punctuator.
- * Variable arguments are read as a merged argument.
- */
-{
+ in_getarg = FALSE;
+ /* Return number of found arguments for function-like macro at most */
+ /* defp->nargs, or return defp->nargs for object-like macro. */
+ return defp->nargs <= DEF_NOARGS ? defp->nargs : nargs;
+ }
+
+ static int get_an_arg(
+ int c,
+ char ** argpp, /* Address of pointer into argument list */
+ char * arg_end, /* End of argument list buffer */
+ char ** seqp, /* Buffer for diagnostics */
+ int var_arg, /* 1 on __VA_ARGS__, 0 on others*/
+ int nargs, /* Argument number */
+ LOCATION ** locp, /* Where to save location infs */
+ int m_num, /* Macro number to trace */
+ MAGIC_SEQ * mgc_prefix /* White space and magics leading to argument */
+ )
+ /*
+ * Get an argument of macro into '*argpp', return the next punctuator.
+ * Variable arguments are read as a merged argument.
+ * Note: nargs, locp and m_num are used only in macro trace mode of
+ * '#pragma MCPP debug macro_call' or -K option.
+ */
+ {
+ struct {
+ int n_par;
+ int n_in_src;
+ } n_paren[ 16];
+ int num_paren = 0;
int end_an_arg = FALSE; /* End-of-an-arg flag */
int paren = var_arg; /* For embedded ()'s */
int token_type;
char * prevp;
char * argp = *argpp;
+ int trace_arg = 0; /* Enable tracing arg */
+ LINE_COL s_line_col, e_line_col; /* Location of macro in an argument */
+ MAGIC_SEQ mgc_seq; /* Magic seqs and spaces succeeding an arg */
+ size_t len;
+
+ if (trace_macro) {
+ trace_arg = m_num && infile->fp;
+ if (m_num) {
+ if (trace_arg) { /* The macro call is in source */
+ s_line_col.line = src_line;
+ s_line_col.col = infile->bptr - infile->buffer - 1;
+ /* '-1': bptr is one byte passed beginning of the token */
+ get_src_location( & s_line_col);
+ (*locp)->start_line = s_line_col.line;
+ (*locp)->start_col = s_line_col.col;
+ e_line_col = s_line_col;
+ /* Save the location, */
+ /* also for end of arg in case of empty arg*/
+ ACE_OS::memset( n_paren, 0, sizeof (n_paren));
+ }
+ *argp++ = MAC_INF;
+ *argp++ = MAC_ARG_START;
+ *argp++ = (m_num / UCHARMAX) + 1;
+ *argp++ = (m_num % UCHARMAX) + 1;
+ *argp++ = nargs + 1;
+ /* Argument number internally starts at 1 */
+ if (mgc_prefix->magic_start) {
+ /* Copy the preceding magics, if any */
+ len = mgc_prefix->magic_end - mgc_prefix->magic_start;
+ ACE_OS::memcpy( argp, mgc_prefix->magic_start, len);
+ argp += len;
+ }
+ }
+ ACE_OS::memset( &mgc_seq, 0, sizeof (MAGIC_SEQ));
+ }
while (1) {
- if (c == '\n' /* In control line */
- || c == RT_END) { /* Boundary of rescan (in STD mode) */
- if (c == '\n')
- unget_ch();
- break;
+ if (c == '\n' /* In control line */
+ || c == RT_END) { /* Boundary of rescan (in STD mode) */
+ if (c == '\n')
+ unget_ch();
+ break;
+ }
+ if (trace_arg) { /* Save the location */
+ s_line_col.line = src_line; /* of the token */
+ s_line_col.col = infile->bptr - infile->buffer - 1;
+ }
+ token_type = scan_token( c, (prevp = argp, &argp), arg_end);
+ /* Scan the next token */
+ switch (c) {
+ case '(': /* Worry about balance */
+ paren++; /* To know about commas */
+ break;
+ case ')': /* Other side too */
+ if (paren-- == var_arg) /* At the end? */
+ end_an_arg = TRUE; /* Else more to come */
+ if (trace_arg) {
+ if (num_paren && paren == n_paren[ num_paren].n_par) {
+ /* Maybe corresponding parentheses for the macro in arg */
+ int src_n;
+ src_n = n_paren[ num_paren].n_in_src;
+ in_src[ src_n].end_line = s_line_col.line;
+ in_src[ src_n].end_col = s_line_col.col + 1;
+ num_paren--;
+ }
}
- token_type = scan_token( c, (prevp = argp, &argp), arg_end);
- /* Scan the next token */
- switch (c) {
- case '(' : /* Worry about balance */
- paren++; /* To know about commas */
- break;
- case ')' : /* Other side too */
- if (paren-- == var_arg) /* At the end? */
- end_an_arg = TRUE; /* Else more to come */
- break;
- case ',' :
- if (paren == 0) /* Comma delimits arg */
- end_an_arg = TRUE;
- break;
- case CHAR_EOF: /* Unexpected EOF */
- return 0;
- default : /* Any token */
- if (mcpp_mode == STD && ! compat_mode && token_type == NAM
- && c != IN_SRC && c != DEF_MAGIC && infile->fp) {
- ACE_OS::memmove( prevp + 1, prevp, (size_t) (argp++ - prevp));
- *prevp = IN_SRC;
- } /* Mark that the name is read from source file */
+ break;
+ case ',':
+ if (paren == 0) /* Comma delimits arg */
+ end_an_arg = TRUE;
+ break;
+ case MAC_INF : /* Copy magics as they are */
+ switch (*argp++ = get_ch()) {
+ case MAC_ARG_START :
+ *argp++ = get_ch();
+ /* Fall through */
+ case MAC_CALL_START :
+ *argp++ = get_ch();
+ *argp++ = get_ch();
+ break;
+ case MAC_ARG_END :
+ if (! option_flags.v)
break;
- } /* End of switch */
+ else
+ *argp++ = get_ch();
+ /* Fall through */
+ case MAC_CALL_END :
+ if (option_flags.v) {
+ *argp++ = get_ch();
+ *argp++ = get_ch();
+ }
+ break;
+ }
+ break;
+ case CHAR_EOF : /* Unexpected EOF */
+ return 0;
+ default : /* Any token */
+ if (mcpp_mode == STD && token_type == NAM
+ && c != IN_SRC && c != DEF_MAGIC && infile->fp) {
+ len = trace_arg ? IN_SRC_LEN : 1;
+ ACE_OS::memmove( prevp + len, prevp, (size_t) (argp - prevp));
+ argp += len;
+ *prevp = IN_SRC;
+ /* Mark that the name is read from source file */
+ if (trace_arg) {
+ DEFBUF * defp;
+
+ defp = look_id( prevp + IN_SRC_LEN);
+ if (in_src_num >= MAX_IN_SRC_NUM - 1) {
+ cerror(
+ "Too many names in arguments tracing %s" /* _E_ */
+ , defp ? defp->name : null, 0L, 0);
+ return 0;
+ } else if (++in_src_num > max_in_src_num) {
+ size_t old_len;
+ old_len = sizeof (LOCATION) * max_in_src_num;
+ /* Enlarge the array */
+ in_src = (LOCATION *) xrealloc( (char *) in_src
+ , old_len * 2);
+ /* Have to initialize the enlarged area */
+ ACE_OS::memset( in_src + max_in_src_num, 0, old_len);
+ max_in_src_num *= 2;
+ }
+ /* Insert the identifier number in 2-bytes-encoding */
+ *(prevp + 1) = (in_src_num / UCHARMAX) + 1;
+ *(prevp + 2) = (in_src_num % UCHARMAX) + 1;
+ if (defp) { /* Macro name in arg */
+ in_src[ in_src_num].start_line = s_line_col.line;
+ in_src[ in_src_num].start_col = s_line_col.col;
+ /* For object-like macro, also for function-like */
+ /* macro in case of parens are not found. */
+ in_src[ in_src_num].end_line = s_line_col.line;
+ in_src[ in_src_num].end_col
+ = infile->bptr - infile->buffer;
+ if (defp->nargs >= 0) {
+ /* Function-like macro: search parentheses */
+ n_paren[ ++num_paren].n_par = paren;
+ n_paren[ num_paren].n_in_src = in_src_num;
+ }
+ } /* Else in_src[ in_src_num].* are 0L */
+ }
+ }
+ break;
+ } /* End of switch */
- if (end_an_arg) /* End of an argument */
- break;
- c = squeeze_ws( &argp); /* To the next token */
+ if (end_an_arg) /* End of an argument */
+ break;
+ if (trace_arg) { /* Save the location */
+ e_line_col.line = src_line; /* before spaces */
+ e_line_col.col = infile->bptr - infile->buffer;
+ }
+ ACE_OS::memset( &mgc_seq, 0, sizeof (MAGIC_SEQ));
+ c = squeeze_ws( &argp, 0, &mgc_seq);
+ /* To the next token */
} /* Collected an argument*/
*argp = EOS;
- *seqp = mcpp_stpcpy( *seqp, *argpp); /* Save the sequence */
+ *seqp = stpcpy( *seqp, *argpp); /* Save the sequence */
if (c == '\n' || c == RT_END)
- return -1; /* Unterminated macro */
+ return -1; /* Unterminated macro */
argp--; /* Remove the punctuator*/
- while (*argpp < argp && *(argp - 1) == ' ')
- --argp; /* Remove trailing blanks */
- if (mcpp_mode == STD)
- *argp++ = RT_END; /* For rescan() */
+ if (mgc_seq.space)
+ --argp; /* Remove trailing space */
+ if (mcpp_mode == STD) {
+ if (trace_macro && m_num) {
+ if (trace_arg) { /* Location of end of an arg */
+ get_src_location( & e_line_col);
+ (*locp)->end_line = e_line_col.line;
+ (*locp)->end_col = e_line_col.col;
+ }
+ (*locp)++; /* Advance pointer even if !trace_arg */
+ *argp++ = MAC_INF;
+ *argp++ = MAC_ARG_END;
+ if (option_flags.v) {
+ *argp++ = (m_num / UCHARMAX) + 1;
+ *argp++ = (m_num % UCHARMAX) + 1;
+ *argp++ = nargs + 1;
+ *argp = EOS;
+ *argpp = chk_magic_balance( *argpp, argp, TRUE, FALSE);
+ /* Check a stray magic caused by abnormal macro */
+ /* and move it to an edge if found. */
+ }
+ }
+ *argp++ = RT_END; /* For rescan() */
+ }
*argp++ = EOS; /* Terminate an argument*/
*argpp = argp;
return c;
-}
-
-static int squeeze_ws(
- char ** out /* pointer to output pointer */
-)
-/*
- * Squeeze white spaces to one space.
- * White spaces are ' ' ('\t', '\r', '\v', '\f' converted to ' ' by get_ch()),
- * and '\n' unless in_directive is set.
- * COM_SEP is skipped. TOK_SEPs are squeezed to one TOK_SEP.
- * If white spaces are found and 'out' is not 0, write a space to *out and
- * increment *out.
- * Return the next character.
- */
-{
+ }
+
+ static int squeeze_ws(
+ char ** out, /* Pointer to output pointer */
+ char ** endf, /* Pointer to end of infile data*/
+ MAGIC_SEQ * mgc_seq /* Sequence of MAC_INFs and space */
+ /* mgc_seq should be initialized in the calling routine */
+ )
+ /*
+ * Squeeze white spaces to one space.
+ * White spaces are ' ' (and possibly '\t', when keep_spaces == TRUE. Note
+ * that '\r', '\v', '\f' have been already converted to ' ' by get_ch()),
+ * and '\n' unless in_directive is set.
+ * COM_SEP is skipped. TOK_SEPs are squeezed to one TOK_SEP.
+ * Copy MAC_INF and its sequences as they are.
+ * If white spaces are found and 'out' is not 0, write a space to *out and
+ * increment *out.
+ * Record start and end of MAC_INF sequences and whether space is found or
+ * not for a convenience of get_an_arg().
+ * Return the next character.
+ */
+ {
int c;
int space = 0;
- FILEINFO * file = infile;
int tsep = 0;
+ FILEINFO * file = infile;
FILE * fp = infile->fp;
-
- while ((char_type[ c = get_ch()] & SPA) && (! standard
- || (mcpp_mode == POST_STD && file == infile)
- || (mcpp_mode == STD
- && ((macro_line != 0 && macro_line != MACRO_ERROR)
- || file == infile)))) {
- if (c == '\n') {
- if (in_directive) /* If scanning control line */
- break; /* do not skip newline. */
- else
- wrong_line = TRUE;
- }
- if (c == TOK_SEP) {
- if (mcpp_mode == STD)
- tsep++;
- continue; /* Skip COM_SEP in OLD_PREP mode */
+ int end_of_file = (out && endf) ? FALSE : TRUE;
+
+ while (((char_type[ c = get_ch()] & SPA) && (! standard
+ || (mcpp_mode == POST_STD && file == infile)
+ || (mcpp_mode == STD
+ && ((macro_line != 0 && macro_line != MACRO_ERROR)
+ || file == infile))))
+ || c == MAC_INF) {
+ if (! end_of_file && file != infile) { /* Infile has been read over*/
+ *endf = *out; /* Remember the location */
+ end_of_file = TRUE;
+ }
+ if (c == '\n' && in_directive) /* If scanning control line */
+ break; /* do not skip newline. */
+ switch (c) {
+ case '\n':
+ space++;
+ wrong_line = TRUE;
+ break;
+ case TOK_SEP:
+ if (mcpp_mode == STD)
+ tsep++;
+ continue; /* Skip COM_SEP in OLD_PREP mode */
+ case MAC_INF : /* Copy magics as they are, or skip */
+ if (mgc_seq && ! mgc_seq->magic_start)
+ mgc_seq->magic_start = *out;
+ /* First occurence of magic seq */
+ if (out)
+ *(*out)++ = c;
+ c = get_ch();
+ if (out)
+ *(*out)++ = c;
+ switch (c) {
+ case MAC_ARG_START :
+ c = get_ch();
+ if (out)
+ *(*out)++ = c;
+ /* Fall through */
+ case MAC_CALL_START :
+ c = get_ch();
+ if (out)
+ *(*out)++ = c;
+ c = get_ch();
+ if (out)
+ *(*out)++ = c;
+ break;
+ case MAC_ARG_END :
+ if (! option_flags.v) {
+ break;
+ } else {
+ c = get_ch();
+ if (out)
+ *(*out)++ = c;
+ /* Fall through */
+ }
+ case MAC_CALL_END :
+ if (option_flags.v) {
+ c = get_ch();
+ if (out)
+ *(*out)++ = c;
+ c = get_ch();
+ if (out)
+ *(*out)++ = c;
+ }
+ break;
}
+ if (mgc_seq) /* Remember end of last magic seq */
+ mgc_seq->magic_end = *out;
+ break;
+ default:
space++;
+ break;
+ }
}
if (out) {
- if (space) /* Write a space to output pointer */
- *(*out)++ = ' '; /* and increment the pointer. */
- if (tsep)
- *(*out)++ = TOK_SEP;
+ if (space) { /* Write a space to output pointer */
+ *(*out)++ = ' '; /* and increment the pointer. */
+ if (mgc_seq)
+ mgc_seq->space = TRUE;
+ }
+ if (tsep && !space) /* Needs to preserve token separator*/
+ *(*out)++ = TOK_SEP;
+ **out = EOS;
}
if (mcpp_mode == POST_STD && file != infile) {
- unget_ch(); /* Arguments cannot cross "file"s */
- c = fp ? CHAR_EOF : RT_END; /* EOF is diagnosed by at_eof() */
+ unget_ch(); /* Arguments cannot cross "file"s */
+ c = fp ? CHAR_EOF : RT_END; /* EOF is diagnosed by at_eof() */
} else if (mcpp_mode == STD && macro_line == MACRO_ERROR
- && file != infile) { /* EOF */
- unget_ch(); /* diagnosed by at_eof() or only */
- c = CHAR_EOF; /* name of a function-like macro. */
+ && file != infile) { /* EOF */
+ unget_ch(); /* diagnosed by at_eof() or only */
+ c = CHAR_EOF; /* name of a function-like macro. */
} /* at_eof() resets macro_line on error */
return c; /* Return the next character */
-}
+ }
-static void skip_macro( void)
-/*
- * Clear the stacked (i.e. half-expanded) macro, called on macro error.
- */
-{
+ static void skip_macro( void)
+ /*
+ * Clear the stacked (i.e. half-expanded) macro, called on macro error.
+ */
+ {
if (infile == 0) /* End of input */
- return;
+ return;
if (infile->fp) /* Source file */
- return;
+ return;
while (infile->fp == 0) { /* Stacked stuff */
- infile->bptr += ACE_OS::strlen( infile->bptr);
- get_ch(); /* To the parent "file" */
+ infile->bptr += ACE_OS::strlen( infile->bptr);
+ get_ch(); /* To the parent "file" */
}
unget_ch();
-}
-
-static void diag_macro(
- int severity, /* Error or warning */
- const char * format,
- const char * arg1,
- long arg2,
- const char * arg3,
- const DEFBUF * defp1, /* Macro causing the problem 1 */
- const DEFBUF * defp2 /* 2 */
-)
-/*
- * Supplement macro information for diagnostic.
- */
-{
+ }
+
+ static void diag_macro(
+ int severity, /* Error or warning */
+ const char * format,
+ const char * arg1,
+ long arg2,
+ const char * arg3,
+ const DEFBUF * defp1, /* Macro causing the problem 1 */
+ const DEFBUF * defp2 /* 2 */
+ )
+ /*
+ * Supplement macro information for diagnostic.
+ */
+ {
if (defp1 && defp1->name != macro_name)
- expanding( defp1->name, FALSE);
- /* Inform of the problematic macro call */
+ expanding( defp1->name, FALSE);
+ /* Inform of the problematic macro call */
if (defp2 && defp2->name != macro_name)
- expanding( defp2->name, FALSE);
+ expanding( defp2->name, FALSE);
if (severity == CERROR)
- cerror( format, arg1, arg2, arg3);
+ cerror( format, arg1, arg2, arg3);
else
- cwarn( format, arg1, arg2, arg3);
-}
-
-static void dump_args(
- const char * why,
- int nargs,
- char ** arglist
-)
-/*
- * Dump arguments list.
- */
-{
+ cwarn( format, arg1, arg2, arg3);
+ }
+
+ static void dump_args(
+ const char * why,
+ int nargs,
+ const char ** arglist
+ )
+ /*
+ * Dump arguments list.
+ */
+ {
int i;
mcpp_fprintf( DBG, "dump of %d actual arguments %s\n", nargs, why);
for (i = 0; i < nargs; i++) {
- mcpp_fprintf( DBG, "arg[%d]", i + 1);
- dump_string( 0, arglist[ i]);
+ mcpp_fprintf( DBG, "arg[%d]", i + 1);
+ dump_string( 0, arglist[ i]);
}
-}
+ }
diff --git a/TAO/TAO_IDL/contrib/mcpp/internal.H b/TAO/TAO_IDL/contrib/mcpp/internal.H
index b375f4ec6cc..50d80097fc1 100644
--- a/TAO/TAO_IDL/contrib/mcpp/internal.H
+++ b/TAO/TAO_IDL/contrib/mcpp/internal.H
@@ -1,5 +1,5 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
* All rights reserved.
*
* Some parts of this code are derived from the public domain software
@@ -38,45 +38,57 @@
#error "system.H" must be included prior to "internal.H"
#endif
+#include "mcpp_out.h"
+
+#ifdef MCPP_LIB
#include "mcpp_lib.h" /* External interface when used as library */
+#endif
#define EOS '\0' /* End of string */
#define CHAR_EOF 0 /* Returned by get_ch() on eof */
#define VA_ARGS (UCHARMAX + 1) /* Signal of variable arguments */
-#define GVA_ARGS (VA_ARGS * 2) /* GCC3-specific variable args */
+#define GVA_ARGS (VA_ARGS * 2) /* GCC-specific variable args */
#define AVA_ARGS (VA_ARGS | GVA_ARGS)/* Any variable arguments */
#define DEF_PRAGMA (-1 - AVA_ARGS) /* _Pragma() pseudo-macro */
#define DEF_NOARGS (-2 - AVA_ARGS) /* #define foo vs #define foo() */
+#define DEF_NOARGS_PREDEF_OLD (DEF_NOARGS - 1)
+ /* Compiler-predefined macro without leading '_' */
+#define DEF_NOARGS_PREDEF (DEF_NOARGS - 2)/* Compiler-predefined macro */
+#define DEF_NOARGS_STANDARD (DEF_NOARGS - 3)/* Standard predefined macro */
+#define DEF_NOARGS_DYNAMIC (DEF_NOARGS - 4)/* Standard dynamically defined */
/*
- * The following may need to change if the host system doesn't use ASCII.
* These magic characters must be control characters which can't be used
* in source file.
*/
+/* for '#pragma MCPP debug macro_call' and -K option in STD mode. */
+#define MAC_INF 0x18 /* Magic for macro informations */
/* In STD and POST_STD modes (IN_SRC and TOK_SEP are for STD mode only). */
-#define DEF_MAGIC 0x19 /* Magic for #defines */
+#define DEF_MAGIC 0x19 /* Magic to prevent recursive expansion */
#define IN_SRC 0x1A /* Magic of name from source */
#define RT_END 0x1C /* Magic of macro rescan boundary */
#define ST_QUOTE 0x1D /* Magic for stringizing */
#define CAT 0x1E /* Token concatenation delim. */
#define TOK_SEP 0x1F /* Magic to wrap expanded macro */
/* In OLD_PREP mode. */
-#define COM_SEP 0x1F /* Comment as token separator */
+#define COM_SEP 0x1F /* Comment of 0-length */
-#define MAC_PARM 0x7F /* Macro formals signal */
+#define MAC_PARM 0x7F /* Macro parameter signal */
/* Special character types */
#define LET 1 /* Letter (alphabet and _) */
#define DIG 2 /* Digit */
#define DOT 4 /* . might start a number */
#define PUNC 8 /* Punctuators and operators */
-#define QUO 16 /* Both flavors of quotation ",'*/
-#define SPA 32 /* White spaces */
+#define QUO 0x10 /* Both flavors of quotation ",'*/
+#define SPA 0x20 /* White spaces */
+#define HSP 0x40
+ /* Horizontal white spaces (' ', '\t', TOK_SEP) */
/*
* Codes for operators used in #if expression.
- * The value is stored in 'openum'.
+ * The value of the scanned operator is stored in 'openum'.
*/
#define INV 0 /* Invalid, must be zero */
#define OP_EOE INV /* End of expression */
@@ -84,7 +96,7 @@
#define OP_LPA 2 /* ( */
/* The following are unary. */
#define FIRST_UNOP OP_PLU /* First unary operator */
-#define OP_PLU 3 /* + (ANSI Standard) */
+#define OP_PLU 3 /* + */
#define OP_NEG 4 /* - */
#define OP_COM 5 /* ~ */
#define OP_NOT 6 /* ! */
@@ -166,20 +178,33 @@
#define SEP 73 /* Token separator or magics */
/*
- * The following are values of 'debug' variable which is set by the
- * arguments of #pragma MCPP debug directive.
+ * The following are values of 'mcpp_debug' variable which is set by the
+ * arguments of '#pragma MCPP debug' directive.
*/
#define PATH 1
#define TOKEN 2
#define EXPAND 4
-#define IF 8
-#define EXPRESSION 16
-#define GETC 32
-#define MEMORY 64
+#define MACRO_CALL 8
+#define IF 16
+#define EXPRESSION 32
+#define GETC 64
+#define MEMORY 128
+
+/* MAC_* represent macro information types for -K option. */
+#define MAC_CALL_START 1
+#define MAC_CALL_END 2
+#define MAC_ARG_START 3
+#define MAC_ARG_END 4
/* MB_ERROR signals wrong multi-byte character sequence. */
#define MB_ERROR 0x8000
+#if defined(MCPP_LIB) && HOST_COMPILER == GNUC \
+ && (SYS_FAMILY == SYS_UNIX && SYSTEM != SYS_CYGWIN)
+ /* For GCC 4.* on UNIXes */
+//#pragma GCC visibility push( hidden) /* Hide these names from outside */
+#endif
+
/*
* The DEFBUF structure stores information about #defined macros.
* Note that DEFBUF->parmnames is parameter names catenated with commas,
@@ -191,8 +216,7 @@ typedef struct defbuf {
short nargs; /* Number of parameters */
char * parmnames; /* -> Parameter names catenated by ',' */
char * repl; /* Pointer to replacement text */
- const char * dir; /* The macro is defined in */
- const char * fname; /* dir/fname source file */
+ const char * fname; /* Macro is defined in the source file */
long mline; /* at the line. */
char push; /* Push level indicator */
char name[1]; /* Macro name */
@@ -209,11 +233,15 @@ typedef struct fileinfo {
long pos; /* Position next to #include */
struct fileinfo * parent; /* Link to includer */
struct ifinfo * initif; /* Initial ifstack (return there on EOF)*/
+ int sys_header; /* System header file or not */
+ int include_opt; /* Specified by -include option */
const char ** dirp; /* Include directory the file resides */
+ const char * src_dir; /* Directory of source file */
const char * real_fname; /* Real file name */
+ const char * full_fname; /* Real full path list */
char * filename; /* File/macro name (maybe changed) */
char * buffer; /* Buffer of current input line */
-#if MCPP_LIB
+#ifdef MCPP_LIB
/* Save output functions during push/pop of #includes */
int (* last_fputc) ( int c, OUTDEST od);
int (* last_fputs) ( const char * s, OUTDEST od);
@@ -256,6 +284,12 @@ typedef struct val_sign {
#define UNSIGNED 0
#define VAL_ERROR (-1)
+/* LINE_COL stores information of line and column data */
+typedef struct line_col {
+ long line;
+ size_t col;
+} LINE_COL;
+
/* Value of macro_line on macro call error. */
#define MACRO_ERROR (-1L)
@@ -267,7 +301,7 @@ typedef struct val_sign {
#define INSERT_SEP 1 /* Next get_ch() insert a separator */
#define INSERTED_SEP 2 /* Last get_ch() Inserted a separator */
-#define str_eq(s1, s2) (strcmp(s1, s2) == 0)
+#define str_eq(s1, s2) (ACE_OS::strcmp(s1, s2) == 0)
#ifndef IO_SUCCESS
#define IO_SUCCESS 0
@@ -276,36 +310,43 @@ typedef struct val_sign {
#define IO_ERROR (errno ? errno : 1)
#endif
-/* For conv_case() */
-#define UPPER 1 /* To upper */
-#define LOWER 0 /* To lower */
-
/*
* Externs
*/
+
+/* The minimum translation limits specified by the Standards. */
+extern struct std_limits_ {
+ long str_len; /* Least maximum of string len. */
+ size_t id_len; /* Least maximum of ident len. */
+ int n_mac_pars; /* Least maximum of num of pars.*/
+ int exp_nest; /* Least maximum of expr nest */
+ int blk_nest; /* Least maximum of block nest */
+ int inc_nest; /* Least maximum of include nest*/
+ long n_macro; /* Least maximum of num of macro*/
+ long line_num; /* Maximum source line number */
+} std_limits;
+/* The boolean flags specified by the execution options. */
+extern struct option_flags_ {
+ int c; /* -C option (keep comments) */
+ int k; /* -k option (keep white spaces)*/
+ int z; /* -z option (no-output of included file) */
+ int p; /* -P option (no #line output) */
+ int q; /* -Q option (diag to mcpp.err) */
+ int v; /* -v option (verbose) */
+ int trig; /* -3 option (toggle trigraphs) */
+ int dig; /* -2 option (toggle digraphs) */
+ int lang_asm; /* -a option (assembler source) */
+ int no_source_line; /* Do not output line in diag. */
+ int dollar_in_name; /* Allow $ in identifiers */
+} option_flags;
+
extern int mcpp_mode; /* Mode of preprocessing */
-extern int cflag; /* -C option (keep comments) */
-extern int zflag; /* -Z option (no-output of included file) */
-extern int pflag; /* -P option (no #line output) */
-extern int qflag; /* -Q option (diag to mcpp.err) */
-extern int trig_flag; /* -3 option (toggle trigraphs) */
-extern int dig_flag; /* -2 option (toggle digraphs) */
extern int stdc_val; /* Value of __STDC__ */
extern long stdc_ver; /* Value of __STDC_VERSION__ */
extern long cplus_val; /* Value of __cplusplus for C++ */
-extern int stdc2; /* cplus_val or stdc_ver >= 199901L */
+extern int stdc2; /* cplus_val or (stdc_ver >= 199901L) */
extern int stdc3; /* (stdc_ver or cplus_val) >= 199901L */
extern int standard; /* mcpp_mode is STD or POST_STD */
-extern long str_len_min; /* Least maxmum of string len. */
-extern size_t id_len_min; /* Least maximum of ident len. */
-extern int n_mac_pars_min; /* Least maximum of num of pars.*/
-extern int exp_nest_min; /* Least maximum of expr nest */
-extern int blk_nest_min; /* Least maximum of block nest */
-extern int inc_nest_min; /* Least maximum of include nest*/
-extern long n_macro_min; /* Least maximum of num of macro*/
-extern long line_limit; /* Maximum source line number */
-extern int has_pragma; /* '_Pragma()' has been expanded*/
-extern int lang_asm; /* -a option (assembler source) */
extern int std_line_prefix; /* #line in C source style */
extern int warn_level; /* Level of warning */
extern int errors; /* Error counter */
@@ -313,6 +354,7 @@ extern long src_line; /* Current source line number */
extern int wrong_line; /* Force #line to compiler */
extern int newlines; /* Count of blank lines */
extern int keep_comments; /* Don't remove comments */
+extern int keep_spaces; /* Don't remove white spaces */
extern int include_nest; /* Nesting level of #include */
extern const char * null; /* "" string for convenience */
extern const char ** inc_dirp; /* Directory of #includer */
@@ -322,13 +364,12 @@ extern int in_directive; /* In process of #directive */
extern int in_define; /* In #define line */
extern int in_getarg; /* Collecting arguments of macro*/
extern int in_include; /* In #include line */
-extern int compat_mode; /* Compatible macro recursion */
+extern int in_if; /* In #if and non-skipped expr. */
extern long macro_line; /* Line number of macro call */
extern char * macro_name; /* Currently expanding macro */
extern int openum; /* Number of operator or punct. */
extern IFINFO * ifptr; /* -> current ifstack item */
extern FILEINFO * infile; /* Current input file or macro */
-extern int no_source_line; /* Do not output line in diag. */
extern FILE * fp_in; /* Input stream to preprocess */
extern FILE * fp_out; /* Output stream preprocessed */
extern FILE * fp_err; /* Diagnostics stream */
@@ -336,34 +377,29 @@ extern FILE * fp_debug; /* Debugging information stream */
extern int insert_sep; /* Inserted token separator flag*/
extern int mkdep; /* Output source file dependency*/
extern int mbchar; /* Encoding of multi-byte char */
-extern int mbmask; /* Char type other than mbchar */
-extern int mbstart; /* 1st byte of mbchar (or shift)*/
+extern int mbchk; /* Possible multi-byte char */
extern int bsl_in_mbchar; /* 2nd byte of mbchar has '\\' */
extern int bsl_need_escape;/* '\\' in mbchar should be escaped */
extern int mcpp_debug; /* Class of debug information */
extern long in_asm; /* In #asm - #endasm block */
extern jmp_buf error_exit; /* Exit on fatal error */
+extern char * cur_fullname; /* Full name of current source */
+extern short * char_type; /* Character classifier */
extern char * workp; /* Free space in work[] */
extern char * const work_end; /* End of work[] buffer */
extern char identifier[]; /* Lastly scanned name */
-extern short * char_type; /* Character classifier */
extern IFINFO ifstack[]; /* Information of #if nesting */
-extern char cur_fullname[]; /* Full name of current source */
extern char work_buf[];
/* Temporary buffer for directive line and macro expansion */
/* main.c */
-extern void sharp( void);
- /* Output # line number */
extern void un_predefine( int clearall);
/* Undefine predefined macros */
-extern void undef_a_predef( const char * name);
- /* Remove a non-standard predef */
/* directive.c */
extern void directive( void);
- /* Process #directive lines */
-extern DEFBUF * do_define( int ignore_redef);
+ /* Process #directive line */
+extern DEFBUF * do_define( int ignore_redef, int predefine);
/* Do #define directive */
extern DEFBUF * look_id( const char * name);
/* Look for a #define'd thing */
@@ -373,14 +409,15 @@ extern DEFBUF * look_and_install( const char * name, int numargs
, const char * parmnames, const char * repl);
/* Look and insert macro def. */
extern DEFBUF * install_macro( const char * name, int numargs
- , const char * parmnames, const char * repl, DEFBUF ** prevp, int cmp);
- /* Install to symbol table */
+ , const char * parmnames, const char * repl, DEFBUF ** prevp, int cmp
+ , int predefine);
+ /* Install a def to symbol table*/
extern int undefine( const char * name);
/* Delete from symbol table */
extern void dump_a_def( const char * why, const DEFBUF * dp, int newdef
- , int dDflag, int comment, FILE * fp);
+ , int comment, FILE * fp);
/* Dump a specific macro def */
-extern void dump_def( int dDflag, int comment);
+extern void dump_def( int comment, int K_opt);
/* Dump current macro defs */
/* eval.c */
@@ -390,9 +427,10 @@ extern VAL_SIGN * eval_num( const char * nump);
/* Evaluate preprocessing number*/
/* expand.c */
-extern char * (* expand_macro)( DEFBUF * defp, char * out, char * out_end);
+extern char * (* expand_macro)( DEFBUF * defp, char * out, char * out_end
+ , LINE_COL line_col, int * pragma_op);
/* Expand a macro completely */
-extern void expand_init( void);
+extern void expand_init( int compat, int strict_ansi);
/* Initialize expand_macro() */
extern DEFBUF * is_macro( char ** cp);
/* The sequence is a macro call?*/
@@ -406,6 +444,8 @@ extern void mb_init( void);
/* Initialize mbchar variables */
extern uexpr_t mb_eval( char ** seq_pp);
/* Evaluate mbchar in #if */
+extern int last_is_mbchar( const char * in, int len);
+ /* The line ends with MBCHAR ? */
/* support.c */
extern int get_unexpandable( int c, int diag);
@@ -436,12 +476,15 @@ extern FILEINFO * unget_string( const char * text, const char * name);
/* Push back the string to input*/
extern char * save_string( const char * text);
/* Stuff string in malloc mem. */
-extern FILEINFO * get_file( const char * name, size_t bufsize);
+extern FILEINFO * get_file( const char * name, const char * src_dir
+ , const char * fullname, size_t bufsize, int include_opt);
/* New FILEINFO initialization */
extern char * (xmalloc)( size_t size);
/* Get memory or die */
extern char * (xrealloc)( char * ptr, size_t size);
/* Reallocate memory or die */
+extern LINE_COL * get_src_location( LINE_COL * p_line_col);
+ /* Get location on source file */
extern void cfatal( const char * format, const char * arg1, long arg2
, const char * arg3);
/* Print a fatal error and exit */
@@ -456,28 +499,27 @@ extern void dump_string( const char * why, const char * text);
extern void dump_unget( const char * why);
/* Dump all ungotten junk */
/* Support for alternate output mechanisms (e.g. memory buffers) */
-extern int (* mcpp_fputc)( int c, OUTDEST od);
-extern int (* mcpp_fputs)( const char * s, OUTDEST od);
-extern int (* mcpp_fprintf)( OUTDEST od, const char *format, ...);
+extern int (* mcpp_fputc)( int c, OUTDEST od),
+ (* mcpp_fputs)( const char * s, OUTDEST od),
+ (* mcpp_fprintf)( OUTDEST od, const char * format, ...);
/* system.c */
extern void do_options( int argc, char ** argv, char ** in_pp
, char ** out_pp);
/* Process command line args */
+extern void init_sys_macro( void);
+ /* Define system-specific macro */
extern void at_start( void);
/* Commands prior to main input */
extern void put_depend( const char * filename);
/* Output source dependency line*/
extern int do_include( int next);
/* Process #include directive */
-extern void add_file( FILE * fp, const char * filename);
+extern void add_file( FILE * fp, const char * src_dir
+ , const char * filename, const char * fullname, int include_opt);
/* Chain the included file */
-extern void cur_file( void);
- /* Output current source fname */
-extern void conv_case( char * name, char * lim, int upper);
- /* Convert to upper/lower case */
-extern void put_info( void);
- /* Putout compiler-specific info*/
+extern void sharp( FILEINFO * sharp_file, int marker);
+ /* Output # line number */
extern void do_pragma( void);
/* Process #pragma directive */
extern void put_asm( void);
@@ -488,11 +530,16 @@ extern void at_end( void);
/* Do the final commands */
extern void print_heap( void);
/* Print blocks of heap memory */
+#if defined(HOST_HAVE_STPCPY) && HOST_HAVE_STPCPY == FALSE
+extern char * stpcpy( char * dest, const char * src);
+ /* Non-Standard library function*/
+#endif
-#if MCPP_LIB /* Setting to use mcpp as a subroutine */
+#ifdef MCPP_LIB /* Setting to use mcpp as a subroutine */
/* directive.c */
extern void clear_symtable( void);
/* Free all macro definitions */
+/* system.c */
extern void clear_filelist( void);
/* Free filename and directory list */
/* The following 5 functions are to Initialize static variables. */
@@ -504,9 +551,12 @@ extern void init_eval( void);
extern void init_support( void);
/* system.c */
extern void init_system( void);
-#if NEED_GETOPT
-/* lib.c */
-extern void init_lib( void);
+
+#if HOST_COMPILER == GNUC && (SYS_FAMILY == SYS_UNIX && SYSTEM != SYS_CYGWIN)
+//#pragma GCC visibility pop
#endif
#endif
+///#if defined(HOST_HAVE_STPCPY) && HOST_HAVE_STPCPY == FALSE
+//extern char * stpcpy( char * dest, const char * src);
+//#endif
diff --git a/TAO/TAO_IDL/contrib/mcpp/lib.cpp b/TAO/TAO_IDL/contrib/mcpp/lib.cpp
index fac293a02f9..edef3257b05 100644
--- a/TAO/TAO_IDL/contrib/mcpp/lib.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/lib.cpp
@@ -43,7 +43,7 @@ int opterr = 1;
int optopt;
char * optarg;
-#if MCPP_LIB
+#ifdef MCPP_LIB
void init_lib( void)
{
optind = 1;
@@ -109,7 +109,7 @@ int getopt(
#endif
-#if ! HOST_HAVE_STPCPY
+#if defined(HOST_HAVE_STPCPY) && HOST_HAVE_STPCPY == FALSE
char * mcpp_stpcpy(
char * dest,
diff --git a/TAO/TAO_IDL/contrib/mcpp/main.cpp b/TAO/TAO_IDL/contrib/mcpp/main.cpp
index 31ac2de34bb..c87eb156de8 100644
--- a/TAO/TAO_IDL/contrib/mcpp/main.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/main.cpp
@@ -1,5 +1,5 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
* All rights reserved.
*
* Some parts of this code are derived from the public domain software
@@ -42,21 +42,36 @@
#include "internal.H"
#endif
-#include "ace/Log_Msg.h"
-#include "ace/OS_NS_stdio.h"
-#include "ace/OS_NS_stdlib.h"
-
/* Function pointer to expand_macro() functions. */
- char * (*expand_macro)( DEFBUF * defp, char * out, char * out_end);
+ char * (*expand_macro)( DEFBUF * defp, char * out, char * out_end
+ , LINE_COL line_col, int * pragma_op);
+
+ /* The boolean flags specified by the execution options. */
+ struct option_flags_ option_flags = {
+ FALSE, /* c: -C (keep comments) */
+ FALSE, /* k: -k (keep horizontal white spaces) */
+ FALSE, /* z: -z (no output of included files) */
+ FALSE, /* p: -P (no #line output) */
+ FALSE, /* q: -Q (output diagnosis to mcpp.err) */
+ FALSE, /* v: -v (verbose, affects macro notification) */
+ TRIGRAPHS_INIT, /* trig: -3 (toggle trigraphs) */
+ DIGRAPHS_INIT, /* dig: -2 (toggle digraphs recognition) */
+ /*
+ * lang_asm allows the following non-standard features.
+ * 1. #non-directive.
+ * 2. <newline> in a string-literal.
+ * 3. invalid pp-token generated by ## operator.
+ * lang_asm is not available in POST_STD mode.
+ * When COMPILER == GNUC, -x assembler-with-cpp or -lang-asm options
+ * are used instead of -a.
+ */
+ FALSE, /* lang_asm: -a (assembler source) */
+ FALSE, /* no_source_line: -j (no source line in diag) */
+ FALSE /* dollar_in_name */
+ };
int mcpp_mode = STD; /* Mode of preprocessing */
- int cflag = FALSE; /* -C option (keep comments) */
- int zflag = FALSE; /* -i option (no output of included file) */
- int pflag = FALSE; /* -P option (no #line output) */
- int qflag = FALSE; /* -Q option (diagnostics to "mcpp.err") */
- int trig_flag = TRIGRAPHS_INIT; /* -3 option (trigraphs)*/
- int dig_flag = DIGRAPHS_INIT; /* -2 option (digraphs) */
long cplus_val = 0L; /* Value of __cplusplus for C++ */
long stdc_ver = 0L; /* Value of __STDC_VERSION__ */
int stdc_val = 0; /* Value of __STDC__ */
@@ -65,33 +80,10 @@
(cplus_val >= 199901L) specifies compatible mode to C99 (extended
feature of this preprocessor) */
int standard = TRUE; /* TRUE, if mcpp_mode is STD or POST_STD */
-
-/*
- * lang_asm allows the following non-standard features.
- * 1. #non-directive.
- * 2. <newline> in a string-literal.
- * 3. invalid pp-token generated by ## operator.
- * lang_asm is not available in POST_STD mode.
- */
- int lang_asm = FALSE; /* -a option (assembler source) */
int std_line_prefix = STD_LINE_PREFIX;
/* Output line and file information in C source style */
/*
- * Translation limits specified C90, C99 or C++.
- */
- /* The following three values are temporarily set for do_options() */
- long str_len_min = NBUFF; /* Least maxmum of string len. */
- size_t id_len_min = IDMAX; /* Least maximum of ident len. */
- int n_mac_pars_min = NMACPARS; /* Least maximum of num of params. */
- int exp_nest_min; /* Least maximum of expr nest */
- int blk_nest_min; /* Least maximum of block nest */
- int inc_nest_min; /* Least maximum of include nest*/
- long n_macro_min; /* Least maximum of num of macros */
-
- long line_limit; /* Maximum source line number */
-
-/*
* Commonly used global variables:
* src_line is the current input line number.
* wrong_line is set in many places when the actual output line is out of
@@ -103,24 +95,24 @@
* infile is the head of a linked list of input files (extended by
* #include and macros being expanded). 'infile' always points
* to the current file/macro. 'infile->parent' to the includer,
- * etc. 'infile->fp' is NULL if this input stream is a macro.
+ * etc. 'infile->fp' is NULL if this input stream is not a file.
* inc_dirp Directory of #includer with trailing PATH_DELIM. This points
* to one of incdir[] or to the current directory (represented as
- * "". This should not be 0.
+ * "". This should not be NULL.
*/
long src_line; /* Current line number */
int wrong_line; /* Force #line to compiler */
int newlines; /* Count of blank lines */
int errors = 0; /* Cpp error counter */
int warn_level = -1; /* Level of warning (have to initialize)*/
- FILEINFO * infile = 0; /* Current input file */
- int include_nest; /* Nesting level of #include */
+ FILEINFO * infile = NULL; /* Current input file */
+ int include_nest = 0; /* Nesting level of #include */
const char * null = ""; /* "" string for convenience */
const char ** inc_dirp; /* Directory of #includer */
const char * cur_fname; /* Current source file name */
/* cur_fname is not rewritten by #line directive */
- char cur_fullname[ FILENAMEMAX + 1];
- /* Full path of current source file (i.e. *inc_dirp/cur_fname) */
+ char * cur_fullname;
+ /* Full path of current source file (i.e. infile->full_fname) */
int no_source_line; /* Do not output line in diag. */
char identifier[ IDMAX + IDMAX/8]; /* Current identifier */
int mcpp_debug = 0; /* != 0 if debugging now */
@@ -134,6 +126,7 @@
int in_define = FALSE; /* TRUE scanning #define line */
int in_getarg = FALSE; /* TRUE collecting macro arguments */
int in_include = FALSE; /* TRUE scanning #include line */
+ int in_if = FALSE; /* TRUE scanning #if and in non-skipped expr. */
long in_asm = 0L; /* Starting line of #asm - #endasm block*/
/*
@@ -149,13 +142,6 @@
char * macro_name;
/*
- * compat_mode is set to TRUE, if recursive macro call is expanded more
- * than Standard's specification. This mode is compatible to GCC and
- * some other implementations.
- */
- int compat_mode = FALSE;
-
-/*
* openum is the return value of scan_op() in support.c.
*/
int openum;
@@ -172,25 +158,31 @@
int mkdep = 0;
/*
- * If zflag is TRUE, no_output is incremented when a file is #included,
- * and decremented when the file is finished.
+ * If option_flags.z is TRUE, no_output is incremented when a file is
+ * #included, and decremented when the file is finished.
* If no_output is larger than 0, processed files are not output, meanwhile
* the macros in the files are defined.
- * If mkdep != 0 && (mkdep & MD_FILE) == 0, no_output is set to 1 initially.
+ * If mkdep != 0 && (mkdep & MD_FILE) == 0, no_output is set to 1 initially.
*/
int no_output = 0;
/*
* keep_comments is set TRUE by the -C option. If TRUE, comments are written
- * directly to the output stream. This is needed if the output from cpp is
- * to be passed to lint (which uses commands embedded in comments). cflag
- * contains the permanent state of the -C flag. keep_comments is always
- * falsified when compilation is supressed by a false #if or when no_output
- * is TRUE.
+ * directly to the output stream. option_flags.c contains the permanent state
+ * of the -C option. keep_comments is always falsified when compilation is
+ * supressed by a false #if or when no_output is TRUE.
*/
int keep_comments = 0; /* Write out comments flag */
/*
+ * keep_spaces is set to TRUE by the -k option. If TRUE, spaces and tabs in
+ * an input line are written out to the output line without squeezing to one
+ * space. option_flags.k contains the permanent state of the -k option.
+ * keep_spaces is falsified when compilation is suppressed by a false #if.
+ */
+ int keep_spaces = 0; /* Keep white spaces of line*/
+
+/*
* ifstack[] holds information about nested #if's. It is always accessed via
* ifptr->stat. The information is as follows:
* WAS_COMPILING state of compiling flag at outer level.
@@ -215,23 +207,16 @@
*/
int insert_sep = NO_SEP;
-/*
- * has_pragma is set to TRUE so as to execute _Pragma() operator when the
- * psuedo macro _Pragma() is found.
- */
- int has_pragma = FALSE;
-
/* File pointers for input and output. */
- FILE * fp_in = 0; /* Input stream to preprocess */
- FILE * fp_out = 0; /* Output stream preprocessed */
- FILE * fp_err = 0; /* Diagnostics stream */
- FILE * fp_debug = 0; /* Debugging information stream */
+ FILE * fp_in; /* Input stream to preprocess */
+ FILE * fp_out; /* Output stream preprocessed */
+ FILE * fp_err; /* Diagnostics stream */
+ FILE * fp_debug; /* Debugging information stream */
/* Variables on multi-byte character encodings. */
int mbchar = MBCHAR; /* Encoding of multi-byte char */
- int mbmask; /* Char type other than mbchar */
- int mbstart; /* 1st byte of mbchar (or shift)*/
- int bsl_in_mbchar; /* 2nd byte of mbchar has '\\' */
+ int mbchk; /* Character type of possible multi-byte char */
+ int bsl_in_mbchar; /* 2nd byte of mbchar possibly has '\\' */
int bsl_need_escape; /* '\\' in MBCHAR should be escaped */
/* Function pointer to mb_read_*() functions. */
size_t (*mb_read)( int c1, char ** in_pp, char ** out_pp);
@@ -239,24 +224,49 @@
jmp_buf error_exit; /* Exit on fatal error */
/*
- * work_buf[] and workp are used to store one piece of text in a temporary
+ * Translation limits specified by C90, C99 or C++.
+ */
+ struct std_limits_ std_limits = {
+ /* The following three are temporarily set for do_options() */
+ NBUFF, /* Least maximum of string length */
+ IDMAX, /* Least maximum of identifier length */
+ NMACPARS, /* Least maximum of number of macro params */
+ EXP_NEST_CPLUS_MIN,
+ BLK_NEST_CPLUS_MIN,
+ INCLUDE_NEST_CPLUS_MIN,
+ NMACRO_CPLUS_MIN,
+ LINE_CPLUS_LIMIT
+ };
+
+/*
+ * work_buf[] and workp are used to store one piece of text as a temporary
* buffer.
* To initialize storage, set workp = work_buf. Note that the work buffer is
* used by several subroutines -- be sure that your data won't be overwritten.
* work_buf[] is used for:
- * 1. temporary buffer in macro expansion (exp_special(), expand_macro(),
- * catenate())
- * 2. temporary buffer in processing directive line.
+ * 1. macro expansion (def_special(), prescan(), catenate(),
+ * stringize()).
+ * 2. processing directive line (directive.c, eval.c, get_unexpandable(),
+ * do_pragma() and its subroutines).
+ * 3. processing _Pragma() operator (do_pragma_op()).
+ * 4. miscellaneous (init_gcc_macro(), curfile()).
*/
char work_buf[ NWORK + IDMAX]; /* Work buffer */
char * workp; /* Pointer into work_buf[] */
char * const work_end = & work_buf[ NWORK];
/* End of buffer of work_buf[] */
+/*
+ * src_col is the current input column number, but is rarely used.
+ * It is used to put spaces after #line line in keep_spaces mode
+ * on some special cases.
+ */
+static int src_col = 0; /* Column number of source line */
+
#define MBCHAR_IS_ESCAPE_FREE (SJIS_IS_ESCAPE_FREE && \
BIGFIVE_IS_ESCAPE_FREE && ISO2022_JP_IS_ESCAPE_FREE)
-#if MCPP_LIB
+#ifdef MCPP_LIB
static void init_main( void);
/* Initialize static variables */
#endif
@@ -272,8 +282,10 @@ static char * de_stringize( char * in, char * out);
/* "De-stringize" for _Pragma() op. */
static void putout( char * out);
/* May concatenate adjacent string */
+#if COMPILER != GNUC && COMPILER != MSC
static void devide_line( char * out);
/* Devide long line for compiler */
+#endif
static void put_a_line( char * out);
/* Put out the processed line */
#if ! HAVE_DIGRAPHS || ! MBCHAR_IS_ESCAPE_FREE
@@ -285,41 +297,41 @@ static char * conv_a_digraph( char * cp);
#endif
#if ! MBCHAR_IS_ESCAPE_FREE
static char * esc_mbchar( char * str, char * str_end);
- /* Insert \ before 2nd byte of SJIS */
+ /* Double \ as 2nd byte of SJIS */
#endif
#endif
-#if MCPP_LIB
+#ifdef MCPP_LIB
static void init_main( void)
/* Initialize global variables on re-entering. */
{
mcpp_mode = STD;
- cflag = zflag = pflag = qflag = FALSE;
- trig_flag = TRIGRAPHS_INIT;
- dig_flag = DIGRAPHS_INIT;
cplus_val = stdc_ver = 0L;
stdc_val = 0;
standard = TRUE;
- lang_asm = FALSE;
std_line_prefix = STD_LINE_PREFIX;
- str_len_min = NBUFF;
- id_len_min = IDMAX;
- n_mac_pars_min = NMACPARS;
- errors = 0;
+ errors = src_col = 0;
warn_level = -1;
infile = 0;
- in_directive = in_define = in_getarg = in_include = FALSE;
- in_asm = 0L;
- macro_line = 0L;
- compat_mode = FALSE;
- mcpp_debug = mkdep = no_output = keep_comments = 0;
- ifstack[0].stat = WAS_COMPILING;
- ifstack[0].ifline = ifstack[0].elseline = 0L;
- ifptr = ifstack;
+ in_directive = in_define = in_getarg = in_include = in_if = FALSE;
+ src_line = macro_line = in_asm = 0L;
+ mcpp_debug = mkdep = no_output = keep_comments = keep_spaces = 0;
+ include_nest = 0;
insert_sep = NO_SEP;
- has_pragma = FALSE;
mbchar = MBCHAR;
+ ifptr = ifstack;
+ ifstack[0].stat = WAS_COMPILING;
+ ifstack[0].ifline = ifstack[0].elseline = 0L;
+ std_limits.str_len = NBUFF;
+ std_limits.id_len = IDMAX;
+ std_limits.n_mac_pars = NMACPARS;
+ option_flags.c = option_flags.k = option_flags.z = option_flags.p
+ = option_flags.q = option_flags.v = option_flags.lang_asm
+ = option_flags.no_source_line = option_flags.dollar_in_name
+ = FALSE;
+ option_flags.trig = TRIGRAPHS_INIT;
+ option_flags.dig = DIGRAPHS_INIT;
}
int mcpp_lib_main
@@ -331,29 +343,26 @@ int main
char ** argv
)
{
- char * in_file = 0;
- char * out_file = 0;
+ char * in_file = 0;
+ char * out_file = 0;
+ char * stdin_name = "<stdin>";
- if (setjmp( error_exit) != 0)
- {
- ACE_DEBUG ((LM_DEBUG, "setjmp failed\n"));
+ if (setjmp( error_exit) == -1) {
+ errors++;
goto fatal_error_exit;
- }
+ }
-#if MCPP_LIB
- /* Initialize static variables. */
+#ifdef MCPP_LIB
+ /* Initialize global and static variables. */
init_main();
init_directive();
init_eval();
init_support();
init_system();
-#if NEED_GETOPT
- init_lib();
-#endif
#endif
- fp_in = 0;
- fp_out = 0;
+ fp_in = stdin;
+ fp_out = stdout;
fp_err = stderr;
fp_debug = stdout;
/*
@@ -362,101 +371,91 @@ int main
*/
inc_dirp = &null; /* Initialize to current (null) directory */
- cur_fname = "(predefined)"; /* For predefined macros */
+ cur_fname = cur_fullname = "(predefined)"; /* For predefined macros */
init_defines(); /* Predefine macros */
mb_init(); /* Should be initialized prior to get options */
do_options( argc, argv, &in_file, &out_file); /* Command line options */
+
/* Open input file, "-" means stdin. */
if (in_file != 0 && ! str_eq( in_file, "-")) {
if ((fp_in = ACE_OS::fopen( in_file, "r")) == 0) {
- ACE_ERROR((LM_ERROR, "Can't open input file \"%s\".\n", in_file));
-#if MCPP_LIB
+ mcpp_fprintf( ERR, "Can't open input file \"%s\".\n", in_file);
+ errors++;
+#ifdef MCPP_LIB
goto fatal_error_exit;
#else
return( IO_ERROR);
#endif
}
- ACE_OS::strcpy( work_buf, in_file); /* Remember input filename */
} else {
- ACE_OS::strcpy( work_buf, "<stdin>");
+ in_file = stdin_name;
}
-
/* Open output file, "-" means stdout. */
if (out_file != 0 && ! str_eq( out_file, "-")) {
- if ((fp_out = ACE_OS::fopen( out_file, "w")) == 0) {
- ACE_ERROR((LM_ERROR, "Can't open output file \"%s\".\n", out_file));
-#if MCPP_LIB
+ if ((fp_out = ACE_OS::fopen( out_file, "w")) == 0) {
+ mcpp_fprintf( ERR, "Can't open output file \"%s\".\n", out_file);
+ errors++;
+#ifdef MCPP_LIB
goto fatal_error_exit;
#else
return( IO_ERROR);
#endif
}
+ fp_debug = fp_out;
}
- if (qflag) { /* Redirect diagnostics */
- if (ACE_OS::freopen( "mcpp.err", "a", fp_err) == 0) {
- ACE_ERROR((LM_ERROR, "Can't open \"mcpp.err\"\n"));
-#if MCPP_LIB
+ if (option_flags.q) { /* Redirect diagnostics */
+ if ((fp_err = ACE_OS::fopen( "mcpp.err", "a")) == 0) {
+ errors++;
+ mcpp_fprintf( OUT, "Can't open \"mcpp.err\"\n");
+#ifdef MCPP_LIB
goto fatal_error_exit;
#else
return( IO_ERROR);
#endif
}
}
-
- if (fp_in == 0) fp_in = stdin;
- if (fp_out == 0) fp_out = stdout;
-
- add_file( fp_in, work_buf); /* "open" main input file */
+ init_sys_macro(); /* Initialize system-specific macros */
+ add_file( fp_in, 0, in_file, in_file, FALSE);
+ /* "open" main input file */
infile->dirp = inc_dirp;
- ACE_OS::strcpy( cur_fullname, work_buf);
- if (mkdep && str_eq( infile->real_fname, "<stdin>") == FALSE)
- put_depend( work_buf); /* Putout target file name */
+ infile->sys_header = FALSE;
+ cur_fullname = in_file;
+ if (mkdep && str_eq( infile->real_fname, stdin_name) == FALSE)
+ put_depend( in_file); /* Putout target file name */
at_start(); /* Do the pre-main commands */
+
mcpp_main(); /* Process main file */
+
if (mkdep)
put_depend( 0); /* Append '\n' to dependency line */
at_end(); /* Do the final commands */
fatal_error_exit:
-#if MCPP_LIB
- // ACE_DEBUG ((LM_DEBUG, "fatal_error_exit\n"));
+#ifdef MCPP_LIB
/* Free malloced memory */
+ if (mcpp_debug & MACRO_CALL) {
+ if (in_file != stdin_name)
+ ACE_OS::free( in_file);
+ }
clear_filelist();
clear_symtable();
#endif
+ if (fp_in != stdin)
+ ACE_OS::fclose( fp_in);
+ if (fp_out != stdout)
+ ACE_OS::fclose( fp_out);
+ if (fp_err != stderr)
+ ACE_OS::fclose( fp_err);
+
if (mcpp_debug & MEMORY)
print_heap();
- if (errors > 0 && no_source_line == FALSE) {
- ACE_ERROR((LM_ERROR, "%d error%s in preprocessor.\n",
- errors, (errors == 1) ? "" : "s"));
+ if (errors > 0 && option_flags.no_source_line == FALSE) {
+ mcpp_fprintf( ERR, "%d error%s in preprocessor.\n",
+ errors, (errors == 1) ? "" : "s");
return IO_ERROR;
}
-
- if (fp_out != 0)
- {
- ACE_OS::fclose (fp_out);
- }
- return IO_SUCCESS; /* No errors or -E option set */
-}
-
-void sharp( void)
-/*
- * Output a line number line.
- */
-{
- if (no_output || pflag || infile == 0)
- goto sharp_exit;
- if (keep_comments)
- mcpp_fputc( '\n', OUT); /* Ensure to be on line top */
- if (std_line_prefix)
- mcpp_fprintf( OUT, "#line %ld", src_line);
- else
- mcpp_fprintf( OUT, "%s%ld", LINE_PREFIX, src_line);
- cur_file();
- mcpp_fputc( '\n', OUT);
-sharp_exit:
- wrong_line = FALSE;
+ return IO_SUCCESS; /* No errors */
}
/*
@@ -471,12 +470,6 @@ typedef struct pre_set {
static PRESET preset[] = {
-#ifdef CPU_OLD
- { CPU_OLD, "1"},
-#endif
-#ifdef CPU_SP_OLD
- { CPU_SP_OLD, "1"},
-#endif
#ifdef SYSTEM_OLD
{ SYSTEM_OLD, "1"},
#endif
@@ -492,15 +485,6 @@ static PRESET preset[] = {
{ 0, 0}, /* End of macros beginning with alphabet */
-#ifdef CPU_STD
- { CPU_STD, "1"},
-#endif
-#ifdef CPU_STD1
- { CPU_STD1, "1"},
-#endif
-#ifdef CPU_STD2
- { CPU_STD2, "1"},
-#endif
#ifdef SYSTEM_STD
{ SYSTEM_STD, "1"},
#endif
@@ -547,9 +531,6 @@ static PRESET preset[] = {
#ifdef COMPILER_SP3
{ COMPILER_SP3, COMPILER_SP3_VAL},
#endif
-#ifdef COMPILER_SP4
- { COMPILER_SP4, COMPILER_SP4_VAL},
-#endif
#ifdef COMPILER_CPLUS
{ COMPILER_CPLUS, COMPILER_CPLUS_VAL},
#endif
@@ -561,22 +542,26 @@ static void init_defines( void)
* Initialize the built-in #define's.
* Called only on cpp startup prior to do_options().
*
- * Note: the built-in static definitions are removed by the -N option,
- * definitions beginning with alphabet are removed by the -S1 option,
+ * Note: the built-in static definitions are removed by the -N option.
*/
{
int n = sizeof preset / sizeof (PRESET);
+ int nargs;
PRESET * pp;
/* Predefine the built-in symbols. */
+ nargs = DEF_NOARGS_PREDEF_OLD;
for (pp = preset; pp < preset + n; pp++) {
if (pp->name && *(pp->name))
- look_and_install( pp->name, DEF_NOARGS - 1, null, pp->val);
+ look_and_install( pp->name, nargs, null, pp->val);
+ else if (! pp->name)
+ nargs = DEF_NOARGS_PREDEF;
}
- look_and_install( "__MCPP", DEF_NOARGS - 1, null, "2");
+ look_and_install( "__MCPP", DEF_NOARGS_PREDEF, null, "2");
/* MCPP V.2.x */
- /* This macro is predefined yet can be undefined by -U or #undef. */
+ /* This macro is predefined and is not undefined by -N option, */
+ /* yet can be undefined by -U or #undef. */
}
void un_predefine(
@@ -593,30 +578,9 @@ void un_predefine(
for (pp = preset; pp < preset + n; pp++) {
if (pp->name) {
if (*(pp->name) && (defp = look_id( pp->name)) != 0
- && defp->nargs == DEF_NOARGS - 1)
+ && defp->nargs >= DEF_NOARGS_PREDEF)
undefine( pp->name);
- } else if (clearall == FALSE) { /* -S<n> option */
- break;
- }
- }
-}
-
-void undef_a_predef(
- const char * name
-)
-/*
- * Remove a predefined name from the preset[] table so that the name can be
- * redefined by -D option.
- * The strange ordering (insert, command-line-scan, remove)
- * is needed to avoid interaction with -D arguments.
- */
-{
- PRESET * pp;
- int n = sizeof preset / sizeof (PRESET);
-
- for (pp = preset; pp < preset + n; pp++) {
- if (pp->name && *(pp->name) && str_eq( pp->name, name)) {
- pp->name = "";
+ } else if (clearall == FALSE) { /* -S<n> option */
break;
}
}
@@ -629,7 +593,7 @@ void undef_a_predef(
*/
static char output[ NMACWORK]; /* Buffer for preprocessed line */
static char * const out_end = & output[ NWORK - 2];
- /* Limit of output line */
+ /* Limit of output line for other than GCC and VC */
static char * const out_wend = & output[ NMACWORK - 2];
/* Buffer end of output line */
static char * out_ptr; /* Current pointer into output[]*/
@@ -644,14 +608,11 @@ static void mcpp_main( void)
char * wp; /* Temporary pointer */
DEFBUF * defp; /* Macro definition */
int line_top; /* Is in the line top, possibly spaces */
+ LINE_COL line_col; /* Location of macro call in source */
- if (! no_output) { /* Explicitly output a #line at the start of cpp */
- src_line++;
- sharp();
- put_info(); /* -fworking-directory */
- src_line--;
- }
- keep_comments = cflag && !no_output;
+ keep_comments = option_flags.c && !no_output;
+ keep_spaces = option_flags.k; /* Will be turned off if !compiling */
+ line_col.col = line_col.line = 0L;
/*
* This loop is started "from the top" at the beginning of each line.
@@ -669,16 +630,17 @@ static void mcpp_main( void)
while (1) { /* For each line, ... */
out_ptr = output; /* Top of the line buf */
c = get_ch();
- while (c == ' ' || c == '\t'
- || (mcpp_mode == OLD_PREP && c == COM_SEP)) {
- if (c == ' ' || c == '\t')
+ if (src_col)
+ break; /* There is a residual tokens on the line */
+ while (char_type[ c] & HSP) { /* ' ' or '\t' */
+ if (c != COM_SEP)
*out_ptr++ = c; /* Retain line top white spaces */
/* Else skip 0-length comment */
c = get_ch();
}
if (c == '#') { /* Is 1st non-space '#' */
directive(); /* Do a #directive */
- } else if (mcpp_mode == STD && dig_flag && c == '%') {
+ } else if (mcpp_mode == STD && option_flags.dig && c == '%') {
/* In POST_STD digraphs are already converted */
if (get_ch() == ':') { /* '%:' i.e. '#' */
directive(); /* Do a #directive */
@@ -720,9 +682,14 @@ static void mcpp_main( void)
wrong_line = FALSE;
} else {
if (wrong_line || newlines > 10) {
- sharp(); /* Output # line number */
- } else { /* If just a few, stuff */
- while (newlines-- > 0) /* them out ourselves */
+ sharp( 0, 0); /* Output # line number */
+ if (keep_spaces && src_col) {
+ while (src_col--) /* Adjust columns */
+ mcpp_fputc( ' ', OUT);
+ src_col = 0;
+ }
+ } else { /* If just a few, stuff */
+ while (newlines-- > 0) /* them out ourselves */
mcpp_fputc('\n', OUT);
}
}
@@ -732,36 +699,49 @@ static void mcpp_main( void)
*/
line_top = TRUE;
while (c != '\n' && c != CHAR_EOF) { /* For the whole line */
+ /*
+ * has_pragma is set to TRUE so as to execute _Pragma() operator
+ * when the psuedo macro _Pragma() is found.
+ */
+ int has_pragma;
+
+ if ((mcpp_debug & MACRO_CALL) && ! in_directive) {
+ line_col.line = src_line; /* Location in source */
+ line_col.col = infile->bptr - infile->buffer - 1;
+ }
if (scan_token( c, (wp = out_ptr, &wp), out_wend) == NAM
&& (defp = is_macro( &wp)) != 0) { /* A macro */
- wp = expand_macro( defp, out_ptr, out_wend);
- /* Expand it completely */
+ wp = expand_macro( defp, out_ptr, out_wend, line_col
+ , & has_pragma); /* Expand it completely */
if (line_top) { /* The first token is a macro */
char * tp = out_ptr;
- while (*tp == ' ')
+ while (char_type[ *tp & UCHARMAX] & HSP)
tp++; /* Remove excessive spaces */
ACE_OS::memmove( out_ptr, tp, ACE_OS::strlen( tp) + 1);
wp -= (tp - out_ptr);
}
if (has_pragma) { /* Found _Pramga() */
do_pragma_op(); /* Do _Pragma() operator*/
- has_pragma = FALSE; /* Reset signal */
out_ptr = output; /* Do the rest of line */
wrong_line = TRUE; /* Line-num out of sync */
} else {
out_ptr = wp;
}
+ if (keep_spaces && wrong_line && infile
+ && *(infile->bptr) != '\n' && *(infile->bptr) != EOS) {
+ src_col = infile->bptr - infile->buffer;
+ /* Remember the current colums */
+ break; /* Do sharp() now */
+ }
} else { /* Not a macro call */
out_ptr = wp; /* Advance the place */
if (wrong_line) /* is_macro() swallowed */
break; /* the newline */
}
- if ((c = get_ch()) == ' ') { /* Token separator */
- *out_ptr++ = ' ';
- c = get_ch(); /* First of token */
+ while (char_type[ c = get_ch()] & HSP) { /* Horizontal space */
+ if (c != COM_SEP) /* Skip 0-length comment*/
+ *out_ptr++ = c;
}
- if (mcpp_mode == OLD_PREP && c == COM_SEP)
- c = get_ch(); /* Skip 0-length comment*/
line_top = FALSE; /* Read over some token */
} /* Loop for line */
@@ -778,6 +758,8 @@ static void do_pragma_op( void)
* surrounded by other token sequences.
* Since all the macros have been expanded completely, any name identical to
* macro should not be re-expanded.
+ * However, a macro in the string argument of _Pragma() may be expanded by
+ * do_pragma() after de_stringize(), if EXPAND_PRAGMA == TRUE.
*/
{
FILEINFO * file;
@@ -789,8 +771,8 @@ static void do_pragma_op( void)
file = unget_string( out_ptr, 0);
while (c = get_ch(), file == infile) {
- if (c == ' ') {
- *out_ptr++ = ' ';
+ if (char_type[ c] & HSP) {
+ *out_ptr++ = c;
continue;
}
if (scan_token( c, (cp1 = out_ptr, &cp1), out_wend)
@@ -798,11 +780,12 @@ static void do_pragma_op( void)
&& defp->nargs == DEF_PRAGMA) { /* _Pragma() operator */
if (prev) {
putout( output); /* Putout the previous sequence */
- cp1 = mcpp_stpcpy( output, "pragma "); /* From top of buffer */
+ cp1 = stpcpy( output, "pragma "); /* From top of buffer */
}
+ /* is_macro() already read over possible spaces after _Pragma */
*cp1++ = get_ch(); /* '(' */
- while ((c = get_ch()) == ' ')
- *cp1++ = ' ';
+ while (char_type[ c = get_ch()] & HSP)
+ *cp1++ = c;
if (((token_type = scan_token( c, (cp2 = cp1, &cp1), out_wend))
!= STR && token_type != WSTR)) {
/* Not a string literal */
@@ -810,8 +793,8 @@ static void do_pragma_op( void)
return;
}
workp = de_stringize( cp2, work_buf);
- while ((c = get_ch()) == ' ')
- *cp1++ = ' ';
+ while (char_type[ c = get_ch()] & HSP)
+ *cp1++ = c;
if (c != ')') { /* More than a string literal */
unget_ch();
put_seq( output, cp1);
@@ -862,8 +845,7 @@ static char * de_stringize(
*/
{
char * in_p;
- int c1;
- int c;
+ int c1, c;
in_p = in;
if (*in_p == 'L')
@@ -892,17 +874,22 @@ static void putout(
#if ! MBCHAR_IS_ESCAPE_FREE
post_preproc( out);
#elif ! HAVE_DIGRAPHS
- if (mcpp_mode == STD && dig_flag)
+ if (mcpp_mode == STD && option_flag.dig)
post_preproc( out);
#endif
/* Else no post-preprocess */
+#if COMPILER != GNUC && COMPILER != MSC
+ /* GCC and Visual C can accept very long line */
len = ACE_OS::strlen( out);
if (len > NWORK - 1)
- devide_line( out);
+ devide_line( out); /* Devide a too long line */
else
+#endif
put_a_line( out);
}
+#if COMPILER != GNUC && COMPILER != MSC
+
static void devide_line(
char * out /* 'out' is 'output' in actual */
)
@@ -920,9 +907,10 @@ static void devide_line(
wp = out_ptr = out;
while ((c = get_ch()), file == infile) {
- if (c == ' ') {
- if (out == out_ptr || *(out_ptr - 1) != ' ') {
- *out_ptr++ = ' ';
+ if (char_type[ c] & HSP) {
+ if (keep_spaces || out == out_ptr
+ || (char_type[ *(out_ptr - 1) & UCHARMAX] & HSP)) {
+ *out_ptr++ = c;
wp++;
}
continue;
@@ -931,12 +919,25 @@ static void devide_line(
if (NWORK-2 < wp - out_ptr) { /* Too long a token */
cfatal( "Too long token %s", out_ptr, 0L, 0); /* _F_ */
} else if (out_end <= wp) { /* Too long line */
+ if (mcpp_debug & MACRO_CALL) { /* -K option */
+ /* Other than GCC or Visual C */
+ /* scan_token() scans a comment as sequence of some */
+ /* tokens such as '/', '*', ..., '*', '/', since it */
+ /* does not expect comment. */
+ save = out_ptr;
+ while ((save = ACE_OS::strrchr( save, '/')) != 0) {
+ if (*(save - 1) == '*') { /* '*' '/' sequence */
+ out_ptr = save + 1; /* Devide at the end*/
+ break; /* of a comment*/
+ }
+ }
+ }
save = save_string( out_ptr); /* Save the token */
*out_ptr++ = '\n'; /* Append newline */
*out_ptr = EOS;
put_a_line( out); /* Putout the former tokens */
- wp = out_ptr = mcpp_stpcpy( out, save); /* Restore the token */
- ACE_OS::free( save);
+ wp = out_ptr = stpcpy( out, save); /* Restore the token */
+ ACE_OS::free( save);
} else { /* Still in size */
out_ptr = wp; /* Advance the pointer */
}
@@ -944,9 +945,11 @@ static void devide_line(
unget_ch(); /* Push back the source character */
put_a_line( out); /* Putout the last tokens */
- sharp(); /* Correct line number */
+ sharp( 0, 0); /* Correct line number */
}
+#endif
+
static void put_a_line(
char * out
)
@@ -968,8 +971,7 @@ static void put_a_line(
*++out_p = '\n';
*++out_p = EOS;
}
-
- if (mcpp_fputs ( out, OUT) == EOF)
+ if (mcpp_fputs( out, OUT) == EOF)
cfatal( "File write error", 0, 0L, 0); /* _F_ */
}
@@ -999,6 +1001,8 @@ static int post_preproc(
/*
* Convert digraphs and double '\\' of the second byte of SJIS (BIGFIVE or
* ISO2022_JP).
+ * Note: Output of -K option embeds macro informations into comments.
+ * scan_token() does not recognize comment and parses it as '/', '*', etc.
*/
{
#if ! HAVE_DIGRAPHS
@@ -1011,8 +1015,8 @@ static int post_preproc(
unget_string( out, 0);
while ((c = get_ch()) != '\n') { /* Not to read over to next line */
- if (c == ' ') {
- *cp++ = ' ';
+ if (char_type[ c] & HSP) {
+ *cp++ = c;
continue;
}
str = cp;
@@ -1108,23 +1112,24 @@ static char * esc_mbchar(
if ((delim = *str++) == 'L')
delim = *str++; /* The quote character */
while ((c = *str++ & UCHARMAX) != delim) {
- if (char_type[ c] & mbstart) { /* MBCHAR */
+ if (char_type[ c] & mbchk) { /* MBCHAR */
cp = str;
mb_read( c, &str, (workp = work_buf, &workp));
while (cp++ < str) {
c = *(cp - 1);
if (c == '\\' || c == '"' || c == '\'') {
/* Insert \ before 0x5c, 0x22, 0x27 */
- ACE_OS::memmove( cp, cp - 1, (size_t) (str_end - cp) + 2);
+ ACE_OS::memmove( cp, cp - 1, (size_t) (str_end - cp) + 2);
*(cp++ - 1) = '\\';
str++;
str_end++;
}
}
- } else if (c == '\\' && ! (char_type[ *str & UCHARMAX] & mbstart)) {
+ } else if (c == '\\' && ! (char_type[ *str & UCHARMAX] & mbchk)) {
str++; /* Escape sequence */
}
}
return str_end;
}
#endif /* ! MBCHAR_IS_ESCAPE_FREE */
+
diff --git a/TAO/TAO_IDL/contrib/mcpp/main_libmcpp.c b/TAO/TAO_IDL/contrib/mcpp/main_libmcpp.c
new file mode 100644
index 00000000000..7413900d250
--- /dev/null
+++ b/TAO/TAO_IDL/contrib/mcpp/main_libmcpp.c
@@ -0,0 +1,10 @@
+/* $Id$ most simple sample source to use libmcpp */
+
+#include "mcpp_lib.h"
+// FUZZ: disable check_for_improper_main_declaration
+int
+main (int argc, char *argv[])
+// FUZZ: disable check_for_improper_main_declaration
+{
+ return mcpp_lib_main (argc, argv);
+}
diff --git a/TAO/TAO_IDL/contrib/mcpp/mbchar.cpp b/TAO/TAO_IDL/contrib/mcpp/mbchar.cpp
index 991cdac85b9..6aeb1579a01 100644
--- a/TAO/TAO_IDL/contrib/mcpp/mbchar.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/mbchar.cpp
@@ -1,5 +1,5 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
* All rights reserved.
*
* Some parts of this code are derived from the public domain software
@@ -44,17 +44,18 @@
/*
* Tables of character types and multi-byte character types.
- * These tables must be rewritten for a non-Ascii machine.
*
* Some of these character attributes will be overwritten by
* execution time option '-@post' or '-@old'.
+ * Warning on erroneous sequence will be issued from the caller routines:
+ * scan_quote(), scan_id() or scan_number().
*/
-#if DOLLAR_IN_NAME
-#define DOL LET
-#else
-#define DOL 000
-#endif
+/* Non-ASCII characters are always checked by mb_read(). */
+#define NA 0x4000 /* Non-ASCII characters */
+
+/* Horizontal spaces (' ', '\t' and TOK_SEP) */
+#define HSPA (SPA | HSP)
short * char_type; /* Pointer to one of the following type_*[]. */
@@ -68,8 +69,9 @@ short * char_type; /* Pointer to one of the following type_*[]. */
#define EJ12 (EJ1 | EJ2) /* 1st byte or 2nd byte of EUC_JP */
#define GB12 (GB1 | GB2)
#define KS12 (KS1 | KS2)
-#define EU12 (EJ12 | GB12 | KS12)
- /* 1st or 2nd byte of EUC_JP, GB2312 or KSC5601 */
+#define EJ1N (NA | EJ1)
+#define EU12N (NA | EJ12 | GB12 | KS12)
+ /* 1st or 2nd byte of EUC_JP, GB2312 or KSC5601, or any other non-ASCII */
static short type_euc[ UCHARMAX + 1] = {
/*
@@ -81,11 +83,11 @@ static short type_euc[ UCHARMAX + 1] = {
/* 8, 9, A, B, C, D, E, F, Hex */
000, 000, 000, 000, 000, 000, 000, 000, /* 00 */
- 000, SPA, SPA, SPA, SPA, SPA, 000, 000, /* 08 */
+ 000, HSPA, SPA, SPA, SPA, SPA, 000, 000, /* 08 */
000, 000, 000, 000, 000, 000, 000, 000, /* 10 */
- /* 0x19, 0x1A and 0x1F will be cleared in some modes by chk_opts(). */
- 000, LET, LET, 000, 000, 000, 000, SPA, /* 18 */
- SPA, PUNC, QUO, PUNC, DOL, PUNC, PUNC, QUO, /* 20 !"#$%&' */
+ /* 0x17-0x1A and 0x1F will be cleared in some modes by chk_opts() */
+ 000, LET, LET, 000, 000, 000, 000, HSPA, /* 18 */
+ HSPA, PUNC, QUO, PUNC, 000, PUNC, PUNC, QUO, /* 20 !"#$%&' */
PUNC, PUNC, PUNC, PUNC, PUNC, PUNC, DOT, PUNC, /* 28 ()*+,-./ */
DIG, DIG, DIG, DIG, DIG, DIG, DIG, DIG, /* 30 01234567 */
DIG, DIG, PUNC, PUNC, PUNC, PUNC, PUNC, PUNC, /* 38 89:;<=>? */
@@ -99,22 +101,22 @@ static short type_euc[ UCHARMAX + 1] = {
LET, LET, LET, LET, LET, LET, LET, LET, /* 70 pqrstuvw */
LET, LET, LET, PUNC, PUNC, PUNC, PUNC, 000, /* 78 xyz{|}~ */
- 000, 000, 000, 000, 000, 000, 000, 000, /* 80 .. 87 */
- 000, 000, 000, 000, 000, 000, EJ1, 000, /* 88 .. 8F */
- 000, 000, 000, 000, 000, 000, 000, 000, /* 90 .. 97 */
- 000, 000, 000, 000, 000, 000, 000, 000, /* 98 .. 9F */
- 000, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* A0 .. A7 */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* A8 .. AF */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* B0 .. B7 */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* B8 .. BF */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* C0 .. C7 */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* C8 .. CF */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* D0 .. D7 */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* D8 .. DF */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* E0 .. E7 */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* E8 .. EF */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, EU12, /* F0 .. F7 */
- EU12, EU12, EU12, EU12, EU12, EU12, EU12, 000, /* F8 .. FF */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* 80 .. 87 */
+ NA, NA, NA, NA, NA, NA, EJ1N, NA, /* 88 .. 8F */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* 90 .. 97 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* 98 .. 9F */
+ NA, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* A0 .. A7 */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* A8 .. AF */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* B0 .. B7 */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* B8 .. BF */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* C0 .. C7 */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* C8 .. CF */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* D0 .. D7 */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* D8 .. DF */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* E0 .. E7 */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* E8 .. EF */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, /* F0 .. F7 */
+ EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, EU12N, NA, /* F8 .. FF */
};
static short type_bsl[ UCHARMAX + 1] = {
@@ -129,10 +131,12 @@ static short type_bsl[ UCHARMAX + 1] = {
#define BF2 0x800 /* 2nd byte of BIGFIVE */
#define SB2 (SJ2 | BF2)
-#define SJ12 (SJ1 | SJ2)
-#define BF12 (BF1 | BF2)
-#define SB12 (SJ12 | BF12)
-#define S2B12 (SJ2 | BF1 | BF2)
+#define SJ2N (NA | SJ2)
+#define SB2N (NA | SJ2 | BF2)
+#define SJ12N (NA | SJ1 | SJ2)
+#define BF12N (NA | BF1 | BF2)
+#define SB12N (NA | SJ1 | SJ2 | BF1 | BF2)
+#define S2B12N (NA | SJ2 | BF1 | BF2)
#define LSB2 (LET | SB2)
#define PSB2 (PUNC| SB2)
@@ -142,11 +146,11 @@ static short type_bsl[ UCHARMAX + 1] = {
/* 8, 9, A, B, C, D, E, F, Hex */
000, 000, 000, 000, 000, 000, 000, 000, /* 00 */
- 000, SPA, SPA, SPA, SPA, SPA, 000, 000, /* 08 */
+ 000, HSPA, SPA, SPA, SPA, SPA, 000, 000, /* 08 */
000, 000, 000, 000, 000, 000, 000, 000, /* 10 */
- /* 0x19, 0x1A and 0x1F will be cleared in some modes */
- 000, LET, LET, 000, 000, 000, 000, SPA, /* 18 */
- SPA, PUNC, QUO, PUNC, DOL, PUNC, PUNC, QUO, /* 20 !"#$%&' */
+ /* 0x17-0x1A and 0x1F will be cleared in some modes by chk_opts() */
+ 000, LET, LET, 000, 000, 000, 000, HSPA, /* 18 */
+ HSPA, PUNC, QUO, PUNC, 000, PUNC, PUNC, QUO, /* 20 !"#$%&' */
PUNC, PUNC, PUNC, PUNC, PUNC, PUNC, DOT, PUNC, /* 28 ()*+,-./ */
DIG, DIG, DIG, DIG, DIG, DIG, DIG, DIG, /* 30 01234567 */
DIG, DIG, PUNC, PUNC, PUNC, PUNC, PUNC, PUNC, /* 38 89:;<=>? */
@@ -160,33 +164,33 @@ static short type_bsl[ UCHARMAX + 1] = {
LSB2, LSB2, LSB2, LSB2, LSB2, LSB2, LSB2, LSB2, /* 70 pqrstuvw */
LSB2, LSB2, LSB2, PSB2, PSB2, PSB2, PSB2, 000, /* 78 xyz{|}~ */
- SB2, SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, /* 80 .. 87 */
- SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, /* 88 .. 8F */
- SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, /* 90 .. 97 */
- SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, SJ12, /* 98 .. 9F */
- SJ2, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, /* A0 .. A7 */
- S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, /* A8 .. AF */
- S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, /* B0 .. B7 */
- S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, /* B8 .. BF */
- S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, /* C0 .. C7 */
- S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, /* C8 .. CF */
- S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, /* D0 .. D7 */
- S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, S2B12, /* D8 .. DF */
- SB12, SB12, SB12, SB12, SB12, SB12, SB12, SB12, /* E0 .. E7 */
- SB12, SB12, SB12, SB12, SB12, SB12, SB12, SB12, /* E8 .. EF */
- SB12, SB12, SB12, SB12, SB12, SB12, SB12, SB12, /* F0 .. F7 */
- SB12, SB12, SB12, SB12, SB12, BF12, BF12, 000, /* F8 .. FF */
+ SB2N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, /* 80 .. 87 */
+ SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, /* 88 .. 8F */
+ SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, /* 90 .. 97 */
+ SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, SJ12N, /* 98 .. 9F */
+ SJ2N, S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N, /* A0 .. A7 */
+ S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N, /* A8 .. AF */
+ S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N, /* B0 .. B7 */
+ S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N, /* B8 .. BF */
+ S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N, /* C0 .. C7 */
+ S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N, /* C8 .. CF */
+ S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N, /* D0 .. D7 */
+ S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N,S2B12N, /* D8 .. DF */
+ SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, /* E0 .. E7 */
+ SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, /* E8 .. EF */
+ SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, SB12N, /* F0 .. F7 */
+ SB12N, SB12N, SB12N, SB12N, SB12N, BF12N, BF12N, NA, /* F8 .. FF */
};
/*
* For ISO2022_JP multi-byte character encoding.
*/
-#define IS1 0x40 /* 1st byte of shift-sequence */
-#define IS2 0x80 /* 2nd byte of shift-sequence */
-#define IS3 0x100 /* 3rd byte of shift-sequence */
-#define IS4 0x200 /* 4th byte of shift-sequence */
-#define IJP 0x400 /* 1st or 2nd byte of ISO-2022-JP (ISO-2022-JP1) */
+#define IS1 0x100 /* 1st byte of shift-sequence */
+#define IS2 0x200 /* 2nd byte of shift-sequence */
+#define IS3 0x400 /* 3rd byte of shift-sequence */
+#define IS4 0x800 /* 4th byte of shift-sequence */
+#define IJP 0x1000 /* 1st or 2nd byte of ISO-2022-JP (ISO-2022-JP1) */
#define PIJP (PUNC | IJP)
#define QIJP (QUO | IJP)
@@ -194,7 +198,7 @@ static short type_bsl[ UCHARMAX + 1] = {
#define DGJP (DIG | IJP)
#define LIJP (LET | IJP)
-#define DLJPS2 (DOL | IJP | IS2)
+#define JPS2 (IJP | IS2)
#define PJPS23 (PIJP | IS2 | IS3)
#define LJPS3 (LIJP | IS3)
#define LJPS4 (LIJP | IS4)
@@ -206,11 +210,11 @@ static short type_iso2022_jp[ UCHARMAX + 1] = {
/* 8, 9, A, B, C, D, E, F, Hex */
000, 000, 000, 000, 000, 000, 000, 000, /* 00 */
- 000, SPA, SPA, SPA, SPA, SPA, 000, 000, /* 08 */
+ 000, HSPA, SPA, SPA, SPA, SPA, 000, 000, /* 08 */
000, 000, 000, 000, 000, 000, 000, 000, /* 10 */
- /* 0x19, 0x1A and 0x1F will be cleared in some modes */
- 000, LET, LET, IS1, 000, 000, 000, SPA, /* 18 */
- SPA, PIJP, QIJP, PIJP, DLJPS2,PIJP, PIJP, QIJP, /* 20 !"#$%&' */
+ /* 0x17-0x1A and 0x1F will be cleared in some modes by chk_opts() */
+ 000, LET, LET, IS1, 000, 000, 000, HSPA, /* 18 */
+ HSPA, PIJP, QIJP, PIJP, JPS2, PIJP, PIJP, QIJP, /* 20 !"#$%&' */
PJPS23,PIJP, PIJP, PIJP, PIJP, PIJP, DTJP, PIJP, /* 28 ()*+,-./ */
DGJP, DGJP, DGJP, DGJP, DGJP, DGJP, DGJP, DGJP, /* 30 01234567 */
DGJP, DGJP, PIJP, PIJP, PIJP, PIJP, PIJP, PIJP, /* 38 89:;<=>? */
@@ -223,23 +227,37 @@ static short type_iso2022_jp[ UCHARMAX + 1] = {
LIJP, LIJP, LIJP, LIJP, LIJP, LIJP, LIJP, LIJP, /* 68 hijklmno */
LIJP, LIJP, LIJP, LIJP, LIJP, LIJP, LIJP, LIJP, /* 70 pqrstuvw */
LIJP, LIJP, LIJP, PIJP, PIJP, PIJP, PIJP, 000, /* 78 xyz{|}~ */
- /* the rests are 0 cleared */
+
+ NA, NA, NA, NA, NA, NA, NA, NA, /* 80 .. 87 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* 88 .. 8F */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* 90 .. 97 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* 98 .. 9F */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* A0 .. A7 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* A8 .. AF */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* B0 .. B7 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* B8 .. BF */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* C0 .. C7 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* C8 .. CF */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* D0 .. D7 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* D8 .. DF */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* E0 .. E7 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* E8 .. EF */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* F0 .. F7 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* F8 .. FF */
};
/*
* For UTF8 multi-byte character encoding.
*/
-#define U2_1 0x100 /* 1st byte of 2-byte encoding of UTF8 */
-#define U2_2 0x200 /* 2nd byte of 2-byte encoding of UTF8 */
-#define U3_1 0x400 /* 1st byte of 3-byte encoding of UTF8 */
-#define U3_2 0x800 /* 2nd byte of 3-byte encoding of UTF8 */
-#define U3_3 0x1000 /* 3rd byte of 3-byte encoding of UTF8 */
-
-#define UT23 (U2_2 | U3_3)
-/* 2nd byte of 2-byte encoding or 3rd byte of 3-byte encoding */
-#define UT223 (U2_2 | U3_2 | U3_3)
-/* 2nd byte of 2-byte encoding, or 2nd or 3rd byte of 3-byte encoding */
+#define U2_1 0x100 /* 1st byte of 2-byte encoding of UTF8 */
+#define U3_1 0x200 /* 1st byte of 3-byte encoding of UTF8 */
+#define U4_1 0x400 /* 1st byte of 4-byte encoding of UTF8 */
+#define UCONT 0x800 /* Continuation of a 2, 3, or 4 byte UTF8 sequence */
+#define U2_1N (NA | U2_1)
+#define U3_1N (NA | U3_1)
+#define U4_1N (NA | U4_1)
+#define UCONTN (NA | UCONT)
static short type_utf8[ UCHARMAX + 1] = {
@@ -248,11 +266,11 @@ static short type_utf8[ UCHARMAX + 1] = {
/* 8, 9, A, B, C, D, E, F, Hex */
000, 000, 000, 000, 000, 000, 000, 000, /* 00 */
- 000, SPA, SPA, SPA, SPA, SPA, 000, 000, /* 08 */
+ 000, HSPA, SPA, SPA, SPA, SPA, 000, 000, /* 08 */
000, 000, 000, 000, 000, 000, 000, 000, /* 10 */
- /* 0x19, 0x1A and 0x1F will be cleared in some modes */
- 000, LET, LET, 000, 000, 000, 000, SPA, /* 18 */
- SPA, PUNC, QUO, PUNC, DOL, PUNC, PUNC, QUO, /* 20 !"#$%&' */
+ /* 0x17-0x1A and 0x1F will be cleared in some modes by chk_opts() */
+ 000, LET, LET, 000, 000, 000, 000, HSPA, /* 18 */
+ HSPA, PUNC, QUO, PUNC, 000, PUNC, PUNC, QUO, /* 20 !"#$%&' */
PUNC, PUNC, PUNC, PUNC, PUNC, PUNC, DOT, PUNC, /* 28 ()*+,-./ */
DIG, DIG, DIG, DIG, DIG, DIG, DIG, DIG, /* 30 01234567 */
DIG, DIG, PUNC, PUNC, PUNC, PUNC, PUNC, PUNC, /* 38 89:;<=>? */
@@ -266,55 +284,52 @@ static short type_utf8[ UCHARMAX + 1] = {
LET, LET, LET, LET, LET, LET, LET, LET, /* 70 pqrstuvw */
LET, LET, LET, PUNC, PUNC, PUNC, PUNC, 000, /* 78 xyz{|}~ */
- UT23, UT23, UT23, UT23, UT23, UT23, UT23, UT23, /* 80 .. 87 */
- UT23, UT23, UT23, UT23, UT23, UT23, UT23, UT23, /* 88 .. 8F */
- UT23, UT23, UT23, UT23, UT23, UT23, UT23, UT23, /* 90 .. 97 */
- UT23, UT23, UT23, UT23, UT23, UT23, UT23, UT23, /* 98 .. 9F */
- UT223, UT223, UT223, UT223, UT223, UT223, UT223, UT223, /* A0 .. A7 */
- UT223, UT223, UT223, UT223, UT223, UT223, UT223, UT223, /* A8 .. AF */
- UT223, UT223, UT223, UT223, UT223, UT223, UT223, UT223, /* B0 .. B7 */
- UT223, UT223, UT223, UT223, UT223, UT223, UT223, UT223, /* B8 .. BF */
- 000, 000, U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, /* C0 .. C7 */
- U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, /* C8 .. CF */
- U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, /* D0 .. D7 */
- U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, U2_1, /* D8 .. DF */
- U3_1, U3_1, U3_1, U3_1, U3_1, U3_1, U3_1, U3_1, /* E0 .. E7 */
- U3_1, U3_1, U3_1, U3_1, U3_1, U3_1, U3_1, U3_1, /* E8 .. EF */
- 000, 000, 000, 000, 000, 000, 000, 000, /* F0 .. F7 */
- 000, 000, 000, 000, 000, 000, 000, 000, /* F8 .. FF */
+ UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN, /* 80 .. 87 */
+ UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN, /* 88 .. 8F */
+ UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN, /* 90 .. 97 */
+ UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN, /* 98 .. 9F */
+ UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN, /* A0 .. A7 */
+ UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN, /* A8 .. AF */
+ UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN, /* B0 .. B7 */
+ UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN,UCONTN, /* B8 .. BF */
+ NA, NA, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, /* C0 .. C7 */
+ U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, /* C8 .. CF */
+ U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, /* D0 .. D7 */
+ U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, U2_1N, /* D8 .. DF */
+ U3_1N, U3_1N, U3_1N, U3_1N, U3_1N, U3_1N, U3_1N, U3_1N, /* E0 .. E7 */
+ U3_1N, U3_1N, U3_1N, U3_1N, U3_1N, U3_1N, U3_1N, U3_1N, /* E8 .. EF */
+ U4_1N, U4_1N, U4_1N, U4_1N, U4_1N, NA, NA, NA, /* F0 .. F7 */
+ NA, NA, NA, NA, NA, NA, NA, NA, /* F8 .. FF */
};
#define SETLOCALE 2 /* #pragma setlocale (not __setlocale) */
#define NUM_ENCODING 8
-#define NUM_ALIAS 7
+#define NUM_ALIAS 6
-/*
- * Names of encoding recognized. Table for search_encoding().
- * Note: GCC documents that LANG=C-EUCJP (C-SJIS, C-JIS) is effective,
- * though this feature is not fully enabled in GCC.
- */
+/* Names of encoding recognized. Table for search_encoding(). */
static const char * const encoding_name[ NUM_ENCODING][ NUM_ALIAS] = {
- /* normalized LANG, Visual C full, Visual C short
- , miscellaneous */
- { "c", "english", "c"
+ /* Visual C full, Visual C short
+ , 4 miscellaneous */
+ { "english", "c"
, "c", "en", "latin", "iso8859"},
- { "ceucjp", "", ""
+ { "", ""
, "eucjp", "euc", "ujis", ""},
- { "", "chinesesimplified", "chs"
+ { "chinesesimplified", "chs"
, "gb2312", "cngb", "euccn", ""},
- { "", "korean", "kor"
+ { "korean", "kor"
, "ksc5601", "ksx1001", "wansung", "euckr"},
- { "csjis", "japanese", "jpn"
+ { "japanese", "jpn"
, "sjis", "shiftjis", "mskanji", ""},
- { "", "chinesetraditional", "cht"
+ { "chinesetraditional", "cht"
, "bigfive", "big5", "cnbig5", "euctw"},
- { "cjis", "", ""
+ { "", ""
, "iso2022jp", "iso2022jp1", "jis", ""},
- { "", "", ""
+ { "", ""
, "utf8", "utf", "", ""},
};
+static int mbstart;
static int mb2;
static size_t mb_read_2byte( int c1, char ** in_pp, char ** out_pp);
@@ -323,16 +338,22 @@ static const char * search_encoding( char * norm, int alias);
/* Search encoding_name[][] table */
static void strip_bar( char * string);
/* Remove '_', '-' or '.' in the string */
+static void conv_case( char * name, char * lim, int upper);
+ /* Convert to upper/lower case */
static size_t mb_read_iso2022_jp( int c1, char ** in_pp, char ** out_pp);
/* For ISO2022_JP encoding */
static size_t mb_read_utf8( int c1, char ** in_pp, char ** out_pp);
/* For UTF8 mbchar encoding */
-#define NAMLEN 20
+#define NAMLEN 20
+#define UPPER 1 /* To upper */
+#define LOWER 0 /* To lower */
+
-const char * set_encoding(const char * name, /* Name of encoding specified */
+const char * set_encoding(
+ const char * name, /* Name of encoding specified */
const char * env, /* Name of environment variable */
- int pragma
+ int pragma
/* 2: #pragma setlocale, 1: #pragma __setlocale, 0: not #pragma */
)
/*
@@ -373,14 +394,10 @@ const char * set_encoding(const char * name, /* Name of encoding speci
|| ACE_OS::memcmp( norm, "en", 2) == 0) { /* en* */
mbchar = 0; /* No multi-byte character */
} else {
- alias = 3;
-#if COMPILER == GNUC
- if (env && str_eq( env, "LANG"))
- alias = 0;
-#endif
+ alias = 2;
#if COMPILER == MSC
if (pragma == SETLOCALE) /* #pragma setlocale */
- alias = 1;
+ alias = 0;
#endif
loc = search_encoding( norm, alias); /* Search the name */
}
@@ -421,10 +438,6 @@ static const char * search_encoding(
}
return loc;
}
-#if COMPILER == GNUC
- if (alias == 0 && al == 0) /* Searched the names for LANG */
- al = 2; /* Skip the name for Visual C */
-#endif
}
}
return 0;
@@ -447,6 +460,35 @@ static void strip_bar(
}
}
+static void conv_case(
+ char * name, /* (diretory) Name */
+ char * lim, /* End of (directory) name */
+ int upper /* TRUE if to upper */
+)
+/* Convert a string to upper-case letters or lower-case letters in-place */
+{
+ int c;
+ char * sp;
+
+ for (sp = name; sp < lim; sp++) {
+ c = *sp & UCHARMAX;
+#if MBCHAR
+ if ((char_type[ c] & mbstart)) {
+ char tmp[ PATHMAX+1];
+ char * tp = tmp;
+ *tp++ = *sp++;
+ mb_read( c, &sp, &tp);
+ } else
+#endif
+ {
+ if (upper)
+ *sp = toupper( c);
+ else
+ *sp = tolower( c);
+ }
+ }
+}
+
void mb_init( void)
/*
* Initialize multi-byte character settings.
@@ -490,40 +532,48 @@ void mb_init( void)
switch (mbchar) {
case 0 :
mbstart = 0;
- mbmask = ~0;
break;
case EUC_JP :
mbstart = EJ1;
- mbmask = ~EU12;
mb2 = EJ2;
break;
case GB2312 :
mbstart = GB1;
- mbmask = ~EU12;
mb2 = GB2;
break;
case KSC5601:
mbstart = KS1;
- mbmask = ~EU12;
mb2 = KS2;
break;
case SJIS :
mbstart = SJ1;
- mbmask = ~SB12;
mb2 = SJ2;
break;
case BIGFIVE:
mbstart = BF1;
- mbmask = ~SB12;
mb2 = BF2;
break;
case ISO2022_JP :
mbstart = IS1;
- mbmask = ~(IS1 | IS2 | IS3 | IS4 | IJP);
break;
case UTF8 :
- mbstart = (U2_1 | U3_1);
- mbmask = ~(U2_1 | U2_2 | U3_1 | U3_2 | U3_3);
+ mbstart = (U2_1 | U3_1 | U4_1);
+ break;
+ }
+ switch (mbchar) {
+ case 0 :
+ mbchk = 0;
+ break;
+ case EUC_JP :
+ case GB2312 :
+ case KSC5601:
+ case SJIS :
+ case BIGFIVE:
+ case UTF8 :
+ mbchk = NA;
+ break;
+ case ISO2022_JP :
+ mbchk = (IS1 | NA);
break;
}
@@ -561,12 +611,12 @@ void mb_init( void)
char_type[ DEF_MAGIC] = standard ? LET : 0;
char_type[ IN_SRC] = (mcpp_mode == STD) ? LET : 0;
char_type[ TOK_SEP] = (mcpp_mode == STD || mcpp_mode == OLD_PREP)
- ? SPA: 0; /* TOK_SEP equals to COM_SEP */
+ ? HSPA: 0; /* TOK_SEP equals to COM_SEP */
}
}
static size_t mb_read_2byte(
- int , /* The 1st byte of mbchar sequence (already read) */
+ int c1, /* The 1st byte of mbchar sequence (already read) */
char ** in_pp, /* Pointer to input */
char ** out_pp /* Pointer to output */
)
@@ -579,6 +629,9 @@ static size_t mb_read_2byte(
char * in_p = *in_pp;
char * out_p = *out_pp;
+ if (! (char_type[ c1 & UCHARMAX] & mbstart))
+ return MB_ERROR; /* Not a multi-byte character */
+
do {
if (! (char_type[ (*out_p++ = *in_p++) & UCHARMAX] & mb2)) {
error = TRUE;
@@ -607,6 +660,9 @@ static size_t mb_read_iso2022_jp(
char * out_p = *out_pp;
int c2, c3, c4;
+ if (! (char_type[ c1 & UCHARMAX] & mbstart))
+ return MB_ERROR;
+
do {
*out_p++ = c2 = *in_p++;
@@ -679,30 +735,49 @@ static size_t mb_read_utf8(
size_t len = 0;
char * in_p = *in_pp;
char * out_p = *out_pp;
- int c2;
+
+ if (! (char_type[ c1 & UCHARMAX] & mbstart))
+ return MB_ERROR;
do {
- *out_p++ = c2 = *in_p++;
- if (char_type[ c1 & UCHARMAX] & U2_1) { /* 2-byte character */
- if (! (char_type[ c2 & UCHARMAX] & U2_2)) {
- error = TRUE;
- break;
- }
- } else {
- if (char_type[ c2 & UCHARMAX] & U3_2) { /* 3-byte character */
- if (! (char_type[ (*out_p++ = *in_p++) & UCHARMAX] & U3_3)) {
- error = TRUE;
- break;
- }
- } else {
+ unsigned int codepoint;
+ int i, bytes;
+
+ if ((char_type[ c1 & UCHARMAX] & U4_1) == U4_1)
+ bytes = 4; /* 4-byte character */
+ else if ((char_type[ c1 & UCHARMAX] & U3_1) == U3_1)
+ bytes = 3; /* 3-byte character */
+ else if ((char_type[ c1 & UCHARMAX] & U2_1) == U2_1)
+ bytes = 2; /* 2-byte character */
+
+ /* Must ensure that the sequence is not reserved as a surrogate */
+ codepoint = ((2 << (6-bytes)) - 1) & c1; /* mask off top bits */
+
+ /* All bytes left in the sequence must be in 0x80 - 0xBF */
+ for (i = bytes - 1; i && !error; i--) {
+ codepoint = (codepoint << 6) + ((*in_p) & 0x3fU);
+ if (! (char_type[ (*out_p++ = *in_p++) & UCHARMAX] & UCONT))
error = TRUE;
- break;
- }
}
+
+ /* Check for overlong/underlong sequences */
+ if ((bytes == 2 && (codepoint < 0x80 || codepoint > 0x7FF))
+ || (bytes == 3 && (codepoint < 0x800 || codepoint > 0xFFFF))
+ || (bytes == 4 && (codepoint < 0x10000 || codepoint > 0x10FFFF)))
+ error = TRUE;
+ if ((codepoint >= 0xD800 && codepoint <= 0xDFFF)
+ /* Check for reserved surrogate codepoints */
+ || (codepoint >= 0xFFFE && codepoint <= 0xFFFF))
+ /* Illegal */
+ error = TRUE;
+#if 0
+ printf( "codepoint:0x%x\n", codepoint);
+#endif
+ if (error)
+ break;
len++;
} while (char_type[ (*out_p++ = c1 = *in_p++) & UCHARMAX] & mbstart);
/* Start of the next multi-byte character */
-
*in_pp = --in_p;
*(--out_p) = EOS;
*out_pp = out_p;
@@ -723,18 +798,22 @@ uexpr_t mb_eval(
uexpr_t val = 0;
int c, c1;
+ if (! (char_type[ c = *seq++ & UCHARMAX] & mbstart)) {
+ *seq_pp = seq;
+ return c; /* Not a multi-byte character */
+ }
+
switch (mbchar) {
case EUC_JP :
case GB2312 :
case KSC5601:
case SJIS :
case BIGFIVE:
- val = (*seq++ & UCHARMAX) << 8;
- val += *seq++ & UCHARMAX; /* Evaluate the 2-byte sequence */
+ val = (c << 8) + (*seq++ & UCHARMAX);
+ /* Evaluate the 2-byte sequence */
break;
case ISO2022_JP :
- if (char_type[ c = *seq++ & UCHARMAX] & IS1) {
- /* Skip shift-sequence */
+ if (char_type[ c & UCHARMAX] & IS1) { /* Skip shift-sequence */
if (char_type[ c = *seq++ & UCHARMAX] & IS2) {
if (char_type[ c1 = *seq++ & UCHARMAX] & IS3) {
if (c1 == 0x28)
@@ -747,13 +826,14 @@ uexpr_t mb_eval(
}
}
}
- val = (c << 8) + (*seq++ & UCHARMAX); /* Evaluate the 2-byte */
+ val = (c << 8) + (*seq++ & UCHARMAX); /* Evaluate the 2-bytes */
break;
- case UTF8 : /* Evaluate the sequence of 2 or 3 bytes as it is */
- if (char_type[ c = *seq++ & UCHARMAX] & U2_1) {
- val = (c << 8) + (*seq++ & UCHARMAX);
- } else {
- val = (c << 8) + (*seq++ & UCHARMAX);
+ case UTF8 : /* Evaluate the sequence of 2, 3 or 4 bytes as it is */
+ val = (c << 8) + (*seq++ & UCHARMAX);
+ if (char_type[ c & UCHARMAX] & U3_1) {
+ val = (val << 8) + (*seq++ & UCHARMAX);
+ } else if (char_type[ c & UCHARMAX] & U4_1) {
+ val = (val << 8) + (*seq++ & UCHARMAX);
val = (val << 8) + (*seq++ & UCHARMAX);
}
break;
@@ -763,3 +843,27 @@ uexpr_t mb_eval(
return val;
}
+int last_is_mbchar(
+ const char * in, /* Input physical line */
+ int len /* Length of the line minus 2 */
+)
+/*
+ * Return 2, if the last char of the line is second byte of SJIS or BIGFIVE,
+ * else return 0.
+ */
+{
+ const char * cp = in + len;
+ const char * const endp = in + len; /* -> the char befor '\n' */
+
+ if ((mbchar & (SJIS | BIGFIVE)) == 0)
+ return 0;
+ while (in <= --cp) { /* Search backwardly */
+ if ((char_type[ *cp & UCHARMAX] & mbstart) == 0)
+ break; /* Not the first byte of MBCHAR */
+ }
+ if ((endp - cp) & 1)
+ return 0;
+ else
+ return 2;
+}
+
diff --git a/TAO/TAO_IDL/contrib/mcpp/mcpp.mpc b/TAO/TAO_IDL/contrib/mcpp/mcpp.mpc
index cb180143df4..25020fbda2a 100644
--- a/TAO/TAO_IDL/contrib/mcpp/mcpp.mpc
+++ b/TAO/TAO_IDL/contrib/mcpp/mcpp.mpc
@@ -21,8 +21,8 @@ project(tao_mcpp_exe) : aceexe, install, tao_output, crosscompile {
project(TAO_IDL_MCPP) : acelib, conv_lib, tao_output, crosscompile {
requires += mcpp
- macros += MCPP_LIB
- dynamicflags += MCPP_LIB_BUILD_DLL
+ macros += MCPP_LIB=1
+ dynamicflags += MCPP_LIB_BUILD_DLL
Header_Files {
*.h
diff --git a/TAO/TAO_IDL/contrib/mcpp/mcpp_lib.h b/TAO/TAO_IDL/contrib/mcpp/mcpp_lib.h
index 6664b44f889..62125fb5d1e 100644
--- a/TAO/TAO_IDL/contrib/mcpp/mcpp_lib.h
+++ b/TAO/TAO_IDL/contrib/mcpp/mcpp_lib.h
@@ -1,19 +1,11 @@
-/* $Id$ */
-#ifndef MCPP_LIB_H
-#define MCPP_LIB_H
+/* $Id$ mcpp_lib.h: declarations of libmcpp exported (visible) functions */
+#ifndef _MCPP_LIB_H
+#define _MCPP_LIB_H
-#ifdef OUT
-#undef OUT
+#ifndef _MCPP_OUT_H
+#include "mcpp_out.h" /* declaration of OUTDEST */
#endif
-/* Choices for output destination */
-typedef enum {
- OUT, /* ~= fp_out */
- ERR, /* ~= fp_err */
- DBG, /* ~= fp_debug */
- NUM_OUTDEST
-} OUTDEST;
-
#include "mcpp_lib_export.h"
extern MCPP_LIB_Export int mcpp_lib_main( int argc, char ** argv);
@@ -25,5 +17,4 @@ extern MCPP_LIB_Export void mcpp_set_out_func(
);
extern MCPP_LIB_Export void mcpp_use_mem_buffers( int tf);
extern MCPP_LIB_Export char * mcpp_get_mem_buffer( OUTDEST od);
-//#endif /* MCPP_LIB */
-#endif /* MCPP_LIB_H */
+#endif /* _MCPP_LIB_H */
diff --git a/TAO/TAO_IDL/contrib/mcpp/mcpp_out.h b/TAO/TAO_IDL/contrib/mcpp/mcpp_out.h
new file mode 100644
index 00000000000..f40dcdccb8a
--- /dev/null
+++ b/TAO/TAO_IDL/contrib/mcpp/mcpp_out.h
@@ -0,0 +1,17 @@
+/* $Id$ mcpp_out.h: declarations of OUTDEST data types for MCPP */
+#ifndef _MCPP_OUT_H
+#define _MCPP_OUT_H
+
+#ifdef OUT
+#undef OUT
+#endif
+
+/* Choices for output destination */
+enum OUTDEST {
+ OUT, /* ~= fp_out */
+ ERR, /* ~= fp_err */
+ DBG, /* ~= fp_debug */
+ NUM_OUTDEST
+};
+
+#endif /* _MCPP_OUT_H */
diff --git a/TAO/TAO_IDL/contrib/mcpp/noconfig.H b/TAO/TAO_IDL/contrib/mcpp/noconfig.H
index 342e3b54dac..0eff7d8c254 100644
--- a/TAO/TAO_IDL/contrib/mcpp/noconfig.H
+++ b/TAO/TAO_IDL/contrib/mcpp/noconfig.H
@@ -6,6 +6,8 @@
* must edit this file here and there.
*/
+#include "ace/Basic_Types.h"
+
#define TRUE 1
#define FALSE 0
@@ -13,9 +15,7 @@
* 'Target' means the O.S. and the compiler to which cpp is implemented.
* 'Host' means the O.S. and the compiler with which cpp is compiled.
*/
-#include "ace/config.h"
-/* Define target operating-system. */
#ifdef ACE_WIN32
#define SYSTEM SYS_WIN
#else
@@ -39,7 +39,7 @@
#if 0
"LCC-Win32 2006-03"
"Visual C 2005"
- "Visual C 2003"
+ "Visual C 2008"
"BCC V.5.5"
#endif
@@ -57,16 +57,16 @@
#define SYS_LINUX 0x1800 /* (SYS_LINUX & 0xF000) == SYS_UNIX */
#define SYS_FREEBSD 0x1A00 /* (SYS_FREEBSD & 0xF000) == SYS_UNIX */
#define SYS_CYGWIN 0x1C00 /* (SYS_CYGWIN & 0xF000) == SYS_UNIX */
-#define SYS_MAC 0x6000
+#define SYS_MAC 0x1E00 /* (SYS_MAC & 0xF000) == SYS_UNIX */
#define SYS_WIN 0x7000
#define SYS_WIN32 0x7400 /* (SYS_WIN32 & 0xF000) == SYS_WIN */
+#define SYS_WIN64 0x7800 /* (SYS_WIN64 & 0xF000) == SYS_WIN */
#define SYS_MINGW 0x7C00 /* (SYS_MINGW & 0xF000) == SYS_WIN */
/* COMPILER */
#define COMPILER_UNKNOWN 0
#define MSC 0x7400 /* Microsoft C, Visual C++ */
#define BORLANDC 0x7440 /* Borland C */
-#define WIN_SYMANTECC 0x7470 /* Symantec for Windows */
#define LCC 0x74C0 /* LCC-Win32 */
#define GNUC 0x00E0 /* GNU C (GCC) */
#define INDEPENDENT 0xFFFF /* No target, compiler-independent build*/
@@ -89,7 +89,7 @@
* MBCHAR means the default encoding, and you can change the encoding by
* #pragma MCPP setlocale, -e <encoding> option or environment variable
* LC_ALL, LC_CTYPE, LANG.
- * MBCHAR == 0 means no multi-byte character encoding.
+ * MBCHAR == 0 means not to recognize any multi-byte character encoding.
*/
/*
@@ -97,28 +97,26 @@
* several macros are defined here:
* *_OLD define the macro beginning with an alphabetic letter,
* *_STD, *_STD?, *_EXT, *_EXT2 define the macro beginning with an '_'.
- * *_STD1 define the macro beginning with '__' and ending with an alpha-
- * numeric letter.
+ * *_STD1 define the macro beginning with '__' and ending with an alphanumeric
+ * letter.
* *_STD2 define the macro beginning with '__' and ending with '__'.
* These may not be defined, if they are not needed.
* They should not be #defined to no token or to "".
*
- * CPU_OLD, CPU_STD1, CPU_STD2, CPU_SP_OLD, CPU_SP_STD
- * define the target cpu (by name)
* SYSTEM_OLD, SYSTEM_STD1, SYSTEM_STD2, SYSTEM_EXT, SYSTEM_EXT2
- * define the target operating system (by name)
+ * define the target operating system (by name).
* SYSTEM_SP_OLD, SYSTEM_SP_STD define the target-OS specific macro name
* COMPILER_OLD, COMPILER_STD1, COMPILER_STD2, COMPILER_EXT, COMPILER_EXT2
* , COMPILER_SP_OLD, COMPILER_SP_STD
- * define the target compiler (by name)
- * COMPILER_CPLUS define the target C++ compiler
- * COMPILER_SP1, COMPILER_SP2, COMPILER_SP3, COMPILER_SP4
- * define the compiler-specific macros
+ * define the target compiler (by name).
+ * COMPILER_CPLUS defines the target C++ compiler.
+ * COMPILER_SP1, COMPILER_SP2, COMPILER_SP3
+ * define the compiler-specific macros.
*
* <macro>_VAL specify the value of the <macro>.
* If not specified, these values default to "1".
* To define the value of no-token, specify as "" rather than no-token.
- * CPU_*, SYSTEM_OLD, SYSTEM_STD?, COMPILER_OLD have the value of "1".
+ * SYSTEM_OLD, SYSTEM_STD?, COMPILER_OLD have the value of "1".
*/
/*
@@ -169,11 +167,6 @@
#define SYSTEM_OLD "unix"
#define SYSTEM_STD1 "__unix"
#define SYSTEM_STD2 "__unix__"
-#endif
-
-#if SYSTEM == SYS_FREEBSD || SYSTEM == SYS_LINUX
-#define CPU_STD2 "__i386__"
-#endif
#if SYSTEM == SYS_FREEBSD
#define SYSTEM_EXT "__FreeBSD__"
@@ -184,8 +177,14 @@
#define SYSTEM_EXT "__linux__"
#endif
+#if SYSTEM == SYS_MAC /* Mac OS X */
+#define SYSTEM_EXT "__APPLE__"
+#define FNAME_FOLD TRUE /* Case-insensitive file-system */
+#define FRAMEWORK1 "/System/Library/Frameworks"
+#define FRAMEWORK2 "/Library/Frameworks"
+#endif /* SYSTEM == SYS_MAC */
+
#if SYSTEM == SYS_CYGWIN
-#define CPU_STD2 "__i386__"
#define SYSTEM_EXT "__CYGWIN__"
#define SYSTEM_EXT2 "__CYGWIN32__"
#define MBCHAR SJIS
@@ -193,6 +192,81 @@
#define CYGWIN_ROOT_DIRECTORY "c:/pub/compilers/cygwin"
#endif /* SYSTEM == SYS_CYGWIN */
+#ifndef MBCHAR
+#define MBCHAR EUC_JP /* UTF8 if you like */
+#endif
+#ifndef FNAME_FOLD
+#define FNAME_FOLD FALSE
+#endif
+
+#endif /* SYS_FAMILY == SYS_UNIX */
+
+#if SYS_FAMILY == SYS_WIN
+
+#define SYSTEM_SP_STD "__FLAT__"
+#define SYSTEM_SP_STD_VAL "1"
+
+#ifndef MBCHAR
+#define MBCHAR SJIS /* Multi-byte char is encoded in SJIS */
+#endif
+
+#if COMPILER == MSC
+#define CMP_NAME "Visual C++"
+// FUZZ: disable check_for_msc_ver
+#if _MSC_VER > 1200 /* Visual C++ V.6.0 or later */
+// FUZZ: enable check_for_msc_ver
+ /* When HOST == TARGET */
+#define ONE_PASS TRUE
+#endif
+#define COMPILER_EXT "_MSC_VER"
+#define COMPILER_EXT_VAL "1500" /* VC 6.0: "1200" */
+ /* VC 2002: "1300", VC 2003: "1310", VC 2005: "1400", VC 2008: "1500" */
+#define COMPILER_EXT2 "_MSC_FULL_VER"
+#define COMPILER_EXT2_VAL "150021022" /* VC 6.0: "12008804" */
+ /* VC 2002: "13009466", VC 2003: "13103077", VC 2005: "140050320" */
+ /* VC 2008: "150021022" */
+#define COMPILER_SP1 "_MSC_EXTENSIONS"
+#define COMPILER_SP1_VAL "1"
+#define COMPILER_SP2 "_INTEGRAL_MAX_BITS"
+#define COMPILER_SP2_VAL "64" /* VC 2003, VC2005, VC2008: 64 */
+#define TARGET_HAVE_LONG_LONG TRUE
+ /* __int64 instead of long long (VC 2.0 through 8.0) */
+#define EXPAND_PRAGMA TRUE
+#define HAVE_DIGRAPHS TRUE
+#define BIGFIVE_IS_ESCAPE_FREE TRUE
+#define SEARCH_INIT SOURCE
+
+#elif COMPILER == BORLANDC /* Borland C 5.* and C++Builder */
+#define CMP_NAME "Borland C"
+#define ONE_PASS TRUE
+#define COMPILER_STD2 "__TURBOC__"
+#if __BORLANDC__ /* Borland C */
+#define COMPILER_STD2_VAL "0x0550"
+ /* BC 5.5: "0x0550", BC 5.9: "0x5930" */
+#define COMPILER_EXT "__BORLANDC__"
+#define COMPILER_EXT_VAL "0x0550"
+ /* BC 5.5: "0x0550", BC 5.9: "0x5930" */
+#define COMPILER_CPLUS "__BCPLUSPLUS__"
+#define COMPILER_CPLUS_VAL "0x0550"
+ /* BC 5.5: "0x0550", BC 5.9: "0x5930" */
+#define EXPAND_PRAGMA TRUE
+#define SEARCH_INIT (CURRENT & SOURCE)
+#define TARGET_HAVE_LONG_LONG TRUE /* __int64 instead of long long */
+#endif /* __BORLANDC__ */
+
+#elif COMPILER == LCC
+#define CMP_NAME "LCC-Win32"
+#define COMPILER_STD2 "__LCC__"
+#define COMPILER_SP1 "__LCCDEBUGLEVEL"
+#define COMPILER_SP1_VAL "0"
+#define COMPILER_SP2 "__LCCOPTIMLEVEL"
+#define COMPILER_SP2_VAL "0"
+#define ONE_PASS TRUE
+#define TARGET_HAVE_LONG_LONG TRUE
+#define SJIS_IS_ESCAPE_FREE FALSE
+
+#endif
+
#if SYSTEM == SYS_MINGW
#define SYSTEM_EXT "__MINGW__"
#define SYSTEM_EXT2 "__MINGW32__"
@@ -200,23 +274,70 @@
#define MINGW_DIRECTORY "c:/pub/compilers/mingw"
#if COMPILER == GNUC
#define SJIS_IS_ESCAPE_FREE FALSE
+#define INC_DIR C_INCLUDE_DIR2
#endif
#endif /* SYSTEM == SYS_MINGW */
-#if SYS_FAMILY == SYS_UNIX
-#ifndef MBCHAR
-#define MBCHAR EUC_JP /* UTF8 if you like */
+#ifndef SJIS_IS_ESCAPE_FREE
+#define SJIS_IS_ESCAPE_FREE TRUE /* or FALSE following your compiler */
#endif
-#ifndef FNAME_FOLD
-#define FNAME_FOLD FALSE
+
+#endif /* SYS_FAMILY == SYS_WIN */
+
+#if COMPILER_FAMILY == GNUC
+#define CMP_NAME "GCC"
+#define COMPILER_EXT "__GNUC__"
+#define COMPILER_EXT_VAL "3" /* "3" for V.3.* "4" for V.4.* */
+#define COMPILER_EXT2 "__GNUC_MINOR__"
+#define COMPILER_EXT2_VAL "4" /* "4" for V.3.4, "1" for V.4.1 */
+#define COMPILER_CPLUS "__GNUG__"
+#define COMPILER_CPLUS_VAL "3" /* "3" for V.3.*, "4" for V.4.* */
+#define GCC_MAJOR_VERSION 3 /* Value of __GNUC__ as a digit */
+#define LINE_PREFIX "# "
+#ifndef HAVE_DIGRAPHS
+#define HAVE_DIGRAPHS TRUE
+#endif
+#ifndef TARGET_HAVE_LONG_LONG
+#define TARGET_HAVE_LONG_LONG TRUE
+#endif
+#define STDC_VERSION 0L /* 199409L for V.2.9, 0L for V.3.*,V.4.* */
+#define CPLUS_INCLUDE_DIR1 "/usr/include/c++/3.4" /* "/usr/include/c++/3.3.6" */ /* "/usr/include/c++/4.1.2" */
+#define CPLUS_INCLUDE_DIR2 "/usr/include/c++/3.4/backward" /* "/usr/include/c++/3.3.6/i386-vine-linux" */ /* "/usr/include/c++/4.1.2/i486-linux-gnu" */
+/* #define CPLUS_INCLUDE_DIR3 */ /* "/usr/include/c++/3.3.6/backward" */ /* "/usr/include/c++/4.1.2/backward" */
+/* #define C_INCLUDE_DIR1 */ /* "/usr/lib/gcc-lib/i386-vine-linux/3.3.6/include" */ /* "/usr/lib/gcc/i486-linux-gnu/4.1.2/include" */
+/* #define C_INCLUDE_DIR2 */
+#ifndef INC_DIR
+#ifdef C_INCLUDE_DIR1
+#define INC_DIR C_INCLUDE_DIR1 /* GNUC version specific dir */
+#else
+#define INC_DIR "/usr/local/include" /* "/usr/include" */
#endif
#endif
-
+#ifndef ENV_C_INCLUDE_DIR
+#define ENV_C_INCLUDE_DIR "C_INCLUDE_PATH"
+#define ENV_CPLUS_INCLUDE_DIR "CPLUS_INCLUDE_PATH"
+#endif
+#define SEARCH_INIT SOURCE /* Include directory relative to source */
+/*
+ * __SIZE_TYPE__, __PTRDIFF_TYPE__ and __WCHAR_TYPE__ are predefines of GCC.
+ */
+#if GCC_MAJOR_VERSION < 3
+#define COMPILER_SP1 "__SIZE_TYPE__"
+#define COMPILER_SP2 "__PTRDIFF_TYPE__"
+#define COMPILER_SP3 "__WCHAR_TYPE__"
+#define COMPILER_SP1_VAL "unsigned int"
+#define COMPILER_SP2_VAL "int"
+#define COMPILER_SP3_VAL "int"
+ /* SYS_FREEBSD: "int", SYS_CYGWIN, SYS_MINGW: "short unsigned int"
+ , others: "long int" */
+#endif /* GCC_MAJOR_VERSION < 3 */
+/* On GCC V.3.*, V.4.*, these macros are known by mcpp_g*_predef_*.h files. */
+#endif /* COMPILER_FAMILY == GNUC */
#if COMPILER == INDEPENDENT
/* specifications of compiler-independent build */
-#define LINE_PREFIX "# "
-#define STD_LINE_PREFIX FALSE /* Output #line by C source format */
+#define LINE_PREFIX "#line "
+#define STD_LINE_PREFIX TRUE /* Output #line by C source format */
#define HAVE_DIGRAPHS TRUE /* Output digraphs as it is */
#define SEARCH_INIT SOURCE /* Include directory relative to source */
#define SJIS_IS_ESCAPE_FREE TRUE /* Do not treat SJIS specially */
@@ -227,6 +348,23 @@
#endif
/*
+ * Each OS has some different target architectures. The followings define
+ * the target CPU.
+ * MCPP defines some predefined macros based on the CPU macro, and possibly
+ * redefine them on an execution time by some options.
+ */
+#if defined (__x86_64__) || defined (__amd64__) || defined (_M_AMD64) \
+ || defined (_AMD64_) || defined (_X64_)
+#define CPU "x86_64"
+#elif defined (__ppc64__) || defined (__powerpc64__)
+#define CPU "ppc64"
+#elif defined (__ppc__) || defined (__powerpc__)
+#define CPU "ppc"
+#else /* Defaults to i386 */
+#define CPU "i386"
+#endif
+
+/*
* defaults
*/
@@ -267,8 +405,8 @@
#endif
#ifndef LINE_PREFIX
-#define LINE_PREFIX "# "
-#define STD_LINE_PREFIX FALSE /* C source format */
+#define LINE_PREFIX "#line "
+#define STD_LINE_PREFIX TRUE /* C source format */
#else
#ifndef STD_LINE_PREFIX
#define STD_LINE_PREFIX FALSE /* Compiler-dependent format */
@@ -316,7 +454,7 @@
*
* LONGMAX should be defined to the LONG_MAX in <limits.h>.
* ULONGMAX should be defined to the ULONG_MAX in <limits.h> or LONG_MAX
- * for the compiler which lacks of unsigned long.
+ * for the compiler which does not have unsigned long.
*/
#ifndef CHARBIT
@@ -347,8 +485,6 @@
* SJIS literal.
* BIGFIVE_IS_ESCAPE_FREE means similar case on BIGFIVE encoding.
* ISO2022_JP_IS_ESCAPE_FREE means similar case on ISO2022_JP encoding.
- *
- * GCC can handle these encodings if it has been configured so.
*/
#ifndef SJIS_IS_ESCAPE_FREE
#define SJIS_IS_ESCAPE_FREE FALSE /* or TRUE following your compiler */
@@ -370,12 +506,14 @@
#if __GNUC__ >= 3
#define HAVE_INTMAX_T TRUE
#define HAVE_INTTYPES_H TRUE
+#define HAVE_STDINT_H TRUE
#endif
#define HOST_HAVE_LONG_LONG TRUE
-#define HOST_HAVE_GETOPT TRUE
#if HOST_SYSTEM == SYS_LINUX
#define HOST_HAVE_STPCPY TRUE
-#define HOST_LIB_IS_GLIBC TRUE
+#endif
+#if HOST_SYSTEM == SYS_MAC
+#define HOST_HAVE_STPCPY TRUE
#endif
#elif HOST_COMPILER == LCC
@@ -389,13 +527,16 @@
#define HOST_HAVE_LONG_LONG TRUE
#endif
#define HOST_HAVE_STPCPY TRUE
+#if __STDC__
+#define stpcpy( dest, src) __stpcpy__( dest, src)
+#endif
#endif
#ifndef HAVE_INTMAX_T
#define HAVE_INTMAX_T FALSE
#endif
-/* The host compilers both have the type long long int ? */
+/* The host compiler has the type long long int ? */
#ifndef HOST_HAVE_LONG_LONG
#define HOST_HAVE_LONG_LONG FALSE
#endif
@@ -427,46 +568,49 @@
#ifndef HOST_HAVE_STPCPY
#define HOST_HAVE_STPCPY FALSE
#endif
-#ifndef HOST_HAVE_GETOPT
-#define HOST_HAVE_GETOPT FALSE
-#endif
-#ifndef HOST_LIB_IS_GLIBC
-#define HOST_LIB_IS_GLIBC FALSE
-#endif
/*
* Declaration of standard library functions and macros.
*/
/* stdin, stdout, stderr, FILE, NULL, fgets(), fputs() and other functions. */
-#include "stdio.h"
-
-/* FILENAMEMAX should be defined to FILENAME_MAX of host system. */
-#ifdef FILENAME_MAX
-#define FILENAMEMAX FILENAME_MAX
+#include "ace/OS_NS_stdio.h"
+
+/* PATHMAX is the maximum length of path-list on the host system. */
+/* _POSIX_* only to get PATH_MAX */
+#define _POSIX_ 1
+#define _POSIX_SOURCE 1
+#ifndef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 1
+#define _POSIX_C_SOURCE_defined 1
+#endif
+#include "limits.h"
+#undef _POSIX_
+#undef _POSIX_SOURCE
+#ifdef _POSIX_C_SOURCE_defined
+#undef _POSIX_C_SOURCE
+#undef _POSIX_C_SOURCE_defined
+#endif
+#ifdef PATH_MAX
+#define PATHMAX PATH_MAX /* Posix macro */
#else
-#define FILENAMEMAX BUFSIZ
+#define PATHMAX FILENAME_MAX
#endif
/* islower(), isupper(), toupper(), isdigit(), isxdigit(), iscntrl() */
-#include "ctype.h"
+#include "ace/OS_NS_ctype.h"
/* errno */
-#include "errno.h"
+#include "ace/OS_NS_errno.h"
-#include "string.h"
-#include "stdlib.h"
-#include "time.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_stdlib.h"
+#include "ace/OS_NS_time.h"
#include "setjmp.h"
-
-#define NEED_GETOPT TRUE
-
-
-extern char * mcpp_stpcpy( char * dest, const char * src);
-
/* For debugging malloc systems by kmatsui */
#if KMMALLOC && _MEM_DEBUG
#include "xalloc.h"
#endif
-
+#define NEED_GETOPT 1
+ using namespace ACE_OS;
diff --git a/TAO/TAO_IDL/contrib/mcpp/support.cpp b/TAO/TAO_IDL/contrib/mcpp/support.cpp
index 89e1d22bab5..f3b34fa0083 100644
--- a/TAO/TAO_IDL/contrib/mcpp/support.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/support.cpp
@@ -1,31 +1,31 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
- * All rights reserved.
- *
- * Some parts of this code are derived from the public domain software
- * DECUS cpp (1984,1985) written by Martin Minow.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * All rights reserved.
+ *
+ * Some parts of this code are derived from the public domain software
+ * DECUS cpp (1984,1985) written by Martin Minow.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
/*
* S U P P O R T . C
@@ -57,10 +57,12 @@
* unget_string() Pushs sequence on the input stream.
* save_string() Saves a string in malloc() memory.
* get_file() Initializes a new FILEINFO structure, called when #include
- * opens a new file.
+ * opens a new file, or from unget_string().
* xmalloc() Gets a specified number of bytes from heap memory.
* If malloc() returns NULL, exits with a message.
* xrealloc() realloc(). If it fails, exits with a message.
+ * get_src_location() Trace back line-column datum into pre-line-splicing
+ * phase. A function for -K option.
* cfatal(), cerror(), cwarn()
* These routines format print messages to the user.
* mcpp_fputc(), mcpp_fputs(), mcpp_fprintf()
@@ -70,101 +72,112 @@
#if PREPROCESSED
#include "mcpp.H"
+#error "Unsupportred configuration"
#else
#include "system.H"
#include "internal.H"
#endif
-#include "ace/OS_NS_stdio.h"
-#include "ace/OS_NS_ctype.h"
-#include "ace/OS_NS_stdlib.h"
-
static void scan_id( int c);
- /* Scan an identifier */
+/* Scan an identifier */
static char * scan_number( int c, char * out, char * out_end);
- /* Scan a preprocessing number */
+/* Scan a preprocessing number */
static char * scan_number_prestd( int c, char * out, char * out_end);
- /* scan_number() for pre-Standard */
+/* scan_number() for pre-Standard mode */
#if OK_UCN
static char * scan_ucn( int cnt, char * out);
- /* Scan an UCN sequence */
+/* Scan an UCN sequence */
#endif
static char * scan_op( int c, char * out);
- /* Scan an operator or punctuat.*/
+/* Scan an operator or a punctuator */
static char * parse_line( void);
- /* Parse a logical line */
-static char * read_a_comment( char * sp);
- /* Read over a comment */
+/* Parse a logical line and convert comments */
+static char * read_a_comment( char * sp, size_t * sizp);
+/* Read over a comment */
static char * get_line( int in_comment);
- /* Get a logical line from file */
-static void at_eof( int in_comment);
- /* Check erroneous end of file */
+/* Get a logical line from file, handle line-splicing */
+static char * at_eof( int in_comment);
+/* Check erroneous end of file */
static void do_msg( const char * severity, const char * format
- , const char * arg1, long arg2, const char * arg3);
- /* Putout diagnostic message */
+ , const char * arg1, long arg2, const char * arg3);
+/* Putout diagnostic message */
static char * cat_line( int del_bsl);
- /* Splice the line */
-static int last_is_mbchar( const char * in, int len);
- /* The line ends with MBCHAR ? */
+/* Splice the line */
static void put_line( char * out, FILE * fp);
- /* Put out a logical line */
+/* Put out a logical line */
static void dump_token( int token_type, const char * cp);
- /* Dump a token and its type */
+/* Dump a token and its type */
#define EXP_MAC_IND_MAX 16
/* Information of current expanding macros for diagnostic */
-typedef struct expanding_mac {
- const char * name; /* Name of the macro just expanded */
- int to_be_freed; /* Name should be freed later */
-} EXPANDING_MAC;
-static EXPANDING_MAC expanding_macro[ EXP_MAC_IND_MAX];
+static struct {
+ const char * name; /* Name of the macro just expanded */
+ int to_be_freed; /* Name should be freed later */
+} expanding_macro[ EXP_MAC_IND_MAX];
static int exp_mac_ind = 0; /* Index into expanding_macro[] */
static int in_token = FALSE; /* For token scanning functions */
static int in_string = FALSE; /* For get_ch() and parse_line()*/
static int squeezews = FALSE;
-#if MCPP_LIB
+#define MAX_CAT_LINE 256
+/* Information on line catenated by <backslash><newline> */
+/* and by line-crossing comment. This is for -K option. */
+typedef struct catenated_line {
+ long start_line; /* Starting line of catenation */
+ long last_line; /* Ending line of catanation */
+ size_t len[ MAX_CAT_LINE + 1];
+ /* Length of successively catenated lines */
+} CAT_LINE;
+static CAT_LINE bsl_cat_line;
+/* Datum on the last catenated line by <backslash><newline> */
+static CAT_LINE com_cat_line;
+/* Datum on the last catenated line by a line-crossing comment */
+
+#ifdef MCPP_LIB
static int use_mem_buffers = FALSE;
void init_support( void)
{
- in_token = in_string = squeezews = FALSE;
- clear_exp_mac();
+ in_token = in_string = squeezews = FALSE;
+ bsl_cat_line.len[ 0] = com_cat_line.len[ 0] = 0;
+ clear_exp_mac();
}
typedef struct mem_buf {
- char * buffer;
- char * entry_pt;
- size_t size;
- size_t bytes_avail;
+ char * buffer;
+ char * entry_pt;
+ size_t size;
+ size_t bytes_avail;
} MEMBUF;
static MEMBUF mem_buffers[ NUM_OUTDEST];
void mcpp_use_mem_buffers(
- int tf
-)
+ int tf
+ )
{
- use_mem_buffers = tf ? TRUE : FALSE;
+ int i;
+
+ use_mem_buffers = tf ? TRUE : FALSE;
+ for (i = 0; i < NUM_OUTDEST; ++i) {
+ if (mem_buffers[ i].buffer)
+ /* Free previously allocated memory buffer */
+ ACE_OS::free( mem_buffers[ i].buffer);
if (use_mem_buffers) {
- int i;
-
- for (i = 0; i < NUM_OUTDEST; ++i) {
- if (mem_buffers[ i].buffer) /* Already allocated */
- ACE_OS::free( mem_buffers[ i].buffer);
- mem_buffers[ i].buffer = 0;
- mem_buffers[ i].entry_pt = 0;
- mem_buffers[ i].size = 0;
- mem_buffers[ i].bytes_avail = 0;
- }
+ /* Output to memory buffers instead of files */
+ mem_buffers[ i].buffer = 0;
+ mem_buffers[ i].entry_pt = 0;
+ mem_buffers[ i].size = 0;
+ mem_buffers[ i].bytes_avail = 0;
}
+ }
}
int using_mem_buffers( void)
{
- return use_mem_buffers;
+ return use_mem_buffers;
}
#define BUF_INCR_SIZE (NWORK * 2)
@@ -174,76 +187,76 @@ int using_mem_buffers( void)
#define MAX( a, b) (((a) > (b)) ? (a) : (b))
static char * append_to_buffer(
- MEMBUF * mem_buf_p,
- const char * string,
- size_t length
-)
+ MEMBUF * mem_buf_p,
+ const char * string,
+ size_t length
+ )
{
- if (mem_buf_p->bytes_avail < length) { /* Need to allocate more memory */
- size_t size = MAX( BUF_INCR_SIZE, length);
-
- if (mem_buf_p->buffer == 0) { /* 1st append */
- mem_buf_p->size = size;
- mem_buf_p->bytes_avail = size;
- mem_buf_p->buffer = xmalloc( mem_buf_p->size);
- mem_buf_p->entry_pt = mem_buf_p->buffer;
- } else {
- mem_buf_p->size += size;
- mem_buf_p->bytes_avail += size;
- mem_buf_p->buffer = xrealloc( mem_buf_p->buffer, mem_buf_p->size);
- mem_buf_p->entry_pt = mem_buf_p->buffer + mem_buf_p->size
- - mem_buf_p->bytes_avail;
- }
+ if (mem_buf_p->bytes_avail < length) { /* Need to allocate more memory */
+ size_t size = MAX( BUF_INCR_SIZE, length);
+
+ if (mem_buf_p->buffer == 0) { /* 1st append */
+ mem_buf_p->size = size;
+ mem_buf_p->bytes_avail = size;
+ mem_buf_p->buffer = xmalloc( mem_buf_p->size);
+ mem_buf_p->entry_pt = mem_buf_p->buffer;
+ } else {
+ mem_buf_p->size += size;
+ mem_buf_p->bytes_avail += size;
+ mem_buf_p->buffer = xrealloc( mem_buf_p->buffer, mem_buf_p->size);
+ mem_buf_p->entry_pt = mem_buf_p->buffer + mem_buf_p->size
+ - mem_buf_p->bytes_avail;
}
+ }
- /* Append the string to the tail of the buffer */
- ACE_OS::memcpy( mem_buf_p->entry_pt, string, length);
- mem_buf_p->entry_pt += length;
- mem_buf_p->entry_pt[ 0] = '\0'; /* Terminate the string buffer */
- mem_buf_p->bytes_avail -= length;
+ /* Append the string to the tail of the buffer */
+ ACE_OS::memcpy( mem_buf_p->entry_pt, string, length);
+ mem_buf_p->entry_pt += length;
+ mem_buf_p->entry_pt[ 0] = '\0'; /* Terminate the string buffer */
+ mem_buf_p->bytes_avail -= length;
- return mem_buf_p->buffer;
+ return mem_buf_p->buffer;
}
static int mem_putc(
- int c,
- OUTDEST od
-)
+ int c,
+ OUTDEST od
+ )
{
- char string[ 1];
+ char string[ 1];
- string[ 0] = (char) c;
+ string[ 0] = (char) c;
- if (append_to_buffer( &(mem_buffers[ od]), string, 1) != 0)
- return 0;
- else
- return !0;
+ if (append_to_buffer( &(mem_buffers[ od]), string, 1) != 0)
+ return 0;
+ else
+ return !0;
}
static int mem_puts(
- const char * s,
- OUTDEST od
-)
+ const char * s,
+ OUTDEST od
+ )
{
- if (append_to_buffer( &(mem_buffers[od]), s, ACE_OS::strlen(s)) != 0)
- return 0;
- else
- return !0;
+ if (append_to_buffer( &(mem_buffers[od]), s, ACE_OS::strlen(s)) != 0)
+ return 0;
+ else
+ return !0;
}
char * mcpp_get_mem_buffer(
- OUTDEST od
-)
+ OUTDEST od
+ )
{
- return mem_buffers[ od].buffer;
+ return mem_buffers[ od].buffer;
}
#endif /* MCPP_LIB */
-#define DEST2FP(od) \
- (od == OUT) ? fp_out : \
- ((od == ERR) ? fp_err : \
- ((od == DBG) ? fp_debug : \
+#define DEST2FP(od) \
+ (od == OUT) ? fp_out : \
+ ((od == ERR) ? fp_err : \
+ ((od == DBG) ? fp_debug : \
(0)))
/*
@@ -255,110 +268,110 @@ char * mcpp_get_mem_buffer(
*/
int mcpp_lib_fputc(
- int c,
- OUTDEST od
-)
+ int c,
+ OUTDEST od
+ )
{
-#if MCPP_LIB
- if (use_mem_buffers) {
- return mem_putc( c, od);
- } else {
+#ifdef MCPP_LIB
+ if (use_mem_buffers) {
+ return mem_putc( c, od);
+ } else {
#endif
- FILE * stream = DEST2FP( od);
+ FILE * stream = DEST2FP( od);
- return (stream != 0) ? ACE_OS::fputc( c, stream) : EOF;
-#if MCPP_LIB
- }
+ return (stream != 0) ? ACE_OS::fputc( c, stream) : EOF;
+#ifdef MCPP_LIB
+ }
#endif
}
int (* mcpp_fputc)( int c, OUTDEST od) = mcpp_lib_fputc;
int mcpp_lib_fputs(
- const char * s,
- OUTDEST od
-)
+ const char * s,
+ OUTDEST od
+ )
{
-#if MCPP_LIB
- if (use_mem_buffers) {
- return mem_puts( s, od);
- } else {
+#ifdef MCPP_LIB
+ if (use_mem_buffers) {
+ return mem_puts( s, od);
+ } else {
#endif
- FILE * stream = DEST2FP( od);
+ FILE * stream = DEST2FP( od);
- return (stream != 0) ? ACE_OS::fputs( s, stream) : EOF;
-#if MCPP_LIB
- }
+ return (stream != 0) ? ACE_OS::fputs( s, stream) : EOF;
+#ifdef MCPP_LIB
+ }
#endif
}
int (* mcpp_fputs)( const char * s, OUTDEST od) = mcpp_lib_fputs;
-#include <ace/os_include/os_stdarg.h>
+#include <stdarg.h>
int mcpp_lib_fprintf(
- OUTDEST od,
- const char * format,
- ...
-)
+ OUTDEST od,
+ const char * format,
+ ...
+ )
{
- va_list ap;
- FILE * stream = DEST2FP( od);
+ va_list ap;
+ FILE * stream = DEST2FP( od);
- if (stream != 0) {
- int rc;
+ if (stream != 0) {
+ int rc;
- va_start( ap, format);
-#if MCPP_LIB
- if (use_mem_buffers) {
- static char mem_buffer[ NWORK];
+ va_start( ap, format);
+#ifdef MCPP_LIB
+ if (use_mem_buffers) {
+ static char mem_buffer[ NWORK];
- rc = ACE_OS::vsprintf( mem_buffer, format, ap);
+ rc = ACE_OS::vsprintf( mem_buffer, format, ap);
- if (rc != 0) {
- rc = mem_puts( mem_buffer, od);
- }
- } else {
+ if (rc != 0) {
+ rc = mem_puts( mem_buffer, od);
+ }
+ } else {
#endif
- rc = vfprintf( stream, format, ap);
-#if MCPP_LIB
- }
+ rc = ACE_OS::vfprintf( stream, format, ap);
+#ifdef MCPP_LIB
+ }
#endif
- va_end( ap);
+ va_end( ap);
- return rc;
+ return rc;
- } else {
- return EOF;
- }
+ } else {
+ return EOF;
+ }
}
int (* mcpp_fprintf)( OUTDEST od, const char * format, ...) = mcpp_lib_fprintf;
-#if MCPP_LIB
+#ifdef MCPP_LIB
void mcpp_reset_def_out_func( void)
{
- mcpp_fputc = mcpp_lib_fputc;
- mcpp_fputs = mcpp_lib_fputs;
- mcpp_fprintf = mcpp_lib_fprintf;
+ mcpp_fputc = mcpp_lib_fputc;
+ mcpp_fputs = mcpp_lib_fputs;
+ mcpp_fprintf = mcpp_lib_fprintf;
}
void mcpp_set_out_func(
- int (* func_fputc)( int c, OUTDEST od),
- int (* func_fputs)( const char * s, OUTDEST od),
- int (* func_fprintf)( OUTDEST od, const char * format, ...)
-)
+ int (* func_fputc)( int c, OUTDEST od),
+ int (* func_fputs)( const char * s, OUTDEST od),
+ int (* func_fprintf)( OUTDEST od, const char * format, ...)
+ )
{
- mcpp_fputc = func_fputc;
- mcpp_fputs = func_fputs;
- mcpp_fprintf = func_fprintf;
+ mcpp_fputc = func_fputc;
+ mcpp_fputs = func_fputs;
+ mcpp_fprintf = func_fprintf;
}
#endif
int get_unexpandable(
- int c, /* First of token */
- int diag /* Flag of diagnosis */
-)
+ int c, /* First char of token */
+ int diag /* Flag of diagnosis */
+ )
/*
* Get the next unexpandable token in the line, expanding macros.
* Return the token type. The token is written in work_buf[].
@@ -367,70 +380,76 @@ int get_unexpandable(
* #include directives in order to diagnose some subtle macro expansions.
*/
{
- DEFBUF * defp = 0;
- FILEINFO * file;
- FILE * fp = 0;
- int token_type = NO_TOKEN;
-
- while (c != EOS && c != '\n' /* In a line */
- && (fp = infile->fp /* Preserve current state */
- , (token_type
- = scan_token( c, (workp = work_buf, &workp), work_end))
- == NAM) /* Identifier */
- && fp != 0 /* In source ! */
- && (defp = is_macro( 0)) != 0) { /* Macro */
- expand_macro( defp, work_buf, work_end); /* Expand macro call*/
- file = unget_string( work_buf, defp->name); /* Stack to re-read */
- c = skip_ws(); /* Skip TOK_SEP */
- if (file != infile && macro_line != MACRO_ERROR && (warn_level & 1)) {
- /* This diagnostic is issued even if "diag" is FALSE. */
- cwarn( "Macro \"%s\" is expanded to 0 token" /* _W1_ */
- , defp->name, 0L, 0);
- if (! no_source_line)
- dump_a_def( " macro", defp, FALSE, FALSE, TRUE, fp_err);
- }
+ DEFBUF * defp = 0;
+ FILEINFO * file;
+ FILE * fp = 0;
+ LINE_COL line_col = { 0L, 0};
+ int token_type = NO_TOKEN;
+ int has_pragma;
+
+ while (c != EOS && c != '\n' /* In a line */
+ && (fp = infile->fp /* Preserve current state */
+ , (token_type
+ = scan_token( c, (workp = work_buf, &workp), work_end))
+ == NAM) /* Identifier */
+ && fp != 0 /* In source ! */
+ && (defp = is_macro( 0)) != 0) { /* Macro */
+ expand_macro( defp, work_buf, work_end, line_col, & has_pragma);
+ /* Expand macro */
+ if (has_pragma)
+ cerror( "_Pragma operator found in directive line" /* _E_ */
+ , 0, 0L, 0);
+ file = unget_string( work_buf, defp->name); /* Stack to re-read */
+ c = skip_ws(); /* Skip TOK_SEP */
+ if (file != infile && macro_line != MACRO_ERROR && (warn_level & 1)) {
+ /* This diagnostic is issued even if "diag" is FALSE. */
+ cwarn( "Macro \"%s\" is expanded to 0 token" /* _W1_ */
+ , defp->name, 0L, 0);
+ if (! option_flags.no_source_line)
+ dump_a_def( " macro", defp, FALSE, TRUE, fp_err);
}
+ }
- if (c == '\n' || c == EOS) {
- unget_ch();
- return NO_TOKEN;
- }
-
- if (diag && fp == 0 && defp && (warn_level & 1)) {
- char tmp[ NWORK + 16];
- char * tmp_end = tmp + NWORK;
- char * tmp_p;
- file = unget_string( infile->buffer, defp->name); /* To diagnose */
+ if (c == '\n' || c == EOS) {
+ unget_ch();
+ return NO_TOKEN;
+ }
+
+ if (diag && fp == 0 && defp && (warn_level & 1)) {
+ char tmp[ NWORK + 16];
+ char * tmp_end = tmp + NWORK;
+ char * tmp_p;
+ file = unget_string( infile->buffer, defp->name); /* To diagnose */
+ c = get_ch();
+ while (file == infile) { /* Search the expanded macro */
+ if (scan_token( c, (tmp_p = tmp, &tmp_p), tmp_end) != NAM) {
c = get_ch();
- while (file == infile) { /* Search the expanded macro */
- if (scan_token( c, (tmp_p = tmp, &tmp_p), tmp_end) != NAM) {
- c = get_ch();
- continue;
- }
- if (standard && str_eq( identifier, "defined")) {
- cwarn( "Macro \"%s\" is expanded to \"defined\"" /* _W1_ */
- , defp->name, 0L, 0);
- break;
- }
- if (! standard && str_eq( identifier, "sizeof")) {
- cwarn( "Macro \"%s\" is expanded to \"sizeof\"" /* _W1_ */
- , defp->name, 0L, 0);
- break;
- }
- c = get_ch();
- }
- if (file == infile) {
- infile->bptr += ACE_OS::strlen( infile->bptr);
- get_ch();
- }
- unget_ch();
- if (token_type == OPE) {
- unget_string( work_buf, 0); /* Set again 'openum' */
- scan_token( get_ch(), (workp = work_buf, &workp), work_end);
- }
+ continue;
+ }
+ if (standard && str_eq( identifier, "defined")) {
+ cwarn( "Macro \"%s\" is expanded to \"defined\"" /* _W1_ */
+ , defp->name, 0L, 0);
+ break;
+ }
+ if (! standard && str_eq( identifier, "sizeof")) {
+ cwarn( "Macro \"%s\" is expanded to \"sizeof\"" /* _W1_ */
+ , defp->name, 0L, 0);
+ break;
+ }
+ c = get_ch();
+ }
+ if (file == infile) {
+ infile->bptr += ACE_OS::strlen( infile->bptr);
+ get_ch();
}
+ unget_ch();
+ if (token_type == OPE) {
+ unget_string( work_buf, 0); /* Set again 'openum' */
+ scan_token( get_ch(), (workp = work_buf, &workp), work_end);
+ }
+ }
- return token_type;
+ return token_type;
}
void skip_nl( void)
@@ -438,36 +457,36 @@ void skip_nl( void)
* Skip to the end of the current input line.
*/
{
- insert_sep = NO_SEP;
- while (infile && infile->fp == 0) { /* Stacked text */
- infile->bptr += ACE_OS::strlen( infile->bptr);
- get_ch(); /* To the parent */
- }
- if (infile)
- infile->bptr += ACE_OS::strlen( infile->bptr); /* Source line */
+ insert_sep = NO_SEP;
+ while (infile && infile->fp == 0) { /* Stacked text */
+ infile->bptr += ACE_OS::strlen( infile->bptr);
+ get_ch(); /* To the parent */
+ }
+ if (infile)
+ infile->bptr += ACE_OS::strlen( infile->bptr); /* Source line */
}
int skip_ws( void)
/*
- * Skip over whitespaces other than <newline>.
- * Note: POST_STD mode does not use TOK_SEP, and KR mode does not use COM_SEP.
+ * Skip over horizontal whitespaces.
*/
{
- int c;
+ int c;
- do {
- c = get_ch();
- }
- while (c == ' ' || c == TOK_SEP);
- /* COM_SEP is an alias of TOK_SEP */
- return c;
+ do {
+ c = get_ch();
+ } while (char_type[ c] & HSP);
+
+ return c;
}
+#define MBMASK 0xFF /* Mask to hide multibyte char */
+
int scan_token(
- int c, /* The first character of the token */
- char ** out_pp, /* Pointer to pointer to output buf */
- char * out_end /* End of output buffer */
-)
+ int c, /* The first character of the token */
+ char ** out_pp, /* Pointer to pointer to output buf */
+ char * out_end /* End of output buffer */
+ )
/*
* Scan the next token of any type.
* The token is written out to the specified buffer and the output pointer
@@ -481,224 +500,230 @@ int scan_token(
* source.
*/
{
- char * out = *out_pp; /* Output pointer */
- int ch_type; /* Type of character */
- int token_type = 0; /* Type of token */
- int ch;
-
- if (standard)
- in_token = TRUE; /* While a token is scanned */
- ch_type = char_type[ c & UCHARMAX] & mbmask;
- c = c & UCHARMAX;
-
- switch (ch_type) {
- case LET: /* An identifier */
- switch (c) {
- case 'L':
- if (! standard)
- goto ident;
- ch = get_ch();
- if (char_type[ ch] & QUO) { /* char_type[ ch] == QUO */
- if (ch == '"')
- token_type = WSTR; /* Wide-char string literal */
- else
- token_type = WCHR; /* Wide-char constant */
- c = ch;
- *out++ = 'L';
- break; /* Fall down to "case QUO:" */
- } else {
- unget_ch();
- } /* Fall through */
- default:
-ident:
- scan_id( c);
- out = mcpp_stpcpy( out, identifier);
- token_type = NAM;
- break;
- }
- if (token_type == NAM)
- break;
- /* Else fall through -- i.e. WSTR, WCHR */
- case QUO: /* String or character constant */
- out = scan_quote( c, out, out_end, FALSE);
- if (token_type == 0) {
- if (c == '"')
- token_type = STR;
- else
- token_type = CHR;
- } /* Else WSTR or WCHR */
- break;
- case DOT:
- ch = get_ch();
+ char * out = *out_pp; /* Output pointer */
+ int ch_type; /* Type of character */
+ int token_type = 0; /* Type of token */
+ int ch;
+
+ if (standard)
+ in_token = TRUE; /* While a token is scanned */
+ c = c & UCHARMAX;
+ ch_type = char_type[ c] & MBMASK;
+
+ switch (ch_type) {
+ case LET: /* Probably an identifier */
+ switch (c) {
+ case 'L':
+ if (! standard)
+ goto ident;
+ ch = get_ch();
+ if (char_type[ ch] & QUO) { /* char_type[ ch] == QUO */
+ if (ch == '"')
+ token_type = WSTR; /* Wide-char string literal */
+ else
+ token_type = WCHR; /* Wide-char constant */
+ c = ch;
+ *out++ = 'L';
+ break; /* Fall down to "case QUO:" */
+ } else {
unget_ch();
- if ((char_type[ ch] & DIG) == 0) /* Operator '.' or '...' */
- goto operat;
- /* Else fall through */
- case DIG: /* Preprocessing number */
- out = (standard ? scan_number( c, out, out_end)
- : scan_number_prestd( c, out, out_end));
- token_type = NUM;
- break;
- case PUNC:
-operat: out = scan_op( c, out); /* Operator or punctuator */
- token_type = OPE; /* Number is set in global "openum" */
- break;
- default:
+ } /* Fall through */
+ default: /* An identifier */
+ ident:
+ scan_id( c);
+ out = stpcpy( out, identifier);
+ token_type = NAM;
+ break;
+ }
+ if (token_type == NAM)
+ break;
+ /* Else fall through -- i.e. WSTR, WCHR */
+ case QUO: /* String or character constant */
+ out = scan_quote( c, out, out_end, FALSE);
+ if (token_type == 0) { /* Without prefix L */
+ if (c == '"')
+ token_type = STR;
+ else
+ token_type = CHR;
+ } /* Else WSTR or WCHR */
+ break;
+ case DOT:
+ ch = get_ch();
+ unget_ch();
+ if ((char_type[ ch] & DIG) == 0) /* Operator '.' or '...' */
+ goto operat;
+ /* Else fall through */
+ case DIG: /* Preprocessing number */
+ out = (standard ? scan_number( c, out, out_end)
+ : scan_number_prestd( c, out, out_end));
+ token_type = NUM;
+ break;
+ case PUNC:
+ operat: out = scan_op( c, out); /* Operator or punctuator */
+ token_type = OPE; /* Number is set in global "openum" */
+ break;
+ default: /* Special tokens or special characters */
#if OK_UCN
- if (mcpp_mode == STD && c == '\\' && stdc2) {
- ch = get_ch();
- unget_ch();
- if (ch == 'U' || ch == 'u')
- goto ident; /* Universal-Characte-Name */
- }
+ if (mcpp_mode == STD && c == '\\' && stdc2) {
+ ch = get_ch();
+ unget_ch();
+ if (ch == 'U' || ch == 'u')
+ goto ident; /* Universal-Characte-Name */
+ }
#endif
#if OK_MBIDENT
- if (mcpp_mode == STD && (char_type[ c] & mbstart) && stdc3) {
- char * bptr = infile->bptr;
- mb_read( c, &infile->bptr, &out);
- infile->bptr = bptr;
- out = *out_pp;
- goto ident;
- }
-#endif
- if ((standard && (c == CAT || c == ST_QUOTE)) || (char_type[ c] & SPA))
- token_type = SEP; /* Token separator or magic char*/
- else
- token_type = SPE;
- /* Unkown token ($, @, multi-byte character or Latin */
- *out++ = c;
- *out = EOS;
- break;
+ if (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3) {
+ char * bptr = infile->bptr;
+ mb_read( c, &infile->bptr, &out);
+ infile->bptr = bptr;
+ out = *out_pp;
+ goto ident; /* An identifier with multi-byte characters */
+ /* Mbchar cheking has been done in scan_quote() and others. */
}
-
- if (out_end < out)
- cfatal( "Buffer overflow scanning token \"%s\"" /* _F_ */
- , *out_pp, 0L, 0);
- if (mcpp_debug & TOKEN)
- dump_token( token_type, *out_pp);
- if (mcpp_mode == POST_STD && token_type != SEP && infile->fp != 0
- && (char_type[ *infile->bptr & UCHARMAX] & SPA) == 0)
- insert_sep = INSERT_SEP; /* Insert token separator */
- *out_pp = out;
-
- in_token = FALSE; /* Token scanning has been done */
- return token_type;
+#endif
+ if ((standard && (c == CAT || c == ST_QUOTE)) || (char_type[ c] & SPA))
+ token_type = SEP; /* Token separator or magic char*/
+ else
+ token_type = SPE;
+ /* Unkown token ($, @, multi-byte character or Latin */
+ *out++ = c;
+ *out = EOS;
+ break;
+ }
+
+ if (out_end < out)
+ cfatal( "Buffer overflow scanning token \"%s\"" /* _F_ */
+ , *out_pp, 0L, 0);
+ if (mcpp_debug & TOKEN)
+ dump_token( token_type, *out_pp);
+ if (mcpp_mode == POST_STD && token_type != SEP && infile->fp != 0
+ && (char_type[ *infile->bptr & UCHARMAX] & SPA) == 0)
+ insert_sep = INSERT_SEP; /* Insert token separator */
+ *out_pp = out;
+
+ in_token = FALSE; /* Token scanning has been done */
+ return token_type;
}
static void scan_id(
- int c /* First char of id */
-)
+ int c /* First char of id */
+ )
/*
* Reads the next identifier and put it into identifier[].
* The caller has already read the first character of the identifier.
*/
{
-#if DOLLAR_IN_NAME
- static int diagnosed = FALSE; /* Flag of diagnosing '$' */
-#endif
- static char * const limit = &identifier[ IDMAX];
+ static char * const limit = &identifier[ IDMAX];
+ static int dollar_diagnosed = FALSE; /* Flag of diagnosing '$' */
#if OK_UCN
- int uc2 = 0, uc4 = 0; /* Count of UCN16, UCN32 */
+ int uc2 = 0, uc4 = 0; /* Count of UCN16, UCN32 */
#endif
#if OK_MBIDENT
- int mb = 0; /* Count of MBCHAR */
+ int mb = 0; /* Count of MBCHAR */
#endif
- size_t len; /* Length of identifier */
- char * bp = identifier;
+ size_t len; /* Length of identifier */
+ char * bp = identifier;
+
+ if (c == IN_SRC) { /* Magic character */
+ *bp++ = c;
+ if ((mcpp_debug & MACRO_CALL) && ! in_directive) {
+ *bp++ = get_ch(); /* Its 2-bytes */
+ *bp++ = get_ch(); /* argument */
+ }
+ c = get_ch();
+ }
- do {
- if (bp < limit)
- *bp++ = c;
+ do {
+ if (bp < limit)
+ *bp++ = c;
#if OK_UCN
- if (mcpp_mode == STD && c == '\\' && stdc2) {
- int cnt;
- char * tp = bp;
+ if (mcpp_mode == STD && c == '\\' && stdc2) {
+ int cnt;
+ char * tp = bp;
- if ((c = get_ch()) == 'u') {
- cnt = 4;
- } else if (c == 'U') {
- cnt = 8;
- } else {
- unget_ch();
- bp--;
- break;
- }
- *bp++ = c;
- if ((bp = scan_ucn( cnt, bp)) == 0) /* Error */
- return;
- if (cnt == 4)
- uc2++;
- else if (cnt == 8)
- uc4++;
- if (limit <= tp) /* Too long identifier */
- bp = tp; /* Back the pointer */
- goto next_c;
- }
+ if ((c = get_ch()) == 'u') {
+ cnt = 4;
+ } else if (c == 'U') {
+ cnt = 8;
+ } else {
+ unget_ch();
+ bp--;
+ break;
+ }
+ *bp++ = c;
+ if ((bp = scan_ucn( cnt, bp)) == 0) /* Error */
+ return;
+ if (cnt == 4)
+ uc2++;
+ else if (cnt == 8)
+ uc4++;
+ if (limit <= tp) /* Too long identifier */
+ bp = tp; /* Back the pointer */
+ goto next_c;
+ }
#endif /* OK_UCN */
#if OK_MBIDENT
- if (mcpp_mode == STD && (char_type[ c] & mbstart) && stdc3) {
- len = mb_read( c, &infile->bptr, &bp);
- if (len & MB_ERROR) {
- if (infile->fp)
- cerror(
- "Illegal multi-byte character sequence." /* _E_ */
- , 0, 0L, 0);
- } else {
- mb += len;
- }
- }
+ if (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3) {
+ len = mb_read( c, &infile->bptr, &bp);
+ if (len & MB_ERROR) {
+ if (infile->fp)
+ cerror(
+ "Illegal multi-byte character sequence." /* _E_ */
+ , 0, 0L, 0);
+ } else {
+ mb += len;
+ }
+ }
#endif /* OK_MBIDENT */
#if OK_UCN
-next_c:
+ next_c:
#endif
- c = get_ch();
- } while ((char_type[ c] & (LET | DIG)) /* Letter or digit */
+ c = get_ch();
+ } while ((char_type[ c] & (LET | DIG)) /* Letter or digit */
#if OK_UCN
- || (mcpp_mode == STD && c == '\\' && stdc2)
+ || (mcpp_mode == STD && c == '\\' && stdc2)
#endif
#if OK_MBIDENT
- || (mcpp_mode == STD && (char_type[ c] & mbstart) && stdc3)
+ || (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3)
#endif
- );
+ );
- unget_ch();
- *bp = EOS;
+ unget_ch();
+ *bp = EOS;
- if (bp >= limit && (warn_level & 1)) /* Limit of token */
- cwarn( "Too long identifier truncated to \"%s\"" /* _W1_ */
- , identifier, 0L, 0);
+ if (bp >= limit && (warn_level & 1)) /* Limit of token */
+ cwarn( "Too long identifier truncated to \"%s\"" /* _W1_ */
+ , identifier, 0L, 0);
- len = bp - identifier;
+ len = bp - identifier;
#if IDMAX > IDLEN90MIN
- /* UCN16, UCN32, MBCHAR are counted as one character for each. */
+ /* UCN16, UCN32, MBCHAR are counted as one character for each. */
#if OK_UCN
- if (mcpp_mode == STD)
- len -= (uc2 * 5) - (uc4 * 9);
+ if (mcpp_mode == STD)
+ len -= (uc2 * 5) - (uc4 * 9);
#endif
#if OK_MBIDENT
- if (mcpp_mode == STD)
- len -= mb;
+ if (mcpp_mode == STD)
+ len -= mb;
#endif
- if (standard && infile->fp && len > id_len_min && (warn_level & 4))
- cwarn( "Identifier longer than %.0s%ld characters \"%s\"" /* _W4_ */
- , 0, (long) id_len_min, identifier);
+ if (standard && infile->fp && len > std_limits.id_len && (warn_level & 4))
+ cwarn( "Identifier longer than %.0s%ld characters \"%s\"" /* _W4_ */
+ , 0, (long) std_limits.id_len, identifier);
#endif /* IDMAX > IDLEN90MIN */
-#if DOLLAR_IN_NAME
- if (diagnosed == FALSE && (warn_level & 2)
- && ACE_OS::strchr( identifier, '$') != 0) {
- cwarn( "'$' in identifier \"%s\"", identifier, 0L, 0); /* _W2_ */
- diagnosed = TRUE; /* Diagnose only once */
- }
-#endif
+ if (option_flags.dollar_in_name && dollar_diagnosed == FALSE
+ && (warn_level & 2) && ACE_OS::strchr( identifier, '$') != 0) {
+ cwarn( "'$' in identifier \"%s\"", identifier, 0L, 0); /* _W2_ */
+ dollar_diagnosed = TRUE; /* Diagnose only once */
+ }
}
char * scan_quote(
- int delim, /* ', " or < (header-name) */
- char * out, /* Output buffer */
- char * out_end, /* End of output buffer */
- int diag /* Diagnostic should be output */
-)
+ int delim, /* ', " or < (header-name) */
+ char * out, /* Output buffer */
+ char * out_end, /* End of output buffer */
+ int diag /* Diagnostic should be output */
+ )
/*
* Scan off a string literal or character constant to the output buffer.
* Report diagnosis if the quotation is terminated by newline or character
@@ -706,174 +731,180 @@ char * scan_quote(
* Return the next output pointer or 0 (on error).
*/
{
- const char * const skip_line = ", skipped the line"; /* _E_ */
- const char * const unterm_string
- = "Unterminated string literal%s";
- const char * const unterm_char
- = "Unterminated character constant %s%.0ld%s";
- const char * skip;
-#if MBCHAR
- size_t len;
-#endif
- int c;
- char * out_p = out;
-
- /* Set again in case of called from routines other than scan_token(). */
- if (standard)
- in_token = TRUE;
- *out_p++ = delim;
- if (delim == '<')
- delim = '>';
-
-scan:
- while ((c = get_ch()) != EOS) {
+ const char * const skip_line = ", skipped the line"; /* _E_ */
+ const char * const unterm_string
+ = "Unterminated string literal%s";
+ const char * const unterm_char
+ = "Unterminated character constant %s%.0ld%s";
+ const char * const empty_const
+ = "Empty character constant %s%.0ld%s";
+ const char * skip;
+ size_t len;
+ int c;
+ char * out_p = out;
+
+ /* Set again in case of called from routines other than scan_token(). */
+ if (standard)
+ in_token = TRUE;
+ *out_p++ = delim;
+ if (delim == '<')
+ delim = '>';
+
+ scan:
+ while ((c = get_ch()) != EOS) {
#if MBCHAR
- if (char_type[ c] & mbstart) {
- /* First of multi-byte character (or shift-sequence) */
- char * bptr = infile->bptr;
- len = mb_read( c, &infile->bptr, (*out_p++ = c, &out_p));
- if (len & MB_ERROR) {
- if (infile->fp != 0 && compiling && diag) {
- if (warn_level & 1) {
- char * buf;
- size_t chlen;
- buf = xmalloc( chlen = infile->bptr - bptr + 2);
- ACE_OS::memcpy( buf, bptr, chlen - 1);
- buf[ chlen - 1] = EOS;
- cwarn(
- "Illegal multi-byte character sequence \"%s\" in quotation", /* _W1_ */
- buf, 0L, 0);
- ACE_OS::free( buf);
- }
- }
- continue;
- } else { /* Valid multi-byte character (or sequence) */
- goto chk_limit;
- }
+ if (char_type[ c] & mbchk) {
+ /* First of multi-byte character (or shift-sequence) */
+ char * bptr = infile->bptr;
+ len = mb_read( c, &infile->bptr, (*out_p++ = c, &out_p));
+ if (len & MB_ERROR) {
+ if (infile->fp != 0 && compiling && diag) {
+ if (warn_level & 1) {
+ char * buf;
+ size_t chlen;
+ buf = xmalloc( chlen = infile->bptr - bptr + 2);
+ ACE_OS::memcpy( buf, bptr, chlen - 1);
+ buf[ chlen - 1] = EOS;
+ cwarn(
+ "Illegal multi-byte character sequence \"%s\" in quotation", /* _W1_ */
+ buf, 0L, 0);
+ ACE_OS::free( buf);
+ }
}
+ continue;
+ } else { /* Valid multi-byte character (or sequence) */
+ goto chk_limit;
+ }
+ }
#endif
- if (c == delim) {
- break;
- } else if (c == '\\' && delim != '>') { /* In string literal */
+ if (c == delim) {
+ break;
+ } else if (c == '\\' && delim != '>') { /* In string literal */
#if OK_UCN
- if (mcpp_mode == STD && stdc2) {
- int cnt;
- char * tp;
-
- *out_p++ = c;
- if ((c = get_ch()) == 'u') {
- cnt = 4;
- } else if (c == 'U') {
- cnt = 8;
- } else {
- goto escape;
- }
- *out_p++ = c;
- if ((tp = scan_ucn( cnt, out_p)) != 0)
- out_p = tp;
- /* Else error */
- continue; /* Error or not, anyway continue */
- }
-#endif /* OK_UCN */
- *out_p++ = c; /* Escape sequence */
- c = get_ch();
-escape:
-#if MBCHAR
- if (char_type[ c] & mbstart) {
- /* '\\' followed by multi-byte char */
- unget_ch();
- continue;
- }
-#endif
- if (! standard && c == '\n') { /* <backslash><newline> */
- out_p--; /* Splice the lines */
- if (cat_line( TRUE) == 0) /* End of file */
- break;
- c = get_ch();
- }
- } else if (mcpp_mode == POST_STD && c == ' ' && delim == '>'
- && infile->fp == 0) {
- continue; /* Skip space possibly inserted by macro expansion */
- } else if (c == '\n') {
- break;
+ if (mcpp_mode == STD && stdc2) {
+ int cnt;
+ char * tp;
+
+ *out_p++ = c;
+ if ((c = get_ch()) == 'u') {
+ cnt = 4;
+ } else if (c == 'U') {
+ cnt = 8;
+ } else {
+ goto escape;
}
- if (diag && ACE_OS::ace_iscntrl( c) && ((char_type[ c] & SPA) == 0)
- && (warn_level & 1))
- cwarn(
- "Illegal control character %.0s0lx%02x in quotation" /* _W1_ */
- , 0, (long) c, 0);
*out_p++ = c;
+ if ((tp = scan_ucn( cnt, out_p)) != 0)
+ out_p = tp;
+ /* Else error */
+ continue; /* Error or not, anyway continue */
+ }
+#endif /* OK_UCN */
+ *out_p++ = c; /* Escape sequence */
+ c = get_ch();
+ escape:
#if MBCHAR
-chk_limit:
+ if (char_type[ c] & mbchk) {
+ /* '\\' followed by multi-byte char */
+ unget_ch();
+ continue;
+ }
#endif
- if (out_end < out_p) {
- *out_end = EOS;
- cfatal( "Too long quotation", 0, 0L, 0); /* _F_ */
- }
+ if (! standard && c == '\n') { /* <backslash><newline> */
+ out_p--; /* Splice the lines */
+ if (cat_line( TRUE) == 0) /* End of file */
+ break;
+ c = get_ch();
+ }
+ } else if (mcpp_mode == POST_STD && c == ' ' && delim == '>'
+ && infile->fp == 0) {
+ continue; /* Skip space possibly inserted by macro expansion */
+ } else if (c == '\n') {
+ break;
+ }
+ if (diag && iscntrl( c) && ((char_type[ c] & SPA) == 0)
+ && (warn_level & 1))
+ cwarn(
+ "Illegal control character %.0s0lx%02x in quotation" /* _W1_ */
+ , 0, (long) c, 0);
+ *out_p++ = c;
+ chk_limit:
+ if (out_end < out_p) {
+ *out_end = EOS;
+ cfatal( "Too long quotation", 0, 0L, 0); /* _F_ */
}
+ }
- if (c == '\n' || c == EOS)
- unget_ch();
- if (c == delim)
- *out_p++ = delim;
- *out_p = EOS;
- if (diag) { /* At translation phase 3 */
- skip = (infile->fp == 0) ? 0 : skip_line;
- if (c != delim) {
- if (mcpp_mode == OLD_PREP /* Implicit closing of quote*/
- && (delim == '"' || delim == '\''))
- goto done;
- if (delim == '"') {
- if (mcpp_mode != POST_STD && lang_asm) { /* STD, KR */
- /* Concatenate the unterminated string to the next line */
- if (warn_level & 1)
- cwarn( unterm_string
- , ", catenated to the next line" /* _W1_ */
- , 0L, 0);
- if (cat_line( FALSE) != 0)
- goto scan; /* Splice the lines */
- /* Else end of file */
- } else {
- cerror( unterm_string, skip, 0L, 0); /* _E_ */
- }
- } else if (delim == '\'') {
- if (mcpp_mode != POST_STD && lang_asm) { /* STD, KR */
- if (warn_level & 1)
- cwarn( unterm_char, out, 0L, 0); /* _W1_ */
- goto done;
- } else {
- cerror( unterm_char, out, 0L, skip); /* _E_ */
- }
- } else {
- cerror( "Unterminated header name %s%.0ld%s" /* _E_ */
- , out, 0L, skip);
- }
- out_p = 0;
- } else if (delim == '\'' && out_p - out <= 2) {
- cerror( "Empty character constant %s%.0ld%s" /* _E_ */
- , out, 0L, skip);
- out_p = 0;
+ if (c == '\n' || c == EOS)
+ unget_ch();
+ if (c == delim)
+ *out_p++ = delim;
+ *out_p = EOS;
+ if (diag) { /* At translation phase 3 */
+ skip = (infile->fp == 0) ? 0 : skip_line;
+ if (c != delim) {
+ if (mcpp_mode == OLD_PREP /* Implicit closing of quote*/
+ && (delim == '"' || delim == '\''))
+ goto done;
+ if (delim == '"') {
+ if (mcpp_mode != POST_STD && option_flags.lang_asm) {
+ /* STD, KR */
+ /* Concatenate the unterminated string to the next line */
+ if (warn_level & 1)
+ cwarn( unterm_string
+ , ", catenated to the next line" /* _W1_ */
+ , 0L, 0);
+ if (cat_line( FALSE) != 0)
+ goto scan; /* Splice the lines */
+ /* Else end of file */
+ } else {
+ cerror( unterm_string, skip, 0L, 0); /* _E_ */
}
- else if (mcpp_mode == POST_STD && delim == '>' && (warn_level & 2))
- cwarn(
- "Header-name enclosed by <, > is an obsolescent feature %s" /* _W2_ */
- , out, 0L, skip);
+ } else if (delim == '\'') {
+ if (mcpp_mode != POST_STD && option_flags.lang_asm) {
+ /* STD, KR */
+ if (warn_level & 1)
+ cwarn( unterm_char, out, 0L, 0); /* _W1_ */
+ goto done;
+ } else {
+ cerror( unterm_char, out, 0L, skip); /* _E_ */
+ }
+ } else {
+ cerror( "Unterminated header name %s%.0ld%s" /* _E_ */
+ , out, 0L, skip);
+ }
+ out_p = 0;
+ } else if (delim == '\'' && out_p - out <= 2) {
+ if (mcpp_mode != POST_STD && option_flags.lang_asm) {
+ /* STD, KR */
+ if (warn_level & 1)
+ cwarn( empty_const, out, 0L, skip); /* _W1_ */
+ } else {
+ cerror( empty_const, out, 0L, skip); /* _E_ */
+ out_p = 0;
+ goto done;
+ }
+ } else if (mcpp_mode == POST_STD && delim == '>' && (warn_level & 2)) {
+ cwarn(
+ "Header-name enclosed by <, > is an obsolescent feature %s" /* _W2_ */
+ , out, 0L, skip);
+ }
#if NWORK-2 > SLEN90MIN
- if (standard && out_p - out > str_len_min && (warn_level & 4))
- cwarn( "Quotation longer than %.0s%ld bytes" /* _W4_ */
- , 0, str_len_min, 0);
+ if (standard && out_p - out > std_limits.str_len && (warn_level & 4))
+ cwarn( "Quotation longer than %.0s%ld bytes" /* _W4_ */
+ , 0, std_limits.str_len, 0);
#endif
- }
+ }
-done:
- in_token = FALSE;
- return out_p;
+ done:
+ in_token = FALSE;
+ return out_p;
}
static char * cat_line(
- int del_bsl /* Delete the <backslash><newline> ? */
-)
+ int del_bsl /* Delete the <backslash><newline> ? */
+ )
/*
* If del_bsl == TRUE:
* Delete <backslash><newline> sequence in string literal.
@@ -882,522 +913,522 @@ static char * cat_line(
* This routine is never called in POST_STD mode.
*/
{
- size_t len;
- char * save1, * save2;
-
- if (del_bsl) { /* Delete the <backslash><newline> */
- infile->bptr -= 2;
- len = infile->bptr - infile->buffer;
- } else { /* Overwrite the <newline> with <backslash>'n' */
- ACE_OS::strcpy( infile->bptr, "\\n");
- len = ACE_OS::strlen( infile->buffer);
- }
- save1 = save_string( infile->buffer);
- save2 = get_line( FALSE); /* infile->buffer is overwritten */
- if (save2 == 0) {
- ACE_OS::free( save1);
- return 0;
- }
- save2 = save_string( infile->buffer);
- ACE_OS::memcpy( infile->buffer, save1, len);
- ACE_OS::strcpy( infile->buffer + len, save2); /* Catenate */
+ size_t len;
+ char * save1, * save2;
+
+ if (del_bsl) { /* Delete the <backslash><newline> */
+ infile->bptr -= 2;
+ len = infile->bptr - infile->buffer;
+ } else { /* Overwrite the <newline> with <backslash>'n' */
+ ACE_OS::strcpy( infile->bptr, "\\n");
+ len = ACE_OS::strlen( infile->buffer);
+ }
+ save1 = save_string( infile->buffer);
+ save2 = get_line( FALSE); /* infile->buffer is overwritten */
+ if (save2 == 0) {
ACE_OS::free( save1);
- ACE_OS::free( save2);
- if (! del_bsl)
- len -= 2;
- infile->bptr = infile->buffer + len;
- return infile->bptr;
+ return 0;
+ }
+ save2 = save_string( infile->buffer);
+ ACE_OS::memcpy( infile->buffer, save1, len);
+ ACE_OS::strcpy( infile->buffer + len, save2); /* Catenate */
+ ACE_OS::free( save1);
+ ACE_OS::free( save2);
+ if (! del_bsl)
+ len -= 2;
+ infile->bptr = infile->buffer + len;
+ return infile->bptr;
}
static char * scan_number(
- int c, /* First char of number */
- char * out, /* Output buffer */
- char * out_end /* Limit of output buffer */
-)
+ int c, /* First char of number */
+ char * out, /* Output buffer */
+ char * out_end /* Limit of output buffer */
+ )
/*
- * Read a preprocessing number. We know that c is from 0 to 9 or dot, and if
- * c is dot then the next character is digit.
+ * Read a preprocessing number.
+ * By scan_token() we know already that the first c is from 0 to 9 or dot,
+ * and if c is dot then the second character is digit.
* Returns the advanced output pointer.
* Note: preprocessing number permits non-numeric forms such as 3E+xy,
* which are used in stringization or token-concatenation.
*/
{
- char * out_p = out; /* Current output pointer */
-
- do {
+ char * out_p = out; /* Current output pointer */
+
+ do {
+ *out_p++ = c;
+ if (c == 'E' || c == 'e' /* Sign should follow 'E', 'e', */
+ || (stdc3 && (c == 'P' || c == 'p'))
+ /* 'P' or 'p'. */
+ ) {
+ c = get_ch();
+ if (c == '+' || c == '-') {
*out_p++ = c;
- if (c == 'E' || c == 'e' /* Sign should follow 'E', 'e', */
- || (stdc3 && (c == 'P' || c == 'p'))
- /* 'P' or 'p'. */
- ) {
- c = get_ch();
- if (c == '+' || c == '-') {
- *out_p++ = c;
- c = get_ch();
- }
+ c = get_ch();
+ }
#if OK_UCN
- } else if (mcpp_mode == STD && c == '\\' && stdc3) {
- int cnt;
- char * tp;
-
- if ((c = get_ch()) == 'u') {
- cnt = 4;
- } else if (c == 'U') {
- cnt = 8;
- } else {
- unget_ch();
- out_p--;
- break;
- }
- *out_p++ = c;
- if ((tp = scan_ucn( cnt, out_p)) == 0) /* Error */
- break;
- else
- out_p = tp;
- c = get_ch();
+ } else if (mcpp_mode == STD && c == '\\' && stdc3) {
+ int cnt;
+ char * tp;
+
+ if ((c = get_ch()) == 'u') {
+ cnt = 4;
+ } else if (c == 'U') {
+ cnt = 8;
+ } else {
+ unget_ch();
+ out_p--;
+ break;
+ }
+ *out_p++ = c;
+ if ((tp = scan_ucn( cnt, out_p)) == 0) /* Error */
+ break;
+ else
+ out_p = tp;
+ c = get_ch();
#endif /* OK_UCN */
#if OK_MBIDENT
- } else if (mcpp_mode == STD && (char_type[ c] & mbstart) && stdc3) {
- len = mb_read( c, &infile->bptr, &out_p);
- if (len & MB_ERROR) {
- if (infile->fp)
- cerror(
- "Illegal multi-byte character sequence." /* _E_ */
- , 0, 0L, 0);
- }
+ } else if (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3) {
+ len = mb_read( c, &infile->bptr, &out_p);
+ if (len & MB_ERROR) {
+ if (infile->fp)
+ cerror(
+ "Illegal multi-byte character sequence." /* _E_ */
+ , 0, 0L, 0);
+ }
#endif /* OK_MBIDENT */
- } else {
- c = get_ch();
- }
- } while ((char_type[ c] & (DIG | DOT | LET)) /* Digit, dot or letter */
+ } else {
+ c = get_ch();
+ }
+ } while ((char_type[ c] & (DIG | DOT | LET)) /* Digit, dot or letter */
#if OK_UCN
- || (mcpp_mode == STD && c == '\\' && stdc3)
+ || (mcpp_mode == STD && c == '\\' && stdc3)
#endif
#if OK_MBIDENT
- || (mcpp_mode == STD && (char_type[ c] & mbstart) && stdc3)
+ || (mcpp_mode == STD && (char_type[ c] & mbchk) && stdc3)
#endif
- );
-
- *out_p = EOS;
- if (out_end < out_p)
- cfatal( "Too long pp-number token \"%s\"" /* _F_ */
- , out, 0L, 0);
- unget_ch();
- return out_p;
+ );
+
+ *out_p = EOS;
+ if (out_end < out_p)
+ cfatal( "Too long pp-number token \"%s\"" /* _F_ */
+ , out, 0L, 0);
+ unget_ch();
+ return out_p;
}
-/* Original version of DECUS CPP, too exact for Standard preprocessing. */
+/* Original version of DECUS CPP with slight modifications, */
+/* too exact for Standard preprocessing. */
static char * scan_number_prestd(
- int c, /* First char of number */
- char * out, /* Output buffer */
- char * out_end /* Limit of output buffer */
-)
+ int c, /* First char of number */
+ char * out, /* Output buffer */
+ char * out_end /* Limit of output buffer */
+ )
/*
* Process a number. We know that c is from 0 to 9 or dot.
* Algorithm from Dave Conroy's Decus C.
* Returns the advanced output pointer.
*/
{
- char * const out_s = out; /* For diagnostics */
- int radix; /* 8, 10, or 16 */
- int expseen; /* 'e' seen in floater */
- int octal89; /* For bad octal test */
- int dotflag; /* TRUE if '.' was seen */
-
- expseen = FALSE; /* No exponent seen yet */
- octal89 = FALSE; /* No bad octal yet */
- radix = 10; /* Assume decimal */
- if ((dotflag = (c == '.')) != FALSE) { /* . something? */
- *out++ = '.'; /* Always out the dot */
- if ((char_type[(c = get_ch())] & DIG) == 0) {
- /* If not a float numb, */
- goto nomore; /* All done for now */
- }
- } /* End of float test */
- else if (c == '0') { /* Octal or hex? */
- *out++ = c; /* Stuff initial zero */
- radix = 8; /* Assume it's octal */
- c = get_ch(); /* Look for an 'x' */
- if (c == 'x' || c == 'X') { /* Did we get one? */
- radix = 16; /* Remember new radix */
- *out++ = c; /* Stuff the 'x' */
- c = get_ch(); /* Get next character */
- }
+ char * const out_s = out; /* For diagnostics */
+ int radix; /* 8, 10, or 16 */
+ int expseen; /* 'e' seen in floater */
+ int octal89; /* For bad octal test */
+ int dotflag; /* TRUE if '.' was seen */
+
+ expseen = FALSE; /* No exponent seen yet */
+ octal89 = FALSE; /* No bad octal yet */
+ radix = 10; /* Assume decimal */
+ if ((dotflag = (c == '.')) != FALSE) { /* . something? */
+ *out++ = '.'; /* Always out the dot */
+ if ((char_type[(c = get_ch())] & DIG) == 0) {
+ /* If not a float numb, */
+ goto nomore; /* All done for now */
}
- while (1) { /* Process curr. char. */
- /*
- * Note that this algorithm accepts "012e4" and "03.4"
- * as legitimate floating-point numbers.
- */
- if (radix != 16 && (c == 'e' || c == 'E')) {
- if (expseen) /* Already saw 'E'? */
- break; /* Exit loop, bad nbr. */
- expseen = TRUE; /* Set exponent seen */
- radix = 10; /* Decimal exponent */
- *out++ = c; /* Output the 'e' */
- if ((c = get_ch()) != '+' && c != '-')
- continue;
- }
- else if (radix != 16 && c == '.') {
- if (dotflag) /* Saw dot already? */
- break; /* Exit loop, two dots */
- dotflag = TRUE; /* Remember the dot */
- radix = 10; /* Decimal fraction */
- }
- else { /* Check the digit */
- switch (c) {
- case '8': case '9': /* Sometimes wrong */
- octal89 = TRUE; /* Do check later */
- case '0': case '1': case '2': case '3':
- case '4': case '5': case '6': case '7':
- break; /* Always ok */
-
- case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
- case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
- if (radix == 16) /* Alpha's are ok only */
- break; /* if reading hex. */
- default: /* At number end */
- goto done; /* Break from for loop */
- } /* End of switch */
- } /* End general case */
- *out++ = c; /* Accept the character */
- c = get_ch(); /* Read another char */
- } /* End of scan loop */
-
- if (out_end < out) /* Buffer overflow */
- goto nomore;
+ } /* End of float test */
+ else if (c == '0') { /* Octal or hex? */
+ *out++ = c; /* Stuff initial zero */
+ radix = 8; /* Assume it's octal */
+ c = get_ch(); /* Look for an 'x' */
+ if (c == 'x' || c == 'X') { /* Did we get one? */
+ radix = 16; /* Remember new radix */
+ *out++ = c; /* Stuff the 'x' */
+ c = get_ch(); /* Get next character */
+ }
+ }
+ while (1) { /* Process curr. char. */
/*
- * When we break out of the scan loop, c contains the first
- * character (maybe) not in the number. If the number is an
- * integer, allow a trailing 'L' for long. for unsigned. If not
- * those, push the trailing character back on the input stream.
- * Floating point numbers accept a trailing 'L' for "long double"
- * or a trailing 'F' for explicit float.
+ * Note that this algorithm accepts "012e4" and "03.4"
+ * as legitimate floating-point numbers.
*/
-done:
- if (! (dotflag || expseen)) { /* Not floating point */
- /*
- * We know that dotflag and expseen are both zero, now:
- * dotflag signals "saw 'L'".
- * We assume that 12F is not a floating constant.
- */
- for (;;) {
- switch (c) {
- case 'l':
- case 'L':
- if (dotflag)
- goto nomore;
- dotflag = TRUE;
- break;
- default:
- goto nomore;
- }
- *out++ = c; /* Got 'L' . */
- c = get_ch(); /* Look at next, too. */
- }
+ if (radix != 16 && (c == 'e' || c == 'E')) {
+ if (expseen) /* Already saw 'E'? */
+ break; /* Exit loop, bad nbr. */
+ expseen = TRUE; /* Set exponent seen */
+ radix = 10; /* Decimal exponent */
+ *out++ = c; /* Output the 'e' */
+ if ((c = get_ch()) != '+' && c != '-')
+ continue;
}
-
-nomore: *out = EOS;
- if (out_end < out)
- goto overflow;
- unget_ch(); /* Not part of a number */
- if (octal89 && radix == 8 && (warn_level & 1))
- cwarn( "Illegal digit in octal number \"%s\"" /* _W1_ */
- , out_s, 0L, 0);
- return out;
-
-overflow:
- cfatal( "Too long number token \"%s\"", out_s, 0L, 0); /* _F_ */
- return out;
+ else if (radix != 16 && c == '.') {
+ if (dotflag) /* Saw dot already? */
+ break; /* Exit loop, two dots */
+ dotflag = TRUE; /* Remember the dot */
+ radix = 10; /* Decimal fraction */
+ }
+ else { /* Check the digit */
+ switch (c) {
+ case '8': case '9': /* Sometimes wrong */
+ octal89 = TRUE; /* Do check later */
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ break; /* Always ok */
+
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ if (radix == 16) /* Alpha's are ok only */
+ break; /* if reading hex. */
+ default: /* At number end */
+ goto done; /* Break from for loop */
+ } /* End of switch */
+ } /* End general case */
+ *out++ = c; /* Accept the character */
+ c = get_ch(); /* Read another char */
+ } /* End of scan loop */
+
+ if (out_end < out) /* Buffer overflow */
+ goto nomore;
+ /*
+ * When we break out of the scan loop, c contains the first
+ * character (maybe) not in the number. If the number is an
+ * integer, allow a trailing 'L' for long. If not those, push
+ * the trailing character back on the input stream.
+ * Floating point numbers accept a trailing 'L' for "long double".
+ */
+ done:
+ if (! (dotflag || expseen)) { /* Not floating point */
+ /*
+ * We know that dotflag and expseen are both zero, now:
+ * dotflag signals "saw 'L'".
+ */
+ for (;;) {
+ switch (c) {
+ case 'l':
+ case 'L':
+ if (dotflag)
+ goto nomore;
+ dotflag = TRUE;
+ break;
+ default:
+ goto nomore;
+ }
+ *out++ = c; /* Got 'L' . */
+ c = get_ch(); /* Look at next, too. */
+ }
+ }
+
+ nomore: *out = EOS;
+ if (out_end < out)
+ goto overflow;
+ unget_ch(); /* Not part of a number */
+ if (octal89 && radix == 8 && (warn_level & 1))
+ cwarn( "Illegal digit in octal number \"%s\"" /* _W1_ */
+ , out_s, 0L, 0);
+ return out;
+
+ overflow:
+ cfatal( "Too long number token \"%s\"", out_s, 0L, 0); /* _F_ */
+ return out;
}
#if OK_UCN
static char * scan_ucn(
- int cnt, /* Bytes of sequence */
- char * out /* Output buffer */
-)
+ int cnt, /* Bytes of sequence */
+ char * out /* Output buffer */
+ )
/*
* Scan an UCN sequence and put the sequence to 'out'.
* Return the advanced pointer or 0 on failure.
* This routine is never called in POST_STD mode.
*/
{
- uexpr_t value; /* Value of UCN */
- int i, c;
-
- value = 0L;
- for (i = 0; i < cnt; i++) {
- c = get_ch();
- if (! ACE_OS::ace_isxdigit( c)) {
- if (infile->fp)
- cerror( "Illegal UCN sequence" /* _E_ */
- , 0, 0L, 0);
- *out = EOS;
- unget_ch();
- return 0;
- }
- c = ACE_OS::ace_tolower( c);
- *out++ = c;
- c = (ACE_OS::ace_isdigit( c) ? (c - '0') : (c - 'a' + 10));
- value = (value << 4) | c;
+ uexpr_t value; /* Value of UCN */
+ int i, c;
+
+ value = 0L;
+ for (i = 0; i < cnt; i++) {
+ c = get_ch();
+ if (! isxdigit( c)) {
+ if (infile->fp)
+ cerror( "Illegal UCN sequence" /* _E_ */
+ , 0, 0L, 0);
+ *out = EOS;
+ unget_ch();
+ return 0;
}
- if (infile->fp /* In source */
- && ((/*value >= 0L &&*/ value <= 0x9FL
- && value != 0x24L && value != 0x40L && value != 0x60L)
- /* Basic source character */
- || (stdc3 && (value >= 0xD800L && value <= 0xDFFFL))))
- /* Reserved for special chars */
- cerror( "UCN cannot specify the value %.0s\"%08lx\"" /* _E_ */
- , 0, (long) value, 0);
- return out;
+ c = tolower( c);
+ *out++ = c;
+ c = (isdigit( c) ? (c - '0') : (c - 'a' + 10));
+ value = (value << 4) | c;
+ }
+ if (infile->fp /* In source */
+ && ((value >= 0L && value <= 0x9FL
+ && value != 0x24L && value != 0x40L && value != 0x60L)
+ /* Basic source character */
+ || (stdc3 && (value >= 0xD800L && value <= 0xDFFFL))))
+ /* Reserved for special chars */
+ cerror( "UCN cannot specify the value %.0s\"%08lx\"" /* _E_ */
+ , 0, (long) value, 0);
+ return out;
}
#endif /* OK_UCN */
static char * scan_op(
- int c, /* First char of the token */
- char * out /* Output buffer */
-)
+ int c, /* First char of the token */
+ char * out /* Output buffer */
+ )
/*
* Scan C operator or punctuator into the specified buffer.
* Return the advanced output pointer.
* The code-number of the operator is stored to global variable 'openum'.
- * Note: '#' is not an operator nor a punctuator in other than control line,
+ * Note: '#' is not an operator nor a punctuator in other than directive line,
* nevertheless is handled as a punctuator in this cpp for convenience.
*/
{
- int c2, c3, c4;
-
- *out++ = c;
-
- switch (c) {
- case '~': openum = OP_COM; break;
- case '(': openum = OP_LPA; break;
- case ')': openum = OP_RPA; break;
- case '?': openum = OP_QUE; break;
- case ';': case '[': case ']': case '{':
- case '}': case ',':
- openum = OP_1;
- break;
- default:
- openum = OP_2; /* Tentative guess */
+ int c2, c3, c4;
+
+ *out++ = c;
+
+ switch (c) {
+ case '~': openum = OP_COM; break;
+ case '(': openum = OP_LPA; break;
+ case ')': openum = OP_RPA; break;
+ case '?': openum = OP_QUE; break;
+ case ';': case '[': case ']': case '{':
+ case '}': case ',':
+ openum = OP_1;
+ break;
+ default:
+ openum = OP_2; /* Tentative guess */
+ }
+
+ if (openum != OP_2) { /* Single byte operators */
+ *out = EOS;
+ return out;
+ }
+
+ c2 = get_ch(); /* Possibly two bytes ops */
+ *out++ = c2;
+
+ switch (c) {
+ case '=':
+ openum = ((c2 == '=') ? OP_EQ : OP_1); /* ==, = */
+ break;
+ case '!':
+ openum = ((c2 == '=') ? OP_NE : OP_NOT); /* !=, ! */
+ break;
+ case '&':
+ switch (c2) {
+ case '&': openum = OP_ANA; break; /* && */
+ case '=': /* openum = OP_2; */ break; /* &= */
+ default : openum = OP_AND; break; /* & */
}
-
- if (openum != OP_2) { /* Single byte operators */
- *out = EOS;
- return out;
+ break;
+ case '|':
+ switch (c2) {
+ case '|': openum = OP_ORO; break; /* || */
+ case '=': /* openum = OP_2; */ break; /* |= */
+ default : openum = OP_OR; break; /* | */
}
-
- c2 = get_ch(); /* Possibly two bytes ops */
- *out++ = c2;
-
- switch (c) {
- case '=':
- openum = ((c2 == '=') ? OP_EQ : OP_1); /* ==, = */
- break;
- case '!':
- openum = ((c2 == '=') ? OP_NE : OP_NOT); /* !=, ! */
- break;
- case '&':
- switch (c2) {
- case '&': openum = OP_ANA; break; /* && */
- case '=': /* openum = OP_2; */ break; /* &= */
- default : openum = OP_AND; break; /* & */
- }
- break;
- case '|':
- switch (c2) {
- case '|': openum = OP_ORO; break; /* || */
- case '=': /* openum = OP_2; */ break; /* |= */
- default : openum = OP_OR; break; /* | */
- }
- break;
- case '<':
- switch (c2) {
- case '<': c3 = get_ch();
- if (c3 == '=') {
- openum = OP_3; /* <<= */
- *out++ = c3;
- } else {
- openum = OP_SL; /* << */
- unget_ch();
- }
- break;
- case '=': openum = OP_LE; break; /* <= */
- case ':': /* <: i.e. [ */
- if (mcpp_mode == STD && dig_flag)
- openum = OP_LBRCK_D;
- else
- openum = OP_LT;
- break;
- case '%': /* <% i.e. { */
- if (mcpp_mode == STD && dig_flag)
- openum = OP_LBRACE_D;
- else
- openum = OP_LT;
- break;
- default : openum = OP_LT; break; /* < */
- }
- break;
+ break;
+ case '<':
+ switch (c2) {
+ case '<': c3 = get_ch();
+ if (c3 == '=') {
+ openum = OP_3; /* <<= */
+ *out++ = c3;
+ } else {
+ openum = OP_SL; /* << */
+ unget_ch();
+ }
+ break;
+ case '=': openum = OP_LE; break; /* <= */
+ case ':': /* <: i.e. [ */
+ if (mcpp_mode == STD && option_flags.dig)
+ openum = OP_LBRCK_D;
+ else
+ openum = OP_LT;
+ break;
+ case '%': /* <% i.e. { */
+ if (mcpp_mode == STD && option_flags.dig)
+ openum = OP_LBRACE_D;
+ else
+ openum = OP_LT;
+ break;
+ default : openum = OP_LT; break; /* < */
+ }
+ break;
+ case '>':
+ switch (c2) {
+ case '>': c3 = get_ch();
+ if (c3 == '=') {
+ openum = OP_3; /* >>= */
+ *out++ = c3;
+ } else {
+ openum = OP_SR; /* >> */
+ unget_ch();
+ }
+ break;
+ case '=': openum = OP_GE; break; /* >= */
+ default : openum = OP_GT; break; /* > */
+ }
+ break;
+ case '#':
+ if (standard && (in_define || macro_line)) /* in #define or macro */
+ openum = ((c2 == '#') ? OP_CAT : OP_STR); /* ##, # */
+ else
+ openum = OP_1; /* # */
+ break;
+ case '+':
+ switch (c2) {
+ case '+': /* ++ */
+ case '=': /* openum = OP_2; */ break; /* += */
+ default : openum = OP_ADD; break; /* + */
+ }
+ break;
+ case '-':
+ switch (c2) {
+ case '-': /* -- */
+ case '=': /* -= */
+ /* openum = OP_2; */
+ break;
case '>':
- switch (c2) {
- case '>': c3 = get_ch();
- if (c3 == '=') {
- openum = OP_3; /* >>= */
- *out++ = c3;
- } else {
- openum = OP_SR; /* >> */
- unget_ch();
- }
- break;
- case '=': openum = OP_GE; break; /* >= */
- default : openum = OP_GT; break; /* > */
- }
- break;
- case '#':
- if (standard && (in_define || macro_line)) /* in #define or macro */
- openum = ((c2 == '#') ? OP_CAT : OP_STR); /* ##, # */
- else
- openum = OP_1; /* # */
- break;
- case '+':
- switch (c2) {
- case '+': /* ++ */
- case '=': /* openum = OP_2; */ break; /* += */
- default : openum = OP_ADD; break; /* + */
+ if (cplus_val) {
+ if ((c3 = get_ch()) == '*') { /* ->* */
+ openum = OP_3;
+ *out++ = c3;
+ } else {
+ /* openum = OP_2; */
+ unget_ch();
}
- break;
- case '-':
- switch (c2) {
- case '-': /* -- */
- case '=': /* -= */
- /* openum = OP_2; */
- break;
- case '>':
- if (cplus_val) {
- if ((c3 = get_ch()) == '*') { /* ->* */
- openum = OP_3;
- *out++ = c3;
- } else {
- /* openum = OP_2; */
- unget_ch();
- }
- } /* else openum = OP_2; */ /* -> */
- /* else openum = OP_2; */
- break;
- default : openum = OP_SUB; break; /* - */
+ } /* else openum = OP_2; */ /* -> */
+ /* else openum = OP_2; */
+ break;
+ default : openum = OP_SUB; break; /* - */
+ }
+ break;
+ case '%':
+ switch (c2) {
+ case '=': break; /* %= */
+ case '>': /* %> i.e. } */
+ if (mcpp_mode == STD && option_flags.dig)
+ openum = OP_RBRACE_D;
+ else
+ openum = OP_MOD;
+ break;
+ case ':':
+ if (mcpp_mode == STD && option_flags.dig) {
+ if ((c3 = get_ch()) == '%') {
+ if ((c4 = get_ch()) == ':') { /* %:%: i.e. ## */
+ openum = OP_DSHARP_D;
+ *out++ = c3;
+ *out++ = c4;
+ } else {
+ unget_ch();
+ unget_ch();
+ openum = OP_SHARP_D; /* %: i.e. # */
+ }
+ } else {
+ unget_ch();
+ openum = OP_SHARP_D; /* %: i.e. # */
}
- break;
- case '%':
- switch (c2) {
- case '=': break; /* %= */
- case '>': /* %> i.e. } */
- if (mcpp_mode == STD && dig_flag)
- openum = OP_RBRACE_D;
- else
- openum = OP_MOD;
- break;
- case ':':
- if (mcpp_mode == STD && dig_flag) {
- if ((c3 = get_ch()) == '%') {
- if ((c4 = get_ch()) == ':') { /* %:%: i.e. ## */
- openum = OP_DSHARP_D;
- *out++ = c3;
- *out++ = c4;
- } else {
- unget_ch();
- unget_ch();
- openum = OP_SHARP_D; /* %: i.e. # */
- }
- } else {
- unget_ch();
- openum = OP_SHARP_D; /* %: i.e. # */
- }
- if (in_define) { /* in #define */
- if (openum == OP_DSHARP_D)
- openum = OP_CAT;
- else
- openum = OP_STR;
- }
- } else {
- openum = OP_MOD;
- }
- break;
- default : openum = OP_MOD; break; /* % */
+ if (in_define) { /* in #define */
+ if (openum == OP_DSHARP_D)
+ openum = OP_CAT;
+ else
+ openum = OP_STR;
}
- break;
- case '*':
- if (c2 != '=') /* * */
- openum = OP_MUL;
- /* else openum = OP_2; */ /* *= */
- break;
- case '/':
- if (c2 != '=') /* / */
- openum = OP_DIV;
- /* else openum = OP_2; */ /* /= */
- break;
- case '^':
- if (c2 != '=') /* ^ */
- openum = OP_XOR;
- /* else openum = OP_2; */ /* ^= */
- break;
- case '.':
- if (standard) {
- if (c2 == '.') {
- c3 = get_ch();
- if (c3 == '.') {
- openum = OP_ELL; /* ... */
- *out++ = c3;
- break;
- } else {
- unget_ch();
- openum = OP_1;
- }
- } else if (cplus_val && c2 == '*') { /* .* */
- /* openum = OP_2 */ ;
- } else { /* . */
- openum = OP_1;
- }
- } else {
- openum = OP_1;
+ } else {
+ openum = OP_MOD;
+ }
+ break;
+ default : openum = OP_MOD; break; /* % */
+ }
+ break;
+ case '*':
+ if (c2 != '=') /* * */
+ openum = OP_MUL;
+ /* else openum = OP_2; */ /* *= */
+ break;
+ case '/':
+ if (c2 != '=') /* / */
+ openum = OP_DIV;
+ /* else openum = OP_2; */ /* /= */
+ break;
+ case '^':
+ if (c2 != '=') /* ^ */
+ openum = OP_XOR;
+ /* else openum = OP_2; */ /* ^= */
+ break;
+ case '.':
+ if (standard) {
+ if (c2 == '.') {
+ c3 = get_ch();
+ if (c3 == '.') {
+ openum = OP_ELL; /* ... */
+ *out++ = c3;
+ break;
+ } else {
+ unget_ch();
+ openum = OP_1;
}
- break;
- case ':':
- if (cplus_val && c2 == ':') /* :: */
- /* openum = OP_2 */ ;
- else if (mcpp_mode == STD && c2 == '>' && dig_flag)
- openum = OP_RBRCK_D; /* :> i.e. ] */
- else /* : */
- openum = OP_COL;
- break;
- default: /* Who knows ? */
- cfatal( "Bug: Punctuator is mis-implemented %.0s0lx%x" /* _F_ */
- , 0, (long) c, 0);
+ } else if (cplus_val && c2 == '*') { /* .* */
+ /* openum = OP_2 */ ;
+ } else { /* . */
openum = OP_1;
- break;
- }
-
- switch (openum) {
- case OP_STR:
- if (mcpp_mode == STD && c == '%') break; /* %: */
- case OP_1:
- case OP_NOT: case OP_AND: case OP_OR: case OP_LT:
- case OP_GT: case OP_ADD: case OP_SUB: case OP_MOD:
- case OP_MUL: case OP_DIV: case OP_XOR: case OP_COM:
- case OP_COL: /* Any single byte operator or punctuator */
- unget_ch();
- out--;
- break;
- default: /* Two or more bytes operators or punctuators */
- break;
+ }
+ } else {
+ openum = OP_1;
}
-
- *out = EOS;
- return out;
+ break;
+ case ':':
+ if (cplus_val && c2 == ':') /* :: */
+ /* openum = OP_2 */ ;
+ else if (mcpp_mode == STD && c2 == '>' && option_flags.dig)
+ openum = OP_RBRCK_D; /* :> i.e. ] */
+ else /* : */
+ openum = OP_COL;
+ break;
+ default: /* Never reach here */
+ cfatal( "Bug: Punctuator is mis-implemented %.0s0lx%x" /* _F_ */
+ , 0, (long) c, 0);
+ openum = OP_1;
+ break;
+ }
+
+ switch (openum) {
+ case OP_STR:
+ if (mcpp_mode == STD && c == '%') break; /* %: */
+ case OP_1:
+ case OP_NOT: case OP_AND: case OP_OR: case OP_LT:
+ case OP_GT: case OP_ADD: case OP_SUB: case OP_MOD:
+ case OP_MUL: case OP_DIV: case OP_XOR: case OP_COM:
+ case OP_COL: /* Any single byte operator or punctuator */
+ unget_ch();
+ out--;
+ break;
+ default: /* Two or more bytes operators or punctuators */
+ break;
+ }
+
+ *out = EOS;
+ return out;
}
int id_operator(
- const char * name
-)
+ const char * name
+ )
/*
* Check whether the name is identifier-like operator in C++.
* Return the operator number if matched, return 0 if not matched.
@@ -1405,52 +1436,52 @@ int id_operator(
* This routine is never called in POST_STD mode.
*/
{
- typedef struct id_op {
- const char * name;
- int op_num;
- } ID_OP;
-
- ID_OP id_ops[] = {
- { "and", OP_ANA},
- { "and_eq", OP_2},
- { "bitand", OP_AND},
- { "bitor", OP_OR},
- { "compl", OP_COM},
- { "not", OP_NOT},
- { "not_eq", OP_NE},
- { "or", OP_ORO},
- { "or_eq", OP_2},
- { "xor", OP_XOR},
- { "xor_eq", OP_2},
- { 0, 0},
- };
-
- ID_OP * id_p = id_ops;
-
- while (id_p->name != 0) {
- if (str_eq( name, id_p->name))
- return id_p->op_num;
- id_p++;
- }
- return 0;
+ typedef struct id_op {
+ const char * name;
+ int op_num;
+ } ID_OP;
+
+ ID_OP id_ops[] = {
+ { "and", OP_ANA},
+ { "and_eq", OP_2},
+ { "bitand", OP_AND},
+ { "bitor", OP_OR},
+ { "compl", OP_COM},
+ { "not", OP_NOT},
+ { "not_eq", OP_NE},
+ { "or", OP_ORO},
+ { "or_eq", OP_2},
+ { "xor", OP_XOR},
+ { "xor_eq", OP_2},
+ { 0, 0},
+ };
+
+ ID_OP * id_p = id_ops;
+
+ while (id_p->name != 0) {
+ if (str_eq( name, id_p->name))
+ return id_p->op_num;
+ id_p++;
+ }
+ return 0;
}
void expanding(
- const char * name, /* The name of (nested) macro just expanded. */
- int to_be_freed /* The name should be freed later. */
-)
+ const char * name, /* The name of (nested) macro just expanded. */
+ int to_be_freed /* The name should be freed later. */
+ )
/*
* Remember used macro name for diagnostic.
*/
{
- if (exp_mac_ind < EXP_MAC_IND_MAX - 1) {
- exp_mac_ind++;
- } else {
- clear_exp_mac();
- exp_mac_ind++;
- }
- expanding_macro[ exp_mac_ind].name = name;
- expanding_macro[ exp_mac_ind].to_be_freed = to_be_freed;
+ if (exp_mac_ind < EXP_MAC_IND_MAX - 1) {
+ exp_mac_ind++;
+ } else {
+ clear_exp_mac();
+ exp_mac_ind++;
+ }
+ expanding_macro[ exp_mac_ind].name = name;
+ expanding_macro[ exp_mac_ind].to_be_freed = to_be_freed;
}
void clear_exp_mac( void)
@@ -1459,15 +1490,15 @@ void clear_exp_mac( void)
* name_to_be_freed[].
*/
{
- int i;
+ int i;
- for (i = 1; i < EXP_MAC_IND_MAX; i++) {
- if (expanding_macro[ i].to_be_freed) {
- ACE_OS::free( (void *) expanding_macro[ i].name);
- expanding_macro[ i].to_be_freed = FALSE;
- }
+ for (i = 1; i < EXP_MAC_IND_MAX; i++) {
+ if (expanding_macro[ i].to_be_freed) {
+ ACE_OS::free( (void *) expanding_macro[ i].name);
+ expanding_macro[ i].to_be_freed = FALSE;
}
- exp_mac_ind = 0;
+ }
+ exp_mac_ind = 0;
}
int get_ch( void)
@@ -1476,128 +1507,135 @@ int get_ch( void)
* Always return the value representable by unsigned char.
*/
{
- int len;
- int c;
- FILEINFO * file;
-
- /*
- * 'in_token' is set to TRUE while scan_token() is executed (and
- * scan_id(), scan_quote(), scan_number(), scan_ucn() and scan_op()
- * via scan_token()) in Standard mode to simplify tokenization.
- * Any token cannot cross "file"s.
- */
- if (in_token)
- return (*infile->bptr++ & UCHARMAX);
-
- if ((file = infile) == 0)
- return CHAR_EOF; /* End of all input */
-
- if (mcpp_mode == POST_STD && file->fp) { /* In a source file */
- switch (insert_sep) {
- case NO_SEP:
- break;
- case INSERT_SEP: /* Insert a token separator */
- insert_sep = INSERTED_SEP; /* Remember this fact */
- return ' '; /* for unget_ch(). */
- case INSERTED_SEP: /* Has just inserted */
- insert_sep = NO_SEP; /* Clear the flag */
- break;
- }
- }
- if (! standard && squeezews) {
- if (*file->bptr == ' ')
- file->bptr++; /* Squeeze white spaces */
- squeezews = FALSE;
- }
-
- if (mcpp_debug & GETC) {
- mcpp_fprintf( DBG, "get_ch(%s), line %ld, bptr = %d, buffer"
- , file->fp ? cur_fullname : file->real_fname ? file->real_fname
- : file->filename ? file->filename : "0"
- , src_line, (int) (file->bptr - file->buffer));
- dump_string( 0, file->buffer);
- dump_unget( "get entrance");
- }
-
- /*
- * Read a character from the current input logical line or macro.
- * At EOS, either finish the current macro (freeing temporary storage)
- * or get another logical line by parse_line().
- * At EOF, exit the current file (#included) or, at EOF from the MCPP input
- * file, return CHAR_EOF to finish processing.
- * The character is converted to int with no sign-extension.
- */
- if ((c = (*file->bptr++ & UCHARMAX)) != EOS) {
- if (standard)
- return c; /* Just a character */
- if (! in_string && c == '\\' && *file->bptr == '\n'
- && in_define /* '\\''\n' is deleted in #define line, */
- /* provided the '\\' is not the 2nd byte of mbchar. */
- && ! last_is_mbchar( file->buffer, ACE_OS::strlen( file->buffer) - 2)
- ) {
- if (*(file->bptr - 2) == ' ')
- squeezews = TRUE;
- } else {
- return c;
- }
+ int len;
+ int c;
+ FILEINFO * file;
+
+ /*
+ * 'in_token' is set to TRUE while scan_token() is executed (and
+ * scan_id(), scan_quote(), scan_number(), scan_ucn() and scan_op()
+ * via scan_token()) in Standard mode to simplify tokenization.
+ * Any token cannot cross "file"s.
+ */
+ if (in_token)
+ return (*infile->bptr++ & UCHARMAX);
+
+ if ((file = infile) == 0)
+ return CHAR_EOF; /* End of all input */
+
+ if (mcpp_mode == POST_STD && file->fp) { /* In a source file */
+ switch (insert_sep) {
+ case NO_SEP:
+ break;
+ case INSERT_SEP: /* Insert a token separator */
+ insert_sep = INSERTED_SEP; /* Remember this fact */
+ return ' '; /* for unget_ch(). */
+ case INSERTED_SEP: /* Has just inserted */
+ insert_sep = NO_SEP; /* Clear the flag */
+ break;
}
-
- /*
- * Nothing in current line or macro. Get next line (if input from a
- * file), or do end of file/macro processing, and reenter get_ch() to
- * restart from the top.
- */
- if (file->fp && /* In source file */
- parse_line() != 0) /* Get line from file */
- return get_ch();
- /*
- * Free up space used by the (finished) file or macro and restart
- * input from the parent file/macro, if any.
- */
- infile = file->parent; /* Unwind file chain */
- ACE_OS::free( file->buffer); /* Free buffer */
- if (infile == 0) { /* If at end of input, */
- if (file->filename)
- ACE_OS::free( file->filename); /* Free filename */
- ACE_OS::free( file);
- return CHAR_EOF; /* return end of file.*/
+ }
+ if (! standard && squeezews) {
+ if (*file->bptr == ' ')
+ file->bptr++; /* Squeeze white spaces */
+ squeezews = FALSE;
+ }
+
+ if (mcpp_debug & GETC) {
+ mcpp_fprintf( DBG, "get_ch(%s) '%c' line %ld, bptr = %d, buffer"
+ , file->fp ? cur_fullname : file->real_fname ? file->real_fname
+ : file->filename ? file->filename : "0"
+ , *file->bptr & UCHARMAX
+ , src_line, (int) (file->bptr - file->buffer));
+ dump_string( 0, file->buffer);
+ dump_unget( "get entrance");
+ }
+
+ /*
+ * Read a character from the current input logical line or macro.
+ * At EOS, either finish the current macro (freeing temporary storage)
+ * or get another logical line by parse_line().
+ * At EOF, exit the current file (#included) or, at EOF from the MCPP input
+ * file, return CHAR_EOF to finish processing.
+ * The character is converted to int with no sign-extension.
+ */
+ if ((c = (*file->bptr++ & UCHARMAX)) != EOS) {
+ if (standard)
+ return c; /* Just a character */
+ if (! in_string && c == '\\' && *file->bptr == '\n'
+ && in_define /* '\\''\n' is deleted in #define line, */
+ /* provided the '\\' is not the 2nd byte of mbchar. */
+ && ! last_is_mbchar( file->buffer, ACE_OS::strlen( file->buffer) - 2
+ && ! keep_spaces)
+ ) {
+ if (*(file->bptr - 2) == ' ')
+ squeezews = TRUE;
+ } else {
+ return c;
}
- if (file->fp) { /* Source file included */
- char * cp;
-
- ACE_OS::free( file->filename); /* Free filename */
- file->filename = 0;
- ACE_OS::fclose( file->fp); /* Close finished file */
- cp = mcpp_stpcpy( cur_fullname, *(infile->dirp));
- ACE_OS::strcpy( cp, infile->real_fname);
- cur_fname = infile->real_fname; /* Restore current fname*/
- if (infile->pos != 0L) { /* Includer was closed */
- infile->fp = ACE_OS::fopen( cur_fullname, "r");
- ACE_OS::fseek( infile->fp, infile->pos, SEEK_SET);
- } /* Re-open the includer and restore the file-position */
- len = (int) (infile->bptr - infile->buffer);
- infile->buffer = xrealloc( infile->buffer, NBUFF);
- /* Restore full size buffer to get the next line */
- infile->bptr = infile->buffer + len;
- src_line = infile->line; /* Reset line number */
- inc_dirp = infile->dirp; /* Includer's directory */
-#if MCPP_LIB
- mcpp_set_out_func( infile->last_fputc, infile->last_fputs,
- infile->last_fprintf);
+ }
+
+ /*
+ * Nothing in current line or macro. Get next line (if input from a
+ * file), or do end of file/macro processing, and reenter get_ch() to
+ * restart from the top.
+ */
+ if (file->fp && /* In source file */
+ parse_line() != 0) /* Get line from file */
+ return get_ch();
+ /*
+ * Free up space used by the (finished) file or macro and restart
+ * input from the parent file/macro, if any.
+ */
+ infile = file->parent; /* Unwind file chain */
+ ACE_OS::free( file->buffer); /* Free buffer */
+ if (infile == 0) { /* If at end of input */
+ ACE_OS::free( file->filename);
+ ACE_OS::free( const_cast<char *> (file->src_dir));
+ ACE_OS::free( file); /* full_fname is the same with filename for main file*/
+ return CHAR_EOF; /* Return end of file */
+ }
+ if (file->fp) { /* Source file included */
+ ACE_OS::free( file->filename); /* Free filename */
+ ACE_OS::free( const_cast <char *> (file->src_dir)); /* Free src_dir */
+ ACE_OS::fclose( file->fp); /* Close finished file */
+ /* Do not free file->real_fname and file->full_fname */
+ cur_fullname = const_cast <char *> (infile->full_fname);
+ cur_fname = infile->real_fname; /* Restore current fname*/
+ if (infile->pos != 0L) { /* Includer was closed */
+ infile->fp = ACE_OS::fopen( cur_fullname, "r");
+ ACE_OS::fseek( infile->fp, infile->pos, SEEK_SET);
+ } /* Re-open the includer and restore the file-position */
+ len = (int) (infile->bptr - infile->buffer);
+ infile->buffer = xrealloc( infile->buffer, NBUFF);
+ /* Restore full size buffer to get the next line */
+ infile->bptr = infile->buffer + len;
+ src_line = infile->line; /* Reset line number */
+ inc_dirp = infile->dirp; /* Includer's directory */
+#ifdef MCPP_LIB
+ mcpp_set_out_func( infile->last_fputc, infile->last_fputs,
+ infile->last_fprintf);
#endif
- include_nest--;
- src_line++; /* Next line to #include*/
- sharp(); /* Need a #line now */
- src_line--;
- newlines = 0; /* Clear the blank lines*/
- } else if (file->filename) { /* Expanding macro */
- if (macro_name) /* file->filename should be freed later */
- expanding( file->filename, TRUE);
- else
- ACE_OS::free( file->filename);
- }
- ACE_OS::free( file); /* Free file space */
- return get_ch(); /* Get from the parent */
+ include_nest--;
+ src_line++; /* Next line to #include*/
+ sharp( 0, infile->include_opt ? 1 : (file->include_opt ? 0 : 2));
+ /* Need a #line now. Marker depends on include_opt. */
+ /* The file of include_opt should be marked as 1. */
+ /* Else if returned from include_opt file, it is the */
+ /* main input file, and should not be marked. */
+ /* Else, it is normal includer file, and marked as 2. */
+ src_line--;
+ newlines = 0; /* Clear the blank lines*/
+ if (mcpp_debug & MACRO_CALL) /* Should be re-initialized */
+ com_cat_line.last_line = bsl_cat_line.last_line = 0L;
+ } else if (file->filename) { /* Expanding macro */
+ if (macro_name) /* file->filename should be freed later */
+ expanding( file->filename, TRUE);
+ else
+ ACE_OS::free( file->filename);
+ }
+ ACE_OS::free( file); /* Free file space */
+ return get_ch(); /* Get from the parent */
}
static char * parse_line( void)
@@ -1606,214 +1644,274 @@ static char * parse_line( void)
* Parse a logical line.
* Check illegal control characters.
* Check unterminated string literal, character constant or comment.
- * Convert each comment to one space.
+ * Convert each comment to one space (or spaces of the comment length on
+ * 'keep_spaces' mode)..
* Squeeze succeding white spaces other than <newline> (including comments) to
- * one space.
+ * one space (unless keep_spaces == TRUE).
* The lines might be spliced by comments which cross the lines.
*/
{
- char * temp; /* Temporary buffer */
- char * limit; /* Buffer end */
- char * tp; /* Current pointer into temporary buffer */
- char * sp; /* Pointer into input buffer */
- int c;
-
- if ((sp = get_line( FALSE)) == 0) /* Next logical line */
- return 0; /* End of a file */
- if (in_asm) { /* In #asm block */
- while (char_type[ *sp++ & UCHARMAX] & SPA)
- ;
- if (*--sp == '#') /* Directive line */
- infile->bptr = sp;
- return infile->bptr; /* Don't tokenize */
- }
- tp = temp = xmalloc( (size_t) NBUFF);
- limit = temp + NBUFF - 2;
+ char * temp; /* Temporary buffer */
+ char * limit; /* Buffer end */
+ char * tp; /* Current pointer into temporary buffer */
+ char * sp; /* Pointer into input buffer */
+ size_t com_size = 0;
+ int c;
+
+ if ((sp = get_line( FALSE)) == 0) /* Next logical line */
+ return 0; /* End of a file */
+ if (in_asm) { /* In #asm block */
+ while (char_type[ *sp++ & UCHARMAX] & SPA)
+ ;
+ if (*--sp == '#') /* Directive line */
+ infile->bptr = sp;
+ return infile->bptr; /* Don't tokenize */
+ }
+ tp = temp = xmalloc( (size_t) NBUFF);
+ limit = temp + NBUFF - 2;
+
+ while (char_type[ c = *sp++ & UCHARMAX] & HSP) {
+ if (mcpp_mode != POST_STD)
+ /* Preserve line top horizontal white spaces */
+ /* as they are for human-readability */
+ *tp++ = c;
+ /* Else skip the line top spaces */
+ }
+ sp--;
+
+ while ((c = *sp++ & UCHARMAX) != '\n') {
- if (mcpp_mode == POST_STD) {
- while (((c = *sp++ & UCHARMAX) == ' ') || c == '\t')
- ; /* Skip the line top spaces */
- } else {
- /* Putout the line top spaces as they are */
- while (((c = *sp++ & UCHARMAX) == ' ') || c == '\t')
- *tp++ = c;
- }
- sp--;
-
- while ((c = *sp++ & UCHARMAX) != '\n') {
-
- switch (c) {
- case '/':
- switch (*sp++) {
- case '*': /* Start of a comment */
- if ((sp = read_a_comment( sp)) == 0) {
- ACE_OS::free( temp); /* End of file with un- */
- return 0; /* terminated comment */
- }
- if (mcpp_mode == POST_STD && (temp < tp && *(tp - 1) != ' '))
- *tp++ = ' '; /* Skip line top spaces */
- else if (mcpp_mode == OLD_PREP && (temp == tp
- || (*(tp - 1) != ' ' && *(tp - 1) != COM_SEP)))
- *tp++ = COM_SEP; /* Convert to magic character */
- else if (temp == tp || *(tp - 1) != ' ')
- *tp++ = ' '; /* Squeeze white spaces */
- break;
- case '/': /* // */
- if (! standard)
- goto not_comment;
- /* Comment when C++ or __STDC_VERSION__ >= 199901L */
- /* Need not to convert to a space because '\n' follows */
- if (! stdc2 && (warn_level & 2))
- cwarn( "Parsed \"//\" as comment" /* _W2_ */
- , 0, 0L, 0);
- if (keep_comments) {
- sp -= 2;
- while (*sp != '\n')
- mcpp_fputc( *sp++, OUT); /* Until end of line */
- wrong_line = TRUE; /* Need to adjust #line */
- }
- goto end_line;
- default: /* Not a comment */
-not_comment:
- *tp++ = '/';
- sp--; /* To re-read */
- break;
- }
- break;
- case '\r': /* Vertical white spaces*/
- /* Note that [CR+LF] is already converted to [LF]. */
- case '\f':
- case '\v':
- if (warn_level & 4)
- cwarn( "Converted %.0s0x%02lx to a space" /* _W4_ */
- , 0, (long) c, 0);
- case '\t': /* Horizontal space */
- case ' ':
- if (mcpp_mode == OLD_PREP) {
- if ((*(tp - 1) != ' ' && *(tp - 1) != COM_SEP))
- *(tp - 1) = ' '; /* Squeeze COM_SEP with spaces */
- } else {
- if (*(tp - 1) != ' ')
- *tp++ = ' '; /* Squeeze white spaces */
- }
- break;
- case '"': /* String literal */
- case '\'': /* Character constant */
- infile->bptr = sp;
- if (standard) {
- tp = scan_quote( c, tp, limit, TRUE);
- } else {
- in_string = TRUE; /* Enable line splicing by scan_quote() */
- tp = scan_quote( c, tp, limit, TRUE); /* (not by get_ch())*/
- in_string = FALSE;
- }
- if (tp == 0) {
- ACE_OS::free( temp); /* Unbalanced quotation */
- return parse_line(); /* Skip the line */
- }
- sp = infile->bptr;
- break;
+ switch (c) {
+ case '/':
+ switch (*sp++) {
+ case '*': /* Start of a comment */
+ //com_start:
+ if ((sp = read_a_comment( sp, &com_size)) == 0) {
+ ACE_OS::free( temp); /* End of file with un- */
+ return 0; /* terminated comment */
+ }
+ if (keep_spaces && mcpp_mode != OLD_PREP) {
+ if (tp + com_size >= limit - 1) /* Too long comment */
+ com_size = limit - tp - 1; /* Truncate */
+ while (com_size--)
+ *tp++ = ' '; /* Spaces of the comment length */
+ break;
+ }
+ switch (mcpp_mode) {
+ case POST_STD:
+ if (temp < tp && *(tp - 1) != ' ')
+ *tp++ = ' '; /* Squeeze white spaces */
+ break;
+ case OLD_PREP:
+ if (temp == tp
+ || ! (char_type[ *(tp - 1) & UCHARMAX] & HSP))
+ *tp++ = COM_SEP; /* Convert to magic character */
+ break;
default:
- if (ACE_OS::ace_iscntrl( c)) {
- cerror( /* Skip the control character */
- "Illegal control character %.0s0x%lx, skipped the character" /* _E_ */
- , 0, (long) c, 0);
- } else { /* Any valid character */
- *tp++ = c;
- }
- break;
+ if (temp == tp ||
+ ! (char_type[ *(tp - 1) & UCHARMAX] & HSP))
+ *tp++ = ' '; /* Squeeze white spaces */
+ break;
}
-
- if (limit < tp) {
- *tp = EOS;
- cfatal( "Too long line spliced by comments" /* _F_ */
- , 0, 0L, 0);
+ break;
+ case '/': /* // */
+ if (! standard)
+ goto not_comment;
+ /* Comment when C++ or __STDC_VERSION__ >= 199901L */
+ /* Need not to convert to a space because '\n' follows */
+ if (! stdc2 && (warn_level & 2))
+ cwarn( "Parsed \"//\" as comment" /* _W2_ */
+ , 0, 0L, 0);
+ if (keep_comments) {
+ sp -= 2;
+ while (*sp != '\n') /* Until end of line */
+ mcpp_fputc( *sp++, OUT);
}
+ goto end_line;
+ default: /* Not a comment */
+ not_comment:
+ *tp++ = '/';
+ sp--; /* To re-read */
+ break;
+ }
+ break;
+ case '\r': /* Vertical white spaces*/
+ /* Note that [CR+LF] is already converted to [LF]. */
+ case '\f':
+ case '\v':
+ if (warn_level & 4)
+ cwarn( "Converted %.0s0x%02lx to a space" /* _W4_ */
+ , 0, (long) c, 0);
+ case '\t': /* Horizontal space */
+ case ' ':
+ if (keep_spaces) {
+ if (c == '\t')
+ *tp++ = '\t';
+ else
+ *tp++ = ' '; /* Convert to ' ' */
+ } else if (! (char_type[ *(tp - 1) & UCHARMAX] & HSP)) {
+ *tp++ = ' '; /* Squeeze white spaces */
+ } else if (mcpp_mode == OLD_PREP && *(tp - 1) == COM_SEP) {
+ *(tp - 1) = ' '; /* Replace COM_SEP with ' ' */
+ }
+ break;
+ case '"': /* String literal */
+ case '\'': /* Character constant */
+ infile->bptr = sp;
+ if (standard) {
+ tp = scan_quote( c, tp, limit, TRUE);
+ } else {
+ in_string = TRUE; /* Enable line splicing by scan_quote() */
+ tp = scan_quote( c, tp, limit, TRUE); /* (not by get_ch())*/
+ in_string = FALSE;
+ }
+ if (tp == 0) {
+ ACE_OS::free( temp); /* Unbalanced quotation */
+ return parse_line(); /* Skip the line */
+ }
+ sp = infile->bptr;
+ break;
+ default:
+ if (iscntrl( c)) {
+ cerror( /* Skip the control character */
+ "Illegal control character %.0s0x%lx, skipped the character" /* _E_ */
+ , 0, (long) c, 0);
+ } else { /* Any valid character */
+ *tp++ = c;
+ }
+ break;
}
-end_line:
- if (temp < tp && *(tp - 1) == ' ')
- tp--; /* Remove trailing white space */
- *tp++ = '\n';
- *tp = EOS;
- infile->bptr = ACE_OS::strcpy( infile->buffer, temp); /* Write back to buffer */
- ACE_OS::free( temp);
- if (macro_line != 0 && macro_line != MACRO_ERROR) { /* Expanding macro */
- temp = infile->buffer;
- if (*temp == ' ')
- temp++;
- if (*temp == '#'
- || (mcpp_mode == STD && *temp == '%' && *(temp + 1) == ':'))
- if (warn_level & 1)
- cwarn(
- "Macro started at line %.0s%ld swallowed directive-like line" /* _W1_ */
- , 0, macro_line, 0);
+ if (limit < tp) {
+ *tp = EOS;
+ cfatal( "Too long line spliced by comments" /* _F_ */
+ , 0, 0L, 0);
}
- return infile->buffer;
+ }
+
+ end_line:
+ if (temp < tp && (char_type[ *(tp - 1) & UCHARMAX] & HSP))
+ tp--; /* Remove trailing white space */
+ *tp++ = '\n';
+ *tp = EOS;
+ infile->bptr = ACE_OS::strcpy( infile->buffer, temp); /* Write back to buffer */
+ ACE_OS::free( temp);
+ if (macro_line != 0 && macro_line != MACRO_ERROR) { /* Expanding macro */
+ temp = infile->buffer;
+ while (char_type[ *temp & UCHARMAX] & HSP)
+ temp++;
+ if (*temp == '#' /* This line starts with # token */
+ || (mcpp_mode == STD && *temp == '%' && *(temp + 1) == ':'))
+ if (warn_level & 1)
+ cwarn(
+ "Macro started at line %.0s%ld swallowed directive-like line" /* _W1_ */
+ , 0, macro_line, 0);
+ }
+ return infile->buffer;
}
static char * read_a_comment(
- char * sp
-)
+ char * sp, /* Source */
+ size_t * sizp /* Size of the comment */
+ )
/*
* Read over a comment (which may cross the lines).
*/
{
- int c;
+ int c;
+ char * saved_sp = 0;
+ int cat_line = 0; /* Number of catenated lines */
+
+ if (keep_spaces) {
+ saved_sp = sp - 2; /* '-2' for beginning / and * */
+ *sizp = 0;
+ }
+ if (keep_comments) /* If writing comments */
+ mcpp_fputs( "/*", OUT); /* Write the initializer*/
+ c = *sp++;
+
+ while (1) { /* Eat a comment */
+ if (keep_comments)
+ mcpp_fputc( c, OUT);
- if (keep_comments) /* If writing comments */
- mcpp_fputs( "/*", OUT); /* Write the initializer*/
- c = *sp++;
-
- while (1) { /* Eat a comment */
- if (keep_comments)
- mcpp_fputc( c, OUT);
-
- switch (c) {
- case '/':
- if ((c = *sp++) != '*') /* Don't let comments */
- continue; /* nest. */
- if (warn_level & 1)
- cwarn( "\"/*\" within comment", 0, 0L, 0); /* _W1_ */
- if (keep_comments)
- mcpp_fputc( c, OUT);
- /* Fall into * stuff */
- case '*':
- if ((c = *sp++) != '/') /* If comment doesn't */
- continue; /* end, look at next. */
- if (keep_comments) { /* Put out comment */
- mcpp_fputc( c, OUT); /* terminator, too. */
- mcpp_fputc( '\n', OUT); /* Newline to avoid mess*/
- }
- return sp; /* End of comment */
- case '\n':
- if (! keep_comments) /* We'll need a #line */
- wrong_line = TRUE; /* later... */
- if ((sp = get_line( TRUE)) == 0) /* End of file */
- return 0; /* within comment */
- break;
- default: /* Anything else is */
- break; /* just a character */
- } /* End switch */
+ switch (c) {
+ case '/':
+ if ((c = *sp++) != '*') /* Don't let comments */
+ continue; /* nest. */
+ if (warn_level & 1)
+ cwarn( "\"/*\" within comment", 0, 0L, 0); /* _W1_ */
+ if (keep_comments)
+ mcpp_fputc( c, OUT);
+ /* Fall into * stuff */
+ case '*':
+ if ((c = *sp++) != '/') /* If comment doesn't */
+ continue; /* end, look at next. */
+ if (keep_comments) { /* Put out comment */
+ mcpp_fputc( c, OUT); /* terminator, too. */
+ mcpp_fputc( '\n', OUT); /* Append '\n' to avoid */
+ /* trouble on some other tools such as rpcgen. */
+ wrong_line = TRUE;
+ }
+ if (keep_spaces) /* Save the length */
+ *sizp = *sizp + (sp - saved_sp);
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
+ if (cat_line) {
+ cat_line++;
+ com_cat_line.len[ cat_line] /* Catenated length */
+ = com_cat_line.len[ cat_line - 1]
+ + ACE_OS::strlen( infile->buffer) - 1;
+ /* '-1' for '\n' */
+ com_cat_line.last_line = src_line;
+ }
+ }
+ return sp; /* End of comment */
+ case '\n': /* Line-crossing comment*/
+ if (keep_spaces) /* Save the length */
+ *sizp = *sizp + (sp - saved_sp) - 1; /* '-1' for '\n' */
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
+ /* Save location informations */
+ if (cat_line == 0) /* First line of catenation */
+ com_cat_line.start_line = src_line;
+ if (cat_line >= MAX_CAT_LINE - 1) {
+ *sizp = 0; /* Discard the too long comment */
+ cat_line = 0;
+ if (warn_level & 4)
+ cwarn(
+ "Too long comment, discarded up to here" /* _W4_ */
+ , 0, 0L, 0);
+ }
+ cat_line++;
+ com_cat_line.len[ cat_line]
+ = com_cat_line.len[ cat_line - 1]
+ + ACE_OS::strlen( infile->buffer) - 1;
+ }
+ if ((saved_sp = sp = get_line( TRUE)) == 0)
+ return 0; /* End of file within comment */
+ /* Never happen, because at_eof() supplement closing*/
+ wrong_line = TRUE; /* We'll need a #line later */
+ break;
+ default: /* Anything else is */
+ break; /* just a character */
+ } /* End switch */
- c = *sp++;
- } /* End comment loop */
+ c = *sp++;
+ } /* End comment loop */
- return sp; /* Never reach here */
+ return sp; /* Never reach here */
}
static char * mcpp_fgets(
- char * s,
- int size,
- FILE * stream
-)
+ char * s,
+ int size,
+ FILE * stream
+ )
{
- return ACE_OS::fgets( s, size, stream);
+ return ACE_OS::fgets( s, size, stream);
}
static char * get_line(
- int in_comment
-)
+ int in_comment
+ )
/*
* ANSI (ISO) C: translation phase 1, 2.
* Get the next logical line from source file.
@@ -1825,265 +1923,273 @@ static char * get_line(
#else
#define cr_warn_level 2
#endif
- static int cr_converted;
- int converted = FALSE;
- int len; /* Line length - alpha */
- char * ptr;
-
- if (infile == 0) /* End of a source file */
- return 0;
- ptr = infile->bptr = infile->buffer;
-
- while (mcpp_fgets( ptr, (int) (infile->buffer + NBUFF - ptr), infile->fp)
- != 0) {
- /* Translation phase 1 */
- src_line++; /* Gotten next physical line */
- if (standard && src_line == line_limit + 1 && (warn_level & 1))
- cwarn( "Line number %.0s\"%ld\" got beyond range" /* _W1_ */
- , 0, src_line, 0);
- if (mcpp_debug & (TOKEN | GETC)) { /* Dump it to DBG */
- mcpp_fprintf( DBG, "\n#line %ld (%s)", src_line, cur_fullname);
- dump_string( 0, ptr);
- }
+ static int cr_converted;
+ int converted = FALSE;
+ int len; /* Line length - alpha */
+ char * ptr;
+ int cat_line = 0; /* Number of catenated lines */
+
+ if (infile == 0) /* End of a source file */
+ return 0;
+ ptr = infile->bptr = infile->buffer;
+ if ((mcpp_debug & MACRO_CALL) && src_line == 0) /* Initialize */
+ com_cat_line.last_line = bsl_cat_line.last_line = 0L;
+
+ while (mcpp_fgets( ptr, (int) (infile->buffer + NBUFF - ptr), infile->fp)
+ != 0) {
+ /* Translation phase 1 */
+ src_line++; /* Gotten next physical line */
+ if (standard && src_line == std_limits.line_num + 1
+ && (warn_level & 1))
+ cwarn( "Line number %.0s\"%ld\" got beyond range" /* _W1_ */
+ , 0, src_line, 0);
+ if (mcpp_debug & (TOKEN | GETC)) { /* Dump it to DBG */
+ mcpp_fprintf( DBG, "\n#line %ld (%s)", src_line, cur_fullname);
+ dump_string( 0, ptr);
+ }
+ len = ACE_OS::strlen( ptr);
+ if (NBUFF - 1 <= ptr - infile->buffer + len
+ && *(ptr + len - 1) != '\n') {
+ /* The line does not yet end, though the buffer is full. */
+ if (NBUFF - 1 <= len)
+ cfatal( "Too long source line" /* _F_ */
+ , 0, 0L, 0);
+ else
+ cfatal( "Too long logical line" /* _F_ */
+ , 0, 0L, 0);
+ }
+ if (*(ptr + len - 1) != '\n') /* Unterminated source line */
+ break;
+ if (len >= 2 && *(ptr + len - 2) == '\r') { /* [CR+LF] */
+ *(ptr + len - 2) = '\n';
+ *(ptr + --len) = EOS;
+ if (! cr_converted && (warn_level & cr_warn_level)) {
+ cwarn( "Converted [CR+LF] to [LF]" /* _W1_ _W2_ */
+ , 0, 0L, 0);
+ cr_converted = TRUE;
+ }
+ }
+ if (standard) {
+ if (option_flags.trig)
+ converted = cnv_trigraph( ptr);
+ if (mcpp_mode == POST_STD && option_flags.dig)
+ converted += cnv_digraph( ptr);
+ if (converted)
len = ACE_OS::strlen( ptr);
- if (NBUFF - 1 <= ptr - infile->buffer + len
- && *(ptr + len - 1) != '\n') {
- if (NBUFF - 1 <= len)
- cfatal( "Too long source line" /* _F_ */
- , 0, 0L, 0);
- else
- cfatal( "Too long logical line" /* _F_ */
- , 0, 0L, 0);
+ /* Translation phase 2 */
+ len -= 2;
+ if (len >= 0) {
+ if ((*(ptr + len) == '\\') && ! last_is_mbchar( ptr, len)) {
+ /* <backslash><newline> (not MBCHAR) */
+ ptr = infile->bptr += len; /* Splice the lines */
+ wrong_line = TRUE;
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
+ /* Save location informations */
+ if (cat_line == 0) /* First line of catenation */
+ bsl_cat_line.start_line = src_line;
+ if (cat_line < MAX_CAT_LINE)
+ /* Record the catenated length */
+ bsl_cat_line.len[ ++cat_line]
+ = ACE_OS::strlen( infile->buffer) - 2;
+ /* Else ignore */
+ }
+ continue;
}
- if (*(ptr + len - 1) != '\n') /* Unterminated source line */
- break;
- if (len >= 2 && *(ptr + len - 2) == '\r') { /* [CR+LF] */
- *(ptr + len - 2) = '\n';
- *(ptr + --len) = EOS;
- if (! cr_converted && (warn_level & cr_warn_level)) {
- cwarn( "Converted [CR+LF] to [LF]" /* _W1_ _W2_ */
- , 0, 0L, 0);
- cr_converted = TRUE;
- }
- }
- if (standard) {
- if (trig_flag)
- converted = cnv_trigraph( ptr);
- if (mcpp_mode == POST_STD && dig_flag)
- converted += cnv_digraph( ptr);
- if (converted)
- len = ACE_OS::strlen( ptr);
- /* Translation phase 2 */
- len -= 2;
- if (len >= 0) {
- if ((*(ptr + len) == '\\') && ! last_is_mbchar( ptr, len)) {
- /* <backslash><newline> (not MBCHAR) */
- ptr = infile->bptr += len; /* Splice the lines */
- wrong_line = TRUE;
- continue;
- }
- }
+ }
#if NBUFF-2 > SLEN90MIN
- if (ptr - infile->buffer + len + 2 > str_len_min + 1
- && (warn_level & 4)) /* +1 for '\n' */
- cwarn( "Logical source line longer than %.0s%ld bytes" /* _W4_ */
- , 0, str_len_min, 0);
+ if (ptr - infile->buffer + len + 2 > std_limits.str_len + 1
+ && (warn_level & 4)) /* +1 for '\n' */
+ cwarn( "Logical source line longer than %.0s%ld bytes" /* _W4_ */
+ , 0, std_limits.str_len, 0);
#endif
- }
- return infile->bptr = infile->buffer; /* Logical line */
}
-
- /* End of a (possibly included) source file */
- if (ferror( infile->fp))
- cfatal( "File read error", 0, 0L, 0); /* _F_ */
- at_eof( in_comment); /* Check at end of file */
- if (zflag) {
- no_output--; /* End of included file */
- keep_comments = cflag && compiling && !no_output;
+ if ((mcpp_debug & MACRO_CALL) && compiling) {
+ if (cat_line && cat_line < MAX_CAT_LINE) {
+ bsl_cat_line.len[ ++cat_line] = ACE_OS::strlen( infile->buffer) - 1;
+ /* Catenated length: '-1' for '\n' */
+ bsl_cat_line.last_line = src_line;
+ }
}
- return 0;
+ return infile->bptr = infile->buffer; /* Logical line */
+ }
+
+ /* End of a (possibly included) source file */
+ if (ferror( infile->fp))
+ cfatal( "File read error", 0, 0L, 0); /* _F_ */
+ if ((ptr = at_eof( in_comment)) != 0) /* Check at end of file */
+ return ptr; /* Partial line supplemented */
+ if (option_flags.z) {
+ no_output--; /* End of included file */
+ keep_comments = option_flags.c && compiling && !no_output;
+ }
+ return 0;
}
#define TRIOFFSET 10
int cnv_trigraph(
- char * in
-)
+ char * in
+ )
/*
* Perform in-place trigraph replacement on a physical line. This was added
* to the C90. In an input text line, the sequence ??[something] is
* transformed to a character (which might not appear on the input keyboard).
*/
{
- const char * const tritext = "=(/)'<!>-\0#[\\]^{|}~";
- /* ^ ^
- * +----------+
- * this becomes this
- */
- int count = 0;
- const char * tp;
-
- while ((in = ACE_OS::strchr( in, '?')) != 0) {
- if (*++in != '?')
- continue;
- while (*++in == '?')
- ;
- if ((tp = ACE_OS::strchr( tritext, *in)) == 0)
- continue;
- in[ -2] = tp[ TRIOFFSET];
- in--;
- ACE_OS::memmove( in, in + 2, ACE_OS::strlen( in + 1));
- count++;
- }
-
- if (count && (warn_level & 16))
- cwarn( "%.0s%ld trigraph(s) converted" /* _W16_ */
- , 0, (long) count, 0);
- return count;
+ const char * const tritext = "=(/)'<!>-\0#[\\]^{|}~";
+ /* ^ ^
+ * +----------+
+ * this becomes this
+ */
+ int count = 0;
+ const char * tp;
+
+ while ((in = ACE_OS::strchr( in, '?')) != 0) {
+ if (*++in != '?')
+ continue;
+ while (*++in == '?')
+ ;
+ if ((tp = ACE_OS::strchr( tritext, *in)) == 0)
+ continue;
+ *(in - 2) = *(tp + TRIOFFSET);
+ in--;
+ ACE_OS::memmove( in, in + 2, ACE_OS::strlen( in + 1));
+ count++;
+ }
+
+ if (count && (warn_level & 16))
+ cwarn( "%.0s%ld trigraph(s) converted" /* _W16_ */
+ , 0, (long) count, 0);
+ return count;
}
int cnv_digraph(
- char * in
-)
+ char * in
+ )
/*
* Perform in-place digraph replacement on a physical line.
* Called only in POST_STD mode.
*/
{
- int count = 0;
- int i;
- int c1, c2;
-
- while ((i = ACE_OS::strcspn( in, "%:<")), (c1 = in[ i]) != '\0') {
- in += i + 1;
- c2 = *in;
- switch (c1) {
- case '%' :
- switch (c2) {
- case ':' : *(in - 1) = '#'; break;
- case '>' : *(in - 1) = '}'; break;
- default : continue;
- }
- break;
- case ':' :
- switch (c2) {
- case '>' : *(in - 1) = ']'; break;
- default : continue;
- }
- break;
- case '<' :
- switch (c2) {
- case '%' : *(in - 1) = '{'; break;
- case ':' : *(in - 1) = '['; break;
- default : continue;
- }
- break;
- }
- ACE_OS::memmove( in, in + 1, ACE_OS::strlen( in));
- count++;
+ int count = 0;
+ int i;
+ int c1, c2;
+
+ while ((i = ACE_OS::strcspn( in, "%:<")), (c1 = *(in + i)) != '\0') {
+ in += i + 1;
+ c2 = *in;
+ switch (c1) {
+ case '%' :
+ switch (c2) {
+ case ':' : *(in - 1) = '#'; break;
+ case '>' : *(in - 1) = '}'; break;
+ default : continue;
+ }
+ break;
+ case ':' :
+ switch (c2) {
+ case '>' : *(in - 1) = ']'; break;
+ default : continue;
+ }
+ break;
+ case '<' :
+ switch (c2) {
+ case '%' : *(in - 1) = '{'; break;
+ case ':' : *(in - 1) = '['; break;
+ default : continue;
+ }
+ break;
}
-
- if (count && (warn_level & 16))
- cwarn( "%.0s%ld digraph(s) converted" /* _W16_ */
- , 0, (long) count, 0);
- return count;
+ ACE_OS::memmove( in, in + 1, ACE_OS::strlen( in));
+ count++;
+ }
+
+ if (count && (warn_level & 16))
+ cwarn( "%.0s%ld digraph(s) converted" /* _W16_ */
+ , 0, (long) count, 0);
+ return count;
}
-static int last_is_mbchar(
- const char * in, /* Input physical line */
- int len /* Length of the line minus 2 */
-)
-/*
- * Return 2, if the last char of the line is second byte of SJIS or BIGFIVE,
- * else return 0.
- */
-{
- const char * cp = in + len;
- const char * const endp = in + len; /* -> the char befor '\n' */
-
- if ((mbchar & (SJIS | BIGFIVE)) == 0)
- return 0;
- while (in <= --cp) { /* Search backwardly */
- if ((char_type[ *cp & UCHARMAX] & mbstart) == 0)
- break; /* Not the first byte of MBCHAR */
- }
- if ((endp - cp) & 1)
- return 0;
- else
- return 2;
-}
-
-static void at_eof(
- int in_comment
-)
+static char * at_eof(
+ int in_comment
+ )
/*
* Check the partial line, unterminated comment, unbalanced #if block,
- * uncompleted macro call at end of file or at end of input.
+ * uncompleted macro call at end of a file or at end of input.
+ * Supplement the line terminator, if possible.
+ * Return the supplemented line or 0 on unrecoverable error.
*/
{
- const char * const format
- = "End of %s with %.0ld%s"; /* _E_ _W1_ */
- const char * const unterm_if_format
-= "End of %s within #if (#ifdef) section started at line %ld"; /* _E_ _W1_ */
- const char * const unterm_macro_format
- = "End of %s within macro call started at line %ld";/* _E_ _W1_ */
- const char * const input
- = infile->parent ? "file" : "input"; /* _E_ _W1_ */
- const char * const no_newline
- = "no newline, supplemented newline"; /* _W1_ */
- const char * const unterm_com
- = "unterminated comment, terminated the comment"; /* _W1_ */
- const char * const backsl = "\\, deleted the \\"; /* _W1_ */
- const char * const unterm_asm_format
-= "End of %s with unterminated #asm block started at line %ld"; /* _E_ _W1_ */
- size_t len;
- char * cp = infile->buffer;
- IFINFO * ifp;
-
- len = ACE_OS::strlen( cp);
- if (len && *(cp += (len - 1)) != '\n') {
- *++cp = '\n'; /* Supplement <newline> */
- *++cp = EOS;
- if (standard && (warn_level & 1))
- cwarn( format, input, 0L, no_newline);
- else if (mcpp_mode == KR && (warn_level & 1))
- cwarn( format, input, 0L, no_newline);
+ const char * const format
+ = "End of %s with %.0ld%s"; /* _E_ _W1_ */
+ const char * const unterm_if_format
+ = "End of %s within #if (#ifdef) section started at line %ld"; /* _E_ _W1_ */
+ const char * const unterm_macro_format
+ = "End of %s within macro call started at line %ld";/* _E_ _W1_ */
+ const char * const input
+ = infile->parent ? "file" : "input"; /* _E_ _W1_ */
+ const char * const no_newline
+ = "no newline, supplemented newline"; /* _W1_ */
+ const char * const unterm_com
+ = "unterminated comment, terminated the comment"; /* _W1_ */
+ const char * const backsl = "\\, deleted the \\"; /* _W1_ */
+ const char * const unterm_asm_format
+ = "End of %s with unterminated #asm block started at line %ld"; /* _E_ _W1_ */
+ size_t len;
+ char * cp;
+
+ cp = infile->buffer;
+ len = ACE_OS::strlen( cp);
+ if (len && *(cp += (len - 1)) != '\n') {
+ *++cp = '\n'; /* Supplement <newline> */
+ *++cp = EOS;
+ if (mcpp_mode != OLD_PREP && (warn_level & 1))
+ cwarn( format, input, 0L, no_newline);
+ return infile->bptr = infile->buffer;
+ }
+ if (standard && infile->buffer < infile->bptr) {
+ /* No line after <backslash><newline> */
+ cp = infile->bptr;
+ *cp++ = '\n'; /* Delete the \\ */
+ *cp = EOS;
+ if (warn_level & 1)
+ cwarn( format, input, 0L, backsl);
+ return infile->bptr = infile->buffer;
+ }
+ if (in_comment) { /* End of file within a comment */
+ if (mcpp_mode != OLD_PREP && (warn_level & 1))
+ cwarn( format, input, 0L, unterm_com);
+ /* The partial comment line has been already read by */
+ /* read_a_comment(), so supplement the next line. */
+ ACE_OS::strcpy( infile->buffer, "*/\n");
+ return infile->bptr = infile->buffer;
+ }
+
+ if (infile->initif < ifptr) {
+ IFINFO * ifp = infile->initif + 1;
+ if (standard) {
+ cerror( unterm_if_format, input, ifp->ifline, 0);
+ ifptr = infile->initif; /* Clear information of */
+ compiling = ifptr->stat; /* erroneous grouping */
+ } else if (mcpp_mode == KR && (warn_level & 1)) {
+ cwarn( unterm_if_format, input, ifp->ifline, 0);
}
- if (standard && infile->buffer < infile->bptr) {
- cp += len - 2;
- *cp++ = '\n'; /* Delete the \\ */
- *cp = EOS;
- if (warn_level & 1)
- cwarn( format, input, 0L, backsl);
- }
- if (in_comment) {
- if ((standard || mcpp_mode == KR) && (warn_level & 1))
- cwarn( format, input, 0L, unterm_com);
- }
-
- if (infile->initif < ifptr) {
- ifp = infile->initif + 1;
- if (standard) {
- cerror( unterm_if_format, input, ifp->ifline, 0);
- ifptr = infile->initif; /* Clear information of */
- compiling = ifptr->stat; /* erroneous grouping */
- } else if (mcpp_mode != OLD_PREP && (warn_level & 1)) {
- cwarn( unterm_if_format, input, ifp->ifline, 0);
- }
+ }
+
+ if (macro_line != 0 && macro_line != MACRO_ERROR
+ && ((mcpp_mode == STD && in_getarg) || ! standard)) {
+ if (standard) {
+ cerror( unterm_macro_format, input, macro_line, 0);
+ macro_line = MACRO_ERROR;
+ } else if (warn_level & 1) {
+ cwarn( unterm_macro_format, input, macro_line, 0);
}
+ }
- if (macro_line != 0 && macro_line != MACRO_ERROR
- && ((mcpp_mode == STD && in_getarg) || ! standard)) {
- if (standard) {
- cerror( unterm_macro_format, input, macro_line, 0);
- macro_line = MACRO_ERROR;
- } else if (warn_level & 1) {
- cwarn( unterm_macro_format, input, macro_line, 0);
- }
- }
+ if (in_asm && mcpp_mode == KR && (warn_level & 1))
+ cwarn( unterm_asm_format, input, in_asm, 0);
- if (in_asm && mcpp_mode == KR && (warn_level & 1))
- cwarn( unterm_asm_format, input, in_asm, 0);
+ return 0;
}
void unget_ch( void)
@@ -2094,488 +2200,614 @@ void unget_ch( void)
* call unget_string().
*/
{
- if (in_token) {
- infile->bptr--;
+ if (in_token) {
+ infile->bptr--;
+ return;
+ }
+
+ if (infile != 0) {
+ if (mcpp_mode == POST_STD && infile->fp) {
+ switch (insert_sep) {
+ case INSERTED_SEP: /* Have just read an inserted separator */
+ insert_sep = INSERT_SEP;
return;
+ case INSERT_SEP:
+ cfatal( "Bug: unget_ch() just after scan_token()" /* _F_ */
+ , 0, 0L, 0);
+ break;
+ default:
+ break;
+ }
}
+ --infile->bptr;
+ if (infile->bptr < infile->buffer) /* Shouldn't happen */
+ cfatal( "Bug: Too much pushback", 0, 0L, 0); /* _F_ */
+ }
- if (infile != 0) {
- if (mcpp_mode == POST_STD && infile->fp) {
- switch (insert_sep) {
- case INSERTED_SEP: /* Have just read an inserted separator */
- insert_sep = INSERT_SEP;
- return;
- case INSERT_SEP:
- cfatal( "Bug: unget_ch() just after scan_token()" /* _F_ */
- , 0, 0L, 0);
- break;
- default:
- break;
- }
- }
- --infile->bptr;
- if (infile->bptr < infile->buffer) /* Shouldn't happen */
- cfatal( "Bug: Too much pushback", 0, 0L, 0); /* _F_ */
- }
-
- if (mcpp_debug & GETC)
- dump_unget( "after unget");
+ if (mcpp_debug & GETC)
+ dump_unget( "after unget");
}
FILEINFO * unget_string(
- const char * text, /* Text to unget */
- const char * name /* Name of the macro */
-)
+ const char * text, /* Text to unget */
+ const char * name /* Name of the macro, if any*/
+ )
/*
* Push a string back on the input stream. This is done by treating
- * the text as if it were a macro.
+ * the text as if it were a macro or a file.
*/
{
- FILEINFO * file;
- size_t size;
+ FILEINFO * file;
+ size_t size;
- if (text)
- size = ACE_OS::strlen( text) + 1;
- else
- size = 1;
- file = get_file( name, size);
- if (text)
- ACE_OS::memcpy( file->buffer, text, size);
- else
- *file->buffer = EOS;
- return file;
+ if (text)
+ size = ACE_OS::strlen( text) + 1;
+ else
+ size = 1;
+ file = get_file( name, 0, 0, size, FALSE);
+ if (text)
+ ACE_OS::memcpy( file->buffer, text, size);
+ else
+ *file->buffer = EOS;
+ return file;
}
char * save_string(
- const char * text
-)
+ const char * text
+ )
/*
* Store a string into free memory.
*/
{
- char * result;
- size_t size;
+ char * result;
+ size_t size;
- size = ACE_OS::strlen( text) + 1;
- result = xmalloc( size);
- ACE_OS::memcpy( result, text, size);
- return result;
+ size = ACE_OS::strlen( text) + 1;
+ result = xmalloc( size);
+ ACE_OS::memcpy( result, text, size);
+ return result;
}
FILEINFO * get_file(
- const char * name, /* File or macro name string */
- size_t bufsize /* Line buffer size */
-)
+ const char * name, /* File or macro name */
+ const char * src_dir, /* Source file directory*/
+ const char * fullname, /* Full path list */
+ size_t bufsize, /* Line buffer size */
+ int include_opt /* Specified by -include opt (for GCC) */
+ )
/*
* Common FILEINFO buffer initialization for a new file or macro.
*/
{
- FILEINFO * file;
-
- file = (FILEINFO *) xmalloc( sizeof (FILEINFO));
- file->buffer = xmalloc( bufsize);
- file->bptr = file->buffer; /* Initialize line ptr */
- file->buffer[ 0] = EOS; /* Force first read */
- file->line = 0L; /* (Not used just yet) */
- file->fp = 0; /* No file yet */
- file->pos = 0L; /* No pos to remember */
- file->parent = infile; /* Chain files together */
- file->initif = ifptr; /* Initial ifstack */
- file->dirp = 0; /* No sys-header yet */
- file->real_fname = name; /* Save file/macro name */
- if (name) {
- file->filename = xmalloc( ACE_OS::strlen( name) + 1);
- ACE_OS::strcpy( file->filename, name); /* Copy for #line */
- } else {
- file->filename = 0;
- }
-#if MCPP_LIB
- file->last_fputc = mcpp_lib_fputc;
- file->last_fputs = mcpp_lib_fputs;
- file->last_fprintf = mcpp_lib_fprintf;
+ FILEINFO * file;
+
+ file = (FILEINFO *) xmalloc( sizeof (FILEINFO));
+ file->buffer = xmalloc( bufsize);
+ file->bptr = file->buffer; /* Initialize line ptr */
+ file->buffer[ 0] = EOS; /* Force first read */
+ file->line = 0L; /* (Not used just yet) */
+ file->fp = 0; /* No file yet */
+ file->pos = 0L; /* No pos to remember */
+ file->parent = infile; /* Chain files together */
+ file->initif = ifptr; /* Initial ifstack */
+ file->include_opt = include_opt; /* Specified by -include*/
+ file->dirp = 0; /* No include dir yet */
+ file->real_fname = name; /* Save file/macro name */
+ file->full_fname = fullname; /* Full path list */
+ if (name) {
+ file->filename = xmalloc( ACE_OS::strlen( name) + 1);
+ ACE_OS::strcpy( file->filename, name); /* Copy for #line */
+ } else {
+ file->filename = 0;
+ }
+ if (src_dir) {
+ file->src_dir = xmalloc( ACE_OS::strlen( src_dir) + 1);
+ ACE_OS::strcpy( const_cast <char *> (file->src_dir), src_dir);
+ } else {
+ file->src_dir = 0;
+ }
+#ifdef MCPP_LIB
+ file->last_fputc = mcpp_lib_fputc;
+ file->last_fputs = mcpp_lib_fputs;
+ file->last_fprintf = mcpp_lib_fprintf;
#endif
- if (infile != 0) { /* If #include file */
- infile->line = src_line; /* Save current line */
-#if MCPP_LIB
- infile->last_fputc = mcpp_fputc;
- infile->last_fputs = mcpp_fputs;
- infile->last_fprintf = mcpp_fprintf;
+ if (infile != 0) { /* If #include file */
+ infile->line = src_line; /* Save current line */
+#ifdef MCPP_LIB
+ infile->last_fputc = mcpp_fputc;
+ infile->last_fputs = mcpp_fputs;
+ infile->last_fprintf = mcpp_fprintf;
#endif
- }
- infile = file; /* New current file */
- return file; /* All done. */
+ }
+ infile = file; /* New current file */
+
+ return file; /* All done. */
}
static const char * const out_of_memory
- = "Out of memory (required size is %.0s0x%lx bytes)"; /* _F_ */
+= "Out of memory (required size is %.0s0x%lx bytes)"; /* _F_ */
char *
(xmalloc)(
- size_t size
-)
+ size_t size
+ )
/*
* Get a block of free memory.
*/
{
- char * result;
-
- if ((result = (char *) ACE_OS::malloc( size)) == 0) {
- if (mcpp_debug & MEMORY)
- print_heap();
- cfatal( out_of_memory, 0, (long) size, 0);
- }
- return result;
+ char * result;
+
+ if ((result = (char *) ACE_OS::malloc( size)) == 0) {
+ if (mcpp_debug & MEMORY)
+ print_heap();
+ cfatal( out_of_memory, 0, (long) size, 0);
+ }
+ return result;
}
char * (xrealloc)(
- char * ptr,
- size_t size
-)
+ char * ptr,
+ size_t size
+ )
/*
* Reallocate ACE_OS::malloc()ed memory.
*/
{
- char * result;
-
- if ((result = (char *) ACE_OS::realloc( ptr, size)) == 0 && size != 0) {
- /* 'size != 0' is necessary to cope with some */
- /* implementation of realloc( ptr, 0) which returns 0. */
- if (mcpp_debug & MEMORY)
- print_heap();
- cfatal( out_of_memory, 0, (long) size, 0);
+ char * result;
+
+ if ((result = (char *) ACE_OS::realloc( ptr, size)) == 0 && size != 0) {
+ /* 'size != 0' is necessary to cope with some */
+ /* implementation of realloc( ptr, 0) which returns 0. */
+ if (mcpp_debug & MEMORY)
+ print_heap();
+ cfatal( out_of_memory, 0, (long) size, 0);
+ }
+ return result;
+}
+
+LINE_COL * get_src_location(
+ LINE_COL * p_line_col /* Line and column on phase 4 */
+ )
+/*
+ * Convert line-column datum of just after translation phase 3 into that of
+ * phase 2, tracing back line splicing by a comment and <backslash><newline>.
+ * Note: This conversion does not give correct datum on a line catenated by
+ * both of <backslash><newline> and line-crossing-comment at the same time.
+ *
+ * com_cat_line and bsl_cat_line have data only on last catenated line.
+ * com_cat_line.len[] and bsl_cat_line.len[] have the length of catenated
+ * line, and len[ 0] is always 0, followed by len[ 1], len[ 2], ..., as
+ * accumulated length of successively catenated lines.
+ */
+{
+ long line;
+ size_t col;
+ size_t * cols;
+ CAT_LINE * l_col_p;
+ int i;
+
+ line = p_line_col->line;
+ col = p_line_col->col;
+
+ for (i = 0; i <= 1; i++) {
+ l_col_p = i ? & bsl_cat_line : & com_cat_line;
+ if (l_col_p->last_line != line)
+ continue;
+ /* Else just catenated line */
+ cols = l_col_p->len + 1;
+ while (*cols < col)
+ cols++;
+ if (col <= *cols) {
+ cols--;
+ col -= *cols;
}
- return result;
+ line = l_col_p->start_line + (cols - l_col_p->len);
+ }
+
+ p_line_col->line = line;
+ p_line_col->col = col + 1;
+ /* col internally start at 0, output start at 1 */
+
+ return p_line_col;
}
static void put_line(
- char * out,
- FILE * fp
-)
+ char * out,
+ FILE * fp
+ )
/*
* Put out a logical source line.
* This routine is called only in OLD_PREP mode.
*/
{
- int c;
+ int c;
- while ((c = *out++) != EOS) {
- if (c != COM_SEP) /* Skip 0-length comment */
- mcpp_fputc( c, FP2DEST( fp));
- }
+ while ((c = *out++) != EOS) {
+ if (c != COM_SEP) /* Skip 0-length comment */
+ mcpp_fputc( c, FP2DEST( fp));
+ }
}
static void do_msg(
- const char * severity, /* "fatal", "error", "warning" */
- const char * format, /* Format for the error message */
- const char * arg1, /* String arg. for the message */
- long arg2, /* Integer argument */
- const char * arg3 /* Second string argument */
-)
+ const char * severity, /* "fatal", "error", "warning" */
+ const char * format, /* Format for the error message */
+ const char * arg1, /* String arg. for the message */
+ long arg2, /* Integer argument */
+ const char * arg3 /* Second string argument */
+ )
/*
* Print filenames, macro names, line numbers and error messages.
+ * Also print macro definitions on macro expansion problems.
*/
{
-#define MAX_MACRO_FILE 4
-
- FILEINFO * file;
- DEFBUF * defp;
- int i;
- size_t slen;
- const char * arg_s[ 2];
- char * arg_t[ 2];
- char * tp;
- const char * sp;
- int c;
- int ind;
-
- ACE_OS::fflush( fp_out); /* Synchronize output and diagnostics */
- arg_s[ 0] = arg1; arg_s[ 1] = arg3;
-
- for (i = 0; i < 2; i++) { /* Convert special characters to visible */
- sp = arg_s[ i];
- if (sp != 0)
- slen = ACE_OS::strlen( sp) + 1;
- else
- slen = 1;
- tp = arg_t[ i] = (char *) ACE_OS::malloc( slen);
- /* Don't use xmalloc() so as not to cause infinite recursion */
- if (sp == 0 || *sp == EOS) {
- *tp = EOS;
- continue;
- }
-
- while ((c = *sp++) != EOS) {
- switch (c) {
- case TOK_SEP:
- if (mcpp_mode == OLD_PREP) /* COM_SEP */
- break; /* Skip magic characters */
- /* Else fall through */
- case RT_END:
- case IN_SRC:
- if (mcpp_mode != STD) {
- *tp++ = ' ';
- /* Illegal control character, convert to a space*/
- break;
- } /* Else fall through */
- case CAT:
- case ST_QUOTE:
- case DEF_MAGIC:
- if (! standard)
- *tp++ = ' ';
- break; /* Skip magic characters */
- case '\n':
- *tp++ = ' '; /* Convert '\n' to a space */
- break;
- default:
- *tp++ = c;
- break;
- }
- }
-
- if (*(sp - 2) == '\n')
- tp--;
- *tp = EOS;
+ FILEINFO * file;
+ DEFBUF * defp;
+ int i;
+ size_t slen;
+ const char * arg_s[ 2];
+ char * arg_t[ 2];
+ char * tp;
+ const char * sp;
+ int c;
+ int ind;
+
+ ACE_OS::fflush( fp_out); /* Synchronize output and diagnostics */
+ arg_s[ 0] = arg1; arg_s[ 1] = arg3;
+
+ for (i = 0; i < 2; i++) { /* Convert special characters to visible */
+ sp = arg_s[ i];
+ if (sp != 0)
+ slen = ACE_OS::strlen( sp) + 1;
+ else
+ slen = 1;
+ tp = arg_t[ i] = (char *) ACE_OS::malloc( slen);
+ /* Don't use xmalloc() so as not to cause infinite recursion */
+ if (sp == 0 || *sp == EOS) {
+ *tp = EOS;
+ continue;
}
- /* Print diagnostic */
- file = infile;
- while (file != 0 && (file->fp == 0 || file->fp == (FILE *)-1))
- file = file->parent; /* Skip macro */
- if (file != 0) {
- file->line = src_line;
- mcpp_fprintf( ERR, "%s:%ld: %s: ", cur_fullname, src_line, severity);
- }
- mcpp_fprintf( ERR, format, arg_t[ 0], arg2, arg_t[ 1]);
- mcpp_fputc( '\n', ERR);
- if (no_source_line)
- goto free_arg;
-
- /* Print source line, includers and expanding macros */
- file = infile;
- if (file != 0 && file->fp != 0) {
- if (mcpp_mode == OLD_PREP) {
- mcpp_fputs( " ", ERR);
- put_line( file->buffer, fp_err);
+ while ((c = *sp++) != EOS) {
+ switch (c) {
+ case TOK_SEP:
+ if (mcpp_mode == OLD_PREP) /* COM_SEP */
+ break; /* Skip magic characters */
+ /* Else fall through */
+ case RT_END:
+ case CAT:
+ case ST_QUOTE:
+ case DEF_MAGIC:
+ if (! standard)
+ *tp++ = ' ';
+ break; /* Skip the magic characters*/
+ case IN_SRC:
+ if (! standard)
+ *tp++ = ' ';
+ if ((mcpp_debug & MACRO_CALL) && ! in_directive)
+ sp += 2; /* Skip two more bytes */
+ break;
+ case MAC_INF:
+ if (mcpp_mode != STD) {
+ *tp++ = ' ';
+ /* Illegal control character, convert to a space*/
} else {
- mcpp_fprintf( ERR, " %s", file->buffer);
- /* Current source line */
- }
- file = file->parent;
- }
- while (file != 0) { /* Print #includes, too */
- if (file->fp == 0) { /* Macro */
- if (file->filename) {
- defp = look_id( file->filename);
- if (defp->nargs >= DEF_NOARGS - 2)
- dump_a_def( " macro", defp, FALSE, FALSE, TRUE, fp_err);
- }
- } else { /* Source file */
- if (file->buffer[ 0] == '\0')
- ACE_OS::strcpy( file->buffer, "\n");
- if (mcpp_mode != OLD_PREP) {
- mcpp_fprintf( ERR, " from %s%s: %ld: %s",
- *(file->dirp), /* Include directory */
- file->real_fname, /* Current file name */
- file->line, /* Current line number */
- file->buffer); /* The source line */
- } else {
- mcpp_fprintf( ERR, " from %s%s: %ld: ",
- *(file->dirp), file->real_fname, file->line);
- put_line( file->buffer, fp_err);
- }
+ switch (*sp++) { /* Skip the magic characters*/
+ case MAC_ARG_START :
+ sp++;
+ /* Fall through */
+ case MAC_CALL_START :
+ sp += 2;
+ break;
+ case MAC_ARG_END :
+ if (! option_flags.v)
+ break;
+ else
+ sp++;
+ /* Fall through */
+ case MAC_CALL_END :
+ if (option_flags.v)
+ sp += 2;
+ break;
+ }
}
- file = file->parent;
+ break;
+ case '\n':
+ *tp++ = ' '; /* Convert '\n' to a space */
+ break;
+ default:
+ *tp++ = c;
+ break;
+ }
}
- if (! macro_name)
- goto free_arg;
- /* Additional information of macro definitions */
- expanding_macro[ 0].name = macro_name;
- for (ind = 0; ind <= exp_mac_ind; ind++) {
- int ind_done;
- FILEINFO * file;
-
- for (ind_done = 0; ind_done < ind; ind_done++)
- if (str_eq( expanding_macro[ ind].name
- , expanding_macro[ ind_done].name))
- break; /* Already reported */
- if (ind_done < ind)
- continue;
- for (file = infile; file; file = file->parent)
- if (file->fp == 0 && file->filename
- && str_eq( expanding_macro[ ind].name, file->filename))
- break; /* Already reported */
- if (file)
- continue;
- if ((defp = look_id( expanding_macro[ ind].name)) != 0) {
- if (defp->nargs < DEF_NOARGS - 2)
- continue; /* __FILE__, __LINE__ */
- dump_a_def( " macro", defp, FALSE, FALSE, TRUE, fp_err);
- /* Macro already read over */
- }
+ if (*(sp - 2) == '\n')
+ tp--;
+ *tp = EOS;
+ }
+
+ /* Print source location and diagnostic */
+ file = infile;
+ while (file != 0 && (file->fp == 0 || file->fp == (FILE *)-1))
+ file = file->parent; /* Skip macro */
+ if (file != 0) {
+ file->line = src_line;
+ mcpp_fprintf( ERR, "%s:%ld: %s: ", cur_fullname, src_line, severity);
+ }
+ mcpp_fprintf( ERR, format, arg_t[ 0], arg2, arg_t[ 1]);
+ mcpp_fputc( '\n', ERR);
+ if (option_flags.no_source_line)
+ goto free_arg;
+
+ /* Print source line, includers and expanding macros */
+ file = infile;
+ if (file != 0 && file->fp != 0) {
+ if (mcpp_mode == OLD_PREP) {
+ mcpp_fputs( " ", ERR);
+ put_line( file->buffer, fp_err);
+ } else {
+ mcpp_fprintf( ERR, " %s", file->buffer);
+ /* Current source line */
+ }
+ file = file->parent;
+ }
+ while (file != 0) { /* Print #includes, too */
+ if (file->fp == 0) { /* Macro */
+ if (file->filename) {
+ defp = look_id( file->filename);
+ if ((defp->nargs > DEF_NOARGS_STANDARD)
+ && ! (file->parent && file->parent->filename
+ && str_eq( file->filename, file->parent->filename)))
+ /* If the name is not duplicate of parent */
+ dump_a_def( " macro", defp, FALSE, TRUE, fp_err);
+ }
+ } else { /* Source file */
+ if (file->buffer[ 0] == '\0')
+ ACE_OS::strcpy( file->buffer, "\n");
+ if (mcpp_mode != OLD_PREP) {
+ mcpp_fprintf( ERR, " from %s: %ld: %s",
+ file->line ? file->full_fname /* Full-path-list */
+ : "<stdin>", /* Included by -include */
+ file->line, /* Current line number */
+ file->buffer); /* The source line */
+ } else {
+ mcpp_fprintf( ERR, " from %s: %ld: ", file->full_fname
+ , file->line);
+ put_line( file->buffer, fp_err);
+ }
+ }
+ file = file->parent;
+ }
+
+ if (! macro_name)
+ goto free_arg;
+ /* Additional information of macro definitions */
+ expanding_macro[ 0].name = macro_name;
+ for (ind = 0; ind <= exp_mac_ind; ind++) {
+ int ind_done;
+
+ for (ind_done = 0; ind_done < ind; ind_done++)
+ if (str_eq( expanding_macro[ ind].name
+ , expanding_macro[ ind_done].name))
+ break; /* Already reported */
+ if (ind_done < ind)
+ continue;
+ for (file = infile; file; file = file->parent)
+ if (file->fp == 0 && file->filename
+ && str_eq( expanding_macro[ ind].name, file->filename))
+ break; /* Already reported */
+ if (file)
+ continue;
+ if ((defp = look_id( expanding_macro[ ind].name)) != 0) {
+ if (defp->nargs <= DEF_NOARGS_STANDARD)
+ continue; /* Standard predefined */
+ dump_a_def( " macro", defp, FALSE, TRUE, fp_err);
+ /* Macro already read over */
}
+ }
-free_arg:
- for (i = 0; i < 2; i++)
- ACE_OS::free( arg_t[ i]);
+ free_arg:
+ for (i = 0; i < 2; i++)
+ ACE_OS::free( arg_t[ i]);
}
void cfatal(
- const char * format,
- const char * arg1,
- long arg2,
- const char * arg3
-)
+ const char * format,
+ const char * arg1,
+ long arg2,
+ const char * arg3
+ )
/*
* A real disaster.
*/
{
- do_msg( "fatal error", format, arg1, arg2, arg3);
- longjmp( error_exit, -1);
+ do_msg( "fatal error", format, arg1, arg2, arg3);
+ longjmp( error_exit, -1);
}
void cerror(
- const char * format,
- const char * arg1,
- long arg2,
- const char * arg3
-)
+ const char * format,
+ const char * arg1,
+ long arg2,
+ const char * arg3
+ )
/*
* Print a error message.
*/
{
- do_msg( "error", format, arg1, arg2, arg3);
- errors++;
+ do_msg( "error", format, arg1, arg2, arg3);
+ errors++;
}
void cwarn(
- const char * format,
- const char * arg1,
- long arg2,
- const char * arg3
-)
+ const char * format,
+ const char * arg1,
+ long arg2,
+ const char * arg3
+ )
/*
* Maybe an error.
*/
{
- do_msg( "warning", format, arg1, arg2, arg3);
+ do_msg( "warning", format, arg1, arg2, arg3);
}
void dump_string(
- const char * why,
- const char * text
-)
+ const char * why,
+ const char * text
+ )
/*
* Dump text readably.
* Bug: macro argument number may be putout as a control character or any
* other character, just after MAC_PARM has been read away.
*/
{
- const char * cp;
- const char * chr;
- int c;
+ const char * cp;
+ const char * chr;
+ int c, c1, c2;
- if (why != 0)
- mcpp_fprintf( DBG, " (%s)", why);
- mcpp_fputs( " => ", DBG);
+ if (why != 0)
+ mcpp_fprintf( DBG, " (%s)", why);
+ mcpp_fputs( " => ", DBG);
- if (text == 0) {
- mcpp_fputs( "0", DBG);
- return;
- }
+ if (text == 0) {
+ mcpp_fputs( "0", DBG);
+ return;
+ }
- for (cp = text; (c = *cp++ & UCHARMAX) != EOS; ) {
- chr = 0;
+ for (cp = text; (c = *cp++ & UCHARMAX) != EOS; ) {
+ chr = 0;
- switch (c) {
- case MAC_PARM:
- c = *cp++ & UCHARMAX;
- mcpp_fprintf( DBG, "<%d>", c);
- break;
- case DEF_MAGIC:
- if (standard) {
- chr = "<MAGIC>";
- break;
- } /* Else fall through */
- case CAT:
- if (standard) {
- chr = "##";
- break;
- } /* Else fall through */
- case ST_QUOTE:
- if (standard) {
- chr = "#";
- break;
- } /* Else fall through */
- case RT_END:
- if (standard) {
- chr = "<RT_END>";
- break;
- } /* Else fall through */
- case IN_SRC:
- if (standard) {
- chr = "<SRC>";
- break;
- } else { /* Control character */
- mcpp_fprintf( DBG, "<^%c>", c + '@');
- }
- case TOK_SEP:
- if (mcpp_mode == STD) {
- chr = "<TSEP>";
- break;
- } else if (mcpp_mode == OLD_PREP) { /* COM_SEP */
- chr = "<CSEP>";
- break;
- } /* Else fall through */
- default:
- if (c < ' ')
- mcpp_fprintf( DBG, "<^%c>", c + '@');
- else
- mcpp_fputc( c, DBG);
- break;
+ switch (c) {
+ case MAC_PARM:
+ c = *cp++ & UCHARMAX; /* Macro parameter number */
+ mcpp_fprintf( DBG, "<%d>", c);
+ break;
+ case MAC_INF:
+ if (! (mcpp_mode == STD && (mcpp_debug & MACRO_CALL)))
+ goto no_magic;
+ /* Macro informations inserted by -K option */
+ c2 = *cp++ & UCHARMAX;
+ if (option_flags.v || c2 == MAC_CALL_START
+ || c2 == MAC_ARG_START) {
+ c = ((*cp++ & UCHARMAX) - 1) * UCHARMAX;
+ c += (*cp++ & UCHARMAX) - 1;
+ }
+ switch (c2) {
+ case MAC_CALL_START:
+ mcpp_fprintf( DBG, "<MAC%d>", c);
+ break;
+ case MAC_CALL_END:
+ if (option_flags.v)
+ mcpp_fprintf( DBG, "<MAC_END%d>", c);
+ else
+ chr = "<MAC_END>";
+ break;
+ case MAC_ARG_START:
+ c1 = *cp++ & UCHARMAX;
+ mcpp_fprintf( DBG, "<MAC%d:ARG%d>", c, c1 - 1);
+ break;
+ case MAC_ARG_END:
+ if (option_flags.v) {
+ c1 = *cp++ & UCHARMAX;
+ mcpp_fprintf( DBG, "<ARG_END%d-%d>", c, c1 - 1);
+ } else {
+ chr = "<ARG_END>";
}
-
- if (chr)
- mcpp_fputs( chr, DBG);
+ break;
+ }
+ break;
+ case DEF_MAGIC:
+ if (standard) {
+ chr = "<MAGIC>";
+ break;
+ } /* Else fall through */
+ case CAT:
+ if (standard) {
+ chr = "##";
+ break;
+ } /* Else fall through */
+ case ST_QUOTE:
+ if (standard) {
+ chr = "#";
+ break;
+ } /* Else fall through */
+ case RT_END:
+ if (standard) {
+ chr = "<RT_END>";
+ break;
+ } /* Else fall through */
+ case IN_SRC:
+ if (standard) {
+ if ((mcpp_debug & MACRO_CALL) && ! in_directive) {
+ int num;
+ num = ((*cp++ & UCHARMAX) - 1) * UCHARMAX;
+ num += (*cp++ & UCHARMAX) - 1;
+ mcpp_fprintf( DBG, "<SRC%d>", num);
+ } else {
+ chr = "<SRC>";
+ }
+ } else { /* Control character */
+ mcpp_fprintf( DBG, "<^%c>", c + '@');
+ }
+ break;
+ case TOK_SEP:
+ if (mcpp_mode == STD) {
+ chr = "<TSEP>";
+ break;
+ } else if (mcpp_mode == OLD_PREP) { /* COM_SEP */
+ chr = "<CSEP>";
+ break;
+ } /* Else fall through */
+ default:
+ no_magic:
+ if (c < ' ')
+ mcpp_fprintf( DBG, "<^%c>", c + '@');
+ else
+ mcpp_fputc( c, DBG);
+ break;
}
- mcpp_fputc( '\n', DBG);
+ if (chr)
+ mcpp_fputs( chr, DBG);
+ }
+
+ mcpp_fputc( '\n', DBG);
}
void dump_unget(
- const char * why
-)
+ const char * why
+ )
/*
* Dump all ungotten junk (pending macros and current input lines).
*/
{
- const FILEINFO * file;
-
- mcpp_fputs( "dump of pending input text", DBG);
- if (why != 0) {
- mcpp_fputs( "-- ", DBG);
- mcpp_fputs( why, DBG);
- }
- mcpp_fputc( '\n', DBG);
-
- for (file = infile; file != 0; file = file->parent)
- dump_string( file->real_fname ? file->real_fname
- : file->filename ? file->filename : "0", file->bptr);
+ const FILEINFO * file;
+
+ mcpp_fputs( "dump of pending input text", DBG);
+ if (why != 0) {
+ mcpp_fputs( "-- ", DBG);
+ mcpp_fputs( why, DBG);
+ }
+ mcpp_fputc( '\n', DBG);
+
+ for (file = infile; file != 0; file = file->parent)
+ dump_string( file->real_fname ? file->real_fname
+ : file->filename ? file->filename : "0", file->bptr);
}
static void dump_token(
- int token_type,
- const char * cp /* Token */
-)
+ int token_type,
+ const char * cp /* Token */
+ )
/*
* Dump a token.
*/
{
- static const char * const t_type[]
- = { "NAM", "NUM", "STR", "WSTR", "CHR", "WCHR", "OPE", "SPE"
- , "SEP", };
+ static const char * const t_type[]
+ = { "NAM", "NUM", "STR", "WSTR", "CHR", "WCHR", "OPE", "SPE"
+ , "SEP", };
- mcpp_fputs( "token", DBG);
- dump_string( t_type[ token_type - NAM], cp);
+ mcpp_fputs( "token", DBG);
+ dump_string( t_type[ token_type - NAM], cp);
}
diff --git a/TAO/TAO_IDL/contrib/mcpp/system.H b/TAO/TAO_IDL/contrib/mcpp/system.H
index 1b12cb61ce2..188bc47c024 100644
--- a/TAO/TAO_IDL/contrib/mcpp/system.H
+++ b/TAO/TAO_IDL/contrib/mcpp/system.H
@@ -1,5 +1,5 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
* All rights reserved.
*
* Some parts of this code are derived from the public domain software
@@ -42,17 +42,17 @@
#define SYSTEM_H
#if HAVE_CONFIG_H
-#include "configed.H"
+//#include "configed.H"
#else
#include "noconfig.H"
#endif
-#include "ace/Basic_Types.h"
-#include "ace/OS_NS_string.h"
-
/* Some system has a wrong definition of UCHAR_MAX. See cpp-test.html#5.1.3 */
#if UCHARMAX < -255
-#error "The definition of UCHARMAX (possibly UCHAR_MAX too) is wrong. Define it as signed int value as 255, not as unsigned value as 255U."
+/* The definition of UCHARMAX (possibly UCHAR_MAX too) is wrong. */
+/* Define it as a signed int value, not as an unsigned value. */
+#undef UCHARMAX
+#define UCHARMAX ((1 << CHAR_BIT) - 1)
#endif
/*
@@ -122,7 +122,7 @@
* 2. A space is inserted as a token separator between any tokens in
* a source (except a macro name and the next '(' in macro
* definition): thus simplifying tokenization, test of macro
- * redefinition and macro expansion especially "stringization".
+ * redefinition and macro expansion, especially "stringization".
* 3. Test of macro redefinition ignores difference of parameter names,
* test of which has little utility and not a little overhead.
* 4. #if expression forbids character constants, which have little
@@ -159,7 +159,7 @@
* The following specifications are available only in KR and OLD_PREP modes.
* #assert, #asm, #endasm, #put_defines, #debug and some other older
* directives,
- * argument of #line directive other than dicimal-digits.
+ * argument of #line directive other than decimal-digits.
*/
/* The values of 'mcpp_mode'. */
@@ -191,12 +191,30 @@
#define OK_UCN TRUE
#define OK_MBIDENT FALSE
-typedef ACE_INT64 expr_t;
-typedef ACE_UINT64 uexpr_t;
-
-#define EXPR_MAX ACE_INT64_MAX
-#if 0
#if HAVE_INTMAX_T
+#if HAVE_STDINT_H
+#include "stdint.h"
+#elif HAVE_INTTYPES_H
+#include "inttypes.h"
+#endif
+typedef intmax_t expr_t;
+typedef uintmax_t uexpr_t;
+#else
+#if HAVE_LONG_LONG
+#if (HOST_COMPILER == MSC && _MSC_VER < 1500) || HOST_COMPILER == BORLANDC
+typedef __int64 expr_t;
+typedef unsigned __int64 uexpr_t;
+#else
+typedef long long expr_t;
+typedef unsigned long long uexpr_t;
+#endif
+#else /* !HAVE_LONG_LONG */
+typedef unsigned long uexpr_t;
+typedef long expr_t;
+#endif /* HAVE_LONG_LONG */
+#endif /* HAVE_INTMAX_T */
+
+#if 1
#define EXPR_MAX UINT_MAX
#elif HAVE_LONG_LONG
#if (HOST_COMPILER == MSC && _MSC_VER < 1400) || HOST_COMPILER == BORLANDC
@@ -207,15 +225,6 @@ typedef ACE_UINT64 uexpr_t;
#else
#define EXPR_MAX 4294967295UL
#endif
-#endif
-
-/*
- * DOLLAR_IN_NAME Should be set TRUE if $ is a valid letter in identifiers
- * or FALSE if $ is invalid.
- */
-#ifndef DOLLAR_IN_NAME
-#define DOLLAR_IN_NAME FALSE
-#endif
/*
* Translation limits.
@@ -224,6 +233,9 @@ typedef ACE_UINT64 uexpr_t;
* NWORK Output buffer size. Set this size according to your compiler-
* proper. Length of string literal should be less than NWORK
* - 1.
+ * Nevertheless, when COMPILER == GNUC || COMPILER == MSC, mcpp
+ * uses NMACWORK as output buffer size because GNUC and Visual C
+ * can accept very long line.
* NBUFF Input buffer size after line concatenation by <backslash>
* <newline>.
* NMACWORK Internal work buffer size for macro definition and expansion.
@@ -232,8 +244,8 @@ typedef ACE_UINT64 uexpr_t;
* NOTE: Must be NMACPARS <= UCHARMAX.
* NEXP The maximum nesting depth of #if expressions.
* BLK_NEST The number of nested #if's permitted.
- * NINCLUDE The number of directories that may be specified on a per-
- * system basis, or by the -I option.
+ * INCLUDE_NEST The maximum nesting depth of #include. This is needed to
+ * prevent infinite recursive inclusion.
* RESCAN_LIMIT The maximum rescan times of macro expansion in STD or POST_STD
* modes.
* PRESTD_RESCAN_LIMIT The maximum rescan times of macro expansion in KR or
@@ -245,8 +257,9 @@ typedef ACE_UINT64 uexpr_t;
* SBSIZE defines the number of hash-table slots for the macro symbol table.
* It must be a power of 2.
*
- * MKDEP_MAX The maximum number of filenames in a dependency line of
- * output of -M* option.
+ * MKDEP_INIT The initial maximum number of filenames in a dependency line
+ * of output of -M* option. The maximum number is dynamically
+ * enlarged in execution.
*/
#ifndef IDMAX
@@ -264,9 +277,6 @@ typedef ACE_UINT64 uexpr_t;
#ifndef INCLUDE_NEST
#define INCLUDE_NEST 0x100
#endif
-#ifndef NINCLUDE
-#define NINCLUDE 0x80
-#endif
#ifndef RESCAN_LIMIT
#define RESCAN_LIMIT 0x40
#endif
@@ -285,8 +295,8 @@ typedef ACE_UINT64 uexpr_t;
#ifndef SBSIZE
#define SBSIZE 0x400
#endif
-#ifndef MKDEP_MAX
-#define MKDEP_MAX 0x100
+#ifndef MKDEP_INIT
+#define MKDEP_INIT 0x100
#endif
#if UCHARMAX < NMACPARS
@@ -349,13 +359,15 @@ typedef ACE_UINT64 uexpr_t;
#define BLK_NEST_CPLUS_MIN 0x100
#define INCLUDE_NEST_CPLUS_MIN 0x100
#define NMACRO_CPLUS_MIN 0x10000
+#define LINE90LIMIT 32767
+#define LINE_CPLUS_LIMIT 32767
+
/* LINE99LIMIT means the line number limit of C99 */
#define LINE99LIMIT 0x7FFFFFFF
/*
* STDC This macro is used for the predefined __STDC__.
- * (STDC >= 1) disables predefined macros not beginning with '_'.
* STDC_VERSION is used for the value of __STDC_VERSION__.
* STDC_HOSTED is used for the value of __STDC_HOSTED__.
*/
diff --git a/TAO/TAO_IDL/contrib/mcpp/system.cpp b/TAO/TAO_IDL/contrib/mcpp/system.cpp
index 17cdb6c5e79..8ebcf22bbbb 100644
--- a/TAO/TAO_IDL/contrib/mcpp/system.cpp
+++ b/TAO/TAO_IDL/contrib/mcpp/system.cpp
@@ -1,5 +1,5 @@
/*- $Id$
- * Copyright (c) 1998, 2002-2007 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
+ * Copyright (c) 1998, 2002-2008 Kiyoshi Matsui <kmatsui@t3.rim.or.jp>
* All rights reserved.
*
* Some parts of this code are derived from the public domain software
@@ -19,7 +19,7 @@
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-v * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
@@ -31,8 +31,8 @@ v * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* S Y S T E M . C
* S y s t e m D e p e n d e n t R o u t i n e s
*
- * Routines dependent on character set, O.S., compiler or compiler-driver.
- * To implement MCPP for the systems not yet implemented, you must
+ * Routines dependent on O.S., compiler or compiler-driver.
+ * To port MCPP for the systems not yet ported, you must
* 1. specify the constants in "configed.H" or "noconfig.H",
* 2. append the system-dependent routines in this file.
*/
@@ -41,25 +41,45 @@ v * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
#else
#include "system.H"
#include "internal.H"
-#include "mcpp_lib.h"
#endif
-#include "ace/OS_NS_unistd.h" /* For getcwd(), readlink(), getopt() */
-#include "ace/OS_NS_stdio.h"
-#include "ace/OS_NS_ctype.h"
-#include "ace/OS_NS_time.h"
-#include "ace/OS_NS_stdlib.h"
-#include "ace/Log_Msg.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_sys_stat.h"
-#undef OUT
+#if HOST_SYS_FAMILY == SYS_UNIX
+#include "ace/OS_NS_unistd.h" /* For getcwd(), readlink() */
+#elif HOST_COMPILER == MSC || HOST_COMPILER == LCC
+#include "direct.h"
+#define getcwd( buf, size) _getcwd( buf, size)
+#elif HOST_COMPILER == BORLANDC
+#include "dir.h"
+#endif
+
+#include "sys/types.h"
+#include "sys/stat.h" /* For stat() */
+#if ! defined( S_ISREG)
+#define S_ISREG( mode) (mode & S_IFREG)
+#define S_ISDIR( mode) (mode & S_IFDIR)
+#endif
+#if HOST_COMPILER == MSC
+#define S_IFREG _S_IFREG
+#define S_IFDIR _S_IFDIR
+#define stat( path, stbuf) _stat( path, stbuf)
+#endif
-/* Functions other than standard. */
-#if 1 // HOST_SYS_FAMILY != SYS_UNIX /* On UNIX "unistd.h" will suffice */
-//FUZZ: disable check_for_lack_ACE_OS
-extern int getopt( int argc, char * const * argv, const char * opts);
-extern int optind;
-extern char * optarg;
-//FUZZ: enable check_for_lack_ACE_OS
+/* Function to compare path-list */
+#if FNAME_FOLD
+#if HOST_COMPILER == GNUC /* CYGWIN, MINGW, MAC */
+#include <ace/OS_NS_strings.h> /* POSIX 1, 2001 */
+#define str_case_eq( str1, str2) (ACE_OS::strcasecmp( str1, str2) == 0)
+#else /* MSC, BORLANDC, LCC */
+#if HOST_COMPILER == MSC
+#define stricmp( str1, str2) _stricmp( str1, str2)
+#endif
+#define str_case_eq( str1, str2) (ACE_OS::stricmp( str1, str2) == 0)
+#endif
+#else /* ! FNAME_FOLD */
+#define str_case_eq( str1, str2) (ACE_OS::strcmp( str1, str2) == 0)
#endif
/*
@@ -70,11 +90,7 @@ extern char * optarg;
#if SYS_FAMILY == SYS_UNIX || SYS_FAMILY == SYS_WIN || SYSTEM == SYS_UNKNOWN
#define PATH_DELIM '/'
#define SPECIAL_PATH_DELIM FALSE
-#else
-#if SYSTEM == SYS_MAC
-#define PATH_DELIM ':' /* ?? I don't know */
-#else /* Any other path-delimiter, define by yourself */
-#endif
+#else /* Any other path-delimiter, define PATH_DELIM by yourself */
#define SPECIAL_PATH_DELIM TRUE /* Any path-delimiter other than '/' */
#endif
@@ -82,129 +98,176 @@ extern char * optarg;
* OBJEXT is the suffix to denote "object" file.
*/
#ifndef OBJEXT
-#if SYS_FAMILY == SYS_UNIX
+#if SYS_FAMILY == SYS_UNIX || HOST_COMPILER == GNUC
#define OBJEXT "o"
#elif SYS_FAMILY == SYS_WIN
#define OBJEXT "obj"
#elif 1
/* Add here appropriate definitions for other systems. */
-#error "Bad SYS_FAMILY"
#endif
#endif
static void version( void);
- /* Print version message */
+/* Print version message */
static void usage( int opt);
- /* Putout usage of MCPP */
+/* Putout usage of MCPP */
static void set_opt_list( char * optlist);
- /* Set list of legal option chars */
-static int parse_warn_level( const char * optarg, int opt);
- /* Parse warning level option */
+/* Set list of legal option chars */
+static int parse_warn_level( const char * mcpp_optarg, int opt);
+/* Parse warning level option */
static void def_a_macro( int opt, char * def);
- /* Do a -D option */
-static void chk_opts( int sflag, long std_val, int ansi, int trad);
- /* Check consistency of options */
-static void init_predefines( int nflag, long std_val);
- /* Set and unset predefined macros */
+/* Do a -D option */
+static void chk_opts( int sflag, int trad);
+/* Check consistency of options */
+#if COMPILER != GNUC
+static void init_cpu_macro( int gval, int sse);
+/* Predefine CPU-dependent macros */
+#endif
+static void init_predefines( void);
+/* Set and unset predefined macros */
static void init_std_defines( void);
- /* Predefine Standard macros */
+/* Predefine Standard macros */
static void set_limit( void);
- /* Set minimum translation limits */
+/* Set minimum translation limits */
static void set_pragma_op( void);
- /* Set the _Pragma() operator */
+/* Set the _Pragma() operator */
+static void put_info( FILEINFO * sharp_file);
+/* Print compiler-specific-inf */
static char * set_files( int argc, char ** argv, char ** in_pp
- , char ** out_pp);
- /* Set input, output, diagnostic */
+ , char ** out_pp);
+/* Set input, output, diagnostic */
static void set_sys_dirs( int set_cplus_dir);
- /* Set system-specific include dirs */
+/* Set system-specific include dirs */
static void set_env_dirs( void);
- /* Set user-defined include dirs */
+/* Set user-defined include dirs */
static void parse_env( const char * env);
- /* Parse environment variables */
+/* Parse environment variables */
static void set_a_dir( const char * dirname);
- /* Append an include directory */
-static char * norm_path( const char * dir, const char * fname);
- /* Normalize pathname to compare */
+/* Append an include directory */
+static char * norm_dir( const char * dirname, int framework);
+/* Normalize include directory path */
+static char * norm_path( const char * dir, const char * fname, int inf
+ , int hmap); /* Normalize pathname to compare */
#if SYS_FAMILY == SYS_UNIX
static void deref_syml( char * slbuf1, char * slbuf2, char * chk_start);
- /* Dereference symbolic linked dir */
+/* Dereference symbolic linked directory and file */
#endif
#if COMPILER == GNUC
-static void init_gcc_macro( int gcc_maj_ver, int gcc_min_ver);
- /* Predefine GCC macros */
-static void undef_gcc_macro( int clearall);
- /* Undefine GCC predef-macros */
+static void init_gcc_macro( void);
+/* Predefine GCC-specific macros */
static void chk_env( void);
- /* Check the environment variables */
+/* Check the environment variables */
#elif COMPILER == MSC
-static void init_msc_macro( int wchar_t_modified);
- /* Predefine Visual C macros */
+static void init_msc_macro( void);
+/* Predefine Visual C-specific macros */
#endif
+static void def_macros( void);
+/* Define macros specified by -D */
+static void undef_macros( void);
+/* Undefine macros specified by -U */
static char * md_init( const char * filename, char * output);
- /* Initialize makefile dependency */
+/* Initialize makefile dependency */
static char * md_quote( char * output);
- /* 'Quote' special characters */
+/* 'Quote' special characters */
static int open_include( char * filename, int searchlocal, int next);
- /* Open the file to include */
+/* Open the file to include */
static int has_directory( const char * source, char * directory);
- /* Get directory part of fname */
+/* Get directory part of fname */
+static int is_full_path( const char * path);
+/* The path is absolute path list ? */
static int search_dir( char * filename, int searchlocal, int next);
- /* Search the include directories */
-static int open_file( const char ** dirp, const char * filename
- , int local);
- /* Open a source file */
+/* Search the include directories */
+static int open_file( const char ** dirp, const char * src_dir
+ , const char * filename, int local, int include_opt, int sys_frame);
+/* Open a source file */
static const char * set_fname( const char * filename);
- /* Remember the source filename */
+/* Remember the source filename */
+#if SYSTEM == SYS_MAC
+#if COMPILER == GNUC
+static char * search_header_map( const char * hmap_file
+ , const char * filename, char * pathlist);
+/* Search header map file for a header */
+static unsigned hmap_hash( const char * fname);
+/* Get hash value for the fname */
+#endif
+static void init_framework( void);
+/* Initialize framework[] */
+static int search_framework( char * filename);
+/* Search "Framework" directories */
+static int search_subdir( char * fullname, char * cp, char * frame
+ , char * fname, int sys_frame);
+/* Search "Headers" and other dirs */
+#endif /* SYSTEM == SYS_MAC */
+#if 0 /* This function is only for debugging use */
+static int chk_dirp( const char ** dirp);
+/* Check validity of dirp arg for open_file() */
+#endif
+static void cur_file( FILEINFO * file, FILEINFO * sharp_file, int marker);
+/* Output current source file name */
+#if SYS_FAMILY == SYS_WIN
+static char * bsl2sl( char * filename);
+/* Convert \ to / in path-list */
+#endif
static int is_junk( void);
- /* The directive has trailing junk? */
-static void do_once( const char * dir, const char * filename);
- /* Process #pragma once */
-static int included( const char * dir, const char * filename);
- /* The file has been once included? */
+/* The directive has trailing junk? */
+static void do_once( const char * fullname);
+/* Process #pragma once */
+static int included( const char * fullname);
+/* The file has been once included? */
static void push_or_pop( int direction);
- /* Push or pop a macro definition */
+/* Push or pop a macro definition */
static int do_prestd_directive( void);
- /* Process pre-Standard directives */
+/* Process pre-Standard directives */
static void do_preprocessed( void);
- /* Process preprocessed file */
+/* Process preprocessed file */
static int do_debug( int set);
- /* #pragma MCPP debug, #debug */
+/* #pragma MCPP debug, #debug */
static void dump_path( void);
- /* Print include search path */
+/* Print include search path */
static void do_asm( int asm_start);
- /* Process #asm, #endasm */
+/* Process #asm, #endasm */
+static int mcpp_getopt( int argc, char * const * argv, const char * opts);
+/* getopt() to prevent linking of glibc getopt */
-#if SYS_FAMILY == SYS_WIN
-static char * bsl2sl( char * filename); /* Convert \ to / */
-#endif
+/* for mcpp_getopt() */
+static int mcpp_optind = 1;
+static int mcpp_opterr = 1;
+static int mcpp_optopt;
+static char * mcpp_optarg;
static int mb_changed = FALSE; /* Flag of -e option */
-static char cur_work_dir[ FILENAMEMAX + 1]; /* Current working directory*/
+static char cur_work_dir[ PATHMAX + 1]; /* Current working directory*/
/*
* incdir[] stores the -I directories (and the system-specific #include <...>
* directories). This is set by set_a_dir(). A trailing PATH_DELIM is
* appended if absent.
*/
-static const char * incdir[ NINCLUDE]; /* Include directories */
-static const char ** incend = incdir; /* -> active end of incdir */
+static const char ** incdir; /* Include directories */
+static const char ** incend; /* -> active end of incdir */
+static int max_inc; /* Number of incdir[] */
+
+typedef struct inc_list { /* List of directories or files */
+ char * name; /* Filename or directory-name */
+ size_t len; /* Length of 'name' */
+} INC_LIST;
/*
* fnamelist[] stores the souce file names opened by #include directive for
* debugging information.
*/
-#define FNAMELIST (NINCLUDE * 4)
-static const char * fnamelist[ FNAMELIST]; /* Source file names */
-static const char ** fname_end = fnamelist;
- /* -> active end of fnamelist */
-
-typedef struct inc_list { /* List of #pragma once file*/
- struct inc_list * next; /* Next file */
- char fname[ 1]; /* Filename */
-} INC_LIST;
+static INC_LIST * fnamelist; /* Source file names */
+static INC_LIST * fname_end; /* -> active end of fnamelist */
+static int max_fnamelist; /* Number of fnamelist[] */
+
+/* once_list[] stores the #pragma once file names. */
+static INC_LIST * once_list; /* Once opened file */
+static INC_LIST * once_end; /* -> active end of once_list */
+static int max_once; /* Number of once_list[] */
-static INC_LIST * start_inc = NULL; /* The first file in list */
-static INC_LIST * last_inc; /* The last file in list */
+#define INIT_NUM_INCLUDE 32 /* Initial number of incdir[] */
+#define INIT_NUM_FNAMELIST 256 /* Initial number of fnamelist[] */
+#define INIT_NUM_ONCE 64 /* Initial number of once_list[] */
/*
* 'search_rule' holds searching rule of #include "header.h" to search first
@@ -215,8 +278,15 @@ static INC_LIST * last_inc; /* The last file in list */
static int search_rule = SEARCH_INIT; /* Rule to search include file */
-static int dDflag = FALSE; /* Flag of -dD option (for GCC) */
static int nflag = FALSE; /* Flag of -N (-undef) option */
+static long std_val = -1L; /* Value of __STDC_VERSION__ or __cplusplus */
+
+#define MAX_DEF 256
+#define MAX_UNDEF (MAX_DEF/4)
+static char * def_list[ MAX_DEF]; /* Macros to be defined */
+static char * undef_list[ MAX_UNDEF]; /* Macros to be undefined */
+static int def_cnt; /* Count of def_list */
+static int undef_cnt; /* Count of undef_list */
/* Values of mkdep. */
#define MD_MKDEP 1 /* Output source file dependency line */
@@ -227,7 +297,7 @@ static int nflag = FALSE; /* Flag of -N (-undef) option */
static FILE * mkdep_fp; /* For -Mx option */
static char * mkdep_target;
- /* For -MT TARGET option and for GCC's queer environment variables. */
+/* For -MT TARGET option and for GCC's queer environment variables. */
static char * mkdep_mf; /* Argument of -MF option */
static char * mkdep_md; /* Argument of -MD option */
static char * mkdep_mq; /* Argument of -MQ option */
@@ -235,15 +305,28 @@ static char * mkdep_mt; /* Argument of -MT option */
/* sharp_filename is filename for #line line, used only in cur_file() */
static char * sharp_filename = NULL;
-
-static char * argv0; /* argv[ 0] for usage() and version() */
+static char * argv0; /* argv[ 0] for usage() and version() */
+static int ansi; /* __STRICT_ANSI__ flag for GNUC */
+static int compat_mode;
+/* "Compatible" mode of recursive macro expansion */
+#define MAX_ARCH_LEN 16
+static char arch[ MAX_ARCH_LEN]; /* -arch or -m64, -m32 options */
#if COMPILER == GNUC
-/* sys_dirp indicates the first directory to search for system headers */
-static const char ** sys_dirp = incdir; /* For -I- option */
+#define N_QUOTE_DIR 8
+/* quote_dir[]: Include directories for "header" specified by -iquote */
+/* quote_dir_end: Active end of quote_dir */
+static const char * quote_dir[ N_QUOTE_DIR];
+static const char ** quote_dir_end = quote_dir;
+/* sys_dirp indicates the first directory to search for system headers. */
+static const char ** sys_dirp = NULL; /* System header directory */
+static const char * sysroot = NULL; /* Logical root directory of header */
+static int i_split = FALSE; /* For -I- option */
static int gcc_work_dir = FALSE; /* For -fworking-directory */
-static int put_info_done = FALSE; /* put_info() has been executed */
-static int no_exceptions = FALSE; /* For -fno-deprecated option */
+static int gcc_maj_ver; /* __GNUC__ */
+static int gcc_min_ver; /* __GNUC_MINOR__ */
+static int dDflag = FALSE; /* Flag of -dD option */
+static int dMflag = FALSE; /* Flag of -dM option */
#endif
#if COMPILER == GNUC || COMPILER == MSC
@@ -254,7 +337,10 @@ static int no_exceptions = FALSE; /* For -fno-deprecated option */
#define NPREINCLUDE 8
static char * preinclude[ NPREINCLUDE]; /* File to pre-include */
static char ** preinc_end = preinclude; /* -> active end of preinclude */
-static int dMflag = FALSE; /* Flag of -dM option */
+#endif
+
+#if COMPILER == MSC
+static int wchar_t_modified = FALSE; /* -Zc:wchar_t flag */
#endif
#if COMPILER == LCC
@@ -263,855 +349,1017 @@ static const char * optim_name = "__LCCOPTIMLEVEL";
#if SYSTEM == SYS_CYGWIN
static int no_cygwin = FALSE; /* -mno-cygwin */
+
+#elif SYSTEM == SYS_MAC
+#define MAX_FRAMEWORK 8
+static char * framework[ MAX_FRAMEWORK]; /* Framework directories*/
+static int num_framework; /* Current number of framework[] */
+static int sys_framework; /* System framework dir */
+static const char ** to_search_framework;
+/* Search framework[] next to the directory */
+static int in_import; /* #import rather than #include */
#endif
-#if MCPP_LIB
+#define NO_DIR FALSE
+#if NO_DIR
+/* Unofficial feature to strip directory part of include file */
+static int no_dir;
+#endif
+
+#ifdef MCPP_LIB
void init_system( void)
/* Initialize static variables */
{
- if (sharp_filename)
- ACE_OS::free( sharp_filename);
- sharp_filename = 0;
- incend = incdir;
- fname_end = fnamelist;
- start_inc = 0;
- search_rule = SEARCH_INIT;
- mb_changed = dDflag = nflag = FALSE;
- mkdep_fp = 0;
- mkdep_target = mkdep_mf = mkdep_md = mkdep_mq = mkdep_mt = 0;
+ if (sharp_filename)
+ ACE_OS::free( sharp_filename);
+ sharp_filename = 0;
+ incend = incdir = 0;
+ fnamelist = once_list = 0;
+ search_rule = SEARCH_INIT;
+ mb_changed = nflag = ansi = compat_mode = FALSE;
+ mkdep_fp = 0;
+ mkdep_target = mkdep_mf = mkdep_md = mkdep_mq = mkdep_mt = 0;
+ std_val = -1L;
+ def_cnt = undef_cnt = 0;
+ mcpp_optind = mcpp_opterr = 1;
#if COMPILER == GNUC
- sys_dirp = incdir;
- gcc_work_dir = put_info_done = no_exceptions = FALSE;
+ sys_dirp = 0;
+ sysroot = 0;
+ gcc_work_dir = i_split = FALSE;
+ quote_dir_end = quote_dir;
+ dDflag = dMflag = FALSE;
+#endif
+#if COMPILER == MSC
+ wchar_t_modified = FALSE;
#endif
#if COMPILER == GNUC || COMPILER == MSC
- preinc_end = preinclude;
- dMflag = FALSE;
+ preinc_end = preinclude;
#endif
#if SYSTEM == SYS_CYGWIN
- no_cygwin = FALSE;
+ no_cygwin = FALSE;
+#elif SYSTEM == SYS_MAC
+ num_framework = sys_framework = 0;
+ to_search_framework = 0;
#endif
-}
+#if NO_DIR
+ no_dir = FALSE;
#endif
+}
-#define LINE90LIMIT 32767
-#define LINE_CPLUS_LIMIT 32767
+#endif
#define OPTLISTLEN 80
void do_options(
- int argc,
- char ** argv,
- char ** in_pp, /* Input file name */
- char ** out_pp /* Output file name */
-)
+ int argc,
+ char ** argv,
+ char ** in_pp, /* Input file name */
+ char ** out_pp /* Output file name */
+ )
/*
- * Process command line arguments (-D, etc.), called only at MCPP startup.
+ * Process command line arguments, called only at MCPP startup.
*/
{
- char optlist[ OPTLISTLEN]; /* List of option letter*/
- const char * warning = "warning: -%c%s option is ignored\n";
- int vflag; /* -v option */
- int unset_sys_dirs;
- /* Unset system-specific and site-specific include directories ? */
- int set_cplus_dir; /* Set C++ include directory ? (for GCC)*/
- int show_path; /* Show include directory list */
- DEFBUF * defp;
- int i;
- int opt;
- char * cp;
-
- long std_val; /* Value of __STDC_VERSION__ or __cplusplus */
- VAL_SIGN *valp;
- int sflag; /* -S option or similar */
- int ansi, trad; /* -ansi, -traditional */
- int old_mode; /* backup of 'mcpp_mode'*/
+ char optlist[ OPTLISTLEN]; /* List of option letter*/
+ const char * warning = "warning: -%c%s option is ignored\n";
+ int opt;
+ int unset_sys_dirs;
+ /* Unset system-specific and site-specific include directories ? */
+ int set_cplus_dir; /* Set C++ include directory ? (for GCC)*/
+ int show_path; /* Show include directory list */
+ //DEFBUF * /*defp*/;
+ VAL_SIGN * valp;
+ int sflag; /* -S option or similar */
+ int trad; /* -traditional */
+ int old_mode; /* backup of 'mcpp_mode'*/
+ int gval, sse;
+ char * cp;
+ int i;
#if COMPILER == GNUC
#define NSYSDIR 8
- /* System include directory specified by -isystem */
- char * sysdir[ NSYSDIR] = { 0, };
- char ** sysdir_end = sysdir;
- int integrated_cpp; /* Flag of cc1 which integrates cpp in it */
- int gcc_maj_ver, gcc_min_ver; /* __GNUC__, __GNUC_MINOR__ */
-#elif COMPILER == MSC
- int wchar_t_modified = FALSE; /* -Zc:wchar_t flag */
+ /* System include directory specified by -isystem */
+ char * sysdir[ NSYSDIR] = { 0, };
+ char ** sysdir_end = sysdir;
+ int integrated_cpp; /* Flag of cc1 which integrates cpp in it */
#elif COMPILER == LCC
- const char * debug_name = "__LCCDEBUGLEVEL";
+ const char * debug_name = "__LCCDEBUGLEVEL";
#endif
- argv0 = argv[ 0];
- vflag = nflag = unset_sys_dirs = show_path = FALSE;
- set_cplus_dir = TRUE;
- sflag = ansi = trad = FALSE;
- std_val = -1L;
+ argv0 = argv[ 0];
+ nflag = unset_sys_dirs = show_path = sflag = trad = FALSE;
+ arch[ 0] = 0;
+ gval = sse = 0;
+ set_cplus_dir = TRUE;
- /* Get current directory for -I option and #pragma once */
- ACE_OS::getcwd( cur_work_dir, FILENAMEMAX);
-#if FNAME_FOLD
- conv_case( cur_work_dir, cur_work_dir + ACE_OS::strlen( cur_work_dir), LOWER);
-#endif
+ /* Get current directory for -I option and #pragma once */
+ ACE_OS::getcwd( cur_work_dir, PATHMAX);
#if SYS_FAMILY == SYS_WIN
- bsl2sl( cur_work_dir);
+ bsl2sl( cur_work_dir);
#endif
- ACE_OS::sprintf( cur_work_dir + ACE_OS::strlen( cur_work_dir), "%c%c", PATH_DELIM, EOS);
- /* Append trailing path-delimiter */
+ ACE_OS::sprintf( cur_work_dir + ACE_OS::strlen( cur_work_dir), "%c%c", PATH_DELIM, EOS);
+ /* Append trailing path-delimiter */
#if COMPILER == GNUC
- defp = look_id( "__GNUC__");
- gcc_maj_ver = ACE_OS::atoi( defp->repl);
- defp = look_id( "__GNUC_MINOR__");
- gcc_min_ver = ACE_OS::atoi( defp->repl);
- integrated_cpp = ((gcc_maj_ver == 3 && gcc_min_ver >= 3)
- || gcc_maj_ver == 4);
+ defp = look_id( "__GNUC__"); /* Already defined by init_defines() */
+ gcc_maj_ver = atoi( defp->repl);
+ defp = look_id( "__GNUC_MINOR__");
+ gcc_min_ver = atoi( defp->repl);
+ integrated_cpp = ((gcc_maj_ver == 3 && gcc_min_ver >= 3)
+ || gcc_maj_ver == 4);
+#endif
+#if COMPILER == GNUC || COMPILER == MSC
+ option_flags.dollar_in_name = TRUE;
+ /* GCC and Visual C allows '$' in name by default */
#endif
- set_opt_list( optlist);
- //FUZZ: disable check_for_lack_ACE_OS
-opt_search: ;
- while (optind < argc
- && (opt = getopt( argc, argv, optlist)) != EOF) {
- //FUZZ: enable check_for_lack_ACE_OS
- switch (opt) { /* Command line option character */
+ set_opt_list( optlist);
-#if COMPILER == GNUC && ! DOLLAR_IN_NAME
- case '$': /* Forbid '$' in identifier */
- break; /* Ignore this option */
-#endif
+ opt_search: ;
+ while (mcpp_optind < argc
+ && (opt = mcpp_getopt( argc, argv, optlist)) != EOF) {
+
+ switch (opt) { /* Command line option character */
- case '+':
#if COMPILER == GNUC
-plus:
+ case '$': /* Forbid '$' in identifier */
+ option_flags.dollar_in_name = FALSE;
+ break;
#endif
- if (cplus_val || sflag) {
- mcpp_fputs( "warning: -+ option is ignored\n", ERR);
- break;
- }
- cplus_val = CPLUS;
- break;
- case '2': /* Revert digraphs recognition */
- dig_flag = ! dig_flag;
- break;
- case '3': /* Revert trigraph recogniion */
- trig_flag = ! trig_flag;
- break;
- case '@': /* Special preprocessing mode */
- old_mode = mcpp_mode;
- if (str_eq( optarg, "post") || str_eq( optarg, "poststd"))
- mcpp_mode = POST_STD; /* 'post-Standard' mode */
- else if (str_eq( optarg, "old") || str_eq( optarg, "oldprep"))
- mcpp_mode = OLD_PREP; /* 'old-Preprocessor' mode */
- else if (str_eq( optarg, "kr"))
- mcpp_mode = KR; /* 'K&R 1st' mode */
- else if (str_eq( optarg, "std"))
- mcpp_mode = STD; /* 'Standard' mode (default)*/
- else if (str_eq( optarg, "compat")) {
- compat_mode = TRUE; /* 'compatible' mode */
- mcpp_mode = STD;
- }
- else
- usage( opt);
- standard = (mcpp_mode == STD || mcpp_mode == POST_STD);
- if (old_mode != STD && old_mode != mcpp_mode)
- mcpp_fprintf( ERR, "Mode is redefined to: %s\n", optarg);
- break;
+ case '+':
+#if COMPILER == GNUC
+ plus:
+#endif
+ if (cplus_val || sflag) {
+ mcpp_fputs( "warning: -+ option is ignored\n", ERR);
+ break;
+ }
+ cplus_val = CPLUS;
+ break;
+#if COMPILER == GNUC
+ case '-':
+ if (memcmp( mcpp_optarg, "sysroot", 7) == 0) {
+ if (mcpp_optarg[ 7] == '=') /* --sysroot=DIR */
+ sysroot = mcpp_optarg + 8;
+ else if (mcpp_optarg[ 7] == EOS) /* --sysroot DIR */
+ sysroot = argv[ mcpp_optind++];
+ else
+ usage( opt);
+ break;
+ } else {
+ usage( opt);
+ }
+#endif
+ case '2': /* Reverse digraphs recognition */
+ option_flags.dig = ! option_flags.dig;
+ break;
+ case '3': /* Reverse trigraph recogniion */
+ option_flags.trig = ! option_flags.trig;
+ break;
+
+ case '@': /* Special preprocessing mode */
+ old_mode = mcpp_mode;
+ if (str_eq( mcpp_optarg, "post")
+ || str_eq( mcpp_optarg, "poststd"))
+ mcpp_mode = POST_STD; /* 'post-Standard' mode */
+ else if (str_eq( mcpp_optarg, "old")
+ || str_eq( mcpp_optarg, "oldprep"))
+ mcpp_mode = OLD_PREP; /* 'old-Preprocessor' mode */
+ else if (str_eq( mcpp_optarg, "kr"))
+ mcpp_mode = KR; /* 'K&R 1st' mode */
+ else if (str_eq( mcpp_optarg, "std"))
+ mcpp_mode = STD; /* 'Standard' mode (default)*/
+ else if (str_eq( mcpp_optarg, "compat")) {
+ compat_mode = TRUE; /* 'compatible' mode */
+ mcpp_mode = STD;
+ }
+ else
+ usage( opt);
+ standard = (mcpp_mode == STD || mcpp_mode == POST_STD);
+ if (old_mode != STD && old_mode != mcpp_mode)
+ mcpp_fprintf( ERR, "Mode is redefined to: %s\n", mcpp_optarg);
+ break;
#if COMPILER == GNUC
- case 'A': /* Ignore -A system(gnu), -A cpu(vax) or so */
- break;
- case 'a':
- if (str_eq( optarg, "nsi")) { /* -ansi */
- look_and_install( "__STRICT_ANSI__", DEF_NOARGS, "", "1");
- ansi = TRUE;
- break;
- }
- usage( opt);
+ case 'A': /* Ignore -A system(gnu), -A cpu(vax) or so */
+ break;
+ case 'a':
+ if (str_eq( mcpp_optarg, "nsi")) { /* -ansi */
+ look_and_install( "__STRICT_ANSI__", DEF_NOARGS_PREDEF, null
+ , "1");
+ ansi = TRUE;
+ break;
+ } else if (memcmp( mcpp_optarg, "uxbase", 6) == 0) {
+ mcpp_optind++;
+ break; /* Ignore '-auxbase some' or such nonsence */
+#if SYSTEM == SYS_MAC
+ } else if (str_eq( mcpp_optarg, "rch")) { /* -arch */
+ strcpy( arch, argv[ mcpp_optind++]);
+ if (str_eq( arch, "ppc") || str_eq( arch, "ppc7400")
+ || str_eq( arch, "ppc64")
+ || str_eq( arch, "i386") || str_eq( arch, "i686")
+ || str_eq( arch, "x86_64") || str_eq( arch, "amd64")) {
+ if (str_eq( arch, "i686"))
+ strcpy( arch, "i386");
+ else if (str_eq( arch, "amd64"))
+ strcpy( arch, "x86_64");
+ else if (str_eq( arch, "ppc7400"))
+ strcpy( arch, "ppc");
+ break;
+ } /* Else usage() */
+#endif
+ }
+ usage( opt);
#elif COMPILER == MSC
- case 'a':
- if (ACE_OS::memcmp( optarg, "rch", 3) == 0) {
- if (str_eq( optarg + 3, ":SSE") /* -arch:SSE */
- || str_eq( optarg + 3, ":sse"))
- look_and_install( "_M_IX86_FP", DEF_NOARGS, null, "1");
- else if (str_eq( optarg + 3, ":SSE2") /* -arch:SSE2 */
- || str_eq( optarg + 3, ":sse2"))
- look_and_install( "_M_IX86_FP", DEF_NOARGS, null, "2");
- /* Else ignore */
- } else {
- usage( opt);
- }
- break;
+ case 'a':
+ if (memcmp( mcpp_optarg, "rch", 3) == 0) {
+ if (str_eq( mcpp_optarg + 3, ":SSE") /* -arch:SSE */
+ || str_eq( mcpp_optarg + 3, ":sse"))
+ sse = 1;
+ else if (str_eq( mcpp_optarg + 3, ":SSE2") /* -arch:SSE2 */
+ || str_eq( mcpp_optarg + 3, ":sse2"))
+ sse = 2;
+ /* Else ignore */
+ } else {
+ usage( opt);
+ }
+ break;
- case 'A':
- lang_asm = TRUE; /* "assembler" source */
- break;
+ case 'A':
+ option_flags.lang_asm = TRUE; /* "assembler" source */
+ break;
#else
- case 'a':
- lang_asm = TRUE; /* "assembler" source */
- break;
+ case 'a':
+ option_flags.lang_asm = TRUE; /* "assembler" source */
+ break;
#endif
#if ! STD_LINE_PREFIX
- case 'b':
- std_line_prefix = TRUE; /* Putout line and file infor- */
- break; /* mation in C source style. */
+ case 'b':
+ std_line_prefix = TRUE; /* Putout line and file infor- */
+ break; /* mation in C source style. */
#endif
- case 'C': /* Keep comments */
- cflag = TRUE;
- break;
+ case 'C': /* Keep comments */
+ option_flags.c = TRUE;
+ break;
#if COMPILER == GNUC
- case 'c':
- if (! integrated_cpp)
- usage( opt);
- break; /* Else ignore this option */
- case 'd':
- if (str_eq( optarg, "M")) { /* -dM */
- dMflag = TRUE;
- no_output++;
- } else if (str_eq( optarg, "D")) { /* -dD */
- dDflag = TRUE;
- } else if (str_eq( optarg, "igraphs")) { /* -digraphs */
- dig_flag = TRUE;
- } else if (str_eq( optarg, "umpbase")) { /* -dumpbase */
- ; /* Ignore */
- } else {
- usage( opt);
- }
- break;
+ case 'c':
+ if (! integrated_cpp)
+ usage( opt);
+ break; /* Else ignore this option */
+ case 'd':
+ if (str_eq( mcpp_optarg, "M")) { /* -dM */
+ dMflag = TRUE;
+ no_output++;
+ } else if (str_eq( mcpp_optarg, "D")) { /* -dD */
+ dDflag = TRUE;
+ } else if (str_eq( mcpp_optarg, "igraphs")) { /* -digraphs */
+ option_flags.dig = TRUE;
+ } else if (str_eq( mcpp_optarg, "umpbase")) { /* -dumpbase */
+ ; /* Ignore */
+ } else {
+ usage( opt);
+ }
+ break;
#endif /* COMPILER == GNUC */
- case 'D': /* Define symbol */
- def_a_macro( opt, optarg);
- break;
+ case 'D': /* Define symbol */
+ if (def_cnt >= MAX_DEF) {
+ mcpp_fputs( "Too many -D options.\n", ERR);
+ longjmp( error_exit, -1);
+ }
+ def_list[ def_cnt++] = mcpp_optarg;
+ break;
- case 'e':
- /* Change the default MBCHAR encoding */
- if (set_encoding( optarg, FALSE, 0) == 0)
- usage( opt);
- mb_changed = TRUE;
- break;
+ case 'e':
+ /* Change the default MBCHAR encoding */
+ if (set_encoding( mcpp_optarg, FALSE, 0) == 0)
+ usage( opt);
+ mb_changed = TRUE;
+ break;
#if COMPILER == GNUC
- case 'E':
- if (! integrated_cpp)
- usage( opt);
- break; /* Ignore this option */
- case 'f':
- if (ACE_OS::memcmp( optarg, "input-charset=", 14) == 0) {
- /* Treat -finput-charset= as the same option as -e */
- if (set_encoding( optarg + 14, FALSE, 0) == 0)
- usage( opt);
- mb_changed = TRUE;
- break;
- } else if (str_eq( optarg, "working-directory")) {
- gcc_work_dir = TRUE;
- break;
- } else if (str_eq( optarg, "no-working-directory")) {
- gcc_work_dir = FALSE;
- break;
- } else if (str_eq( optarg, "stack-protector")) {
- look_and_install( "__SSP__", DEF_NOARGS, null, "1");
- break;
- } else if (str_eq( optarg, "stack-protector-all")) {
- look_and_install( "__SSP_ALL__", DEF_NOARGS, null, "2");
- break;
- } else if (str_eq( optarg, "exceptions")) {
- look_and_install( "__EXCEPTIONS", DEF_NOARGS, null, "1");
- break;
- } else if (str_eq( optarg, "no-exceptions")) {
- no_exceptions = TRUE;
- break;
- } else if (str_eq( optarg, "PIC") || str_eq( optarg, "pic")
- || str_eq( optarg, "PIE") || str_eq( optarg, "pie")) {
- look_and_install( "__PIC__", DEF_NOARGS, null, "1");
- look_and_install( "__pic__", DEF_NOARGS, null, "1");
- break;
- } else if (str_eq( optarg, "no-show-column")) {
- break; /* Ignore this option */
- } else if (! integrated_cpp) {
- usage( opt);
- }
- break;
-
- case 'g':
- if (!ACE_OS::ace_isdigit( *optarg) && str_eq( argv[ optind - 2], "-g"))
- optind--; /* Neither '-g 0' nor '-ggdb' -- No argument */
- break; /* Ignore the option */
+ case 'E':
+ if (! integrated_cpp)
+ usage( opt);
+ break; /* Ignore this option */
+ case 'f':
+ if (memcmp( mcpp_optarg, "input-charset=", 14) == 0) {
+ /* Treat -finput-charset= as the same option as -e */
+ if (set_encoding( mcpp_optarg + 14, FALSE, 0) == 0)
+ usage( opt);
+ mb_changed = TRUE;
+ } else if (str_eq( mcpp_optarg, "working-directory")) {
+ gcc_work_dir = TRUE;
+ } else if (str_eq( mcpp_optarg, "no-working-directory")) {
+ gcc_work_dir = FALSE;
+ } else if (str_eq( mcpp_optarg, "stack-protector")) {
+ look_and_install( "__SSP__", DEF_NOARGS_PREDEF, null, "1");
+ } else if (str_eq( mcpp_optarg, "stack-protector-all")) {
+ look_and_install( "__SSP_ALL__", DEF_NOARGS_PREDEF, null, "2");
+ } else if (str_eq( mcpp_optarg, "exceptions")) {
+ look_and_install( "__EXCEPTIONS", DEF_NOARGS_PREDEF, null
+ , "1");
+ } else if (str_eq( mcpp_optarg, "no-exceptions")) {
+ undef_list[ undef_cnt++] = "__EXCEPTIONS";
+ } else if (str_eq( mcpp_optarg, "PIC")
+ || str_eq( mcpp_optarg, "pic")
+ || str_eq( mcpp_optarg, "PIE")
+ || str_eq( mcpp_optarg, "pie")) {
+ look_and_install( "__PIC__", DEF_NOARGS_PREDEF, null, "1");
+ look_and_install( "__pic__", DEF_NOARGS_PREDEF, null, "1");
+ } else if (str_eq( mcpp_optarg, "no-dollars-in-identifiers")) {
+ option_flags.dollar_in_name = FALSE;
+ } else if (str_eq( mcpp_optarg, "no-show-column")) {
+ ; /* Ignore this option */
+ } else if (! integrated_cpp) {
+ usage( opt);
+ }
+ break;
+
+ case 'g':
+ if (!isdigit( *mcpp_optarg)
+ && str_eq( argv[ mcpp_optind - 2], "-g"))
+ /* Neither '-g 0' nor '-ggdb' -- No argument */
+ mcpp_optind--;
+ break; /* Ignore the option */
#elif COMPILER == LCC
- case 'g': /* Define __LCCDEBUGLEVEL as <n> */
- if (*(optarg + 1) == EOS && ACE_OS::ace_isdigit( *optarg)) {
- defp = look_id( debug_name);
- ACE_OS::strcpy( defp->repl, optarg);
- } else {
- usage( opt);
- }
- break;
+ case 'g': /* Define __LCCDEBUGLEVEL as <n> */
+ if (*(mcpp_optarg + 1) == EOS && isdigit( *mcpp_optarg)) {
+ defp = look_id( debug_name);
+ strcpy( defp->repl, mcpp_optarg);
+ } else {
+ usage( opt);
+ }
+ break;
#elif COMPILER == MSC
- case 'G':
- if (*(optarg + 1) == EOS) { /* -Gx */
- char val[ 4] = "000";
-
- switch (*optarg) {
- case '3': case '4': case '5': case '6':
- *val = *optarg; /* "300", "400", "500", "600" */
- break;
- case 'B': /* -GB */
- *val = '6';
- break;
- case 'R':
- look_and_install( "_CPPRTTI", DEF_NOARGS, null, "1");
- break;
- case 'X':
- look_and_install( "_CPPUNWIND", DEF_NOARGS, null, "1");
- break;
- case 'Z':
- look_and_install( "__MSVC_RUNTIME_CHECKS", DEF_NOARGS
- , null, "1");
- break;
- default :
- mcpp_fprintf( ERR, warning, opt, optarg);
- }
- if (*val)
- look_and_install( COMPILER_SP2, DEF_NOARGS, null, val);
- } else {
- usage( opt);
- }
- break;
+ case 'G':
+ if (*(mcpp_optarg + 1) == EOS) { /* -Gx */
+ switch (*mcpp_optarg) {
+ case '3': case '4': case '5': case '6':
+ gval = *mcpp_optarg;
+ break;
+ case 'B': /* -GB */
+ gval = '6';
+ break;
+ case 'R':
+ look_and_install( "_CPPRTTI", DEF_NOARGS_PREDEF, null
+ , "1");
+ break;
+ case 'X':
+ look_and_install( "_CPPUNWIND", DEF_NOARGS_PREDEF, null
+ , "1");
+ break;
+ case 'Z':
+ look_and_install( "__MSVC_RUNTIME_CHECKS"
+ , DEF_NOARGS_PREDEF, null, "1");
+ break;
+ default :
+ mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
+ }
+ } else {
+ usage( opt);
+ }
+ break;
#endif
- case 'h':
- if (*(optarg + 1) == EOS && ACE_OS::ace_isdigit( *optarg)) /* a digit */
- look_and_install( "__STDC_HOSTED__", DEF_NOARGS - 1, null
- , optarg);
- else
- usage( opt);
- break;
+#if SYSTEM == SYS_MAC
+ case 'F':
+ framework[ num_framework++] = mcpp_optarg;
+ break;
+#endif
+
+ case 'h':
+ if (*(mcpp_optarg + 1) == EOS && isdigit( *mcpp_optarg))
+ /* a digit */
+ look_and_install( "__STDC_HOSTED__", DEF_NOARGS_PREDEF, null
+ , mcpp_optarg);
+ else
+ usage( opt);
+ break;
#if COMPILER == MSC
- case 'X':
- unset_sys_dirs = TRUE;
- break;
+ case 'X':
+ unset_sys_dirs = TRUE;
+ break;
#endif
- case 'I': /* Include directory */
- if (str_eq( optarg, "-")) { /* -I- */
+ case 'I': /* Include directory */
+ if (str_eq( mcpp_optarg, "-")) { /* -I- */
#if COMPILER == GNUC
- sys_dirp = incend; /* Split include directories */
+ sys_dirp = incend; /* Split include directories */
+ i_split = TRUE;
#else
- unset_sys_dirs = TRUE; /* Unset pre-specified */
- break; /* include directories*/
-#endif
- }
- if (*(optarg + 1) == EOS && ACE_OS::ace_isdigit( *optarg)
- && (i = *optarg - '0') != 0
- && (i & ~(CURRENT | SOURCE)) == 0) {
- search_rule = i; /* -I1, -I2 or -I3 */
- break;
- }
- set_a_dir( optarg); /* User-defined direct. */
- break;
+ unset_sys_dirs = TRUE;
+ /* Unset pre-specified include directories */
+#endif
+ } else if (*(mcpp_optarg + 1) == EOS && isdigit( *mcpp_optarg)
+ && (i = *mcpp_optarg - '0') != 0
+ && (i & ~(CURRENT | SOURCE)) == 0) {
+ search_rule = i; /* -I1, -I2 or -I3 */
+ } else { /* Not '-' nor a digit */
+ set_a_dir( mcpp_optarg); /* User-defined dir */
+ }
+ break;
#if COMPILER == MSC
- case 'F':
- if (str_eq( optarg, "l")) { /* -Fl */
- if (preinc_end >= &preinclude[ NPREINCLUDE]) {
- ACE_ERROR ((LM_ERROR, "Too many -Fl options\n"));
- mcpp_fputs( "Too many -Fl options.\n", ERR);
- longjmp( error_exit, -1);
- }
- *preinc_end++ = argv[ optind++];
- } else {
- usage( opt);
- }
- break;
+ case 'F':
+ if (str_eq( mcpp_optarg, "l")) { /* -Fl */
+ if (preinc_end >= &preinclude[ NPREINCLUDE]) {
+ mcpp_fputs( "Too many -Fl options.\n", ERR);
+ longjmp( error_exit, -1);
+ }
+ *preinc_end++ = argv[ mcpp_optind++];
+ } else {
+ usage( opt);
+ }
+ break;
#endif
#if COMPILER == GNUC
- case 'i':
- if (str_eq( optarg, "nclude")) { /* -include */
- if (preinc_end >= &preinclude[ NPREINCLUDE]) {
- mcpp_fputs( "Too many -include options.\n", ERR);
- ACE_ERROR((LM_ERROR, "Too many -include options\n"));
- longjmp( error_exit, -1);
- }
- *preinc_end++ = argv[ optind++];
- } else if (str_eq( optarg, "system")) { /* -isystem */
- if (sysdir_end >= &sysdir[ NSYSDIR]) {
- ACE_ERROR ((LM_ERROR, "Too many -isystem options\n"));
- mcpp_fputs( "Too many -isystem options.\n", ERR);
- longjmp( error_exit, -1);
- }
- *sysdir_end++ = argv[ optind++];
- /* Add the directory before system include directory*/
- } else if (str_eq( optarg, "prefix") /* -iprefix */
- || str_eq( optarg, "withprefix") /* -iwithprefix */
- || str_eq( optarg, "withprefixbefore")
- /* -iwithprefixbefore */
- || str_eq( optarg, "dirafter")) { /* -idirafter */
- optind++; /* Skip the argument */
- /* Ignore these options */
- } else {
- usage( opt);
- }
- break;
+ case 'i':
+ if (str_eq( mcpp_optarg, "nclude")) { /* -include */
+ if (preinc_end >= &preinclude[ NPREINCLUDE]) {
+ mcpp_fputs( "Too many -include options.\n", ERR);
+ longjmp( error_exit, -1);
+ }
+ *preinc_end++ = argv[ mcpp_optind++];
+ } else if (str_eq( mcpp_optarg, "system")) { /* -isystem */
+ if (sysdir_end >= &sysdir[ NSYSDIR]) {
+ mcpp_fputs( "Too many -isystem options.\n", ERR);
+ longjmp( error_exit, -1);
+ }
+ *sysdir_end++ = argv[ mcpp_optind++];
+ /* Add the directory before system include directory*/
+ } else if (str_eq( mcpp_optarg, "quote")) { /* -iquote */
+ if (quote_dir_end >= &quote_dir[ N_QUOTE_DIR]) {
+ mcpp_fputs( "Too many -iquote options.\n", ERR);
+ longjmp( error_exit, -1);
+ }
+ *quote_dir_end++ = argv[ mcpp_optind++];
+ /* Add the directory for #include "header" */
+ } else if (memcmp( mcpp_optarg, "sysroot", 7) == 0) {
+ if (mcpp_optarg[ 7] == '=') /* -isysroot=DIR */
+ sysroot = mcpp_optarg + 8;
+ else if (mcpp_optarg[ 7] == EOS) /* -isysroot DIR */
+ sysroot = argv[ mcpp_optind++];
+ else
+ usage( opt);
+ } else if (str_eq( mcpp_optarg, "prefix") /* -iprefix */
+ || str_eq( mcpp_optarg, "withprefix") /* -iwithprefix */
+ || str_eq( mcpp_optarg, "withprefixbefore")
+ /* -iwithprefixbefore */
+ || str_eq( mcpp_optarg, "dirafter") /* -idirafter */
+ || str_eq( mcpp_optarg, "multilib")) { /* -imultilib */
+ mcpp_optind++; /* Skip the argument */
+ /* Ignore these options */
+ } else {
+ usage( opt);
+ }
+ break;
#endif
- case 'j':
- no_source_line = TRUE;
- break; /* Do not output the source line in diagnostics */
+ case 'j':
+ option_flags.no_source_line = TRUE;
+ break; /* Do not output the source line in diagnostics */
#if COMPILER == MSC
- case 'J':
- look_and_install( "_CHAR_UNSIGNED", DEF_NOARGS, null, "1");
- break;
-#endif
+ case 'J':
+ look_and_install( "_CHAR_UNSIGNED", DEF_NOARGS_PREDEF, null, "1");
+ break;
+#endif
+
+ case 'K':
+ mcpp_debug |= MACRO_CALL;
+ /*
+ * Putout macro expansion informations embedded in comments.
+ * Same with '#pragma MCPP debug macro_call'.
+ */
+ /* Enable white spaces preservation, too */
+ /* Fall through */
+ case 'k':
+ option_flags.k = TRUE;
+ /* Keep white spaces of input lines as they are */
+ break;
#if COMPILER == GNUC
- case 'l':
- if (ACE_OS::memcmp( optarg, "ang-", 4) != 0) {
- usage( opt);
- } else if (str_eq( optarg + 4, "c")) { /* -lang-c */
- break; /* Ignore this option */
- } else if (str_eq( optarg + 4, "c99") /* -lang-c99*/
- || str_eq( optarg + 4, "c9x")) { /* -lang-c9x */
- if (! sflag) {
- look_and_install( "__STRICT_ANSI__", DEF_NOARGS, "", "1");
- stdc_val = 1; /* Define __STDC__ to 1 */
- std_val = 199901L;
- sflag = TRUE;
- }
- } else if (str_eq( optarg + 4, "c89")) { /* -lang-c89*/
- if (! sflag) {
- look_and_install( "__STRICT_ANSI__", DEF_NOARGS, "", "1");
- stdc_val = 1; /* Define __STDC__ to 1 */
- sflag = TRUE;
- }
- } else if (str_eq( optarg + 4, "c++")) { /* -lang-c++*/
- goto plus;
- } else if (str_eq( optarg + 4, "asm")) { /* -lang-asm*/
- lang_asm = TRUE;
- break;
- } else {
- usage( opt);
- }
- break;
+ case 'l':
+ if (memcmp( mcpp_optarg, "ang-", 4) != 0) {
+ usage( opt);
+ } else if (str_eq( mcpp_optarg + 4, "c")) { /* -lang-c */
+ ; /* Ignore this option */
+ } else if (str_eq( mcpp_optarg + 4, "c99") /* -lang-c99*/
+ || str_eq( mcpp_optarg + 4, "c9x")) { /* -lang-c9x*/
+ if (! sflag) {
+ stdc_val = 1; /* Define __STDC__ to 1 */
+ std_val = 199901L;
+ sflag = TRUE;
+ }
+ } else if (str_eq( mcpp_optarg + 4, "c89")) { /* -lang-c89*/
+ if (! sflag) {
+ stdc_val = 1; /* Define __STDC__ to 1 */
+ sflag = TRUE;
+ }
+ } else if (str_eq( mcpp_optarg + 4, "c++")) { /* -lang-c++*/
+ goto plus;
+ } else if (str_eq( mcpp_optarg + 4, "asm")) { /* -lang-asm*/
+ option_flags.lang_asm = TRUE;
+ } else {
+ usage( opt);
+ }
+ break;
#endif /* COMPILER == GNUC */
- case 'M': /* Output source file dependency line */
- if (str_eq( optarg, "M")) { /* -MM */
- ;
- } else if (str_eq( optarg, "D")) { /* -MD */
- mkdep |= (MD_SYSHEADER | MD_FILE);
- } else if (str_eq( optarg, "MD")) { /* -MMD */
- mkdep |= MD_FILE;
- } else if (str_eq( optarg, "P")) { /* -MP */
- mkdep |= MD_PHONY;
- } else if (str_eq( optarg, "Q")) { /* -MQ target */
- mkdep |= MD_QUOTE;
- mkdep_mq = argv[ optind++];
- } else if (str_eq( optarg, "T")) { /* -MT target */
- mkdep_mt = argv[ optind++];
- } else if (str_eq( optarg, "F")) { /* -MF file */
- mkdep_mf = argv[ optind++];
- } else if (argv[ optind - 1] == optarg) { /* -M */
- mkdep |= MD_SYSHEADER;
- optind--;
- } else {
- usage( opt);
- }
- if (str_eq( optarg, "D") || str_eq( optarg, "MD")) {
- cp = argv[ optind];
- if (cp && *cp != '-') /* -MD (-MMD) file */
- mkdep_md = argv[ optind++];
- }
- mkdep |= MD_MKDEP;
- break;
+ case 'M': /* Output source file dependency line */
+ if (str_eq( mcpp_optarg, "M")) { /* -MM */
+ ;
+ } else if (str_eq( mcpp_optarg, "D")) { /* -MD */
+ mkdep |= (MD_SYSHEADER | MD_FILE);
+ } else if (str_eq( mcpp_optarg, "MD")) { /* -MMD */
+ mkdep |= MD_FILE;
+ } else if (str_eq( mcpp_optarg, "P")) { /* -MP */
+ mkdep |= MD_PHONY;
+ } else if (str_eq( mcpp_optarg, "Q")) { /* -MQ target */
+ mkdep |= MD_QUOTE;
+ mkdep_mq = argv[ mcpp_optind++];
+ } else if (str_eq( mcpp_optarg, "T")) { /* -MT target */
+ mkdep_mt = argv[ mcpp_optind++];
+ } else if (str_eq( mcpp_optarg, "F")) { /* -MF file */
+ mkdep_mf = argv[ mcpp_optind++];
+ } else if (argv[ mcpp_optind - 1] == mcpp_optarg) { /* -M */
+ mkdep |= MD_SYSHEADER;
+ mcpp_optind--;
+ } else {
+ usage( opt);
+ }
+ if (str_eq( mcpp_optarg, "D") || str_eq( mcpp_optarg, "MD")) {
+ cp = argv[ mcpp_optind];
+ if (cp && *cp != '-') /* -MD (-MMD) file */
+ mkdep_md = argv[ mcpp_optind++];
+ }
+ mkdep |= MD_MKDEP;
+ break;
+#if SYS_FAMILY == SYS_UNIX
+ case 'm':
+ if (str_eq( mcpp_optarg, "64")) { /* -m64 */
+ if (str_eq( CPU, "i386"))
+ ACE_OS::strcpy( arch, "x86_64");
+ else if (str_eq( CPU, "ppc"))
+ ACE_OS::strcpy( arch, "ppc64");
+ /* Else ignore */
+ break;
+ } else if (str_eq( mcpp_optarg, "32")) { /* -m32 */
+ if (str_eq( CPU, "x86_64"))
+ ACE_OS::strcpy( arch, "i386");
+ else if (str_eq( CPU, "ppc64"))
+ ACE_OS::strcpy( arch, "ppc");
+ /* Else ignore */
+ break;
+ } else if (str_eq( mcpp_optarg, "mmx")) { /* -mmmx */
+ look_and_install( "__MMX__", DEF_NOARGS_PREDEF, null, "1");
+ break;
+ } else if (str_eq( mcpp_optarg, "no-mmx")) { /* -mno-mmx */
+ undef_list[ undef_cnt++] = "__MMX__";
+ break;
+ }
+#endif /* SYS_FAMILY == UNIX */
#if COMPILER == GNUC
- case 'm':
#if SYSTEM == SYS_CYGWIN
- if (str_eq( optarg, "no-cygwin")) { /* -mno-cygwin */
- no_cygwin = TRUE;
- break;
- }
-#endif
- if (! integrated_cpp)
- usage( opt);
- break;
+ if (str_eq( mcpp_optarg, "no-cygwin")) { /* -mno-cygwin */
+ no_cygwin = TRUE;
+ break;
+ }
#endif
+ if (! integrated_cpp)
+ usage( opt);
+ break;
-#if COMPILER == GNUC
- case 'u':
- if (! str_eq( optarg, "ndef")) /* -undef */
- usage( opt); /* Else fall through */
-#endif
+ case 'u':
+ if (! str_eq( mcpp_optarg, "ndef")) /* -undef */
+ usage( opt); /* Else fall through */
+#endif /* COMPILER == GNUC */
#if COMPILER == MSC
- case 'u':
+ case 'u':
+#endif
+ case 'N':
+ /* No predefines: remove "unix", "__unix__" and friends. */
+ nflag = TRUE;
+ break;
+
+#if COMPILER == GNUC || NO_DIR
+ case 'n':
+#if NO_DIR
+ if (str_eq( mcpp_optarg, "odir")) { /* -nodir */
+ no_dir = TRUE;
+ }
#endif
- case 'N':
- /* No predefines: remove "vax", "__VAX" and friends. */
- nflag = TRUE;
- break;
-
#if COMPILER == GNUC
- case 'n':
- if (str_eq( optarg, "ostdinc")) { /* -nostdinc */
- unset_sys_dirs = TRUE; /* Unset pre-specified directories */
- } else if (str_eq( optarg, "ostdinc++")) { /* -nostdinc++ */
- set_cplus_dir = FALSE; /* Unset C++-specific directories */
- } else if (str_eq( optarg, "oprecomp")) { /* -noprecomp */
- mcpp_fprintf( ERR, warning, opt, optarg);
- break;
- } else {
- usage( opt);
- }
- break;
+ if (str_eq( mcpp_optarg, "ostdinc")) { /* -nostdinc */
+ unset_sys_dirs = TRUE; /* Unset pre-specified directories */
+ } else if (str_eq( mcpp_optarg, "ostdinc++")) { /* -nostdinc++ */
+ set_cplus_dir = FALSE; /* Unset C++-specific directories */
+ } else if (str_eq( mcpp_optarg, "oprecomp")) { /* -noprecomp */
+ mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
+ break;
+ }
+#endif
+ else {
+ usage( opt);
+ }
+ break;
#endif
#if COMPILER == GNUC
- case 'O':
- if (integrated_cpp) {
- if (*optarg == '-') /* No argument */
- optind--;
- else if (! ACE_OS::ace_isdigit( *optarg))
- usage( opt);
- else if (*optarg != '0')
- look_and_install( "__OPTIMIZE__", DEF_NOARGS, "", "1");
- } else {
- usage( opt);
- }
- break; /* Else ignore -Ox option */
+ case 'O':
+ if (integrated_cpp) {
+ if (*mcpp_optarg == '-') /* No argument */
+ mcpp_optind--;
+ else if ((isdigit( *mcpp_optarg) && *mcpp_optarg != '0')
+ || *mcpp_optarg == 's' || *mcpp_optarg == 'z')
+ /* -O1, -O2 -Os, -Oz */
+ look_and_install( "__OPTIMIZE__", DEF_NOARGS_PREDEF, null
+ , "1");
+ else if (! isdigit( *mcpp_optarg))
+ usage( opt);
+ /* Else -O0: ignore */
+ } else {
+ usage( opt);
+ }
+ break; /* Else ignore -Ox option */
#elif COMPILER == LCC
- case 'O': /* Define __LCCOPTIMLEVEL as 1 */
- defp = look_id( optim_name);
- ACE_OS::strcpy( defp->repl, "1");
- break;
+ case 'O': /* Define __LCCOPTIMLEVEL as 1 */
+ defp = look_id( optim_name);
+ ACE_OS::strcpy( defp->repl, "1");
+ break;
#endif
- case 'o':
- *out_pp = optarg; /* Output file name */
- break;
+ case 'o':
+ *out_pp = mcpp_optarg; /* Output file name */
+ break;
- case 'P': /* No #line output */
- pflag = TRUE;
- break;
+ case 'P': /* No #line output */
+ option_flags.p = TRUE;
+ break;
#if COMPILER == GNUC
- case 'p':
- if (str_eq( optarg, "edantic") /* -pedantic */
- || str_eq( optarg, "edantic-errors")) {
- /* -pedantic-errors */
- if (warn_level == -1)
- warn_level = 0;
- warn_level |= (1 | 2 | 4);
- if (! sflag && ! cplus_val) {
- stdc_val = 1;
- sflag = TRUE;
- }
- } else {
- usage( opt);
- }
- break;
- case 'q':
- if (str_eq( optarg, "uiet")) /* -quiet */
- break; /* Ignore the option */
- else
- usage( opt);
- break;
+ case 'p':
+ if (str_eq( mcpp_optarg, "edantic") /* -pedantic */
+ || str_eq( mcpp_optarg, "edantic-errors")) {
+ /* -pedantic-errors */
+ /* This option does not imply -ansi */
+ if (warn_level == -1)
+ warn_level = 0;
+ warn_level |= (1 | 2 | 4);
+ if (! sflag && ! cplus_val) {
+ stdc_val = 1;
+ sflag = TRUE;
+ }
+ } else {
+ usage( opt);
+ }
+ break;
+ case 'q':
+ if (str_eq( mcpp_optarg, "uiet"))
+ /* -quiet: GCC's undocumented, yet frequently specified opt */
+ break; /* Ignore the option */
+ else
+ usage( opt);
+ break;
#endif /* COMPILER == GNUC */
- case 'Q':
- qflag = TRUE;
- break;
+ case 'Q':
+ option_flags.q = TRUE;
+ break;
#if COMPILER == MSC
- case 'R': /* -RTC1, -RTCc, -RTCs, -RTCu, etc. */
- if (ACE_OS::memcmp( optarg, "TC", 2) == 0 && *(optarg + 2) != EOS)
- look_and_install( "__MSVC_RUNTIME_CHECKS", DEF_NOARGS, null
- , "1");
- else
- usage( opt);
- break;
+ case 'R': /* -RTC1, -RTCc, -RTCs, -RTCu, etc. */
+ if (memcmp( mcpp_optarg, "TC", 2) == 0
+ && *(mcpp_optarg + 2) != EOS)
+ look_and_install( "__MSVC_RUNTIME_CHECKS", DEF_NOARGS_PREDEF
+ , null, "1");
+ else
+ usage( opt);
+ break;
#endif
- case 'S':
- if (cplus_val || sflag) { /* C++ or the second time */
- mcpp_fprintf( ERR, warning, opt, optarg);
- break;
- }
- i = *optarg;
- if (! ACE_OS::ace_isdigit( i) || *(optarg + 1) != EOS)
- usage( opt);
- stdc_val = i - '0';
- sflag = TRUE;
- break;
+ case 'S':
+ if (cplus_val || sflag) { /* C++ or the second time */
+ mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
+ break;
+ }
+ i = *mcpp_optarg;
+ if (! isdigit( i) || *(mcpp_optarg + 1) != EOS)
+ usage( opt);
+ stdc_val = i - '0';
+ sflag = TRUE;
+ break;
#if COMPILER == GNUC
- case 'r':
- if (str_eq( optarg, "emap"))
- mcpp_fprintf( ERR, warning, opt, optarg);
- /* Ignore -remap option */
- else
- usage( opt);
- break;
-
- case 's':
- if (ACE_OS::memcmp( optarg, "td=", 3) == 0 && ACE_OS::strlen( optarg) > 3) {
- /* -std=STANDARD */
- cp = optarg + 3;
- if (str_eq( cp, "c89") /* std=c89 */
- || str_eq( cp, "c90") /* std=c90 */
- || str_eq( cp, "gnu89") /* std=gnu89 */
- || str_eq( cp, "iso9899:1990")) {
- std_val = 0L; /* C90 + extensions */
- } else if (str_eq( cp, "c99") /* std=c99 */
- || str_eq( cp, "c9x") /* std=c9x */
- || str_eq( cp, "gnu99") /* std=gnu99 */
- || str_eq( cp, "gnu9x") /* std=gnu9x */
- || str_eq( cp, "iso9899:1999")
- || str_eq( cp, "iso9899:199x")) {
- std_val = 199901L;
- } else if (str_eq( cp, "c++98")) { /* std=c++98 */
- cplus_val = std_val = 199711L;
- } else if (ACE_OS::memcmp( cp, "iso9899:", 8) == 0
- && ACE_OS::strlen( cp) >= 14) { /* std=iso9899:199409, etc. */
- optarg = cp + 8;
- goto Version;
- } else if (ACE_OS::memcmp( cp, "iso14882", 8) == 0) {
- cp += 8;
- if (cp && *cp == ':' && ACE_OS::strlen( cp) >= 7) {
- /* std=iso14882:199711, etc. */
- cplus_val = CPLUS;
- optarg = cp + 1;
- goto Version;
- } else {
- goto plus;
- }
- } else {
- usage( opt);
- }
- if (! cplus_val && ACE_OS::memcmp( cp, "gnu", 3) != 0)
- look_and_install( "__STRICT_ANSI__", DEF_NOARGS, "", "1");
- stdc_val = 1;
- sflag = TRUE;
- } else {
- usage( opt);
- }
- break;
-
- case 't':
- if (str_eq( optarg, "raditional")
- || str_eq( optarg, "raditional-cpp")) {
- /* -traditional, -traditional-cpp */
- trad = TRUE;
- mcpp_mode = OLD_PREP;
- } else if (str_eq( optarg, "rigraphs")) {
- trig_flag = TRUE; /* -trigraphs */
- } else {
- usage( opt);
- }
- break;
+ case 'r':
+ if (str_eq( mcpp_optarg, "emap"))
+ mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
+ /* Ignore -remap option */
+ else
+ usage( opt);
+ break;
+
+ case 's':
+ if (memcmp( mcpp_optarg, "td=", 3) == 0
+ && ACE_OS::strlen( mcpp_optarg) > 3) { /* -std=STANDARD*/
+ cp = mcpp_optarg + 3;
+ if (str_eq( cp, "c89") /* std=c89 */
+ || str_eq( cp, "c90") /* std=c90 */
+ || str_eq( cp, "gnu89") /* std=gnu89 */
+ || str_eq( cp, "iso9899:1990")) {
+ std_val = 0L; /* C90 + extensions */
+ } else if (str_eq( cp, "c99") /* std=c99 */
+ || str_eq( cp, "c9x") /* std=c9x */
+ || str_eq( cp, "gnu99") /* std=gnu99 */
+ || str_eq( cp, "gnu9x") /* std=gnu9x */
+ || str_eq( cp, "iso9899:1999")
+ || str_eq( cp, "iso9899:199x")) {
+ std_val = 199901L;
+ } else if (str_eq( cp, "c++98")) { /* std=c++98 */
+ cplus_val = std_val = 199711L;
+ } else if (memcmp( cp, "iso9899:", 8) == 0
+ && ACE_OS::strlen( cp) >= 14) { /* std=iso9899:199409, etc. */
+ mcpp_optarg = cp + 8;
+ look_and_install( "__STRICT_ANSI__", DEF_NOARGS_PREDEF
+ , null, "1");
+ ansi = TRUE;
+ goto Version;
+ } else if (memcmp( cp, "iso14882", 8) == 0) {
+ cp += 8;
+ ansi = TRUE;
+ if (cp && *cp == ':' && ACE_OS::strlen( cp) >= 7) {
+ /* std=iso14882:199711, etc. */
+ cplus_val = CPLUS;
+ mcpp_optarg = cp + 1;
+ goto Version;
+ } else {
+ goto plus;
+ }
+ } else {
+ usage( opt);
+ }
+ if (! cplus_val && memcmp( cp, "gnu", 3) != 0) {
+ /* 'std=gnu*' does not imply -ansi */
+ look_and_install( "__STRICT_ANSI__", DEF_NOARGS_PREDEF
+ , null, "1");
+ ansi = TRUE;
+ }
+ stdc_val = 1;
+ sflag = TRUE;
+ } else {
+ usage( opt);
+ }
+ break;
+
+ case 't':
+ if (str_eq( mcpp_optarg, "raditional")
+ || str_eq( mcpp_optarg, "raditional-cpp")) {
+ /* -traditional, -traditional-cpp */
+ trad = TRUE;
+ mcpp_mode = OLD_PREP;
+ } else if (str_eq( mcpp_optarg, "rigraphs")) {
+ option_flags.trig = TRUE; /* -trigraphs */
+ } else {
+ usage( opt);
+ }
+ break;
#endif /* COMPILER == GNUC */
#if COMPILER == MSC
- case 'T':
- if (ACE_OS::strlen( optarg) > 1)
- usage( opt);
- i = ACE_OS::tolower( *optarg); /* Fold case */
- if (i == 'c') {
- break; /* Ignore this option */
- } else if (i == 'p') {
- cplus_val = CPLUS;
- break;
- } else {
- usage( opt);
- }
+ case 'T':
+ if (ACE_OS::strlen( mcpp_optarg) > 1)
+ usage( opt);
+ i = tolower( *mcpp_optarg); /* Fold case */
+ if (i == 'c') {
+ ; /* Ignore this option */
+ } else if (i == 'p') {
+ cplus_val = CPLUS;
+ } else {
+ usage( opt);
+ }
+ break;
#endif
- case 'U': /* Undefine symbol */
- /*
- * We don't need to map trigraphs as they can't be part of a
- * symbol name. (_ isn't trigraphable).
- */
- if ((defp = look_id( optarg)) != 0) {
- if (defp->nargs == DEF_NOARGS - 1) {
- undef_a_predef( optarg);
- }
- undefine( optarg);
- } else {
- mcpp_fprintf( ERR, "\"%s\" wasn't defined\n", optarg);
- }
- break;
+ case 'U': /* Undefine macro */
+ if (undef_cnt >= MAX_UNDEF) {
+ mcpp_fputs( "Too many -U options.\n", ERR);
+ longjmp( error_exit, -1);
+ }
+ undef_list[ undef_cnt++] = mcpp_optarg;
+ break;
- case 'V':
+ case 'V':
#if COMPILER == GNUC
-Version:
-#endif
- valp = eval_num( optarg);
- if (valp->sign == VAL_ERROR)
- usage( opt);
- std_val = (long) valp->val;
- break;
-
- case 'v':
- vflag = TRUE;
- show_path = TRUE;
- break;
-
- case 'W': /* warning level */
- if (warn_level == -1) /* Have to initialize */
- warn_level = 0;
+ Version:
+#endif
+ valp = eval_num( mcpp_optarg);
+ if (valp->sign == VAL_ERROR)
+ usage( opt);
+ std_val = (long) valp->val;
+ break;
+
+ case 'v':
+ option_flags.v = TRUE;
+ show_path = TRUE;
+ break;
+
+ case 'W': /* warning level */
+ if (warn_level == -1) /* Have to initialize */
+ warn_level = 0;
#if COMPILER == GNUC
- if (argv[ optind - 1] == optarg) { /* No argument */
- /*
- * Note: -W without argument is not officially supported.
- * It may cause an error.
- */
- warn_level |= (1 | 2 | 4 | 16);
- optind--;
- break;
- } else if (str_eq( optarg, "comment")
- || str_eq( optarg, "comments")
- || str_eq( optarg, "sign-compare")) {
- warn_level |= 1;
- break;
- } else if (str_eq( optarg, "undef")) {
- warn_level |= 4;
- break;
- } else if (str_eq( optarg, "all")) {
- warn_level |= (1 | 16); /* Convert -Wall to -W17*/
- break;
- } else if (str_eq( optarg, "trigraphs")) {
- warn_level |= 16;
- break;
- }
+ if (argv[ mcpp_optind - 1] == mcpp_optarg) { /* No argument */
+ /*
+ * Note: -W without argument is not officially supported.
+ * It may cause an error.
+ */
+ warn_level |= (1 | 2 | 4 | 16);
+ mcpp_optind--;
+ } else if (str_eq( mcpp_optarg, "comment")
+ || str_eq( mcpp_optarg, "comments")
+ || str_eq( mcpp_optarg, "sign-compare")) {
+ warn_level |= 1;
+ } else if (str_eq( mcpp_optarg, "undef")) {
+ warn_level |= 4;
+ } else if (str_eq( mcpp_optarg, "all")) {
+ warn_level |= (1 | 16); /* Convert -Wall to -W17*/
+ } else if (str_eq( mcpp_optarg, "trigraphs")) {
+ warn_level |= 16;
+ }
#endif /* COMPILER == GNUC */
#if COMPILER == MSC
- if (str_eq( optarg, "all")) {
- warn_level |= (1 | 16); /* Convert -Wall to -W17*/
- break;
- } else if (str_eq( optarg, "L")) {
- no_source_line = TRUE; /* Single-line diagnostic */
- break;
- }
+ if (str_eq( mcpp_optarg, "all")) {
+ warn_level |= (1 | 16); /* Convert -Wall to -W17*/
+ } else if (str_eq( mcpp_optarg, "L")) {
+ option_flags.no_source_line = TRUE;
+ /* Single-line diagnostic */
+ }
#endif
- if (ACE_OS::ace_isdigit( *optarg)) {
- warn_level |= parse_warn_level( optarg, opt);
- if (warn_level > 31 || warn_level < 0)
- usage( opt);
- }
- if (warn_level == 0)
- warn_level = 0xFF; /* Remember this option */
- /* Else ignore the option */
- break;
+ if (isdigit( *mcpp_optarg)) {
+ warn_level |= parse_warn_level( mcpp_optarg, opt);
+ if (warn_level > 31 || warn_level < 0)
+ usage( opt);
+ }
+ if (warn_level == 0)
+ warn_level = 0xFF; /* Remember this option */
+ /* Else ignore the option */
+ break;
#if COMPILER == GNUC || COMPILER == MSC
- case 'w': /* Same as -W0 */
- warn_level = 0xFF; /* Remenber this option */
- break;
+ case 'w': /* Same as -W0 */
+ warn_level = 0xFF; /* Remenber this option */
+ break;
#endif
#if COMPILER == GNUC
- case 'x':
- if (str_eq( optarg, "c")) {
- break; /* -x c -- ignore this */
- } else if (str_eq( optarg, "c++")) {
- goto plus;
- } else if (str_eq( optarg, "assembler-with-cpp")) {
- lang_asm = TRUE;
- break;
- } else {
- usage( opt);
- }
- break;
+ case 'x':
+ if (str_eq( mcpp_optarg, "c")) {
+ break; /* -x c -- ignore this */
+ } else if (str_eq( mcpp_optarg, "c++")) {
+ goto plus;
+ } else if (str_eq( mcpp_optarg, "assembler-with-cpp")) {
+ option_flags.lang_asm = TRUE;
+ break;
+ } else {
+ usage( opt);
+ }
+ break;
#endif
#if COMPILER == MSC
- case 'Z':
- if (str_eq( optarg, "c:wchar_t")) { /* -Zc:wchar_t */
- look_and_install( "_NATIVE_WCHAR_T_DEFINED", DEF_NOARGS, null
- , "1");
- look_and_install( "_WCHAR_T_DEFINED", DEF_NOARGS, null, "1");
- wchar_t_modified = TRUE;
- } else if (str_eq( optarg, "c:wchar_t-")) { /* -Zc:wchar_t- */
- wchar_t_modified = TRUE; /* Do not define the macros */
- } else if (str_eq( optarg, "l")) {
- look_and_install( "_VC_NODEFAULTLIB", DEF_NOARGS, null, "1");
- } else if (str_eq( optarg, "a") || str_eq( optarg, "e")) {
- /* Ignore -Za and -Ze silently */
- break;
- } else if (*(optarg + 1) == EOS) { /* -Z followed by one char */
- mcpp_fprintf( ERR, warning, opt, optarg);
- /* Ignore the option with warning */
- } else {
- usage( opt);
- }
- break;
+ case 'Z':
+ if (str_eq( mcpp_optarg, "c:wchar_t")) { /* -Zc:wchar_t */
+ look_and_install( "_NATIVE_WCHAR_T_DEFINED", DEF_NOARGS_PREDEF
+ , null, "1");
+ look_and_install( "_WCHAR_T_DEFINED", DEF_NOARGS_PREDEF, null
+ , "1");
+ wchar_t_modified = TRUE;
+ } else if (str_eq( mcpp_optarg, "c:wchar_t-")) {/* -Zc:wchar_t- */
+ wchar_t_modified = TRUE; /* Do not define the macros */
+ } else if (str_eq( mcpp_optarg, "l")) {
+ look_and_install( "_VC_NODEFAULTLIB", DEF_NOARGS_PREDEF, null
+ , "1");
+ } else if (str_eq( mcpp_optarg, "a")) { /* -Za */
+ undefine( "_MSC_EXTENSIONS");
+ option_flags.dollar_in_name = FALSE;
+ } else if (str_eq( mcpp_optarg, "e")) {
+ /* Ignore -Ze silently */
+ break;
+ } else if (*(mcpp_optarg + 1) == EOS) {
+ /* -Z followed by one char */
+ mcpp_fprintf( ERR, warning, opt, mcpp_optarg);
+ /* Ignore the option with warning */
+ } else {
+ usage( opt);
+ }
+ break;
#endif
- case 'z':
- zflag = TRUE; /* No output of included file */
- break;
+ case 'z':
+ option_flags.z = TRUE; /* No output of included file */
+ break;
- default: /* What is this one? */
- usage( opt);
- break;
- } /* Switch on all options */
+ default: /* What is this one? */
+ usage( opt);
+ break;
+ } /* Switch on all options */
- } /* For all arguments */
+ } /* For all arguments */
- if (optind < argc && set_files( argc, argv, in_pp, out_pp) != 0)
- goto opt_search; /* More options after the filename */
+ if (mcpp_optind < argc && set_files( argc, argv, in_pp, out_pp) != 0)
+ goto opt_search; /* More options after the filename */
- /* Check consistency of specified options, set some variables */
- chk_opts( sflag, std_val, ansi, trad);
+ /* Check consistency of specified options, set some variables */
+ chk_opts( sflag, trad);
- if (warn_level == -1) /* No -W option */
- warn_level = 1; /* Default warning level */
- else if (warn_level == 0xFF)
- warn_level = 0; /* -W0 has high precedence */
+ if (warn_level == -1) /* No -W option */
+ warn_level = 1; /* Default warning level */
+ else if (warn_level == 0xFF)
+ warn_level = 0; /* -W0 has high precedence */
-#if COMPILER == GNUC
- if (sysdir < sysdir_end) {
- char ** dp = sysdir;
- while (dp < sysdir_end)
- set_a_dir( *dp++);
- }
- if (*in_pp && str_eq( (*in_pp) + ACE_OS::strlen( *in_pp) - 2, ".S"))
- lang_asm = TRUE; /* Input file name is *.S */
- if (lang_asm)
- look_and_install( "__ASSEMBLER__", DEF_NOARGS, null, "1");
-#endif
- set_env_dirs();
- if (! unset_sys_dirs)
- set_sys_dirs( set_cplus_dir);
-
- if (mkdep_mf) { /* -MF overrides -MD */
- mkdep_fp = ACE_OS::fopen( mkdep_mf, "w");
- } else if (mkdep_md) {
- mkdep_fp = ACE_OS::fopen( mkdep_md, "w");
- }
- if (mkdep_mq) /* -MQ overrides -MT */
- mkdep_target = mkdep_mq;
- else if (mkdep_mt)
- mkdep_target = mkdep_mt;
+#if SYSTEM == SYS_MAC
+ set_a_dir( 0); /* Initialize incdir[] */
+ to_search_framework = incend;
+ /* Search framework[] next to the directory */
+#endif
+
+#if COMPILER == GNUC && SYSTEM == SYS_MAC
+ if (arch[ 0]) { /* -arch option has been specified */
+ if (((str_eq( CPU, "i386") || str_eq( CPU, "x86_64"))
+ && (! str_eq( arch, "i386") && ! str_eq( arch, "x86_64")))
+ || ((str_eq( CPU, "ppc") || str_eq( CPU, "ppc64"))
+ && (! str_eq( arch, "ppc") && ! str_eq( arch, "ppc64")))) {
+ mcpp_fprintf( ERR, "Wrong argument of -arch option: %s\n", arch);
+ longjmp( error_exit, -1);
+ }
+ }
+#endif
+ if (! arch[ 0]) {
+ /* None of -arch, -m32 or -m64 options has been specified. */
+ /* The CPU-specific-macros will be defined in init_cpu_macro(). */
+ ACE_OS::strcpy( arch, CPU);
+ }
+#if COMPILER != GNUC
+ init_cpu_macro( gval, sse);
+#endif
#if COMPILER == GNUC
- init_gcc_macro( gcc_maj_ver, gcc_min_ver);
- chk_env(); /* Check the env-vars to specify version and dependency line*/
-#elif COMPILER == MSC
- init_msc_macro( wchar_t_modified);
+ if (sysdir < sysdir_end) {
+ char ** dp = sysdir;
+ if (! sys_dirp || sys_dirp == incdir)
+ sys_dirp = dp;
+ while (dp < sysdir_end)
+ set_a_dir( *dp++);
+ }
+ if (*in_pp && str_eq( (*in_pp) + ACE_OS::strlen( *in_pp) - 2, ".S"))
+ option_flags.lang_asm = TRUE; /* Input file name is *.S */
+ if (option_flags.lang_asm) {
+ look_and_install( "__ASSEMBLER__", DEF_NOARGS_PREDEF, null, "1");
+ option_flags.dollar_in_name = FALSE; /* Disable '$' in name */
+ }
+ if (! sys_dirp || sys_dirp == incdir)
+ sys_dirp = incend;
#endif
-
- init_predefines( nflag, std_val);
-
- if (vflag)
- version();
+#if SYSTEM == SYS_MAC
+ init_framework(); /* After setting sys_dirp */
+#endif
+ set_env_dirs();
+ if (! unset_sys_dirs)
+ set_sys_dirs( set_cplus_dir);
+
+ if (mkdep_mf) { /* -MF overrides -MD */
+ mkdep_fp = ACE_OS::fopen( mkdep_mf, "w");
+ } else if (mkdep_md) {
+ mkdep_fp = ACE_OS::fopen( mkdep_md, "w");
+ }
+ if (mkdep_mq) /* -MQ overrides -MT */
+ mkdep_target = mkdep_mq;
+ else if (mkdep_mt)
+ mkdep_target = mkdep_mt;
+
+ /* Normalize the path-list */
+ if (*in_pp && ! str_eq( *in_pp, "-")) {
+ char * tmp = norm_path( null, *in_pp, FALSE, FALSE);
+ if (tmp) /* The file exists */
+ *in_pp = tmp;
+ /* Else mcpp_main() will diagnose *in_pp and exit */
+ }
+ if (! (mcpp_debug & MACRO_CALL)) {
+ /* -K option alters behavior of -v option */
+ if (option_flags.v)
+ version();
if (show_path) {
- fp_debug = stderr;
- dump_path();
- fp_debug = stdout;
+ fp_debug = stderr;
+ dump_path();
+ fp_debug = stdout;
}
+ }
}
static void version( void)
@@ -1119,531 +1367,621 @@ static void version( void)
* Print version message.
*/
{
- const char * mes[] = {
+ const char * mes[] = {
-#if MCPP_LIB
-/* Write messages here. */
- 0, " with ",
+#ifdef MCPP_LIB
+ /* Write messages here, for example, "MySomeTool with ". */
#endif
#ifdef VERSION_MSG
- "MCPP V.2.6.4 (2007/05) "
+ "MCPP V.2.7.2 (2008/11) "
#else
- "MCPP V.", VERSION, " (", DATE, ") "
+ "MCPP V.", VERSION, " (", DATE, ") "
#endif
#if COMPILER == INDEPENDENT
- , "compiler-independent-build "
+ , "compiler-independent-build "
#else
#ifdef CMP_NAME
- , "for ", CMP_NAME, " "
+ , "for ", CMP_NAME, " "
#endif
#endif
- , "compiled by "
+ , "compiled by "
#ifdef VERSION_MSG
- , VERSION_MSG
+ , VERSION_MSG
#else
#ifdef HOST_CMP_NAME
- , HOST_CMP_NAME
+ , HOST_CMP_NAME
#if HOST_COMPILER == GNUC
- , " V.", GCC_MAJOR_VERSION, ".", GCC_MINOR_VERSION
+ , " V.", GCC_MAJOR_VERSION, ".", GCC_MINOR_VERSION
#endif
#endif
#endif
- , "\n",
- 0
- };
+ , "\n",
+ 0
+ };
- const char ** mpp = mes;
-#if MCPP_LIB
- mes[ 0] = argv0;
-#endif
- while (*mpp)
- mcpp_fputs( *mpp++, ERR);
+ const char ** mpp = mes;
+ while (*mpp)
+ mcpp_fputs( *mpp++, ERR);
}
static void usage(
- int opt
-)
+ int opt
+ )
/*
* Print usage.
*/
{
- const char * mes[] = {
+ const char * mes[] = {
-"Usage: ",
-"mcpp",
-" [-<opts> [-<opts>]] [<infile> [-<opts>] [<outfile>] [-<opts>]]\n",
-" <infile> defaults to stdin and <outfile> defaults to stdout.\n",
+ "Usage: ",
+ "mcpp",
+ " [-<opts> [-<opts>]] [<infile> [-<opts>] [<outfile>] [-<opts>]]\n",
+ " <infile> defaults to stdin and <outfile> defaults to stdout.\n",
-"\nCommonly used options:\n",
+ "\nCommonly used options:\n",
-"-@MODE Specify preprocessing mode. MODE should be one of these 4:\n",
-" -@std Standard conforming mode. (default)\n",
-" -@poststd, -@post special 'post-Standard' mode.\n",
-" -@kr K&R 1st mode.\n",
-" -@oldprep, -@old 'old_preprocessor' mode (i.e. 'Reiser model' cpp).\n",
+ "-@MODE Specify preprocessing mode. MODE should be one of these 4:\n",
+ " -@std Standard conforming mode. (default)\n",
+ " -@poststd, -@post special 'post-Standard' mode.\n",
+ " -@kr K&R 1st mode.\n",
+ " -@oldprep, -@old 'old_preprocessor' mode (i.e. 'Reiser model' cpp).\n",
#if COMPILER == MSC
-"-arch:SSE, -arch:SSE2 Define the macro _M_IX86_FP as 1, 2 respectively.\n",
+ "-arch:SSE, -arch:SSE2 Define the macro _M_IX86_FP as 1, 2 respectively.\n",
+#endif
+#if SYSTEM == SYS_MAC && COMPILER == GNUC
+ "-arch <arch> Change the target to <arch> (i386, x86_64, ppc, ppc64).\n",
#endif
#if ! STD_LINE_PREFIX
-"-b Output #line lines in C source style.\n",
+ "-b Output #line lines in C source style.\n",
#endif
-"-C Output also comments.\n",
-"-D <macro>[=<value>] Define <macro> as <value> (default:1).\n",
-"-D <macro(args)>[=<replace>] Define <macro(args)> as <replace>.\n",
-"-e <encoding> Change the default multi-byte character encoding to one of:\n",
-" euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.\n",
+ "-C Output also comments.\n",
+ "-D <macro>[=<value>] Define <macro> as <value> (default:1).\n",
+ "-D <macro(args)>[=<replace>] Define <macro(args)> as <replace>.\n",
+ "-e <encoding> Change the default multi-byte character encoding to one of:\n",
+ " euc_jp, gb2312, ksc5601, big5, sjis, iso2022_jp, utf8.\n",
+#if SYSTEM == SYS_MAC
+ "-F <framework> Add <framework> to top of framework directory list.\n",
+#endif
#if COMPILER == GNUC
-"-finput-charset=<encoding> Same as -e <encoding>.\n",
-" (Don't insert spaces around '=').\n",
+ "-finput-charset=<encoding> Same as -e <encoding>.\n",
+ " (Don't insert spaces around '=').\n",
#endif
#if COMPILER == MSC
-"-Fl <file> Include the <file> prior to the main input file.\n",
-"-G<n> Define the macro _M_IX86 according to <n>.\n",
+ "-Fl <file> Include the <file> prior to the main input file.\n",
+ "-G<n> Define the macro _M_IX86 according to <n>.\n",
#endif
#if COMPILER == LCC
-"-g <n> Define the macro __LCCDEBUGLEVEL as <n>.\n",
+ "-g <n> Define the macro __LCCDEBUGLEVEL as <n>.\n",
#endif
-"-I <directory> Add <directory> to the #include search list.\n",
-"-I- Unset system or site specific include directories.\n",
+ "-I <directory> Add <directory> to the #include search list.\n",
#if COMPILER == GNUC
-"-include <file> Include the <file> prior to the main input file.\n",
+ "-isysroot <dir> Change root of system header directory to <dir>.\n",
+ "-include <file> Include the <file> prior to the main input file.\n",
+#else
+ "-I- Unset system or site specific include directories.\n",
#endif
#if COMPILER == MSC
-"-J Define the macro _CHAR_UNSIGNED as 1.\n",
+ "-J Define the macro _CHAR_UNSIGNED as 1.\n",
#endif
-"-j Don't output the source line in diagnostics.\n",
-"-M, -MM, -MD, -MMD, -MP, -MQ target, -MT target, -MF file\n",
-" Output source file dependency line for makefile.\n",
-"-N Don't predefine any non-standard macros.\n",
+ "-j Don't output the source line in diagnostics.\n",
+ "-M, -MM, -MD, -MMD, -MP, -MQ target, -MT target, -MF file\n",
+ " Output source file dependency line for makefile.\n",
+#if SYS_FAMILY == SYS_UNIX
+ "-m32 Change target CPU from x86_64, ppc64 to i386, ppc, respectively.\n",
+ "-m64 Change target CPU from i386, ppc to x86_64, ppc64, respectively.\n",
+#endif
+ "-N Don't predefine any non-standard macros.\n",
#if COMPILER == GNUC
-"-nostdinc Unset system or site specific include directories.\n",
+ "-nostdinc Unset system or site specific include directories.\n",
#endif
#if COMPILER == LCC
-"-O Define the macro __LCCOPTIMLEVEL as 1.\n",
+ "-O Define the macro __LCCOPTIMLEVEL as 1.\n",
#endif
-"-o <file> Output to <file>.\n",
-"-P Don't output #line lines.\n",
-"-Q Output diagnostics to \"mcpp.err\" (default:stderr).\n",
+ "-o <file> Output to <file>.\n",
+ "-P Don't output #line lines.\n",
+ "-Q Output diagnostics to \"mcpp.err\" (default:stderr).\n",
#if COMPILER == MSC
-"-RTC* Define the macro __MSVC_RUNTIME_CHECKS as 1.\n",
+ "-RTC* Define the macro __MSVC_RUNTIME_CHECKS as 1.\n",
#endif
#if COMPILER == GNUC
-"-traditional, -traditional-cpp Same as -@oldprep.\n",
+ "-traditional, -traditional-cpp Same as -@oldprep.\n",
#endif
-"-U <macro> Undefine <macro>.\n",
+ "-U <macro> Undefine <macro>.\n",
#if COMPILER == GNUC
-"-undef Same as -N.\n",
+ "-undef Same as -N.\n",
#endif
#if COMPILER == MSC
-"-u Same as -N.\n",
+ "-u Same as -N.\n",
#endif
-"-v Show version and include directories of mcpp.\n",
-"-W <level> Set warning level to <level> (OR of {0,1,2,4,8,16}, default:1).\n",
+ "-v Show version and include directories of mcpp.\n",
+ "-W <level> Set warning level to <level> (OR of {0,1,2,4,8,16}, default:1).\n",
#if COMPILER == MSC
-"-WL Same as -j.\n",
+ "-WL Same as -j.\n",
#endif
#if COMPILER == MSC || COMPILER == GNUC
-"-w Same as -W0.\n",
+ "-w Same as -W0.\n",
#endif
#if COMPILER == MSC
-"-X Same as -I-.\n",
-"-Zc:wchar_t Define _NATIVE_WCHAR_T_DEFINED and _WCHAR_T_DEFINED as 1.\n",
-"-Zl Define the macro _VC_NODEFAULTLIB as 1.\n",
+ "-X Same as -I-.\n",
+ "-Zc:wchar_t Define _NATIVE_WCHAR_T_DEFINED and _WCHAR_T_DEFINED as 1.\n",
+ "-Zl Define the macro _VC_NODEFAULTLIB as 1.\n",
#endif
-"-z Don't output the included file, only defining macros.\n",
+ "-z Don't output the included file, only defining macros.\n",
-"\nOptions available with -@std (default) or -@poststd options:\n",
+ "\nOptions available with -@std (default) or -@poststd options:\n",
-"-+ Process C++ source.\n",
+ "-+ Process C++ source.\n",
#if DIGRAPHS_INIT
-"-2 Disable digraphs.\n",
+ "-2 Disable digraphs.\n",
#else
-"-2 Enable digraphs.\n",
+ "-2 Enable digraphs.\n",
#endif
#if COMPILER == GNUC
-"-digraphs Enable digraphs.\n",
+ "-digraphs Enable digraphs.\n",
#endif
-"-h <n> Re-define the pre-defined macro __STDC_HOSTED__ as <n>.\n",
+ "-h <n> Re-define the pre-defined macro __STDC_HOSTED__ as <n>.\n",
#if COMPILER == GNUC
-"-lang-c89 Same as -S1.\n",
-"-lang-c++ Same as -+.\n",
-"-pedantic, -pedantic-errors Same as -W7.\n",
+ "-lang-c89 Same as -S1.\n",
+ "-lang-c++ Same as -+.\n",
+ "-pedantic, -pedantic-errors Same as -W7.\n",
+ "-S <n> Redefine __STDC__ to <n>.\n",
+#else
+ "-S <n> Redefine __STDC__ to <n>, undefine old style macros.\n",
#endif
-"-S <n> Redefine __STDC__ to <n>, undefine old style macros.\n",
-
#if COMPILER == GNUC
-"-std=<STANDARD> Specify the standard to which the code should conform.\n",
-" <STANDARD> may be one of: c90, c99, iso9899:1990, iso14882, etc.\n",
-" iso9899:<n>, iso14882:<n> : Same as -V <n> (long in decimals).\n",
+ "-std=<STANDARD> Specify the standard to which the code should conform.\n",
+ " <STANDARD> may be one of: c90, c99, iso9899:1990, iso14882, etc.\n",
+ " iso9899:<n>, iso14882:<n> : Same as -V <n> (long in decimals).\n",
#endif
#if COMPILER == MSC
-"-Tp Same as -+.\n",
+ "-Tp Same as -+.\n",
#endif
-"-V <n> Redefine __STDC_VERSION__ or __cplusplus to <n>.\n",
-" C with -V199901L specifies C99 specs.\n",
-" C++ with -V199901L specifies C99 compatible specs.\n",
+ "-V <n> Redefine __STDC_VERSION__ or __cplusplus to <n>.\n",
+ " C with -V199901L specifies C99 specs.\n",
+ " C++ with -V199901L specifies C99 compatible specs.\n",
#if COMPILER == GNUC
-"-x c++ Same as -+.\n",
+ "-x c++ Same as -+.\n",
#endif
-"\nOptions available with only -@std (default) option:\n",
+ "\nOptions available with only -@std (default) option:\n",
-"-@compat Expand recursive macro more than Standard.\n",
+ "-@compat Expand recursive macro more than Standard.\n",
#if TRIGRAPHS_INIT
-"-3 Disable trigraphs.\n",
+ "-3 Disable trigraphs.\n",
#else
-"-3 Enable trigraphs.\n",
+ "-3 Enable trigraphs.\n",
#endif
+ "-K Output macro annotations embedding in comments.\n",
#if COMPILER == GNUC
-"-trigraphs Enable trigraphs.\n",
+ "-trigraphs Enable trigraphs.\n",
#endif
-"\nOptions available with -@std (default), -@kr or -@oldprep options:\n",
+ "\nOptions available with -@std (default), -@kr or -@oldprep options:\n",
#if COMPILER == GNUC
-"-lang-asm Same as -x assembler-with-cpp.\n",
-"-x assembler-with-cpp Process \"assembler\" source.\n",
+ "-lang-asm Same as -x assembler-with-cpp.\n",
+ "-x assembler-with-cpp Process \"assembler\" source.\n",
#elif COMPILER == MSC
-"-A Process \"assembler\" source.\n",
+ "-A Process \"assembler\" source.\n",
#else
-"-a Process \"assembler\" source.\n",
+ "-a Process \"assembler\" source.\n",
#endif
-"\nFor further details see mcpp-manual.html.\n",
- 0,
- };
+ "-k Keep white spaces of input lines as they are.\n",
- const char * illegopt = "Incorrect option -%c%s\n";
- const char * const * mpp = mes;
+ "\nFor further details see mcpp-manual.html.\n",
+ 0,
+ };
- if (opt != '?')
- mcpp_fprintf( ERR, illegopt, opt, optarg ? optarg : "");
- version();
-#if MCPP_LIB
- mes[ 1] = argv0;
-#endif
- while (*mpp)
- {
- ACE_ERROR ((LM_ERROR, "%s\n", *mpp));
- mcpp_fputs( *mpp++, ERR);
- }
+ const char * illegopt = "Incorrect option -%c%s\n";
+ const char * const * mpp = mes;
- longjmp( error_exit, -1);
+ if (opt != '?')
+ mcpp_fprintf( ERR, illegopt, opt, mcpp_optarg ? mcpp_optarg : null);
+ version();
+#ifdef MCPP_LIB
+ mes[ 1] = argv0;
+#endif
+ while (*mpp)
+ mcpp_fputs( *mpp++, ERR);
+ longjmp( error_exit, -1);
}
static void set_opt_list(
- char * optlist
-)
+ char * optlist
+ )
/*
* Set list of legal option characters.
*/
{
- const char * list[] = {
+ const char * list[] = {
#if ! STD_LINE_PREFIX
"b",
#endif
-#if COMPILER == GNUC
- "$A:a:cd:Ef:g:i:l:m:n:r:s:t:u:O:p:q:wx:",
-#elif COMPILER != MSC
- "a",
+#if SYS_FAMILY == SYS_UNIX
+ "m:",
#endif
-#if COMPILER == MSC
+#if COMPILER == GNUC
+ "$A:a:cd:Ef:g:i:l:r:s:t:u:O:p:q:wx:",
+#elif COMPILER == MSC
"Aa:F:G:JR:T:XZ:uw",
#elif COMPILER == LCC
"g:O",
#endif
+
+#if COMPILER != GNUC && COMPILER != MSC
+ "a",
+#endif
+#if SYSTEM == SYS_MAC
+ "F:-:",
+#endif
+
0
- };
+ };
- const char * const * lp = & list[ 0];
+ const char * const * lp = & list[ 0];
- ACE_OS::strcpy( optlist, "23+@:e:h:jo:vzCD:I:M:NPQS:U:V:W:");
- /* Default options */
- while (*lp)
- ACE_OS::strcat( optlist, *lp++);
- if (ACE_OS::strlen( optlist) >= OPTLISTLEN)
- cfatal( "Bug: Too long option list", 0, 0L, 0); /* _F_ */
+ ACE_OS::strcpy( optlist, "23+@:e:h:jkn:o:vzCD:I:KM:NPQS:U:V:W:");
+ /* Default options */
+ while (*lp)
+ ACE_OS::strcat( optlist, *lp++);
+ if (ACE_OS::strlen( optlist) >= OPTLISTLEN)
+ cfatal( "Bug: Too long option list", 0, 0L, 0); /* _F_ */
}
static int parse_warn_level(
- const char * optarg,
- int opt
-)
+ const char * mcpp_optarg,
+ int opt
+ )
/*
* Parse warn level option.
* Warning level option is specified as '19' or '1|2|16' or even '3|16'.
* Even spaces are allowed as ' 1 | 2|16 '.
*/
{
- const char * cp = optarg;
- int w, i;
-
- w = i = 0;
- while( *cp != EOS) {
- while( *cp == ' ')
- cp++; /* Skip spaces */
- if (! ACE_OS::ace_isdigit( *cp))
- break; /* Error */
- while (ACE_OS::ace_isdigit( *cp)) {
- i *= 10;
- i += (*cp++ - '0');
- }
- while (*cp == ' ')
- cp++;
- if (*cp == '|') { /* Only digits or '|' are allowed */
- w |= i; /* Take OR of the args */
- i = 0;
- cp++;
- }
+ const char * cp = mcpp_optarg;
+ int w, i;
+
+ w = i = 0;
+ while( *cp != EOS) {
+ while( *cp == ' ')
+ cp++; /* Skip spaces */
+ if (! isdigit( *cp))
+ break; /* Error */
+ while (isdigit( *cp)) {
+ i *= 10;
+ i += (*cp++ - '0');
}
- if (*cp != EOS) { /* Not ending with digit */
- mcpp_fprintf( ERR, "Illegal warning level option \"%s\"\n", optarg);
- usage( opt);
+ while (*cp == ' ')
+ cp++;
+ if (*cp == '|') { /* Only digits or '|' are allowed */
+ w |= i; /* Take OR of the args */
+ i = 0;
+ cp++;
}
- w |= i; /* Take the last arg */
- return w;
+ }
+ if (*cp != EOS) { /* Not ending with digit */
+ mcpp_fprintf( ERR, "Illegal warning level option \"%s\"\n"
+ , mcpp_optarg);
+ usage( opt);
+ }
+ w |= i; /* Take the last arg */
+ return w;
}
static void def_a_macro(
- int opt,
- char * def
-)
+ int opt, /* 'D' */
+ char * def /* Argument of -D option */
+ )
/*
* Define a macro specified by -D option.
* The macro maybe either object-like or function-like (with parameter).
*/
{
- DEFBUF * defp;
- char * definition; /* Argument of -D option*/
- char * cp;
- const char *cp_end;
- int i;
-
- /* Convert trigraphs for the environment which need trigraphs */
- if (mcpp_mode == STD && trig_flag)
- cnv_trigraph( def);
- if (mcpp_mode == POST_STD && dig_flag)
- cnv_digraph( def); /* Convert prior to installing macro */
- definition = xmalloc( ACE_OS::strlen( def) + 4);
- ACE_OS::strcpy( definition, def);
- if ((cp = ACE_OS::strchr( definition, '=')) != 0) {
- *cp = ' '; /* Remove the '=' */
- cp_end = "\n"; /* Append <newline> */
- } else {
- cp_end = " 1\n"; /* With definition "1" */
- }
- ACE_OS::strcat( definition, cp_end);
- cp = definition;
- while ((char_type[ *cp & UCHARMAX] & SPA) == 0)
- cp++;
- i = *cp;
- *cp = EOS;
- if ((defp = look_id( definition)) != 0) { /* Pre-defined */
- if (defp->nargs == DEF_NOARGS - 1) {
- undef_a_predef( definition);
- /* Remove the name from the table of pre-defined-macros.*/
- }
- undefine( definition);
- }
- *cp = i;
- /* Now, save the definition. */
- unget_string( definition, 0);
- if (do_define( FALSE) == 0) /* Define a macro */
- usage( opt);
- *cp = EOS;
- if (str_eq( definition, "__STDC__")) {
- defp = look_id( definition);
- defp->nargs = DEF_NOARGS - 2;
- /* Restore Standard-predefinedness */
- }
- ACE_OS::free( definition);
- skip_nl(); /* Clear the appended <newline> */
+ DEFBUF * defp;
+ char * definition; /* Argument of -D option */
+ char * cp;
+ int i;
+
+ /* Convert trigraphs for the environment which need trigraphs */
+ if (mcpp_mode == STD && option_flags.trig)
+ cnv_trigraph( def);
+ if (mcpp_mode == POST_STD && option_flags.dig)
+ cnv_digraph( def); /* Convert prior to installing macro */
+ definition = xmalloc( ACE_OS::strlen( def) + 4);
+ ACE_OS::strcpy( definition, def);
+ if ((cp = ACE_OS::strchr( definition, '=')) != 0) {
+ *cp = ' '; /* Remove the '=' */
+ cp = "\n"; /* Append <newline> */
+ } else {
+ cp = " 1\n"; /* With definition "1" */
+ }
+ ACE_OS::strcat( definition, cp);
+ cp = definition;
+ while ((char_type[ *cp & UCHARMAX] & SPA) == 0)
+ cp++;
+ i = *cp;
+ *cp = EOS;
+ if ((defp = look_id( definition)) != 0) /* Pre-defined */
+ undefine( definition);
+ *cp = i;
+ /* Now, save the definition. */
+ unget_string( definition, 0);
+ if (do_define( FALSE, 0) == 0) /* Define a macro */
+ usage( opt);
+ *cp = EOS;
+ if (str_eq( definition, "__STDC__")) {
+ defp = look_id( definition);
+ defp->nargs = DEF_NOARGS_STANDARD;
+ /* Restore Standard-predefinedness */
+ }
+ ACE_OS::free( definition);
+ skip_nl(); /* Clear the appended <newline> */
}
-static void chk_opts(
- int sflag, /* Flag of Standard or post-Standard mode */
- long std_val, /* Value of __STDC_VERSION__ */
- int ansi, /* -ansi (GCC only) */
- int trad /* -traditional (GCC only) */
-)
+static void chk_opts(
+ int sflag, /* Flag of Standard or post-Standard mode */
+ int trad /* -traditional (GCC only) */
+ )
/*
* Check consistency between the specified options.
* Set default value of some variables for each 'mcpp_mode'.
*/
{
- int incompat = FALSE;
-
- switch (mcpp_mode) {
- case STD :
- case POST_STD :
- if (trad)
- incompat = TRUE;
- if (! stdc_val)
- stdc_val = STDC;
- break;
- case KR :
- case OLD_PREP :
- if (sflag || cplus_val || ansi || std_val != -1L)
- incompat = TRUE;
- if (dig_flag) {
- if (dig_flag != DIGRAPHS_INIT)
- incompat = TRUE;
- else
- dig_flag = 0;
- }
- break;
- }
- if (mcpp_mode == POST_STD && (lang_asm || compat_mode))
+ int incompat = FALSE;
+
+ switch (mcpp_mode) {
+ case STD :
+ case POST_STD :
+ if (trad)
+ incompat = TRUE;
+ if (! stdc_val)
+ stdc_val = STDC;
+ break;
+ case KR :
+ case OLD_PREP :
+#if COMPILER == GNUC
+ if (sflag || cplus_val || ansi || std_val != -1L)
+#else
+ if (sflag || cplus_val || std_val != -1L)
+#endif
incompat = TRUE;
- if (mcpp_mode != STD && trig_flag) {
- if (trig_flag != TRIGRAPHS_INIT)
- incompat = TRUE;
- else
- trig_flag = FALSE;
- }
- if (incompat) {
- mcpp_fputs( "Incompatible options are specified.\n", ERR);
- usage( '?');
+ if (option_flags.dig) {
+ if (option_flags.dig != DIGRAPHS_INIT)
+ incompat = TRUE;
+ else
+ option_flags.dig = 0;
}
+ break;
+ }
+
+ if (mcpp_mode == POST_STD
+ && (option_flags.lang_asm || compat_mode || option_flags.k))
+ incompat = TRUE;
+ if (mcpp_mode != STD && option_flags.trig) {
+ if (option_flags.trig != TRIGRAPHS_INIT)
+ incompat = TRUE;
+ else
+ option_flags.trig = FALSE;
+ }
+ if (mcpp_mode != STD && (mcpp_debug & MACRO_CALL))
+ incompat = TRUE;
+ if ((mcpp_debug & MACRO_CALL)
+ && (option_flags.lang_asm || option_flags.c)) {
+ mcpp_fputs( "Disabled -K option.\n", ERR);
+ mcpp_debug &= ~MACRO_CALL;
+ /* -a and -C options do not co-exist with -K */
+ }
+ if (incompat) {
+ mcpp_fputs( "Incompatible options are specified.\n", ERR);
+ usage( '?');
+ }
+
+ standard = (mcpp_mode == STD || mcpp_mode == POST_STD);
+ /* Modify magic characters in character type table. */
+ if (! standard)
+ char_type[ DEF_MAGIC] = 0;
+ if (mcpp_mode != STD)
+ char_type[ IN_SRC] = 0;
+ if (mcpp_mode == POST_STD || mcpp_mode == KR)
+ char_type[ TOK_SEP] = 0; /* TOK_SEP equals to COM_SEP */
+ if (mcpp_mode != STD)
+ char_type[ MAC_INF] = 0;
+
+ expand_init( compat_mode, ansi);
+ /* Set function pointer to macro expansion routine */
+}
- standard = (mcpp_mode == STD || mcpp_mode == POST_STD);
- /* Modify magic characters in character type table. */
- if (! standard)
- char_type[ DEF_MAGIC] = 0;
- if (mcpp_mode != STD)
- char_type[ IN_SRC] = 0;
- if (mcpp_mode == POST_STD || mcpp_mode == KR)
- char_type[ TOK_SEP] = 0; /* TOK_SEP equals to COM_SEP */
+#if COMPILER != GNUC
- expand_init();
- /* Set function pointer to macro expansion routine */
+static void init_cpu_macro (
+ int gval, /* Argument of -G option for MSC */
+ int sse /* Argument of -sse: option for MSC */
+ )
+/*
+ * Set predefined macros for CPU.
+ * This routine is called from do_options() only once.
+ * GCC-specific-build defines these macro by init_gcc_macro().
+ */
+{
+ ACE_UNUSED_ARG (gval);
+ ACE_UNUSED_ARG (sse);
+
+ const char * cpu_macro[][ 7] = {
+#if SYS_FAMILY == SYS_UNIX
+ { "__i386__"
+#if SYSTEM == SYS_CYGWIN
+ , "_X86_"
+#endif
+ , 0,},
+ { "__x86_64__", "__amd64__", 0,},
+ { "__ppc__", "__powerpc__", 0,},
+ { "__ppc64__", "__powerpc64__", 0,}
+#elif SYS_FAMILY == SYS_WIN
+ { "_WIN32", "__WIN32__", "_X86_"
+#if SYSTEM == SYS_MINGW
+ , "__i386__"
+#endif
+ , 0,},
+ { "_WIN32", "_WIN64", "__WIN64__", "_M_AMD64", "_AMD64_", "_X64_"
+ , 0,}, /* "_WIN32" is defined even on Windows 64 */
+ { 0,}, /* Not supported */
+ { 0,} /* Not supported */
+#endif
+ };
+ const char ** macro;
+ int index;
+
+ if (str_eq( arch, "i386"))
+ index = 0;
+ else if (str_eq( arch, "x86_64"))
+ index = 1;
+ else if (str_eq( arch, "ppc"))
+ index = 2;
+ else if (str_eq( arch, "ppc64"))
+ index = 3;
+ else
+ index = 9;
+
+ if (index == 9) { /* Unknown CPU */
+ look_and_install( "__" CPU "__", DEF_NOARGS_PREDEF, null, "1");
+ return;
+ }
+ macro = cpu_macro[ index];
+ while (*macro)
+ look_and_install( *macro++, DEF_NOARGS_PREDEF, null, "1");
+#if SYS_FAMILY == SYS_WIN
+ if (index == 0) {
+ char val[] = "600";
+ if (gval)
+ val[ 0] = gval;
+ look_and_install( "_M_IX86", DEF_NOARGS_PREDEF, null, val);
+ val[ 0] = '0' + sse;
+ val[ 1] = '\0';
+ look_and_install( "_M_IX86_FP", DEF_NOARGS_PREDEF, null, val);
+ }
+#endif
}
+#endif /* COMPILER != GNUC */
-static void init_predefines(
- int nflag, /* -N option */
- long std_val /* Value of __STDC_VERSION__ */
-)
+static void init_predefines( void)
/*
* Set or unset predefined macros.
- * This routine should be called after init_gcc_macro().
*/
{
- char tmp[ 16];
-
- if (std_val != -1L) { /* Version is specified */
- if (cplus_val)
- cplus_val = std_val; /* Value of __cplusplus */
- else
- stdc_ver = std_val; /* Value of __STDC_VERSION__ */
- } else {
- if (! cplus_val)
- stdc_ver = stdc_val ? STDC_VERSION : 0L;
- }
+ char tmp[ 16];
- if (nflag) {
- un_predefine( TRUE);
-#if COMPILER == GNUC
- undef_gcc_macro( TRUE);
-#endif
- } else if (stdc_val || cplus_val) {
- un_predefine( FALSE); /* Undefine "unix" or so */
-#if COMPILER == GNUC
- undef_gcc_macro( FALSE);
-#endif
- }
- ACE_OS::sprintf( tmp, "%ldL", cplus_val ? cplus_val : stdc_ver);
- if (cplus_val) {
- look_and_install( "__cplusplus", DEF_NOARGS - 2, null, tmp);
- } else {
- if (stdc_ver)
- look_and_install( "__STDC_VERSION__", DEF_NOARGS - 2, null, tmp);
+ if (std_val != -1L) { /* Version is specified */
+ if (cplus_val)
+ cplus_val = std_val; /* Value of __cplusplus */
+ else
+ stdc_ver = std_val; /* Value of __STDC_VERSION__ */
+ } else {
+ if (! cplus_val)
+ stdc_ver = stdc_val ? STDC_VERSION : 0L;
+ }
+
+ if (nflag) {
+ un_predefine( TRUE);
+ } else if (stdc_val || cplus_val) {
+#if COMPILER != GNUC
+ un_predefine( FALSE); /* Undefine "unix" or so */
+#endif
+ }
+ ACE_OS::sprintf( tmp, "%ldL", cplus_val ? cplus_val : stdc_ver);
+ if (cplus_val) {
+ look_and_install( "__cplusplus", DEF_NOARGS_STANDARD, null, tmp);
+ } else {
+ if (stdc_ver)
+ look_and_install( "__STDC_VERSION__", DEF_NOARGS_STANDARD, null
+ , tmp);
#ifdef COMPILER_CPLUS
- if (! nflag) /* Undefine pre-defined macro for C++ */
- undefine( COMPILER_CPLUS);
-#endif
- }
- set_limit();
- stdc2 = cplus_val || stdc_ver >= 199901L;
- stdc3 = (cplus_val >= 199901L) || (stdc_ver >= 199901L);
- /* (cplus_val >= 199901L) makes C++ C99-compatible specs */
- if (standard)
- init_std_defines();
- if (stdc3)
- set_pragma_op();
+ if (! nflag) /* Undefine pre-defined macro for C++ */
+ undefine( COMPILER_CPLUS);
+#endif
+ }
+ set_limit();
+ stdc2 = cplus_val || stdc_ver >= 199901L;
+ stdc3 = (cplus_val >= 199901L) || (stdc_ver >= 199901L);
+ /* (cplus_val >= 199901L) makes C++ C99-compatible specs */
+ if (standard)
+ init_std_defines();
+ if (stdc3)
+ set_pragma_op();
}
static void init_std_defines( void)
/*
* For STD and POST_STD modes.
- * The magic pre-defines (Standard predefined macros) are initialized with
- * negative argument counts. expand_macro() notices this and calls the
- * appropriate routine. DEF_NOARGS is one greater than the first "magic"
- * definition. 'DEF_NOARGS - n' is reserved for pre-defined macros.
+ * The magic pre-defines are initialized with magic argument counts.
+ * expand_macro() notices this and calls the appropriate routine.
+ * DEF_NOARGS is one greater than the first "magic" definition.
+ * 'DEF_NOARGS - n' are reserved for pre-defined macros.
* __STDC_VERSION__ and __cplusplus are defined by chk_opts() and set_cplus().
*/
{
- char tmp[ 16];
- char timestr[ 14];
- time_t tvec;
- char * tstring;
-
- look_and_install( "__LINE__", DEF_NOARGS - 3, null, "-1234567890");
- /* Room for 11 chars (10 for long and 1 for '-' in case of wrap round. */
- look_and_install( "__FILE__", DEF_NOARGS - 4, null, null);
- /* Should be stuffed */
-
- /* Define __DATE__, __TIME__ as present date and time. */
- ACE_OS::time( &tvec);
- tstring = ACE_OS::ctime( &tvec);
- ACE_OS::sprintf( timestr, "\"%.3s %c%c %.4s\"",
- tstring + 4,
- *(tstring + 8) == '0' ? ' ' : *(tstring + 8),
- *(tstring + 9),
- tstring + 20);
- look_and_install( "__DATE__", DEF_NOARGS - 2, null, timestr);
- ACE_OS::sprintf( timestr, "\"%.8s\"", tstring + 11);
- look_and_install( "__TIME__", DEF_NOARGS - 2, null, timestr);
-
- if (! look_id( "__STDC_HOSTED__")) {
- /*
- * Some compilers, e.g. GCC older than 3.3, define this macro by
- * -D option.
- */
- ACE_OS::sprintf( tmp, "%d", STDC_HOSTED);
- look_and_install( "__STDC_HOSTED__", DEF_NOARGS - 1, null, tmp);
- }
+ char tmp[ 16];
+ char timestr[ 14];
+ time_t tvec;
+ char * tstring;
+
+ look_and_install( "__LINE__", DEF_NOARGS_DYNAMIC - 1, null, "-1234567890");
+ /* Room for 11 chars (10 for long and 1 for '-' in case of wrap round. */
+ look_and_install( "__FILE__", DEF_NOARGS_DYNAMIC - 2, null, null);
+ /* Should be stuffed */
+
+ /* Define __DATE__, __TIME__ as present date and time. */
+ ACE_OS::time( &tvec);
+ tstring = ACE_OS::ctime( &tvec);
+ ACE_OS::sprintf( timestr, "\"%.3s %c%c %.4s\"",
+ tstring + 4,
+ *(tstring + 8) == '0' ? ' ' : *(tstring + 8),
+ *(tstring + 9),
+ tstring + 20);
+ look_and_install( "__DATE__", DEF_NOARGS_DYNAMIC, null, timestr);
+ ACE_OS::sprintf( timestr, "\"%.8s\"", tstring + 11);
+ look_and_install( "__TIME__", DEF_NOARGS_DYNAMIC, null, timestr);
+
+ if (! look_id( "__STDC_HOSTED__")) {
+ /*
+ * Some compilers, e.g. GCC older than 3.3, define this macro by
+ * -D option.
+ */
+ ACE_OS::sprintf( tmp, "%d", STDC_HOSTED);
+ look_and_install( "__STDC_HOSTED__", DEF_NOARGS_PREDEF, null, tmp);
+ }
#if COMPILER != GNUC /* GCC do not undefine __STDC__ on C++ */
- if (cplus_val)
- return;
+ if (cplus_val)
+ return;
#endif
- /* Define __STDC__ as 1 or such for Standard conforming compiler. */
- if (! look_id( "__STDC__")) {
- ACE_OS::sprintf( tmp, "%d", stdc_val);
- look_and_install( "__STDC__", DEF_NOARGS - 2, null, tmp);
- }
+ /* Define __STDC__ as 1 or such for Standard conforming compiler. */
+ if (! look_id( "__STDC__")) {
+ ACE_OS::sprintf( tmp, "%d", stdc_val);
+ look_and_install( "__STDC__", DEF_NOARGS_STANDARD, null, tmp);
+ }
}
static void set_limit( void)
@@ -1651,35 +1989,35 @@ static void set_limit( void)
* Set the minimum translation limits specified by the Standards.
*/
{
- if (cplus_val) { /* Specified by C++ 1998 Standard */
- str_len_min = SLEN_CPLUS_MIN;
- id_len_min = IDLEN_CPLUS_MIN;
- n_mac_pars_min = NMACPARS_CPLUS_MIN;
- exp_nest_min = EXP_NEST_CPLUS_MIN;
- blk_nest_min = BLK_NEST_CPLUS_MIN;
- inc_nest_min = INCLUDE_NEST_CPLUS_MIN;
- n_macro_min = NMACRO_CPLUS_MIN;
- line_limit = LINE_CPLUS_LIMIT;
- } else if (stdc_ver >= 199901L) { /* Specified by C 1999 Standard */
- str_len_min = SLEN99MIN;
- id_len_min = IDLEN99MIN;
- n_mac_pars_min = NMACPARS99MIN;
- exp_nest_min = EXP_NEST99MIN;
- blk_nest_min = BLK_NEST99MIN;
- inc_nest_min = INCLUDE_NEST99MIN;
- n_macro_min = NMACRO99MIN;
- line_limit = LINE99LIMIT;
- } else if (standard) { /* Specified by C 1990 Standard */
- str_len_min = SLEN90MIN;
- id_len_min = IDLEN90MIN;
- n_mac_pars_min = NMACPARS90MIN;
- exp_nest_min = EXP_NEST90MIN;
- blk_nest_min = BLK_NEST90MIN;
- inc_nest_min = INCLUDE_NEST90MIN;
- n_macro_min = NMACRO90MIN;
- line_limit = LINE90LIMIT;
- }
- /* Else pre-Standard mode */
+ if (cplus_val) { /* Specified by C++ 1998 Standard */
+ std_limits.str_len = SLEN_CPLUS_MIN;
+ std_limits.id_len = IDLEN_CPLUS_MIN;
+ std_limits.n_mac_pars = NMACPARS_CPLUS_MIN;
+ std_limits.exp_nest = EXP_NEST_CPLUS_MIN;
+ std_limits.blk_nest = BLK_NEST_CPLUS_MIN;
+ std_limits.inc_nest = INCLUDE_NEST_CPLUS_MIN;
+ std_limits.n_macro = NMACRO_CPLUS_MIN;
+ std_limits.line_num = LINE_CPLUS_LIMIT;
+ } else if (stdc_ver >= 199901L) { /* Specified by C 1999 Standard */
+ std_limits.str_len = SLEN99MIN;
+ std_limits.id_len = IDLEN99MIN;
+ std_limits.n_mac_pars = NMACPARS99MIN;
+ std_limits.exp_nest = EXP_NEST99MIN;
+ std_limits.blk_nest = BLK_NEST99MIN;
+ std_limits.inc_nest = INCLUDE_NEST99MIN;
+ std_limits.n_macro = NMACRO99MIN;
+ std_limits.line_num = LINE99LIMIT;
+ } else if (standard) { /* Specified by C 1990 Standard */
+ std_limits.str_len = SLEN90MIN;
+ std_limits.id_len = IDLEN90MIN;
+ std_limits.n_mac_pars = NMACPARS90MIN;
+ std_limits.exp_nest = EXP_NEST90MIN;
+ std_limits.blk_nest = BLK_NEST90MIN;
+ std_limits.inc_nest = INCLUDE_NEST90MIN;
+ std_limits.n_macro = NMACRO90MIN;
+ std_limits.line_num = LINE90LIMIT;
+ }
+ /* Else pre-Standard mode */
}
static void set_pragma_op( void)
@@ -1690,86 +2028,145 @@ static void set_pragma_op( void)
* macro.
*/
{
- const char * name = "_Pragma";
- char tmp[ 16];
+ const char * name = "_Pragma";
+ char tmp[ 16];
- ACE_OS::sprintf( tmp, "%c%s ( %c%c )", DEF_MAGIC, name, MAC_PARM, 1);
- /* Replacement text */
- look_and_install( name, DEF_PRAGMA, "a", tmp);
+ ACE_OS::sprintf( tmp, "%c%s ( %c%c )", DEF_MAGIC, name, MAC_PARM, 1);
+ /* Replacement text */
+ look_and_install( name, DEF_PRAGMA, "a", tmp);
}
-void at_start( void)
+void init_sys_macro( void)
/*
- * Do the commands prior to processing main source file.
+ * Define system-specific macros and some Standard required macros
+ * and undefine macros specified by -U options.
*/
{
- /*
- * Set multi-byte character encoding according to environment variables
- * LC_ALL, LC_CTYPE and LANG -- with preference in this order.
- */
- char * env;
+ /* This order is important. */
+ def_macros(); /* Define macros specified by -D */
+#if COMPILER == GNUC
+ chk_env();
+#endif
+ init_predefines(); /* Define predefined macros */
+#if COMPILER == GNUC
+ init_gcc_macro();
+#elif COMPILER == MSC
+ init_msc_macro();
+#endif
+ undef_macros(); /* Undefine macros specified by -U */
+ if (mcpp_debug & MACRO_CALL)
+ dump_def( FALSE, TRUE); /* Finally putout current macro names */
+}
- if (mb_changed)
- return; /* -m option precedes */
+void at_start( void)
+/*
+ * Do the commands prior to processing main source file after do_options().
+ */
+{
+ char * env;
+ FILEINFO * file_saved = infile;
+
+ /*
+ * Set multi-byte character encoding according to environment variables
+ * LC_ALL, LC_CTYPE and LANG -- with preference in this order.
+ */
+ if (! mb_changed) { /* -m option precedes */
if ((env = ACE_OS::getenv( "LC_ALL")) != 0)
- set_encoding( env, "LC_ALL", 0);
+ set_encoding( env, "LC_ALL", 0);
else if ((env = ACE_OS::getenv( "LC_CTYPE")) != 0)
- set_encoding( env, "LC_CTYPE", 0);
+ set_encoding( env, "LC_CTYPE", 0);
else if ((env = ACE_OS::getenv( "LANG")) != 0)
- set_encoding( env, "LANG", 0);
+ set_encoding( env, "LANG", 0);
+ }
#if COMPILER == GNUC || COMPILER == MSC
-#if COMPILER == GNUC
- /* -fworking-directory */
- if (gcc_work_dir && (preinclude <= --preinc_end && *preinc_end != 0)) {
- open_include( *preinc_end, TRUE, FALSE);
- src_line++;
- put_info(); /* Putout the current directory */
- src_line--;
- }
-#endif
+ if (option_flags.dollar_in_name)
+ char_type[ 0x24] |= LET; /* Enable '$' in identifiers */
+ /*
+ * Do the -include (-Fl for MSC) options in the specified order.
+ * Note: This functionality is implemented as nested #includes
+ * which results the same effect as sequential #includes.
+ */
+ {
+ char ** preinc;
/*
- * Do the -include (-Fl for MSC) options in the specified order.
- * Note: This functionality is implemented as nested #includes
- * which results the same effect as sequential #includes.
+ * Note: Here, 'infile' is the main input file, which is pseudo-
+ * parent file of the files to pre-include. So, we must
+ * temporarily set the infile's directory to the current directory
+ * in order to preinclude the files relative to it.
*/
- while (preinclude <= --preinc_end && *preinc_end != 0)
- open_include( *preinc_end, TRUE, FALSE);
+ preinc = preinc_end;
+ while (preinclude <= --preinc && *preinc != 0)
+ open_file( &null, 0, *preinc, TRUE, TRUE, FALSE);
+ }
+#endif
+
+ put_info( file_saved);
+}
+
+static void put_info(
+ FILEINFO * sharp_file
+ )
+/*
+ * Putout compiler-specific information.
+ */
+{
+ if (no_output || option_flags.p)
+ return;
+ sharp_file->line++;
+ sharp( sharp_file, 0);
+ sharp_file->line--;
+#if COMPILER == GNUC
+ if (gcc_work_dir)
+ mcpp_fprintf( OUT, "%s%ld \"%s%c\"\n"
+ , std_line_prefix ? "#line " : LINE_PREFIX
+ , 1, cur_work_dir, '/');
+ /* Putout the current directory as a #line line as: */
+ /* '# 1 "/abs-path/cur_dir//"'. */
+ mcpp_fprintf( OUT, "%s%ld \"<built-in>\"\n"
+ , std_line_prefix ? "#line " : LINE_PREFIX , 1);
+ mcpp_fprintf( OUT, "%s%ld \"<command line>\"\n"
+ , std_line_prefix ? "#line " : LINE_PREFIX , 1);
+ mcpp_fprintf( OUT, "%s%ld \"%s\"%s\n"
+ , std_line_prefix ? "#line " : LINE_PREFIX, 1, cur_fullname
+ , ! str_eq( cur_fullname, sharp_file->full_fname) ? " 1" : null);
+ /* Suffix " 1" for the file specified by -include */
#endif
}
static char * set_files(
- int argc,
- char ** argv,
- char ** in_pp,
- char ** out_pp
-)
+ int argc,
+ char ** argv,
+ char ** in_pp,
+ char ** out_pp
+ )
/*
* Set input and/or output files.
*/
{
- char * cp;
+ char * cp;
- if (*in_pp == 0) { /* Input file */
- cp = argv[ optind++];
+ if (*in_pp == 0) { /* Input file */
+ cp = argv[ mcpp_optind++];
#if SYS_FAMILY == SYS_WIN
- cp = bsl2sl( cp);
+ cp = bsl2sl( cp);
#endif
- *in_pp = cp;
- }
- if (optind < argc && argv[ optind][ 0] != '-' && *out_pp == 0) {
- cp = argv[ optind++];
+ *in_pp = cp;
+ }
+ if (mcpp_optind < argc && argv[ mcpp_optind][ 0] != '-'
+ && *out_pp == 0) {
+ cp = argv[ mcpp_optind++];
#if SYS_FAMILY == SYS_WIN
- cp = bsl2sl( cp);
-#endif
- *out_pp = cp; /* Output file */
- }
- if (optind >= argc)
- return 0; /* Exhausted command line arguments */
- if (argv[ optind][ 0] == '-')
- return argv[ optind]; /* More options */
- cfatal( "Excessive file argument \"%s\"", argv[ optind], 0L , 0);
- return 0;
+ cp = bsl2sl( cp);
+#endif
+ *out_pp = cp; /* Output file */
+ }
+ if (mcpp_optind >= argc)
+ return 0; /* Exhausted command line arguments */
+ if (argv[ mcpp_optind][ 0] == '-')
+ return argv[ mcpp_optind]; /* More options */
+ cfatal( "Excessive file argument \"%s\"", argv[ mcpp_optind], 0L , 0);
+ return 0;
}
static void set_env_dirs( void)
@@ -1777,523 +2174,613 @@ static void set_env_dirs( void)
* Add to include path those specified by environment variables.
*/
{
- const char * env;
-
- if (cplus_val) {
- if ((env = ACE_OS::getenv( ENV_CPLUS_INCLUDE_DIR)) != 0)
- parse_env( env);
- }
- if ((env = ACE_OS::getenv( ENV_C_INCLUDE_DIR)) != 0)
- parse_env( env);
+ const char * env;
+
+ if (cplus_val) {
+ if ((env = ACE_OS::getenv( ENV_CPLUS_INCLUDE_DIR)) != 0)
+ parse_env( env);
+ }
+ if ((env = ACE_OS::getenv( ENV_C_INCLUDE_DIR)) != 0)
+ parse_env( env);
}
static void parse_env(
- const char * env
-)
+ const char * env
+ )
/*
* Parse environmental variable and append the path to include-dir-list.
*/
{
- char * save;
- char * save_start;
- char * p;
- int sep;
-
- save = save_start = save_string( env);
- while (*save) {
- p = save;
- while (*p && *p != ENV_SEP)
- p++;
- if (p != save) { /* Variable separator */
- sep = *p;
- *p = EOS;
- set_a_dir( save);
- if (sep == EOS)
- break;
- save = ++p;
- }
- while (*save == ENV_SEP)
- ++save;
+ char * save;
+ char * save_start;
+ char * p;
+ int sep;
+
+ save = save_start = save_string( env);
+ while (*save) {
+ p = save;
+ while (*p && *p != ENV_SEP)
+ p++;
+ if (p != save) { /* Variable separator */
+ sep = *p;
+ *p = EOS;
+ set_a_dir( save);
+ if (sep == EOS)
+ break;
+ save = ++p;
}
- ACE_OS::free( save_start);
+ while (*save == ENV_SEP)
+ ++save;
+ }
+ ACE_OS::free( save_start);
}
static void set_sys_dirs(
- int set_cplus_dir /* Set C++ include-directory too */
-)
+ int set_cplus_dir /* Set C++ include-directory too */
+ )
/*
* Set site-specific and system-specific directories to the include directory
* list.
*/
{
- if (cplus_val && set_cplus_dir) {
+ if (cplus_val && set_cplus_dir) {
#ifdef CPLUS_INCLUDE_DIR1
- set_a_dir( CPLUS_INCLUDE_DIR1);
+ set_a_dir( CPLUS_INCLUDE_DIR1);
#endif
#ifdef CPLUS_INCLUDE_DIR2
- set_a_dir( CPLUS_INCLUDE_DIR2);
+ set_a_dir( CPLUS_INCLUDE_DIR2);
#endif
#ifdef CPLUS_INCLUDE_DIR3
- set_a_dir( CPLUS_INCLUDE_DIR3);
+ set_a_dir( CPLUS_INCLUDE_DIR3);
#endif
#ifdef CPLUS_INCLUDE_DIR4
- set_a_dir( CPLUS_INCLUDE_DIR4);
+ set_a_dir( CPLUS_INCLUDE_DIR4);
#endif
- }
+ }
#if SYS_FAMILY == SYS_UNIX
- set_a_dir( "/usr/local/include");
+ set_a_dir( "/usr/local/include");
#endif
-#ifdef C_INCLUDE_DIR1
- set_a_dir( C_INCLUDE_DIR1);
+#ifdef C_INCLUDE_DIR1
+ set_a_dir( C_INCLUDE_DIR1);
#endif
#ifdef C_INCLUDE_DIR2
- set_a_dir( C_INCLUDE_DIR2);
+ set_a_dir( C_INCLUDE_DIR2);
#endif
#if SYS_FAMILY == SYS_UNIX
#if SYSTEM == SYS_CYGWIN
- if (no_cygwin) /* -mno-cygwin */
- set_a_dir( "/usr/include/mingw");
- else
- set_a_dir( "/usr/include");
+ if (no_cygwin) /* -mno-cygwin */
+ set_a_dir( "/usr/include/mingw");
+ else
+ set_a_dir( "/usr/include");
#else
- set_a_dir( "/usr/include"); /* Should be placed after C_INCLUDE_DIR? */
+ set_a_dir( "/usr/include"); /* Should be placed after C_INCLUDE_DIR? */
#endif
#endif
}
static void set_a_dir(
- const char * dirname /* The path-name */
-)
+ const char * dirname /* The path-name */
+ )
/*
- * Append an include directory, checking array boundary.
+ * Append an include directory.
* This routine is called from the following routines (in this order).
* 1. do_options() by -I option.
* 2. do_options() by -isystem option (for GNUC).
* 3. set_env_dirs() by environment variables.
* 4. set_sys_dirs() by CPLUS_INCLUDE_DIR?, C_INCLUDE_DIR? and system-
* specifics (unless -I- or -nostdinc option is specified).
+ * Ignore non-existent directory.
+ * Note that this routine should be called only in initializing steps,
+ * because increase of include dirs causes reallocation of incdir[].
* Note: a trailing PATH-DELIM is appended by norm_path().
*/
{
- char * norm_name;
- const char ** ip;
-
- norm_name = norm_path( dirname, 0);
- /* Normalize the pathname to compare */
- for (ip = incdir; ip < incend; ip++) {
- if (str_eq( *ip, norm_name)) {
- ACE_OS::free( norm_name);
- return;
- }
+ char * norm_name;
+ const char ** ip;
+
+ if (incdir == 0) { /* Should be initialized */
+ max_inc = INIT_NUM_INCLUDE;
+ incdir = (const char **) xmalloc( sizeof (char *) * max_inc);
+ incend = &incdir[ 0];
+ } else if (incend - incdir >= max_inc) { /* Buffer full */
+#if SYSTEM == SYS_MAC
+ size_t framework_pos = to_search_framework - incdir;
+#endif
+#if COMPILER == GNUC
+ size_t sys_pos = 0;
+ if (sys_dirp)
+ sys_pos = sys_dirp - incdir;
+#endif
+ incdir = (const char **) xrealloc( reinterpret_cast <char *> (incdir), sizeof (char *) * max_inc * 2);
+ incend = &incdir[ max_inc];
+#if COMPILER == GNUC
+ if (sys_pos)
+ sys_dirp = &incdir[ sys_pos];
+#endif
+#if SYSTEM == SYS_MAC
+ to_search_framework = &incdir[ framework_pos];
+#endif
+ max_inc *= 2;
+ }
+
+ if (dirname == 0)
+ return; /* Only to initialize incdir[] */
+ norm_name = norm_dir( dirname, FALSE);
+ if (! norm_name) /* Non-existent */
+ return;
+ for (ip = incdir; ip < incend; ip++) {
+ if (str_case_eq( *ip, norm_name)) {
+ if (option_flags.v && ! (mcpp_debug & MACRO_CALL))
+ mcpp_fprintf( ERR, "Duplicate directory \"%s\" is ignored\n"
+ , norm_name);
+ ACE_OS::free( norm_name); /* Already registered */
+ return;
+ }
+ }
+ /* Register new directory */
+ *incend++ = norm_name;
+}
+
+#if SYSTEM == SYS_MAC && COMPILER == GNUC
+/* Definitions for "header map" file of Xcode / Apple-GCC. */
+/* These definitions were taken from cpplib.h of Apple-GCC-4.0.1 */
+
+#define HMAP_SAME_ENDIANNESS_MAGIC \
+ (((((('h' << 8) | 'm') << 8) | 'a') << 8) | 'p')
+
+typedef unsigned short uint16;
+typedef unsigned int uint32;
+
+struct hmap_bucket
+{
+ uint32 key; /* Offset (into strings) of key */
+ struct {
+ uint32 prefix; /* Offset (into strings) of value prefix */
+ uint32 suffix; /* Offset (into strings) of value suffix */
+ } value; /* Value (prefix- and suffix-strings) */
+};
+
+struct hmap_header_map
+{
+ uint32 magic; /* Magic word, also indicates byte order */
+ uint16 version; /* Version number -- currently 1 */
+ uint16 _reserved; /* Reserved for future use -- zero for now */
+ uint32 strings_offset; /* Offset to start of string pool */
+ uint32 count; /* Number of entries in the string table */
+ uint32 capacity; /* Number of buckets (always a power of 2) */
+ uint32 max_value_length;
+ /* Length of longest result path (excl. '\0') */
+ struct hmap_bucket buckets[1];
+ /* Inline array of 'capacity' maptable buckets */
+ /* Strings follow the buckets, at strings_offset. */
+};
+#endif
+
+static char * norm_dir(
+ const char * dirname, /* Directory path to normalize */
+ int /*framework*/ /* Setting a framework directory*/
+ )
+/*
+ * Normalize include directory path.
+ * Handle -isysroot option for GCC, including framework directory for SYS_MAC.
+ */
+{
+ char * norm_name;
+
+#if COMPILER == GNUC
+ if (sysroot && sys_dirp) {
+ /* Logical system root specified and dirname is system header dir */
+ char delim[ 2] = { EOS, EOS};
+ char * dir;
+#if SYSTEM == SYS_MAC
+ if (! framework && memcmp( dirname, "/usr/", 5) != 0)
+ return 0; /* /Developer/usr/lib/gcc/ */
+#endif
+ if (dirname[ 0] != PATH_DELIM)
+ delim[ 0] = PATH_DELIM;
+ dir = xmalloc( ACE_OS::strlen( sysroot) + ACE_OS::strlen( dirname) + 2);
+ ACE_OS::sprintf( dir, "%s%s%s", sysroot, delim, dirname);
+ dirname = dir;
+ }
+#endif
+#if SYSTEM == SYS_MAC && COMPILER == GNUC
+ if (ACE_OS::strlen( dirname) > 5
+ && str_case_eq( dirname + ACE_OS::strlen( dirname) - 5, ".hmap")) {
+ /* "header map" file (not an include directory) */
+ norm_name = norm_path( null, dirname, FALSE, TRUE);
+ if (! norm_name && option_flags.v)
+ mcpp_fprintf( ERR, "Invalid header map file \"%s\" is ignored\n"
+ , dirname);
+ } else
+#endif
+ {
+ norm_name = norm_path( dirname, 0, FALSE, FALSE);
+ /* Normalize the pathname to compare */
+ if (! norm_name && option_flags.v && ! (mcpp_debug & MACRO_CALL))
+ mcpp_fprintf( ERR, "Non-existent directory \"%s\" is ignored\n"
+ , dirname);
}
- if (& incdir[ NINCLUDE - 1] < incend)
- cfatal( "Too many include directories %s" /* _F_ */
- , norm_name, 0L, 0);
- *incend++ = norm_name;
+#if COMPILER == GNUC
+ if (sysroot && sys_dirp)
+ ACE_OS::free( dirname);
+#endif
+
+ return norm_name;
}
static char * norm_path(
- const char * dir, /* Include directory (maybe a pointer to "") */
- const char * fname /* Filename (possibly has directory part) */
-)
+ const char * dir, /* Include directory (maybe "", never 0) */
+ const char * fname,
+ /* Filename (possibly has directory part, or maybe 0) */
+ int inf, /* If TRUE, output some infs when (mcpp_debug & PATH) */
+ int /*hmap*/ /* "header map" file of Apple-GCC */
+ )
/*
* Normalize the pathname removing redundant components such as
* "foo/../", "./" and trailing "/.".
* Append trailing "/" if 'fname' is 0.
* Change relative path to absolute path.
* Dereference a symbolic linked file (or directory) to a real directory/file.
- * Returns a malloc'ed buffer.
+ * Return a malloc'ed buffer, if the directory/file exists.
+ * Return 0, if the specified directory/file does not exist or 'dir' is
+ * not a directory or 'fname' is not a regular file.
* This routine is called from set_a_dir(), init_gcc_macro(), do_once() and
* open_file().
*/
{
- char * norm_name;
- char * start;
- char * cp1;
- char * cp2;
- char * abs_path;
- int len; /* Should not be size_t */
- size_t start_pos = 0;
- char slbuf1[ FILENAMEMAX+1];
+ char * norm_name; /* The path-list converted */
+ char * start;
+ char * cp1;
+ char * cp2;
+ char * abs_path;
+ int len; /* Should not be size_t */
+ size_t start_pos = 0;
+ char slbuf1[ PATHMAX+1]; /* Working buffer */
#if SYS_FAMILY == SYS_UNIX
- char slbuf2[ FILENAMEMAX+1];
+ char slbuf2[ PATHMAX+1]; /* Working buffer for dereferencing */
#endif
#if SYSTEM == SYS_CYGWIN || SYSTEM == SYS_MINGW
- static char * root_dir;
- static size_t root_dir_len;
+ static char * root_dir;
+ /* System's root directory in Windows file system */
+ static size_t root_dir_len;
#if SYSTEM == SYS_CYGWIN
- static char * cygdrive = "/cygdrive/";
+ static char * cygdrive = "/cygdrive/"; /* Prefix for drive letter */
#else
- static char * mingw_dir;
- static size_t mingw_dir_len;
+ static char * mingw_dir; /* "/mingw" dir in Windows */
+ static size_t mingw_dir_len;
#endif
#endif
- ACE_OS::strcpy( slbuf1, dir); /* Include directory */
- len = ACE_OS::strlen( slbuf1);
- if (len && slbuf1[ len - 1] != PATH_DELIM) {
- slbuf1[ len] = PATH_DELIM; /* Append PATH_DELIM */
- slbuf1[ len + 1] = EOS;
- }
-#if SYS_FAMILY == SYS_UNIX
- /* Dereference symbolic linked directory or file, if any */
- slbuf2[ 0] = EOS;
- if (*dir && ! fname) { /* Registering include directory */
- /* Symbolic link check of directories are required */
- deref_syml( slbuf1, slbuf2, slbuf1);
- }
- if (fname) {
- len = ACE_OS::strlen( slbuf1);
- ACE_OS::strcat( slbuf1, fname);
- deref_syml( slbuf1, slbuf2, slbuf1 + len);
- /* Symbolic link check of directory */
- if ((len = ACE_OS::readlink( slbuf1, slbuf2, FILENAMEMAX)) > 0) {
- /* Dereference symbolic linked file (not directory) */
- *(slbuf2 + len) = EOS;
- ACE_OS::strcpy( slbuf1, slbuf2);
- }
- }
- if (mcpp_debug & PATH) {
- if (slbuf2[ 0])
- mcpp_fprintf( DBG, "Dereferenced \"%s%s\" to \"%s\"\n"
- , dir, fname ? fname : "", slbuf1);
- }
+#if HOST_COMPILER == MSC
+ struct _stat st_buf;
#else
- if (fname)
- ACE_OS::strcat( slbuf1, fname);
-#endif
+ ACE_stat st_buf;
+#endif
+
+ if (! dir || (*dir && is_full_path( fname)))
+ cfatal( "Bug: Wrong argument to norm_path()" /* _F_ */
+ , 0, 0L, 0);
+ inf = inf && (mcpp_debug & PATH); /* Output information */
+
+ ACE_OS::strcpy( slbuf1, dir); /* Include directory */
+ len = ACE_OS::strlen( slbuf1);
+ if (fname && len && slbuf1[ len - 1] != PATH_DELIM) {
+ slbuf1[ len] = PATH_DELIM; /* Append PATH_DELIM */
+ slbuf1[ ++len] = EOS;
+ } else if (! fname && len && slbuf1[ len - 1] == PATH_DELIM) {
+ /* stat() of some systems do not like trailing '/' */
+ slbuf1[ --len] = EOS;
+ }
+ if (fname)
+ ACE_OS::strcat( slbuf1, fname);
+ if (ACE_OS::stat( slbuf1, & st_buf) != 0 /* Non-existent */
+ || (! fname && ! S_ISDIR( st_buf.st_mode))
+ /* Not a directory though 'fname' is not specified */
+ || (fname && ! S_ISREG( st_buf.st_mode)))
+ /* Not a regular file though 'fname' is specified */
+ return 0;
+#if SYSTEM == SYS_MAC && COMPILER == GNUC
+ if (hmap) { /* Dirty "header map" file */
+ struct hmap_header_map hmap;
+ size_t cnt;
+ FILE * fp;
+ fp = fopen( fname, "r");
+ cnt = fread( & hmap, sizeof (struct hmap_header_map), 1, fp);
+ fclose( fp);
+ if (cnt == 0 || hmap.magic != HMAP_SAME_ENDIANNESS_MAGIC)
+ return 0;
+ }
+#endif
+ if (! fname) {
+ slbuf1[ len] = PATH_DELIM; /* Append PATH_DELIM */
+ slbuf1[ ++len] = EOS;
+ }
+#if SYS_FAMILY == SYS_UNIX
+ /* Dereference symbolic linked directory or file, if any */
+ slbuf1[ len] = EOS; /* Truncate PATH_DELIM and 'fname' part, if any */
+ slbuf2[ 0] = EOS;
+ if (*dir && ! fname) { /* Registering include directory */
+ /* Symbolic link check of directories are required */
+ deref_syml( slbuf1, slbuf2, slbuf1);
+ } else if (fname) { /* Regular file */
len = ACE_OS::strlen( slbuf1);
- start = norm_name = xmalloc( len + 1); /* Need a new buffer */
- ACE_OS::strcpy( norm_name, slbuf1);
+ ACE_OS::strcat( slbuf1, fname);
+ deref_syml( slbuf1, slbuf2, slbuf1 + len);
+ /* Symbolic link check of directory */
+ if ((len = ACE_OS::readlink( slbuf1, slbuf2, PATHMAX)) > 0) {
+ /* Dereference symbolic linked file (not directory) */
+ *(slbuf2 + len) = EOS;
+ cp1 = slbuf1;
+ if (slbuf2[ 0] != PATH_DELIM) { /* Relative path */
+ cp2 = ACE_OS::strrchr( slbuf1, PATH_DELIM);
+ if (cp2) /* Append to the source directory */
+ cp1 = cp2 + 1;
+ }
+ ACE_OS::strcpy( cp1, slbuf2);
+ }
+ }
+ if (inf) {
+ if (slbuf2[ 0])
+ mcpp_fprintf( DBG, "Dereferenced \"%s%s\" to \"%s\"\n"
+ , dir, fname ? fname : null, slbuf1);
+ }
+#endif
+ len = ACE_OS::strlen( slbuf1);
+ start = norm_name = xmalloc( len + 1); /* Need a new buffer */
+ ACE_OS::strcpy( norm_name, slbuf1);
#if SYS_FAMILY == SYS_WIN
- bsl2sl( norm_name);
-#endif
-#if FNAME_FOLD
- conv_case( norm_name, norm_name + len, LOWER);
+ bsl2sl( norm_name);
#endif
#if SPECIAL_PATH_DELIM /* ':' ? */
- for (cp1 = norm_name; *cp1 != EOS; cp1++) {
- if (*cp1 == PATH_DELIM)
- *cp1 = '/';
- }
+ for (cp1 = norm_name; *cp1 != EOS; cp1++) {
+ if (*cp1 == PATH_DELIM)
+ *cp1 = '/';
+ }
#endif
- cp1 = norm_name;
+ cp1 = norm_name;
#if SYSTEM == SYS_CYGWIN
- /* Convert to "/cygdirve/x/dir" style of absolute path-list */
- if (ACE_OS::memcmp( cp1, "/usr/bin", 8) == 0 || ACE_OS::memcmp( cp1, "/usr/lib", 8) == 0) {
- ACE_OS::memmove( cp1, cp1 + 4, len - 4 + 1); /* Remove "/usr" */
- len -= 4;
- }
- if (*cp1 == '/' && ACE_OS::memcmp( cp1, cygdrive, 10) != 0) {
- /* /dir, not /cygdrive/ */
- if (! root_dir_len) { /* Should be initialized */
- /* Convert "X:\DIR-list" to "/cygdrive/x/dir-list" */
- root_dir = xmalloc( ACE_OS::strlen( CYGWIN_ROOT_DIRECTORY) + 1);
- ACE_OS::strcpy( root_dir, CYGWIN_ROOT_DIRECTORY);
- conv_case( root_dir, root_dir + ACE_OS::strlen( root_dir), LOWER);
- *(root_dir + 1) = *root_dir; /* "x:/" to " x/" */
- cp1 = xmalloc( ACE_OS::strlen( cygdrive) + ACE_OS::strlen( root_dir));
- ACE_OS::strcpy( cp1, cygdrive);
- ACE_OS::strcat( cp1, root_dir + 1);
- ACE_OS::free( root_dir);
- root_dir = cp1;
- root_dir_len = ACE_OS::strlen( root_dir);
- }
- cp1 = xmalloc( root_dir_len + len + 1);
- ACE_OS::strcpy( cp1, root_dir);
- ACE_OS::strcat( cp1, norm_name); /* Convert to absolute path */
- ACE_OS::free( norm_name);
- norm_name = start = cp1;
- len += root_dir_len;
+ /* Convert to "/cygdirve/x/dir" style of absolute path-list */
+ if (len >= 8 && (memcmp( cp1, "/usr/bin", 8) == 0
+ || memcmp( cp1, "/usr/lib", 8) == 0)) {
+ memmove( cp1, cp1 + 4, len - 4 + 1); /* Remove "/usr" */
+ len -= 4;
+ }
+ if (*cp1 == '/' && (len < 10 || memcmp( cp1, cygdrive, 10) != 0)) {
+ /* /dir, not /cygdrive/ */
+ if (! root_dir_len) { /* Should be initialized */
+ /* Convert "X:\DIR-list" to "/cygdrive/x/dir-list" */
+ root_dir = xmalloc( ACE_OS::strlen( CYGWIN_ROOT_DIRECTORY) + 1);
+ ACE_OS::strcpy( root_dir, CYGWIN_ROOT_DIRECTORY);
+ *(root_dir + 1) = *root_dir; /* "x:/" to " x/" */
+ cp1 = xmalloc( ACE_OS::strlen( cygdrive) + ACE_OS::strlen( root_dir));
+ ACE_OS::strcpy( cp1, cygdrive);
+ ACE_OS::strcat( cp1, root_dir + 1);
+ ACE_OS::free( root_dir);
+ root_dir = cp1;
+ root_dir_len = ACE_OS::strlen( root_dir);
}
+ cp1 = xmalloc( root_dir_len + len + 1);
+ ACE_OS::strcpy( cp1, root_dir);
+ ACE_OS::strcat( cp1, norm_name); /* Convert to absolute path */
+ ACE_OS::free( norm_name);
+ norm_name = start = cp1;
+ len += root_dir_len;
+ }
#endif
#if SYSTEM == SYS_MINGW
- /* Handle the mess of MinGW's path-list */
- /* Convert to "x:/dir" style of absolute path-list */
- if (*cp1 == PATH_DELIM && ACE_OS::isalpha( *(cp1 + 1))
- && *(cp1 + 2) == PATH_DELIM) { /* /c/, /d/, etc*/
- *cp1 = *(cp1 + 1);
- *(cp1 + 1) = ':'; /* Convert to c:/, d:/, etc */
- } else if (ACE_OS::memcmp( cp1, "/mingw", 6) == 0) {
- if (! mingw_dir_len) { /* Should be initialized */
- mingw_dir_len = ACE_OS::strlen( MINGW_DIRECTORY);
- mingw_dir = xmalloc( mingw_dir_len + 1);
- ACE_OS::strcpy( mingw_dir, MINGW_DIRECTORY);
- conv_case( mingw_dir, mingw_dir + mingw_dir_len, LOWER);
- }
- cp1 = xmalloc( mingw_dir_len + len);
- ACE_OS::strcpy( cp1, mingw_dir);
- ACE_OS::strcat( cp1, norm_name + 6); /* Convert to absolute path */
- ACE_OS::free( norm_name);
- norm_name = start = cp1;
- len += mingw_dir_len;
- } else if (ACE_OS::memcmp( cp1, "/usr", 4) == 0) {
- ACE_OS::memmove( cp1, cp1 + 4, len - 4 + 1); /* Remove "/usr" */
- len -= 4;
- }
- if (*cp1 == '/') { /* /dir or / */
- if (! root_dir_len) { /* Should be initialized */
- root_dir_len = ACE_OS::strlen( MSYS_ROOT_DIRECTORY);
- root_dir = xmalloc( root_dir_len + 1);
- ACE_OS::strcpy( root_dir, MSYS_ROOT_DIRECTORY);
- conv_case( root_dir, root_dir + root_dir_len, LOWER);
- }
- cp1 = xmalloc( root_dir_len + len + 1);
- ACE_OS::strcpy( cp1, root_dir);
- ACE_OS::strcat( cp1, norm_name); /* Convert to absolute path */
- ACE_OS::free( norm_name);
- norm_name = start = cp1;
- len += root_dir_len;
+ /* Handle the mess of MinGW's path-list */
+ /* Convert to "x:/dir" style of absolute path-list */
+ if (*cp1 == PATH_DELIM && isalpha( *(cp1 + 1))
+ && *(cp1 + 2) == PATH_DELIM) { /* /c/, /d/, etc*/
+ *cp1 = *(cp1 + 1);
+ *(cp1 + 1) = ':'; /* Convert to c:/, d:/, etc */
+ } else if (memcmp( cp1, "/mingw", 6) == 0) {
+ if (! mingw_dir_len) { /* Should be initialized */
+ mingw_dir_len = ACE_OS::strlen( MINGW_DIRECTORY);
+ mingw_dir = xmalloc( mingw_dir_len + 1);
+ ACE_OS::strcpy( mingw_dir, MINGW_DIRECTORY);
}
+ cp1 = xmalloc( mingw_dir_len + len + 1);
+ ACE_OS::strcpy( cp1, mingw_dir);
+ ACE_OS::strcat( cp1, norm_name + 6); /* Convert to absolute path */
+ ACE_OS::free( norm_name);
+ norm_name = start = cp1;
+ len += mingw_dir_len;
+ } else if (memcmp( cp1, "/usr", 4) == 0) {
+ memmove( cp1, cp1 + 4, len - 4 + 1); /* Remove "/usr" */
+ len -= 4;
+ }
+ if (*cp1 == '/') { /* /dir or / */
+ if (! root_dir_len) { /* Should be initialized */
+ root_dir_len = ACE_OS::strlen( MSYS_ROOT_DIRECTORY);
+ root_dir = xmalloc( root_dir_len + 1);
+ ACE_OS::strcpy( root_dir, MSYS_ROOT_DIRECTORY);
+ }
+ cp1 = xmalloc( root_dir_len + len + 1);
+ ACE_OS::strcpy( cp1, root_dir);
+ ACE_OS::strcat( cp1, norm_name); /* Convert to absolute path */
+ ACE_OS::free( norm_name);
+ norm_name = start = cp1;
+ len += root_dir_len;
+ }
#endif
#if SYS_FAMILY == SYS_WIN
- if (*(cp1 + 1) == ':')
- start = cp1 += 2; /* Skip the drive letter */
- start_pos = 2;
-#endif
- if (len == 1 && *norm_name == '/') /* Only "/" */
- return norm_name;
-
- if (ACE_OS::strncmp( cp1, "./", 2) == 0) /* Remove beginning "./" */
- ACE_OS::memmove( cp1, cp1 + 2, ACE_OS::strlen( cp1 + 2) + 1); /* +1 for EOS */
- if (*start != '/') { /* Relative path to current directory */
- /* Make absolute path */
- abs_path = xmalloc( len + ACE_OS::strlen( cur_work_dir) + 1);
- cp1 = mcpp_stpcpy( abs_path, cur_work_dir);
- ACE_OS::strcpy( cp1, start);
- ACE_OS::free( norm_name);
- norm_name = abs_path;
- start = cp1 = norm_name + start_pos;
- }
-
- while ((cp1 = ACE_OS::strstr( cp1, "/./")) != 0)
- ACE_OS::memmove( cp1, cp1 + 2, ACE_OS::strlen( cp1 + 2) + 1);
- /* Remove "/." of "/./" */
- cp1 = start;
- /* Remove redundant "foo/../" */
- while ((cp1 = ACE_OS::strstr( cp1, "/../")) != 0) {
- *cp1 = EOS;
- if ((cp2 = ACE_OS::strrchr( start, '/')) != 0) {
- if (*(cp1 - 1) != '.') {
- ACE_OS::memmove( cp2 + 1, cp1 + 4, ACE_OS::strlen( cp1 + 4) + 1);
- /* Remove "foo/../" */
- cp1 = cp2;
- } else { /* Impossible */
- break;
- }
- } else { /* Impossible */
- break;
- }
+ if (*(cp1 + 1) == ':')
+ start = cp1 += 2; /* Next to the drive letter */
+ start_pos = 2;
+#endif
+ if (len == 1 && *norm_name == '/') /* Only "/" */
+ return norm_name;
+
+ if (ACE_OS::strncmp( cp1, "./", 2) == 0) /* Remove beginning "./" */
+ ACE_OS::memmove( cp1, cp1 + 2, ACE_OS::strlen( cp1 + 2) + 1); /* +1 for EOS */
+ if (*start != '/') { /* Relative path to current directory */
+ /* Make absolute path */
+ abs_path = xmalloc( len + ACE_OS::strlen( cur_work_dir) + 1);
+ cp1 = stpcpy( abs_path, cur_work_dir);
+ ACE_OS::strcpy( cp1, start);
+ ACE_OS::free( norm_name);
+ norm_name = abs_path;
+ start = cp1 = norm_name + start_pos;
+ }
+
+ while ((cp1 = ACE_OS::strstr( cp1, "/./")) != 0)
+ ACE_OS::memmove( cp1, cp1 + 2, ACE_OS::strlen( cp1 + 2) + 1);
+ /* Remove "/." of "/./" */
+ cp1 = start;
+ /* Remove redundant "foo/../" */
+ while ((cp1 = ACE_OS::strstr( cp1, "/../")) != 0) {
+ *cp1 = EOS;
+ if ((cp2 = ACE_OS::strrchr( start, '/')) != 0) {
+ if (*(cp1 - 1) != '.') {
+ ACE_OS::memmove( cp2 + 1, cp1 + 4, ACE_OS::strlen( cp1 + 4) + 1);
+ /* Remove "foo/../" */
+ cp1 = cp2;
+ } else { /* Impossible */
+ break;
+ }
+ } else { /* Impossible */
+ break;
}
+ }
#if SPECIAL_PATH_DELIM
- for (cp1 = start; *cp1 != EOS; cp1++) {
- if (*cp1 == '/')
- *cp1 = PATH_DELIM;
- }
-#endif
- if (mcpp_debug & PATH) {
- char debug_buf[ FILENAMEMAX+1];
- ACE_OS::strcpy( debug_buf, dir);
- ACE_OS::strcat( debug_buf, fname ? fname : "");
+ for (cp1 = start; *cp1 != EOS; cp1++) {
+ if (*cp1 == '/')
+ *cp1 = PATH_DELIM;
+ }
+#endif
+ if (inf) {
+ char debug_buf[ PATHMAX+1];
+ ACE_OS::strcpy( debug_buf, dir);
+ ACE_OS::strcat( debug_buf, fname ? fname : null);
#if SYS_FAMILY == SYS_WIN
- bsl2sl( debug_buf);
-#endif
-#if FNAME_FOLD
- conv_case( debug_buf, debug_buf + ACE_OS::strlen( debug_buf), LOWER);
+ bsl2sl( debug_buf);
#endif
- if (! str_eq( debug_buf, norm_name))
- mcpp_fprintf( DBG, "Normalized the path \"%s\" to \"%s\"\n"
+ if (! str_eq( debug_buf, norm_name))
+ mcpp_fprintf( DBG, "Normalized the path \"%s\" to \"%s\"\n"
, debug_buf, norm_name);
- }
+ }
- return norm_name;
+ return norm_name;
}
#if SYS_FAMILY == SYS_UNIX
static void deref_syml(
- char * slbuf1,
- char * slbuf2,
- char * chk_start
-)
+ char * slbuf1, /* Original path-list */
+ char * slbuf2, /* Working buffer */
+ char * chk_start /* Pointer into slbuf1 */
+ )
/* Dereference symbolic linked directory */
{
- char * cp2;
- int len; /* Should be int, not size_t */
-
- while ((chk_start = ACE_OS::strchr( chk_start, PATH_DELIM)) != 0) {
- *chk_start = EOS;
- if ((len = ACE_OS::readlink( slbuf1, slbuf2, FILENAMEMAX)) > 0) {
- /* Dereference symbolic linked directory */
- cp2 = ACE_OS::strrchr( slbuf1, PATH_DELIM); /* Previous delimiter */
- *chk_start = PATH_DELIM;
- ACE_OS::strcpy( slbuf2 + len, chk_start);
- if (slbuf2[ 0] == PATH_DELIM) { /* Absolute path */
- ACE_OS::strcpy( slbuf1, slbuf2);
- chk_start = slbuf1 + len + 1;
- } else {
- if (cp2)
- chk_start = cp2 + 1;
- else
- chk_start = slbuf1;
- ACE_OS::strcpy( chk_start, slbuf2); /* Rewrite the path */
- chk_start += len;
- }
- } else {
- *chk_start++ = PATH_DELIM;
- }
- }
-}
-#endif
-
-void conv_case(
- char * name, /* (diretory) Name */
- char * lim, /* End of (directory) name */
- int upper /* TRUE if to upper */
-)
-/* Convert a string to upper-case letters or lower-case letters in-place */
-{
- int c;
- char * sp;
-
- for (sp = name; sp < lim; sp++) {
- c = *sp & UCHARMAX;
-#if MBCHAR
- if ((char_type[ c] & mbstart)) {
- char tmp[ FILENAMEMAX+1];
- char * tp = tmp;
- *tp++ = *sp++;
- mb_read( c, &sp, &tp);
- } else
-#endif
- {
- if (upper)
- *sp = ACE_OS::ace_toupper( c);
- else
- *sp = ACE_OS::ace_tolower( c);
- }
+ char * cp2;
+ int len; /* Should be int, not size_t */
+
+ while ((chk_start = ACE_OS::strchr( chk_start, PATH_DELIM)) != 0) {
+ *chk_start = EOS;
+ if ((len = ACE_OS::readlink( slbuf1, slbuf2, PATHMAX)) > 0) {
+ /* Dereference symbolic linked directory */
+ cp2 = ACE_OS::strrchr( slbuf1, PATH_DELIM); /* Previous delimiter */
+ *chk_start = PATH_DELIM;
+ ACE_OS::strcpy( slbuf2 + len, chk_start);
+ if (slbuf2[ 0] == PATH_DELIM) { /* Absolute path */
+ ACE_OS::strcpy( slbuf1, slbuf2);
+ chk_start = slbuf1 + len + 1;
+ } else {
+ if (cp2)
+ chk_start = cp2 + 1;
+ else
+ chk_start = slbuf1;
+ ACE_OS::strcpy( chk_start, slbuf2); /* Rewrite the path */
+ chk_start += len;
+ }
+ } else {
+ *chk_start++ = PATH_DELIM;
}
+ }
}
-
-void put_info( void)
-/* Putout compiler-specific information */
-{
-#if COMPILER == GNUC
- /*
- * Putout the current directory as a #line line as:
- * '# 1 "/abs-path/cur_dir//"'.
- */
- if (! put_info_done && ! no_output && gcc_work_dir)
- mcpp_fprintf( OUT, "%s%ld \"%s%c\"\n"
- , std_line_prefix ? "#line " : LINE_PREFIX
- , src_line, cur_work_dir, '/');
- put_info_done = TRUE;
#endif
-}
#if COMPILER == GNUC
-static DEFBUF * gcc_predef_std[ 128];
-static DEFBUF * gcc_predef_old[ 16];
-
-static void init_gcc_macro(
- int gcc_maj_ver, /* __GNUC__ */
- int gcc_min_ver /* __GNUC_MINOR__ */
-)
+static void init_gcc_macro( void)
/*
* Predefine GCC macros.
+ * This routine should be called after opening output file in order to putout
+ * macro informations by -K option into the file.
+ * Also this routine should be called before undef_macros() in order to
+ * permit undefining a macro by -U option.
*/
{
- char fname[ 256];
- char * include_dir; /* The version-specific include directory */
- char lbuf[ BUFSIZ];
- FILE * fp;
- DEFBUF ** predef;
- DEFBUF * defp;
- const char * cp;
- char * tp;
- int i;
-
-#if SYSTEM == SYS_CYGWIN
- char mingw_dir[ FILENAMEMAX];
-
- if (no_cygwin) {
- include_dir = mingw_dir;
- ACE_OS::sprintf( include_dir, "%s/%s", C_INCLUDE_DIR1, "mingw");
- } else {
- include_dir = C_INCLUDE_DIR1;
- }
-#elif SYSTEM == SYS_MINGW
- include_dir = C_INCLUDE_DIR2;
- /* MinGW's 2nd directory is the version-specific one */
-#else
-#ifdef C_INCLUDE_DIR1
- include_dir = C_INCLUDE_DIR1;
+ char fname[ BUFSIZ];
+ char lbuf[ BUFSIZ];
+ char * include_dir; /* The version-specific include directory */
+ char * tmp;
+ FILE * fp;
+ DEFBUF * defp;
+ const char * cp;
+ char * tp;
+ int i;
+
+ if (nflag) /* -undef option */
+ goto undef_special;
+
+ tmp = xmalloc( ACE_OS::strlen( INC_DIR) + ACE_OS::strlen( "/mingw/mcpp-gcc-")
+ + ACE_OS::strlen( arch) + 1);
+#if SYSTEM == SYS_CYGWIN
+ if (no_cygwin) {
+ ACE_OS::sprintf( tmp, "%s/mingw/mcpp-gcc-%s", INC_DIR, arch);
+ } else {
+ ACE_OS::sprintf( tmp, "%s/mcpp-gcc-%s", INC_DIR, arch);
+ }
#else
- include_dir = "/usr/local/include";
-#endif
-#endif
- include_dir = norm_path( include_dir, 0);
-
- for (i = 0; i <= 1; i++) {
- /* The predefined macro file */
- cp = i ? "std" : "old";
- ACE_OS::sprintf( fname, "%smcpp_g%s%d%d_predef_%s.h"
- , include_dir, cplus_val ? "xx" : "cc"
- , gcc_maj_ver, gcc_min_ver, cp);
- /* Note that norm_path() append a PATH_DELIM. */
- if ((fp = ACE_OS::fopen( fname, "r")) == 0) {
- mcpp_fprintf( ERR, "Predefined macro file '%s' is not found\n"
- , fname);
- continue;
- }
- predef = i ? gcc_predef_std : gcc_predef_old;
- while (ACE_OS::fgets( lbuf, BUFSIZ, fp) != 0) {
- unget_string( lbuf, "gcc_predefine");
- if (skip_ws() == '#'
- && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
- == NAM
- && str_eq( work_buf, "define")) {
- defp = do_define( TRUE); /* Ignore re-definition */
- if (defp->nargs >= DEF_NOARGS - 1)
- *predef++ = defp; /* Register only non-Standard macros*/
- }
- skip_nl();
- }
- *predef = 0; /* Terminate the array */
+ ACE_OS::sprintf( tmp, "%s/mcpp-gcc-%s", INC_DIR, arch);
+#endif
+ include_dir = norm_path( tmp, 0, TRUE, FALSE);
+ ACE_OS::free( tmp);
+
+ for (i = 0; i <= 1; i++) {
+ int nargs;
+
+ if ((mcpp_mode == POST_STD || ansi) && i == 0)
+ continue; /* POST_STD or __STRICT_ANSI__ does not */
+ /* predefine non-conforming macros */
+ /* The predefined macro file */
+ cp = i ? "std" : "old";
+ ACE_OS::sprintf( fname, "%sg%s%d%d_predef_%s.h"
+ , include_dir, cplus_val ? "xx" : "cc"
+ , gcc_maj_ver, gcc_min_ver, cp);
+ /* Note that norm_path() append a PATH_DELIM. */
+ if ((fp = fopen( fname, "r")) == 0) {
+ mcpp_fprintf( ERR, "The mode for %s has not been installed.\n"
+ , arch);
+ longjmp( error_exit, -1);
}
-
- if (look_id( "__OPTIMIZE__")) /* -O option is specified */
- undefine( "__NO_INLINE__");
- if (no_exceptions) /* -fno-exceptions option */
- undefine( "__EXCEPTIONS");
-}
-
-static void undef_gcc_macro(
- int clearall
-)
-/*
- * Undefine GCC predefined macros.
- */
-{
- DEFBUF ** predef;
-
- predef = gcc_predef_old;
- while (*predef)
- undefine( (*predef++)->name);
- gcc_predef_old[ 0] = 0;
- if (clearall) {
- predef = gcc_predef_std;
- while (*predef)
- undefine( (*predef++)->name);
- gcc_predef_std[ 0] = 0;
+ nargs = i ? 0 : DEF_NOARGS_PREDEF_OLD;
+ /* g*_predef_std.h has DEF_NOARGS_PREDEF or non-negative args */
+ /* while g*_predef_old.h has only DEF_NOARGS_PREDEF_OLD args */
+ while (fgets( lbuf, BUFSIZ, fp) != 0) {
+ unget_string( lbuf, "gcc_predefine");
+ if (skip_ws() == '#'
+ && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
+ == NAM
+ && str_eq( work_buf, "define")) {
+ defp = do_define( TRUE, nargs); /* Ignore re-definition */
+ }
+ skip_nl();
}
+ }
+ ACE_OS::free( include_dir);
+
+ undef_special:
+ if (look_id( "__OPTIMIZE__")) /* -O option is specified */
+ undefine( "__NO_INLINE__");
}
static void chk_env( void)
@@ -2301,231 +2788,295 @@ static void chk_env( void)
* Check the environment variables to specify output of dependency lines.
*/
{
- char * env;
- char * cp;
+ char * env;
+ char * cp;
- /* Output of dependency lines */
- if ((env = ACE_OS::getenv( "DEPENDENCIES_OUTPUT")) == 0) {
- if ((env = ACE_OS::getenv( "SUNPRO_DEPENDENCIES")) == 0)
- return;
- else
- mkdep |= MD_SYSHEADER;
- }
- mkdep |= MD_MKDEP;
- if ((cp = ACE_OS::ACE_OS::strchr( env, ' ')) != 0) {
- *cp++ = EOS;
- while (*cp == ' ')
- cp++;
- }
- if (! mkdep_fp) /* Command line option precedes */
- mkdep_fp = ACE_OS::ACE_OS::fopen( env, "a");
- if (! mkdep_target)
- mkdep_target = cp;
+ /* Output of dependency lines */
+ if ((env = ACE_OS::getenv( "DEPENDENCIES_OUTPUT")) == 0) {
+ if ((env = ACE_OS::getenv( "SUNPRO_DEPENDENCIES")) == 0)
+ return;
+ else
+ mkdep |= MD_SYSHEADER;
+ }
+ mkdep |= MD_MKDEP;
+ if ((cp = ACE_OS::strchr( env, ' ')) != 0) {
+ *cp++ = EOS;
+ while (*cp == ' ')
+ cp++;
+ }
+ if (! mkdep_fp) /* Command line option precedes */
+ mkdep_fp = fopen( env, "a");
+ if (! mkdep_target)
+ mkdep_target = cp;
}
#elif COMPILER == MSC
-static void init_msc_macro(
- int wchar_t_modified
-)
+static void init_msc_macro( void)
+/*
+ * Define a few MSC-specific predefined macros.
+ */
{
- DEFBUF * defp;
- int i;
-
- defp = look_id( "_MSC_VER");
- i = ACE_OS::atoi( defp->repl);
- if (i >= 1400) { /* _MSC_VER >= 1400 */
- look_and_install( "_MT", DEF_NOARGS - 1, null, "1");
- if (cplus_val && ! wchar_t_modified) {
- /* -Zc:wchar_t- was not specified */
- look_and_install( "_NATIVE_WCHAR_T_DEFINED", DEF_NOARGS - 1, null
- , "1");
- look_and_install( "_WCHAR_T_DEFINED", DEF_NOARGS - 1, null, "1");
- }
+ DEFBUF * defp;
+ int i;
+
+ defp = look_id( "_MSC_VER");
+ i = atoi( defp->repl);
+ if (i >= 1400) { /* _MSC_VER >= 1400 */
+ look_and_install( "_MT", DEF_NOARGS_PREDEF, null, "1");
+ if (cplus_val && ! wchar_t_modified) {
+ /* -Zc:wchar_t- was not specified */
+ look_and_install( "_NATIVE_WCHAR_T_DEFINED", DEF_NOARGS_PREDEF
+ , null, "1");
+ look_and_install( "_WCHAR_T_DEFINED", DEF_NOARGS_PREDEF, null
+ , "1");
}
+ }
}
#endif
+static void def_macros( void)
+/*
+ * Define macros specified by -D option.
+ * This routine should be called before undef_macros().
+ */
+{
+ int i;
+
+ for (i = 0; i < def_cnt; i++)
+ def_a_macro( 'D', def_list[ i]);
+}
+
+static void undef_macros( void)
+/*
+ * Undefine macros specified by -U option.
+ * This routine should be called after init_predefine().
+ */
+{
+ char * name;
+ int i;
+
+ for (i = 0; i < undef_cnt; i++) {
+ name = undef_list[ i];
+ if (look_id( name) != 0)
+ undefine( name);
+ else if (warn_level & 8)
+ mcpp_fprintf( ERR, "\"%s\" wasn't defined\n", name);
+ }
+}
+
void put_depend(
- const char * filename
-)
+ const char * filename
+ )
/*
* Append a header name to the source file dependency line.
*/
{
#define MAX_OUT_LEN 76 /* Maximum length of output line */
-#define MKDEP_MAXLEN (MKDEP_MAX * 0x200)
- static char output[ MKDEP_MAXLEN]; /* File names */
- static char * pos[ MKDEP_MAX]; /* Pointers to filenames */
- static int pos_num; /* Index of pos[] */
- static char * out_p; /* Pointer to output[] */
- static FILE * fp; /* Path to output dependency line */
- static size_t llen; /* Length of current physical output line */
- char ** pos_pp; /* Pointer to pos */
- size_t fnamlen; /* Length of filename */
-
- if (fp == 0) { /* Main source file. Have to initialize. */
- out_p = md_init( filename, output);
- fp = mkdep_fp;
- llen = ACE_OS::strlen( output);
- pos_num = 0; /* Initialize for MCPP_LIB build */
- } else if (filename == 0) { /* End of input */
- out_p = mcpp_stpcpy( out_p, "\n\n");
- if (mkdep & MD_PHONY) {
- /* Output the phony target line for each recorded header files. */
- char * cp;
- int c;
-
- if (ACE_OS::strlen( output) * 2 + (pos_num * 2) >= MKDEP_MAXLEN) {
- cerror( "Too long dependency line\n" /* _E_ */
- , 0, 0L, 0);
- if (fp == fp_out)
- mcpp_fputs( output, OUT );
- else
- ACE_OS::fputs( output, fp);
- return;
- }
- pos_num--;
- for (pos_pp = &pos[ 0]; pos_pp <= &pos[ pos_num]; pos_pp++) {
- if (pos_pp == &pos[ pos_num]) {
- for (cp = *pos_pp; *cp != '\n'; cp++)
- ;
- c = '\n';
- } else {
- cp = *(pos_pp + 1) - 1;
- while( *cp == ' ' || *cp == '\\' || *cp == '\n')
- cp--;
- c = *(++cp);
- }
- *cp = EOS;
- out_p = mcpp_stpcpy( out_p, *pos_pp);
- out_p = mcpp_stpcpy( out_p, ":\n\n");
- *cp = c;
- }
- }
- if (fp == fp_out) /* To the same path with normal preprocessing */
- mcpp_fputs( output, OUT);
- else /* To the file specified by -MF, -MD, -MMD options */
- ACE_OS::fputs( output, fp);
- fp = 0; /* Clear for the next call in MCPP_LIB build */
+#define MKDEP_INITLEN (MKDEP_INIT * 0x100)
+#define MKDEP_MAX (MKDEP_INIT * 0x10)
+#define MKDEP_MAXLEN (MKDEP_INITLEN * 0x10)
+
+ static char * output = 0; /* File names */
+ static size_t * pos = 0; /* Offset to filenames */
+ static unsigned int pos_num; /* Index of pos[] */
+ static char * out_p; /* Pointer to output[] */
+ static size_t mkdep_len; /* Size of output[] */
+ static size_t pos_max; /* Size of pos[] */
+ static FILE * fp; /* Path to output dependency line */
+ static size_t llen; /* Length of current physical output line */
+ size_t * pos_p; /* Index into pos[] */
+ size_t fnamlen; /* Length of filename */
+
+ if (fp == 0) { /* Main source file. Have to initialize. */
+#ifdef MCPP_LIB
+ if (output != 0) {
+ ACE_OS::free( output);
+ ACE_OS::free( pos);
+ }
+#endif
+ output = xmalloc( mkdep_len = MKDEP_INITLEN);
+ pos = (size_t *) xmalloc( (pos_max = MKDEP_INIT) * sizeof (size_t));
+ out_p = md_init( filename, output);
+ fp = mkdep_fp;
+ llen = ACE_OS::strlen( output);
+ pos_num = 0; /* Initialize for MCPP_LIB build */
+ } else if (filename == 0) { /* End of input */
+ out_p = stpcpy( out_p, "\n\n");
+ if (mkdep & MD_PHONY) {
+ /* Output the phony target line for each recorded header files. */
+ char * cp;
+ int c;
+
+ if (ACE_OS::strlen( output) * 2 + (pos_num * 2) >= MKDEP_MAXLEN) {
+ cerror( "Too long dependency line" /* _E_ */
+ , 0, 0L, 0);
+ if (fp == fp_out)
+ mcpp_fputs( output, OUT);
+ else
+ ACE_OS::fputs( output, fp);
return;
+ } else if (ACE_OS::strlen( output) * 2 + (pos_num * 2) >= mkdep_len) {
+ /* Enlarge the buffer */
+ size_t len = out_p - output;
+ output = xrealloc( output, mkdep_len *= 2);
+ out_p = output + len;
+ }
+ pos_num--;
+ for (pos_p = &pos[ 0]; pos_p <= &pos[ pos_num]; pos_p++) {
+ if (pos_p == &pos[ pos_num]) { /* End of output */
+ for (cp = output + *pos_p; *cp != '\n'; cp++)
+ ;
+ c = '\n'; /* Append newline */
+ } else {
+ cp = output + *(pos_p + 1) - 1;
+ while( *cp == ' ' || *cp == '\\' || *cp == '\n')
+ cp--; /* Remove trailing spaces */
+ c = *(++cp);
+ }
+ *cp = EOS;
+ out_p = stpcpy( out_p, output + *pos_p);
+ out_p = stpcpy( out_p, ":\n\n");
+ *cp = c;
+ }
}
-
- fnamlen = ACE_OS::strlen( filename);
- /* Check the recorded filename */
- for (pos_pp = pos; pos_pp < &pos[ pos_num]; pos_pp++) {
- if (ACE_OS::memcmp( *pos_pp, filename, fnamlen) == 0)
- return; /* Already recorded filename */
- }
- /* Any new header. Append its name to output. */
- if (llen + fnamlen > MAX_OUT_LEN) { /* Line is long */
- out_p = mcpp_stpcpy( out_p, " \\\n"); /* Fold it */
- llen = 1;
- }
- llen += fnamlen + 1;
- if (pos_num >= MKDEP_MAX
- || out_p + fnamlen + 1 >= output + MKDEP_MAXLEN)
- cfatal( "Too long dependency line: %s", output, 0L, 0);
- *out_p++ = ' ';
- pos[ pos_num++] = out_p;
- out_p = mcpp_stpcpy( out_p, filename);
+ if (fp == fp_out) { /* To the same path with normal preprocessing */
+ mcpp_fputs( output, OUT);
+ } else { /* To the file specified by -MF, -MD, -MMD options */
+ ACE_OS::fputs( output, fp);
+ ACE_OS::fclose( fp);
+ }
+ fp = 0; /* Clear for the next call in MCPP_LIB build */
+ return;
+ }
+
+ fnamlen = ACE_OS::strlen( filename);
+ /* Check the recorded filename */
+ for (pos_p = pos; pos_p < &pos[ pos_num]; pos_p++) {
+ if (ACE_OS::memcmp( output + *pos_p, filename, fnamlen) == 0)
+ return; /* Already recorded filename */
+ }
+ /* Any new header. Append its name to output. */
+ if (llen + fnamlen > MAX_OUT_LEN) { /* Line is long */
+ out_p = stpcpy( out_p, " \\\n "); /* Fold it */
+ llen = 1;
+ }
+ llen += fnamlen + 1;
+ if (pos_num >= MKDEP_MAX
+ || out_p + fnamlen + 1 >= output + MKDEP_MAXLEN)
+ cfatal( "Too long dependency line: %s", output, 0L, 0);
+ /* Need to enlarge the buffer */
+ if (pos_num >= pos_max) {
+ pos = (size_t *) xrealloc( (char *) pos
+ , (pos_max *= 2) * sizeof (size_t *));
+ }
+ if (output + mkdep_len <= out_p + fnamlen + 1) {
+ size_t len = out_p - output;
+ output = xrealloc( output, mkdep_len *= 2);
+ out_p = output + len;
+ }
+ *out_p++ = ' ';
+ pos[ pos_num++] = out_p - output; /* Remember the offset */
+ /* Don't use pointer, since 'output' may be reallocated later. */
+ out_p = stpcpy( out_p, filename);
}
static char * md_init(
- const char * filename, /* The source file name */
- char * output /* Output to dependency file */
-)
+ const char * filename, /* The source file name */
+ char * output /* Output to dependency file */
+ )
/*
* Initialize output file and target.
*/
{
- char prefix[ FILENAMEMAX];
- char * cp = 0;
- size_t len;
- char * out_p;
- const char * target = filename;
- const char * cp0;
-
- if (! mkdep_target || ! mkdep_fp) { /* Make target name */
+ char prefix[ PATHMAX];
+ char * cp = 0;
+ size_t len;
+ char * out_p;
+ const char * target = filename;
+ const char * cp0;
+
+ if (! mkdep_target || ! mkdep_fp) { /* Make target name */
#ifdef PATH_DELIM
- if ((cp0 = ACE_OS::strrchr( target, PATH_DELIM)) != 0)
- target = cp0 + 1;
+ if ((cp0 = ACE_OS::strrchr( target, PATH_DELIM)) != 0)
+ target = cp0 + 1;
#endif
- if ((cp0 = ACE_OS::strrchr( target, '.')) == 0)
- len = ACE_OS::strlen( target);
- else
- len = (size_t) (cp0 - target);
- ACE_OS::memcpy( prefix, target, len);
- cp = prefix + len;
- *cp++ = '.';
- }
-
- if (! mkdep_fp) { /* Unless already opened by -MF, -MD, -MMD options */
- if (mkdep & MD_FILE) {
- ACE_OS::strcpy( cp, "d");
- mkdep_fp = ACE_OS::fopen( prefix, "w");
- } else {
- mkdep_fp = fp_out; /* Output dependency line to normal output */
- no_output++; /* Without normal output */
- }
+ if ((cp0 = ACE_OS::strrchr( target, '.')) == 0)
+ len = ACE_OS::strlen( target);
+ else
+ len = (size_t) (cp0 - target);
+ ACE_OS::memcpy( prefix, target, len);
+ cp = prefix + len;
+ *cp++ = '.';
+ }
+
+ if (! mkdep_fp) { /* Unless already opened by -MF, -MD, -MMD options */
+ if (mkdep & MD_FILE) {
+ ACE_OS::strcpy( cp, "d");
+ mkdep_fp = ACE_OS::fopen( prefix, "w");
+ } else {
+ mkdep_fp = fp_out; /* Output dependency line to normal output */
+ no_output++; /* Without normal output */
}
+ }
- if (mkdep_target) { /* -MT or -MQ option is specified */
- if (mkdep & MD_QUOTE) { /* 'Quote' $, \t and space */
- out_p = md_quote( output);
- } else {
- out_p = mcpp_stpcpy( output, mkdep_target);
- }
+ if (mkdep_target) { /* -MT or -MQ option is specified */
+ if (mkdep & MD_QUOTE) { /* 'Quote' $, \t and space */
+ out_p = md_quote( output);
} else {
- ACE_OS::strcpy( cp, OBJEXT);
- out_p = mcpp_stpcpy( output, prefix);
+ out_p = stpcpy( output, mkdep_target);
}
-
- *out_p++ = ':';
- return out_p;
+ } else {
+ ACE_OS::strcpy( cp, OBJEXT);
+ out_p = stpcpy( output, prefix);
+ }
+
+ *out_p++ = ':';
+ *out_p = EOS;
+ return out_p;
}
static char * md_quote(
- char * output
-)
+ char * output
+ )
/*
* 'Quote' $, tab and space.
- * This function was wretten referring to GCC V.3.2 source.
+ * This function was written referring to GCC V.3.2 source.
*/
{
- char * p;
- char * q;
-
- for (p = mkdep_target; *p; p++, output++) {
- switch (*p) {
- case ' ':
- case '\t':
- /* GNU-make treats backslash-space sequence peculiarly */
- for (q = p - 1; mkdep_target <= q && *q == '\\'; q--)
- *output++ = '\\';
- *output++ = '\\';
- break;
- case '$':
- *output++ = '$';
- break;
- default:
- break;
- }
- *output = *p;
+ char * p;
+ char * q;
+
+ for (p = mkdep_target; *p; p++, output++) {
+ switch (*p) {
+ case ' ':
+ case '\t':
+ /* GNU-make treats backslash-space sequence peculiarly */
+ for (q = p - 1; mkdep_target <= q && *q == '\\'; q--)
+ *output++ = '\\';
+ *output++ = '\\';
+ break;
+ case '$':
+ *output++ = '$';
+ break;
+ default:
+ break;
}
- *output = EOS;
- return output;
+ *output = *p;
+ }
+ *output = EOS;
+ return output;
}
static const char * toolong_fname =
- "Too long header name \"%s%.0ld%s\""; /* _F_ */
+ "Too long header name \"%s%.0ld%s\""; /* _F_ */
static const char * excess_token =
- "Excessive token sequence \"%s\""; /* _E_, _W1_ */
+ "Excessive token sequence \"%s\""; /* _E_, _W1_ */
int do_include(
- int next /* TRUE if the directive is #include_next */
-)
+ int next /* TRUE if the directive is #include_next */
+ )
/*
* Process the #include line.
* There are three variations:
@@ -2542,334 +3093,439 @@ int do_include(
* do_include() always absorbs the line (including the <newline>).
*/
{
- const char * const no_name = "No header name"; /* _E_ */
- char header[ FILENAMEMAX + 16];
- int token_type;
- char * fname;
- int delim; /* " or <, > */
-
- // WO: sharp here to capture line info from includer
- sharp ();
+ const char * const no_name = "No header name"; /* _E_ */
+ char header[ PATHMAX + 16];
+ int token_type;
+ char * fname;
+ char * filename;
+ int delim; /* " or <, > */
+
+ if ((delim = skip_ws()) == '\n') { /* No argument */
+ cerror( no_name, 0, 0L, 0);
+ return FALSE;
+ }
+ fname = infile->bptr - 1; /* Current token for diagnosis */
- if ((delim = skip_ws()) == '\n') { /* No argument */
- cerror( no_name, 0, 0L, 0);
- return FALSE;
- }
- fname = infile->bptr - 1; /* Current token for diagnosis */
-
- if (standard && char_type[ delim] & LET) { /* Maybe a macro */
- int c;
- char *hp;
-
- hp = header;
- c = delim;
- while (get_unexpandable( c, FALSE) != NO_TOKEN) {
- /* Expand any macros in the line */
- if (header + FILENAMEMAX < hp + (int) (workp - work_buf))
- cfatal( toolong_fname, header, 0L, work_buf);
- hp = mcpp_stpcpy( hp, work_buf);
- while ((c = get_ch()) == ' ')
- *hp++ = ' ';
- }
- *hp = EOS; /* Ensure to terminate */
- if (macro_line == MACRO_ERROR) /* Unterminated macro */
- return FALSE; /* already diagnosed. */
- unget_string( header, 0); /* To re-read */
- delim = skip_ws();
- if (delim == '\n') {
- cerror( no_name, 0, 0L, 0); /* Expanded to */
- return FALSE; /* 0 token. */
- }
+ if (standard && (char_type[ delim] & LET)) { /* Maybe macro */
+ int c;
+ char *hp;
+
+ hp = header;
+ *hp = EOS;
+ c = delim;
+ while (get_unexpandable( c, FALSE) != NO_TOKEN) {
+ /* Expand any macros in the line */
+ if (header + PATHMAX < hp + (int) (workp - work_buf))
+ cfatal( toolong_fname, header, 0L, work_buf);
+ hp = stpcpy( hp, work_buf);
+ while (char_type[ c = get_ch()] & HSP)
+ *hp++ = c;
}
-
- token_type = scan_token( delim, (workp = work_buf, &workp)
- , work_buf + FILENAMEMAX);
- if (token_type == STR) /* String literal form */
- goto found_name;
- else if (token_type == OPE && openum == OP_LT) /* '<' */
- workp = scan_quote( delim, work_buf, work_buf + FILENAMEMAX, TRUE);
- /* Re-construct or diagnose */
- else /* Any other token in- */
- goto not_header; /* cluding <=, <<, <% */
-
- if (workp == 0) /* Missing closing '>' */
- goto syntax_error;
-
-found_name:
- *--workp = EOS; /* Remove the closing and */
- fname = save_string( &work_buf[ 1]); /* the starting delimiter. */
-
- if (skip_ws() != '\n') {
- if (standard) {
- cerror( excess_token, infile->bptr-1, 0L, 0);
- skip_nl();
- goto error;
- } else if (mcpp_mode == OLD_PREP) {
- skip_nl();
- } else {
- if (warn_level & 1)
- cwarn( excess_token, infile->bptr-1, 0L, 0);
- skip_nl();
- }
+ *hp = EOS; /* Ensure to terminate */
+ if (macro_line == MACRO_ERROR) /* Unterminated macro */
+ return FALSE; /* already diagnosed. */
+ unget_string( header, 0); /* To re-read */
+ delim = skip_ws();
+ if (delim == '\n') {
+ cerror( no_name, 0, 0L, 0); /* Expanded to */
+ return FALSE; /* 0 token. */
}
-
- if (open_include( fname, (delim == '"'), next)) {
- goto opened;
+ }
+
+ token_type = scan_token( delim, (workp = work_buf, &workp)
+ , work_buf + PATHMAX);
+ if (token_type == STR) /* String literal form */
+ goto found_name;
+ else if (token_type == OPE && openum == OP_LT) /* '<' */
+ workp = scan_quote( delim, work_buf, work_buf + PATHMAX, TRUE);
+ /* Re-construct or diagnose */
+ else /* Any other token in- */
+ goto not_header; /* cluding <=, <<, <% */
+
+ if (workp == 0) /* Missing closing '>' */
+ goto syntax_error;
+
+ found_name:
+ *--workp = EOS; /* Remove the closing and */
+ fname = save_string( &work_buf[ 1]); /* the starting delimiter. */
+
+ if (skip_ws() != '\n') {
+ if (standard) {
+ cerror( excess_token, infile->bptr-1, 0L, 0);
+ skip_nl();
+ goto error;
+ } else if (mcpp_mode == OLD_PREP) {
+ skip_nl();
+ } else {
+ if (warn_level & 1)
+ cwarn( excess_token, infile->bptr-1, 0L, 0);
+ skip_nl();
}
+ }
- cerror( "Can't open include file \"%s\"", fname, 0L, 0); /* _E_ */
- goto error;
-
-not_header:
- cerror( "Not a header name \"%s\"", fname, 0L, 0); /* _E_ */
-syntax_error:
- skip_nl();
- return FALSE;
-error:
- ACE_OS::free( fname);
- return FALSE;
-opened:
- ACE_OS::free( fname);
- errno = 0; /* Clear errno possibly set by path searching */
+#if SYS_FAMILY == SYS_WIN
+ bsl2sl( fname);
+#endif
+ filename = fname;
+#if NO_DIR /* Unofficial feature */
+ if (no_dir) { /* Strip directory components */
+ char src_dir[ PATHMAX] = { EOS, };
+ if (has_directory( fname, src_dir))
+ filename = fname + ACE_OS::strlen( src_dir);
+ delim = '"'; /* Even a system header is handled as a local one */
+ }
+#endif
+ if (open_include( filename, (delim == '"'), next)) {
+ /* 'fname' should not be ACE_OS::free()ed, it is used as file-> */
+ /* real_fname and has been registered into fnamelist[] */
return TRUE;
+ }
+
+ cerror( "Can't open include file \"%s\"", filename, 0L, 0); /* _E_ */
+ error:
+ ACE_OS::free( fname);
+ return FALSE;
+
+ not_header:
+ cerror( "Not a header name \"%s\"", fname, 0L, 0); /* _E_ */
+ syntax_error:
+ skip_nl();
+ return FALSE;
}
static int open_include(
- char * filename, /* File name to include */
- int searchlocal, /* TRUE if #include "file" */
- int next /* TRUE if #include_next */
-)
+ char * filename, /* File name to include */
+ int searchlocal, /* TRUE if #include "file" */
+ int next /* TRUE if #include_next */
+ )
/*
- * Open an include file. This routine is only called from do_include()
- * above, but was written as a separate subroutine for portability.
+ * Open an include file. This routine is only called from do_include() above.
* It searches the list of directories via search_dir() and opens the file
* via open_file(), linking it into the list of active files.
- * Returns TRUE if the file was opened, FALSE if open_file() fails.
+ * Returns TRUE if the file was opened, FALSE if it fails.
*/
{
- int full_path; /* Filename is full-path-list */
- int has_dir = FALSE; /* Includer has directory part */
- char dir[ FILENAMEMAX] = { EOS, }; /* Directory part of includer */
-
-#if SYS_FAMILY == SYS_WIN
- bsl2sl( filename);
-#endif
-#if FNAME_FOLD /* If O.S. folds upper and lower cases of file-name */
- /* Convert filename to lower-case-letters */
- conv_case( filename, filename + ACE_OS::strlen( filename), LOWER);
-#endif
-
-#if SYS_FAMILY == SYS_UNIX
- if (filename[0] == PATH_DELIM)
-#elif SYS_FAMILY == SYS_WIN
- if (filename[1] == ':' && filename[2] == PATH_DELIM)
-#elif SYSTEM == SYS_MAC /* I don't know. Write by yourself */
- if (filename[0] != PATH_DELIM && ACE_OS::strchr( filename, PATH_DELIM))
-#elif 1
-/* For other systems you should write code here. */
- if (filename[0] == PATH_DELIM)
-#endif
- full_path = TRUE;
- else
- full_path = FALSE;
-
- if (!full_path && searchlocal && (search_rule & SOURCE))
- has_dir = has_directory( infile->real_fname, dir)
- || (**(infile->dirp) != EOS);
+ char src_dir[ PATHMAX] = { EOS, }; /* Directory part of includer */
+ int full_path; /* Filename is full-path-list */
+ int has_dir = FALSE; /* Includer has directory part */
+ int has_dir_src = FALSE;
+ int has_dir_fname = FALSE;
+
+ full_path = is_full_path( filename);
+
+ if (!full_path && searchlocal && (search_rule & SOURCE)) {
+ has_dir_src = has_directory( infile->src_dir, src_dir);
+ has_dir_fname = has_directory( infile->real_fname
+ , src_dir + ACE_OS::strlen( src_dir));
+ /* Get directory part of the parent file of the file to include.*/
+ /* Note that infile->dirp of main input file is set to "" and */
+ /* remains the same even if -include options are processed. */
+ has_dir = has_dir_src || has_dir_fname
+ || (**(infile->dirp) != EOS);
+ }
+ if (mcpp_debug & PATH)
+ mcpp_fprintf( DBG, "filename: %s\n", filename);
#if COMPILER == GNUC
- if (!full_path) {
- if ((!searchlocal && incdir < sys_dirp) /* -I- option is specified */
- || next) /* #include_next */
- goto search_dirs;
- }
+ if (! full_path) {
+ if (i_split /* -I- option is specified */
+ || next) /* or #include_next */
+ goto search_dirs;
+ }
#endif
- if (mcpp_debug & PATH)
- mcpp_fprintf( DBG, "filename:%s\n", filename);
- if ((searchlocal && ((search_rule & CURRENT) || !has_dir)) || full_path) {
- /*
- * Look in local directory first.
- * Try to open filename relative to the "current directory".
- */
- if (open_file( &null, filename, searchlocal && !full_path))
- return TRUE;
- }
+ if ((searchlocal && ((search_rule & CURRENT) || !has_dir)) || full_path) {
+ /*
+ * Look in local directory first.
+ * Try to open filename relative to the "current directory".
+ */
+ if (open_file( &null, 0, filename, searchlocal && !full_path
+ , FALSE, FALSE))
+ return TRUE;
if (full_path)
- return FALSE;
+ return FALSE;
+ }
- if (searchlocal && (search_rule & SOURCE) && has_dir) {
- /*
- * Look in local directory of source file.
- * Try to open filename relative to the "source directory".
- */
- ACE_OS::strcat( dir, filename);
- if (open_file( infile->dirp, dir, TRUE))
- return TRUE;
- }
+ if (searchlocal && (search_rule & SOURCE) && has_dir) {
+ /*
+ * Look in local directory of source file.
+ * Try to open filename relative to the "source directory".
+ */
+ if (open_file( infile->dirp, src_dir, filename, TRUE, FALSE, FALSE))
+ return TRUE;
+ }
- /* Search the system include directories */
-#if COMPILER == GNUC
-search_dirs:
+#if COMPILER == MSC
+ if (searchlocal) {
+ /* Visual C searches ancestor source's directory, too. */
+ FILEINFO * file = infile;
+ while ((file = file->parent) != 0) {
+ /* Search each parent includer's directory */
+ if (open_file( file->dirp, src_dir, filename, TRUE, FALSE, FALSE))
+ return TRUE;
+ }
+ }
#endif
- if (search_dir( filename, searchlocal, next))
+#if COMPILER == GNUC
+ search_dirs:
+ if (searchlocal) {
+ /* Search the directories specified by -iquote option, if any. */
+ const char ** qdir;
+ for (qdir = quote_dir; qdir < quote_dir_end; qdir++) {
+ if (open_file( qdir, 0, filename, FALSE, FALSE, FALSE))
return TRUE;
+ }
+ }
+#endif
+ /* Search the include directories */
+ if (search_dir( filename, searchlocal, next))
+ return TRUE;
- return FALSE;
+ return FALSE;
}
static int has_directory(
- const char * source, /* Filename to examine */
- char * directory /* Put directory stuff here */
-)
+ const char * source, /* Filename to examine */
+ char * directory /* Put directory stuff here */
+ )
/*
* If a directory is found in the 'source' filename string (i.e. "includer"),
- * the directory part of the string is copied to 'directory' and
+ * the directory part of the string is copied to 'directory' and
* has_directory() returns TRUE.
* Else, nothing is copied and it returns FALSE.
*/
{
- const char * sp;
- size_t len;
+ const char * sp;
+ size_t len;
- if ((sp = ACE_OS::strrchr( source, PATH_DELIM)) == 0) {
- return FALSE;
- } else {
- len = (size_t)(sp - source) + 1;
- ACE_OS::memcpy( directory, source, len);
- directory[ len] = EOS;
+ if (! source)
+ return FALSE;
+ if ((sp = ACE_OS::strrchr( source, PATH_DELIM)) == 0) {
+ return FALSE;
+ } else {
+ len = (size_t)(sp - source) + 1; /* With path-delimiter */
+ ACE_OS::memcpy( directory, source, len);
+ directory[ len] = EOS;
+ return TRUE;
+ }
+}
+
+static int is_full_path(
+ const char * path
+ )
+/*
+ * Check whether the path is a full (absolute) path list or not.
+ */
+{
+ if (! path)
+ return FALSE;
+#if SYS_FAMILY == SYS_UNIX
+ if (path[0] == PATH_DELIM)
+#elif SYS_FAMILY == SYS_WIN
+ if ((path[1] == ':' && path[2] == PATH_DELIM) /* "C:/path" */
+ || path[0] == PATH_DELIM) /* Root dir of current drive */
+#elif 1
+ /* For other systems you should write code here. */
+ if (path[0] == PATH_DELIM)
+#endif
return TRUE;
- }
+ else
+ return FALSE;
}
static int search_dir(
- char * filename, /* File name to include */
- int , /* #include "header.h" for GNUC */
- int /* TRUE if #include_next */
-)
+ char * filename, /* File name to include */
+ int /*searchlocal*/, /* #include "header.h" */
+ int /*next*/ /* TRUE if #include_next */
+ )
/*
* Look in any directories specified by -I command line arguments,
* specified by environment variable, then in the builtin search list.
*/
{
- const char ** incptr; /* -> inlcude directory */
+ const char ** incptr; /* -> inlcude directory */
+ incptr = incdir;
#if COMPILER == GNUC
- if (next && **inc_dirp != EOS) {
- incptr = inc_dirp + 1;
- /* In case of include_next search after the includer's directory */
- } else {
- /* If (next && **inc_dirp == EOS), it should be #include_next "header.h"*/
- if (searchlocal || next)
- /* #include_next does not distinguish "header.h" and <header.h> */
- incptr = incdir;
- else
- incptr = sys_dirp;
- }
-#else
- incptr = incdir;
+ if (next && **inc_dirp != EOS)
+ incptr = inc_dirp + 1;
+ /* In case of include_next search after the includer's directory */
#endif
- for ( ; incptr < incend; incptr++) {
- if (ACE_OS::strlen( *incptr) + ACE_OS::strlen( filename) >= FILENAMEMAX) {
- char * cp;
- cp = mcpp_stpcpy( work_buf, *incptr);
- ACE_OS::strcpy( cp, filename);
- cfatal( toolong_fname, work_buf, 0L, ""); /* _F_ */
- }
- if (open_file( incptr, filename, FALSE))
- /* Now infile has been renewed */
- return TRUE;
+ for ( ; incptr < incend; incptr++) {
+ if (ACE_OS::strlen( *incptr) + ACE_OS::strlen( filename) >= PATHMAX)
+ cfatal( toolong_fname, *incptr, 0L, filename); /* _F_ */
+#if SYSTEM == SYS_MAC
+ if (incptr == to_search_framework && ! searchlocal) {
+ /* Now search the framework dirs */
+ if (search_framework( filename)) { /* Found */
+ if (in_import) /* "#import"ed file is once only */
+ do_once( infile->full_fname);
+ return TRUE;
+ }
+ /* Else continue to search incptr */
}
+#endif
+ if (open_file( incptr, 0, filename, FALSE, FALSE, FALSE))
+ /* Now infile has been renewed */
+ return TRUE;
+ }
- return FALSE;
+ return FALSE;
}
static int open_file(
- const char ** dirp, /* Pointer to directory */
- const char * filename, /* The filename */
- int local /* #include "file" */
-)
+ const char ** dirp, /* Pointer to include directory */
+ const char * src_dir, /* Source directory of includer */
+ const char * filename, /* Filename (possibly has directory) */
+ int /*local*/, /* #include "file" */
+ int include_opt, /* Specified by -include option */
+ int /*sys_frame*/ /* System framework header (for SYS_MAC)*/
+ )
/*
* Open a file, add it to the linked list of open files, close the includer
* if nessesary and truncate the includer's buffer.
* This is called from open_include() and at_start().
*/
{
+ char dir_fname[ PATHMAX] = { EOS, };
#if HOST_COMPILER == BORLANDC
- /* Borland's ACE_OS::fopen() fails to set errno to EMFILE. */
- static int max_open = ACE_OS::FOPEN_MAX - 5;
+ /* Borland's ACE_OS::fopen() does not set errno. */
+ static int max_open = FOPEN_MAX - 5;
#else
- static int max_open;
-#endif
- int len;
- FILEINFO * file = infile;
- FILE * fp;
- char * cp;
- char fullname[ FILENAMEMAX + 1];
-
- if (mcpp_debug & PATH)
- mcpp_fprintf( DBG, "Searching %s\n", **dirp == EOS ? "." : *dirp);
- if (standard && included( *dirp, filename)) /* Once included */
- return TRUE;
- cp = mcpp_stpcpy( fullname, *dirp);
- ACE_OS::strcat( cp, filename);
-
- if ((max_open != 0 && max_open <= include_nest)
- /* Exceed the known limit of open files */
- || ((fp = ACE_OS::fopen( fullname, "r")) == 0 && errno == EMFILE)) {
- /* Reached the limit for the first time */
- /*
- * Table of open files is full.
- * Remember the file position and close the includer.
- * The state will be restored by get_line() on end of the included.
- */
- file->pos = ACE_OS::ftell( file->fp);
- ACE_OS::fclose( file->fp);
- /* In case of failure, re-open the includer */
- if ((fp = ACE_OS::fopen( fullname, "r")) == 0) {
- file->fp = ACE_OS::fopen( cur_fullname, "r");
- ACE_OS::fseek( file->fp, file->pos, SEEK_SET);
- return FALSE;
- }
- if (max_open == 0) /* Remember the limit of the system */
- max_open = include_nest;
- } else if (fp == 0) { /* No file, illegal path name or so */
- return FALSE;
+ static int max_open;
+#endif
+ int len;
+ FILEINFO * file = infile;
+ FILE * fp;
+ char * fullname;
+ const char * fname;
+
+ errno = 0; /* Clear errno possibly set by path searching */
+#if SYSTEM == SYS_MAC && COMPILER == GNUC
+ if (ACE_OS::strlen( *dirp) > 5
+ && str_case_eq( *dirp + ACE_OS::strlen( *dirp) - 5, ".hmap")) {
+ /* Search header map file for a header */
+ if (! search_header_map( *dirp, filename, dir_fname))
+ return 0;
+ fname = dir_fname; /* Found a path-list */
+ dirp = &null;
+ goto search;
+ } else
+#endif
+ {
+ if (mcpp_debug & PATH)
+ mcpp_fprintf( DBG, "Searching %s%s%s\n", *dirp
+ , src_dir ? src_dir : null, filename);
}
- /* Truncate buffer of the includer to save memory */
- len = (int) (file->bptr - file->buffer);
- if (len) {
- file->buffer = xrealloc( file->buffer, len + 1);
- file->bptr = file->buffer + len;
+ /* src_dir is usually 0. This is specified to */
+ /* search the source directory of the includer. */
+ if (src_dir && *src_dir != EOS) {
+ ACE_OS::strcpy( dir_fname, src_dir);
+ ACE_OS::strcat( dir_fname, filename);
+ fname = dir_fname;
+ } else {
+ fname = filename;
+ }
+ //search:
+ fullname = norm_path( *dirp, fname, TRUE, FALSE);
+ /* Convert to absolute path */
+ if (! fullname) /* Non-existent or directory */
+ return FALSE;
+ if (standard && included( fullname)) /* Once included */
+ goto true_label;
+
+ if ((max_open != 0 && max_open <= include_nest)
+ /* Exceed the known limit of open files */
+ || ((fp = ACE_OS::fopen( fullname, "r")) == 0 && errno == EMFILE)) {
+ /* Reached the limit for the first time */
+ if (mcpp_debug & PATH) {
+#if HOST_COMPILER == BORLANDC
+ if (include_nest == FOPEN_MAX - 5)
+#else
+ if (max_open == 0)
+#endif
+ mcpp_fprintf( DBG,
+ "#include nest reached at the maximum of system: %d, returned errno: %d\n"
+ , include_nest, errno);
}
-
- if (mkdep && ((mkdep & MD_SYSHEADER) || local))
- put_depend( fullname); /* Output dependency line */
-
- add_file( fp, filename); /* Add file-info to the linked list */
/*
- * Remember the directory for #include_next.
- * Note: inc_dirp is restored to the parent includer's directory
- * by get_ch() when the current includer is finished.
+ * Table of open files is full.
+ * Remember the file position and close the includer.
+ * The state will be restored by get_line() on end of the included.
*/
- infile->dirp = inc_dirp = dirp;
- ACE_OS::strcpy( cur_fullname, fullname);
-
- if (zflag) {
- no_output++; /* Don't output the included file */
- } else {
- src_line = 1; /* Working on line 1 now */
- sharp(); /* Print out the included file name */
+ file->pos = ACE_OS::ftell( file->fp);
+ ACE_OS::fclose( file->fp);
+ /* In case of failure, re-open the includer */
+ if ((fp = ACE_OS::fopen( fullname, "r")) == 0) {
+ file->fp = ACE_OS::fopen( cur_fullname, "r");
+ ACE_OS::fseek( file->fp, file->pos, SEEK_SET);
+ goto false_label;
}
- src_line = 0; /* To read the first line */
- return TRUE;
+ if (max_open == 0) /* Remember the limit of the system */
+ max_open = include_nest;
+ } else if (fp == 0) /* No read permission */
+ goto false_label;
+ /* Truncate buffer of the includer to save memory */
+ len = (int) (file->bptr - file->buffer);
+ if (len) {
+ file->buffer = xrealloc( file->buffer, len + 1);
+ file->bptr = file->buffer + len;
+ }
+
+ if (! include_opt)
+ sharp( 0, 0); /* Print includer's line num and fname */
+ add_file( fp, src_dir, filename, fullname, include_opt);
+ /* Add file-info to the linked list. 'infile' has been just renewed */
+ /*
+ * Remember the directory for #include_next.
+ * Note: inc_dirp is restored to the parent includer's directory
+ * by get_ch() when the current includer is finished.
+ */
+ infile->dirp = inc_dirp = dirp;
+#if 0 /* This part is only for debugging */
+ chk_dirp( dirp);
+#endif
+#if COMPILER == GNUC
+ if ((**dirp != EOS && sys_dirp <= dirp && dirp <= incend)
+#if SYSTEM == SYS_MAC
+ || sys_frame
+#endif
+ )
+ infile->sys_header = TRUE; /* Found in a system header dir */
+ else
+ infile->sys_header = FALSE;
+#endif
+ cur_fullname = fullname;
+
+ if (option_flags.z) {
+ no_output++; /* Don't output the included file */
+ if (include_nest == 2)
+ mcpp_fprintf( OUT, "#include \"%s\"\n", fullname);
+ /* Output #include line instead, if it is in main source file */
+ } else if (! include_opt) { /* Do not sharp() on -include */
+ src_line = 1; /* Working on line 1 now */
+ sharp( 0, 1); /* Print out the included file name */
+ }
+ src_line = 0; /* To read the first line */
+
+ if (mkdep && ((mkdep & MD_SYSHEADER) || ! infile->sys_header))
+ put_depend( fullname); /* Output dependency line */
+
+ true_label:
+ return TRUE;
+ false_label:
+ ACE_OS::free( fullname);
+ return FALSE;
}
void add_file(
- FILE * fp, /* Open file pointer */
- const char * filename /* Name of the file */
-)
+ FILE * fp, /* Open file pointer */
+ const char * src_dir, /* Directory of source */
+ const char * filename, /* Name of the file */
+ const char * fullname, /* Full path list */
+ int include_opt /* File specified by -include option */
+ )
/*
* Initialize tables for this open file. This is called from open_file()
* (for #include files), and from the entry to MCPP to open the main input
@@ -2877,128 +3533,463 @@ void add_file(
* structure which is used to read characters.
*/
{
- FILEINFO * file;
- const char * too_many_include_nest =
- "More than %.0s%ld nesting of #include"; /* _F_ _W4_ */
-
- filename = set_fname( filename); /* Search or append to fnamelist[] */
- file = get_file( filename, (size_t) NBUFF); /* file == infile */
- file->fp = fp; /* Better remember FILE * */
- cur_fname = filename;
-
- if (include_nest >= INCLUDE_NEST) /* Probably recursive #include */
- cfatal( too_many_include_nest, 0, (long) INCLUDE_NEST, 0);
- if (standard && (warn_level & 4) && include_nest == inc_nest_min + 1)
- cwarn( too_many_include_nest, 0, (long) inc_nest_min, 0);
- include_nest++;
+ FILEINFO * file;
+ const char * too_many_include_nest =
+ "More than %.0s%ld nesting of #include"; /* _F_ _W4_ */
+
+ filename = set_fname( filename); /* Search or append to fnamelist[] */
+ fullname = set_fname( fullname); /* Search or append to fnamelist[] */
+ file = get_file( filename, src_dir, fullname, (size_t) NBUFF, include_opt);
+ /* file == infile */
+ file->fp = fp; /* Better remember FILE * */
+ cur_fname = filename;
+
+ if (include_nest >= INCLUDE_NEST) /* Probably recursive #include */
+ cfatal( too_many_include_nest, 0, (long) INCLUDE_NEST, 0);
+ if (standard && (warn_level & 4)
+ && include_nest == std_limits.inc_nest + 1)
+ cwarn( too_many_include_nest, 0, (long) std_limits.inc_nest, 0);
+ include_nest++;
}
static const char * set_fname(
- const char * filename
-)
+ const char * filename
+ )
/*
* Register the source filename to fnamelist[].
* Search fnamelist[] for filename or append filename to fnamelist[].
* Returns the pointer.
+ * file->real_fname and file->full_fname points into fnamelist[].
*/
{
- const char ** fnamep;
+ INC_LIST * fnamep;
+ size_t fnamelen;
+
+ if (fnamelist == 0) { /* Should be initialized */
+ max_fnamelist = INIT_NUM_FNAMELIST;
+ fnamelist = (INC_LIST *) xmalloc( sizeof (INC_LIST) * max_fnamelist);
+ fname_end = &fnamelist[ 0];
+ } else if (fname_end - fnamelist >= max_fnamelist) {
+ /* Buffer full: double the elements */
+ fnamelist = (INC_LIST *) xrealloc( reinterpret_cast<char *> (fnamelist), sizeof (INC_LIST) * max_fnamelist * 2);
+ fname_end = &fnamelist[ max_fnamelist];
+ max_fnamelist *= 2;
+ }
+
+ /* Register the filename in fnamelist[] */
+ fnamelen = ACE_OS::strlen( filename);
+ for (fnamep = fnamelist; fnamep < fname_end; fnamep++) {
+ if (fnamep->len == fnamelen && str_case_eq( fnamep->name, filename))
+ return filename; /* Already registered */
+ }
+ fname_end->name = xmalloc( fnamelen + 1);
+ filename = ACE_OS::strcpy( fname_end->name, filename);
+ /* Global pointer for get_file() */
+ fname_end->len = fnamelen;
+ fname_end++;
+
+ return filename;
+}
- /* Register the filename in fnamelist[] */
- fnamep = fnamelist;
- while (fnamep < fname_end) {
- if (str_eq( *fnamep, filename)) /* Already registered */
- break;
- fnamep++;
+#if SYSTEM == SYS_MAC
+#if COMPILER == GNUC
+
+/* Routines to search "header map" file of Xcode / Apple-GCC. */
+/* search_header_map() and hmap_hash() were written referring to */
+/* c-incpath.c of Apple-GCC-4.0.1. */
+
+static char * search_header_map(
+ const char * hmap_file, /* Header map file */
+ const char * filename, /* Filename to search */
+ char * pathlist /* Buffer for a found pathlist */
+ )
+/*
+ * Search a table in "header map" file for a header.
+ */
+{
+ struct stat stat_buf;
+ FILE * fp;
+ size_t fsize;
+ const char * contents;
+ struct hmap_header_map * hmap;
+ struct hmap_bucket * buckets;
+ const char * strings;
+ uint32 mask;
+ uint32 key_offs;
+ uint32 i;
+
+ stat( hmap_file, &stat_buf); /* Get size of the file */
+ fsize = stat_buf.st_size;
+ contents = xmalloc( fsize + 1);
+ fp = ACE_OS::fopen( hmap_file, "r");
+ fread( contents, fsize, 1, fp); /* Read whole of the file at once */
+ hmap = (struct hmap_header_map *) contents;
+
+ strings = ((const char *) hmap) + hmap->strings_offset;
+ buckets = hmap->buckets;
+ mask = hmap->capacity - 1;
+ i = hmap_hash( filename) & mask;
+ while ((key_offs = buckets[ i].key) != 0) {
+ if (str_case_eq( filename, strings + key_offs)) {
+ /* The names match. Make path-list. */
+ char * cp = stpcpy( pathlist, strings + buckets[ i].value.prefix);
+ ACE_OS::strcpy( cp, strings + buckets[ i].value.suffix);
+ break;
}
- if (fnamep < fname_end) {
- filename = *fnamep;
- } else {
- if (fname_end - fnamelist >= FNAMELIST)
- cfatal( "Too many include files", 0, 0L, 0); /* _F_ */
- *fname_end = xmalloc( ACE_OS::strlen( filename) + 1);
- filename = ACE_OS::strcpy( *(char **)fname_end++, filename);
- /* Global pointer for get_file() */
+ i = ++i & mask;
+ }
+ ACE_OS::free( contents);
+ return key_offs ? pathlist : 0;
+}
+
+static unsigned hmap_hash(
+ const char * fname /* header name */
+ )
+/*
+ * Get hash value for the fname.
+ */
+{
+ const char * sp;
+ unsigned hash_code = 0;
+
+ for (sp = fname; *sp; sp++)
+ hash_code += tolower( *sp & 0xFF) * 13;
+ return hash_code;
+}
+#endif /* COMPILER == GNUC */
+
+static void init_framework( void)
+/*
+ * Initialize framework[].
+ */
+{
+ char * framework_dir;
+ /* Some frameworks may have been already specified by -F option. */
+ sys_framework = num_framework; /* These are system frameworks */
+#ifdef FRAMEWORK1
+ framework_dir = norm_dir( FRAMEWORK1, TRUE);
+ if (framework_dir)
+ framework[ num_framework++] = framework_dir;
+#endif
+#ifdef FRAMEWORK2
+ framework_dir = norm_dir( FRAMEWORK2, TRUE);
+ if (framework_dir)
+ framework[ num_framework++] = framework_dir;
+#endif
+#ifdef FRAMEWORK3
+ framework_dir = norm_dir( FRAMEWORK3, TRUE);
+ if (framework_dir)
+ framework[ num_framework++] = framework_dir;
+#endif
+ if (num_framework >= MAX_FRAMEWORK) {
+ mcpp_fputs( "Too many Framework directories.", ERR);
+ longjmp( error_exit, -1);
+ }
+}
+
+static const char * dot_frame = ".framework";
+
+static int search_framework(
+ char * filename
+ )
+/*
+ * Search "Framework" directories.
+ * 'frame/header.h' is converted to
+ * '/System/Library/Frameworks/frame.framework/Headers/header.h',
+ * '/System/Library/Frameworks/frame.framework/PrivateHeaders/header.h',
+ * and so on.
+ */
+{
+ char fullname[ PATHMAX + 1];
+ FILEINFO * file;
+ char * frame, * fname, * cp1, * cp2;
+ int sys_frame = FALSE;
+ int i;
+
+ cp1 = cp2 = ACE_OS::strchr( filename, PATH_DELIM);
+ /*
+ * 'filename' should be <frame/header> format or sometimes
+ * <frame/dir/header>.
+ * e.g.: <Foundation/Foundation.h>, <CarbonCore/OSUtils.h>
+ * or <IOKit/pwr_mgt/IOPMLib.h>.
+ */
+ if (! cp1)
+ return FALSE;
+ *cp1 = EOS;
+ frame = filename;
+ fname = cp1 + 1;
+
+ /* Search framework[] directories */
+ for (i = 0; i < num_framework; i++) {
+ cp1 = stpcpy( fullname, framework[ i]);
+ /* 'fullname' e.g.: /System/Library/Frameworks/ */
+ if (search_subdir( fullname, cp1, frame, fname, sys_framework <= i))
+ return TRUE;
+ }
+
+ /*
+ * Search subframework dirs searching its possible parent framework
+ * starting from current file's directory to its ancestors.
+ * Header file in subframework directories should be included only
+ * by its parent or sibling framework headers.
+ */
+ for (i = sys_framework; i < num_framework; i++) {
+ size_t frame_len, fname_len;
+ frame_len = ACE_OS::strlen( framework[ i]);
+ fname_len = ACE_OS::strlen( infile->real_fname);
+ if (fname_len <= frame_len)
+ continue;
+ if (ACE_OS::memcmp( framework[ i], infile->real_fname, frame_len) == 0) {
+ sys_frame = TRUE;
+ break;
}
- return filename;
+ }
+ for (file = infile; file; file = file->parent) {
+ const char * dot;
+ size_t len;
+
+ if (! file->fp)
+ continue;
+ dot = strstr( file->real_fname, dot_frame);
+ if (! dot)
+ continue;
+ len = dot - file->real_fname + ACE_OS::strlen( dot_frame) + 1;
+ ACE_OS::memcpy( fullname, file->real_fname, len);
+ cp1 = fullname + len;
+ cp1 = stpcpy( cp1, "Frameworks/");
+ /* 'fullname' e.g.: */
+ /* /System/Library/Frameworks/Foundation.framework/Frameworks/ */
+ if (search_subdir( fullname, cp1, frame, fname, sys_frame))
+ return TRUE;
+ }
+
+ *cp2 = PATH_DELIM; /* Restore original include file format */
+
+ return FALSE;
}
-void cur_file( void)
+static int search_subdir(
+ char * fullname, /* Buffer for path-list to open */
+ char * cp, /* Latter half of 'fullname' */
+ char * frame, /* 'frame' of <frame/header> */
+ char * fname, /* 'header' of <frame/header> */
+ /* or sometimes 'dir/header' of <frame/dir/header> */
+ int sys_frame /* System framework header ? */
+ )
/*
- * Output current source file name.
+ * Make path-list and try to open.
*/
{
- FILEINFO * file = infile;
- const char * name;
- char * cp;
-
- while (file->fp == 0)
- file = file->parent;
- cp = mcpp_stpcpy( work_buf, *(file->dirp));
- ACE_OS::strcpy( cp, file->filename);
- name = work_buf;
- if (sharp_filename == 0 || ! str_eq( name, sharp_filename)) {
- if (sharp_filename != 0)
- ACE_OS::free( sharp_filename);
- sharp_filename = save_string( name);
- }
- if (! no_output)
- mcpp_fprintf( OUT, " \"%s\"", name);
+ static const char * subdir[] = { "Headers", "PrivateHeaders", 0};
+ int j, n;
+
+ cp += ACE_OS::sprintf( cp, "%s%s%c", frame, dot_frame, PATH_DELIM);
+ for (j = 0; subdir[ j] != 0; j++) {
+ n = ACE_OS::sprintf( cp, "%s%c%s", subdir[ j], PATH_DELIM, fname);
+ /*
+ * 'fullname' is for example:
+ * /System/Library/Frameworks/Foundation.framework/Headers/
+ * Foundation.h,
+ * /System/Library/Frameworks/Foundation.framework/Frameworks/
+ * CarbonCore.framework/Headers/OSUtils.h,
+ * or /System/Library/Frameworks/IOKit.framework/Headers/
+ * pwr_mgt/IOPMLib.h.
+ * Pass this as one filename argument to open_file() rather than
+ * deviding to directory part and file part. The first argument to
+ * open_file() which is a pointer to the directory part is remembered
+ * by FILEINFO struct. But, 'fullname' is over-written each time,
+ * and the former path-list is lost soon. Therefore, it cannot be
+ * passed as the first argument. In addition, though the first
+ * argument to open_file() is needed for #include_next, this directive
+ * has no meaning in framework.
+ */
+ if ((cp - fullname) + n > PATHMAX)
+ cfatal( "Too long framework path", 0, 0L, 0); /* _F_ */
+ if (open_file( &null, 0, fullname, FALSE, FALSE, sys_frame))
+ return TRUE;
+ }
+ return FALSE;
+}
+
+#endif /* SYSTEM == SYS_MAC */
+
+#if 0 /* This part is only for debugging */
+static int chk_dirp(
+ const char ** dirp
+ )
+/*
+ * Check the validity of include directory specified for open_file().
+ * Called only from open_file().
+ */
+{
+ const char ** ip;
+
+ if (dirp == &null)
+ return TRUE;
+
+ for (ip = incdir; ip < incend; ip++)
+ if (dirp == ip)
+ break;
+ if (ip == incend) {
+#if COMPILER == MSC
+ FILEINFO * pfile = infile->parent;
+ if (pfile) {
+ while ((pfile = pfile->parent) != 0) {
+ /* Search each parent includer's directory */
+ if (dirp == pfile->dirp)
+ break;
+ }
+ }
+ if (! pfile)
+#endif
#if COMPILER == GNUC
- if (sys_dirp <= file->dirp && file->dirp <= incend)
- mcpp_fputs( " 3", OUT);
+ const char ** qdir;
+ for (qdir = quote_dir; qdir < quote_dir_end; qdir++) {
+ if (dirp == qdir)
+ break;
+ }
+ if (qdir == quote_dir_end)
+#endif
+ {
+ cfatal( "Bug: *dirp:%s is invalid", *dirp, 0L, 0);
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+#endif
+
+void sharp(
+ FILEINFO * sharp_file,
+ int flag /* Flag to append to the line for GCC */
+ )
+/*
+ * Output a line number line.
+ * 'file' is 'sharp_file' if specified,
+ * else (i.e. 'sharp_file' is 0) 'infile'.
+ */
+{
+ static FILEINFO * sh_file;
+ static int sh_line;
+ FILEINFO * file;
+ int line;
+
+ file = sharp_file ? sharp_file : infile;
+ if (! file)
+ return;
+ while (! file->fp)
+ file = file->parent;
+ line = sharp_file ? sharp_file->line : src_line;
+ if (no_output || option_flags.p || file == 0
+ || (file == sh_file && line == sh_line))
+ goto sharp_exit;
+ sh_file = file;
+ sh_line = line;
+ if (keep_comments)
+ mcpp_fputc( '\n', OUT); /* Ensure to be on line top */
+ if (std_line_prefix)
+ mcpp_fprintf( OUT, "#line %ld", line);
+ else
+ mcpp_fprintf( OUT, "%s%ld", LINE_PREFIX, line);
+ cur_file( file, sharp_file, flag);
+ mcpp_fputc( '\n', OUT);
+ sharp_exit:
+ wrong_line = FALSE;
+}
+
+static void cur_file(
+ FILEINFO * file, /* infile or sharp_file */
+ FILEINFO * sharp_file, /* The 'file' or 0 */
+ int /*flag*/ /* Flag to append for GCC */
+ )
+/*
+ * Output current source file name and line number.
+ * Called only from sharp() above.
+ */
+{
+ const char * name;
+
+ if (mcpp_debug & MACRO_CALL) { /* In macro notification mode */
+ if (sharp_file) /* Main input file */
+ name = file->filename;
+ else /* Output full-path-list, normalized */
+ name = cur_fullname;
+ } else { /* Usually, the path not "normalized" */
+ if (sharp_file) { /* Main input file */
+ name = file->filename;
+ } else if (str_eq( file->filename, file->real_fname)) {
+ ACE_OS::sprintf( work_buf, "%s%s", *(file->dirp), cur_fname);
+ name = work_buf;
+ } else { /* Changed by '#line fname' directive */
+ name = file->filename;
+ }
+ }
+ if (sharp_filename == 0 || ! str_eq( name, sharp_filename)) {
+ if (sharp_filename != 0)
+ ACE_OS::free( sharp_filename);
+ sharp_filename = save_string( name);
+ }
+ mcpp_fprintf( OUT, " \"%s\"", name);
+#if COMPILER == GNUC
+ if (! std_line_prefix) {
+ if (flag) {
+ mcpp_fputc( ' ', OUT);
+ mcpp_fputc( '0' + flag, OUT);
+ }
+ if (file->sys_header)
+ mcpp_fputs( " 3", OUT);
+ }
#endif
}
#if SYS_FAMILY == SYS_WIN
static char * bsl2sl(
- char * filename
-)
+ char * filename
+ )
/*
* Convert '\\' in the path-list to '/'.
*/
{
- static int diagnosed = FALSE;
- char * cp;
-
- cp = filename;
-
- while (*cp) {
- if (bsl_in_mbchar) {
- int c;
- c = *cp & UCHARMAX;
- if (char_type[ c] & mbstart) { /* First byte of MBCHAR */
- char tmp[ FILENAMEMAX];
- char * tp = tmp;
- *tp++ = *cp++;
- mb_read( c, &cp, &tp);
- /* Read over the multi-byte characters */
- continue;
- }
- }
- if (*cp == '\\') {
- *cp++ = PATH_DELIM;
- if (!diagnosed && (warn_level & 2) && (warn_level != -1)) {
- /* Backslash in source program */
- cwarn(
- "Converted \\ to %s", "/", 0L, 0); /* _W2_ */
- diagnosed = TRUE; /* Diagnose only once */
- }
- } else {
- cp++;
- }
+ static int diagnosed = FALSE;
+ char * cp;
+
+ cp = filename;
+
+ while (*cp) {
+ if (bsl_in_mbchar) {
+ int c;
+ c = *cp & UCHARMAX;
+ if (char_type[ c] & mbchk) { /* First byte of MBCHAR */
+ char tmp[ PATHMAX];
+ char * tp = tmp;
+ *tp++ = *cp++;
+ mb_read( c, &cp, &tp);
+ /* Read over the multi-byte characters */
+ continue;
+ }
}
+ if (*cp == '\\') {
+ *cp++ = PATH_DELIM;
+ if (!diagnosed && (warn_level & 2) && (warn_level != -1)) {
+ /* Backslash in source program */
+ cwarn( "Converted \\ to %s", "/", 0L, 0); /* _W2_ */
+ diagnosed = TRUE; /* Diagnose only once */
+ }
+ } else {
+ cp++;
+ }
+ }
- return filename;
+ return filename;
}
#endif /* SYS_FAMILY == SYS_WIN */
static const char * const unknown_arg =
- "Unknown argument \"%s\""; /*_W1_*/
+ "Unknown argument \"%s\""; /*_W1_*/
static const char * const not_ident =
- "Not an identifier \"%s\""; /*_W1_*/
+ "Not an identifier \"%s\""; /*_W1_*/
static int is_junk( void)
/*
@@ -3006,17 +3997,17 @@ static int is_junk( void)
* This routine is never called in OLD_PREP mode.
*/
{
- int c;
+ int c;
- c = skip_ws();
- unget_ch();
- if (c != '\n') { /* Trailing junk */
- if (warn_level & 1)
- cwarn( unknown_arg, infile->bptr, 0L, 0);
- return TRUE;
- } else {
- return FALSE;
- }
+ c = skip_ws();
+ unget_ch();
+ if (c != '\n') { /* Trailing junk */
+ if (warn_level & 1)
+ cwarn( unknown_arg, infile->bptr, 0L, 0);
+ return TRUE;
+ } else {
+ return FALSE;
+ }
}
#define PUSH 1
@@ -3038,255 +4029,260 @@ void do_pragma( void)
* the next to 'pragma' token is one of 'STDC', 'GCC' or 'MCPP'.
*/
{
- int c;
- int warn = FALSE; /* Necessity of warning */
- int token_type;
- char * bp; /* Pointer to argument */
- char * tp;
- FILEINFO * file;
-
- wrong_line = TRUE; /* In case of error */
- c = skip_ws();
- bp = infile->bptr - 1; /* Remember token to pass to compiler */
- if (c == '\n') {
- if (warn_level & 1)
- cwarn( "No sub-directive", 0, 0L, 0); /* _W1_ */
- unget_ch();
- return;
- }
- token_type = scan_token( c, (tp = work_buf, &tp), work_end);
+ int c;
+ int warn = FALSE; /* Necessity of warning */
+ int token_type;
+ char * bp; /* Pointer to argument */
+ char * tp;
+ FILEINFO * file;
+
+ wrong_line = TRUE; /* In case of error */
+ c = skip_ws();
+ bp = infile->bptr - 1; /* Remember token to pass to compiler */
+ if (c == '\n') {
+ if (warn_level & 1)
+ cwarn( "No sub-directive", 0, 0L, 0); /* _W1_ */
+ unget_ch();
+ return;
+ }
+ token_type = scan_token( c, (tp = work_buf, &tp), work_end);
#if EXPAND_PRAGMA
#if COMPILER == MSC
- if (token_type == NAM
- && !str_eq( identifier, "STDC") && !str_eq( identifier, "MCPP")) {
+ if (token_type == NAM
+ && !str_eq( identifier, "STDC") && !str_eq( identifier, "MCPP")) {
#else
if (stdc3 && token_type == NAM
- && !str_eq( identifier, "STDC") && !str_eq( identifier, "MCPP")) {
-#endif
- DEFBUF * defp;
- char * mp;
- char * mp_end;
-
- bp = mp = xmalloc( (size_t)(NMACWORK + IDMAX));
- /* Buffer for macro expansion */
- mp_end = mp + NMACWORK;
- tp = mcpp_stpcpy( mp, identifier);
- do { /* Expand all the macros in the line */
- if (token_type == NAM && (defp = is_macro( &tp)) != 0) {
- tp = expand_macro( defp, bp, mp_end);
- if (! stdc3 && (warn_level & 2))
- cwarn(
- "\"%s\" is macro expanded in other than C99 mode" /* _W2_ */
- , identifier, 0L, 0);
- }
- token_type = scan_token( c = get_ch(), (bp = tp, &tp), mp_end);
- } while (c != '\n');
- unget_string( mp, 0); /* To re-read */
- ACE_OS::free( mp);
- c = skip_ws();
- bp = infile->bptr - 1;
- token_type = scan_token( c, (tp = work_buf, &tp), work_end);
+ && !str_eq( identifier, "STDC") && !str_eq( identifier, "MCPP")) {
+#endif
+ DEFBUF * defp;
+ char * mp;
+ char * mp_end;
+ LINE_COL line_col = { 0L, 0};
+
+ bp = mp = xmalloc( (size_t)(NMACWORK + IDMAX));
+ /* Buffer for macro expansion */
+ mp_end = mp + NMACWORK;
+ tp = stpcpy( mp, identifier);
+ do { /* Expand all the macros in the line */
+ int has_pragma;
+ if (token_type == NAM && (defp = is_macro( &tp)) != 0) {
+ tp = expand_macro( defp, bp, mp_end, line_col, & has_pragma);
+ if (has_pragma)
+ cerror( "_Pragma operator found in #pragma line" /* _E_ */
+ , 0, 0L, 0);
+ if (! stdc3 && (warn_level & 2))
+ cwarn(
+ "\"%s\" is macro expanded in other than C99 mode" /* _W2_ */
+ , identifier, 0L, 0);
+ }
+ token_type = scan_token( c = get_ch(), (bp = tp, &tp), mp_end);
+ } while (c != '\n');
+ unget_string( mp, 0); /* To re-read */
+ ACE_OS::free( mp);
+ c = skip_ws();
+ bp = infile->bptr - 1;
+ token_type = scan_token( c, (tp = work_buf, &tp), work_end);
}
#endif
if (token_type != NAM) {
- if (warn_level & 1)
- cwarn( not_ident, work_buf, 0L, 0);
- goto skip_nl;
+ if (warn_level & 1)
+ cwarn( not_ident, work_buf, 0L, 0);
+ goto skip_nl;
} else if (str_eq( identifier, "once")) { /* #pragma once */
- if (! is_junk()) {
- file = infile;
- while (file->fp == 0)
- file = file->parent;
- do_once( *(file->dirp), file->real_fname);
- goto skip_nl;
- }
+ if (! is_junk()) {
+ file = infile;
+ while (file->fp == 0)
+ file = file->parent;
+ do_once( file->full_fname);
+ goto skip_nl;
+ }
} else if (str_eq( identifier, "MCPP")) {
- if (scan_token( skip_ws(), (tp = work_buf, &tp), work_end) != NAM) {
- if (warn_level & 1)
- cwarn( not_ident, work_buf, 0L, 0);
- }
- if (str_eq( identifier, "put_defines")) {
- if (! is_junk())
- dump_def( dDflag, TRUE); /* #pragma MCPP put_defines */
- } else if (str_eq( identifier, "preprocess")) {
- if (! is_junk()) /* #pragma MCPP preprocess */
- mcpp_fputs( "#pragma MCPP preprocessed\n", OUT);
- /* Just putout the directive */
- } else if (str_eq( identifier, "preprocessed")) {
- if (! is_junk()) { /* #pragma MCPP preprocessed*/
- skip_nl();
- do_preprocessed();
- return;
- }
- } else if (str_eq( identifier, "warning")) {
- /* #pragma MCPP warning */
- cwarn( infile->buffer, 0, 0L, 0);
- } else if (str_eq( identifier, "push_macro")) {
- push_or_pop( PUSH); /* #pragma MCPP push_macro */
- } else if (str_eq( identifier, "pop_macro")) {
- push_or_pop( POP); /* #pragma MCPP pop_macro */
- } else if (str_eq( identifier, "debug")) {
- do_debug( TRUE); /* #pragma MCPP debug */
- } else if (str_eq( identifier, "end_debug")) {
- do_debug( FALSE); /* #pragma MCPP end_debug */
- } else {
- warn = TRUE;
+ if (scan_token( skip_ws(), (tp = work_buf, &tp), work_end) != NAM) {
+ if (warn_level & 1)
+ cwarn( not_ident, work_buf, 0L, 0);
+ }
+ if (str_eq( identifier, "put_defines")) {
+ if (! is_junk())
+ dump_def( TRUE, FALSE); /* #pragma MCPP put_defines */
+ } else if (str_eq( identifier, "preprocess")) {
+ if (! is_junk()) /* #pragma MCPP preprocess */
+ mcpp_fputs( "#pragma MCPP preprocessed\n", OUT);
+ /* Just putout the directive */
+ } else if (str_eq( identifier, "preprocessed")) {
+ if (! is_junk()) { /* #pragma MCPP preprocessed*/
+ skip_nl();
+ do_preprocessed();
+ return;
}
- if (warn && (warn_level & 1))
- cwarn( unknown_arg, identifier, 0L, 0);
- goto skip_nl; /* Do not putout the line */
+ } else if (str_eq( identifier, "warning")) {
+ /* #pragma MCPP warning */
+ cwarn( infile->buffer, 0, 0L, 0);
+ } else if (str_eq( identifier, "push_macro")) {
+ push_or_pop( PUSH); /* #pragma MCPP push_macro */
+ } else if (str_eq( identifier, "pop_macro")) {
+ push_or_pop( POP); /* #pragma MCPP pop_macro */
+ } else if (str_eq( identifier, "debug")) {
+ do_debug( TRUE); /* #pragma MCPP debug */
+ } else if (str_eq( identifier, "end_debug")) {
+ do_debug( FALSE); /* #pragma MCPP end_debug */
+ } else {
+ warn = TRUE;
+ }
+ if (warn && (warn_level & 1))
+ cwarn( unknown_arg, identifier, 0L, 0);
+ goto skip_nl; /* Do not putout the line */
#if COMPILER == GNUC
- /* The #pragma lines for GCC is skipped not to confuse cc1. */
+ /* The #pragma lines for GCC is skipped not to confuse cc1. */
} else if (str_eq( identifier, "GCC")) { /* #pragma GCC * */
- if ((scan_token( skip_ws(), (tp = work_buf, &tp), work_end) == NAM)
- && (str_eq( identifier, "poison")
- || str_eq( identifier, "dependency")
- || str_eq( identifier, "system_header"))) {
- if (warn_level & 2)
- cwarn( "Skipped the #pragma line" /*_W2_ */
- , 0, 0L, 0);
- goto skip_nl;
+ if (scan_token( skip_ws(), (tp = work_buf, &tp), work_end) == NAM) {
+ if (str_eq( identifier, "poison")
+ || str_eq( identifier, "dependency")) {
+ if (warn_level & 2)
+ cwarn( "Skipped the #pragma line" /*_W2_ */
+ , 0, 0L, 0);
+ goto skip_nl;
+ } else if (str_eq( identifier, "system_header")) {
+ infile->sys_header = TRUE; /* Mark as a system header */
+ goto skip_nl;
}
+ }
#endif
#if COMPILER == MSC
} else if (str_eq( identifier, "setlocale")) {
- if (skip_ws() == '('
- && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
- == STR
- && skip_ws() == ')') {
- if (! is_junk()) {
- work_buf[ 0] = *(tp - 1) = '\0';
- set_encoding( work_buf + 1, 0, SETLOCALE);
- work_buf[ 0] = *(tp - 1) = '"';
- } /* else warned by is_junk() */
- } else {
- warn = TRUE;
- }
+ if (skip_ws() == '('
+ && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
+ == STR
+ && skip_ws() == ')') {
+ if (! is_junk()) {
+ work_buf[ 0] = *(tp - 1) = '\0';
+ set_encoding( work_buf + 1, 0, SETLOCALE);
+ work_buf[ 0] = *(tp - 1) = '"';
+ } /* else warned by is_junk() */
+ } else {
+ warn = TRUE;
+ }
#else /* COMPILER != MSC */
} else if (str_eq( identifier, "__setlocale")) {
- if (skip_ws() == '('
- && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
- == STR
- && skip_ws() == ')') {
- if (! is_junk()) { /* #pragma __setlocale */
- work_buf[ 0] = *(tp - 1) = '\0';
- set_encoding( work_buf + 1, 0, __SETLOCALE);
- work_buf[ 0] = *(tp - 1) = '"';
- } /* else warned by is_junk() */
- } else {
- warn = TRUE;
- }
+ if (skip_ws() == '('
+ && scan_token( skip_ws(), (tp = work_buf, &tp), work_end)
+ == STR
+ && skip_ws() == ')') {
+ if (! is_junk()) { /* #pragma __setlocale */
+ work_buf[ 0] = *(tp - 1) = '\0';
+ set_encoding( work_buf + 1, 0, __SETLOCALE);
+ work_buf[ 0] = *(tp - 1) = '"';
+ } /* else warned by is_junk() */
+ } else {
+ warn = TRUE;
+ }
#endif
#if COMPILER == MSC
} else if (str_eq( identifier, "push_macro")) {
- push_or_pop( PUSH);
- goto skip_nl;
+ push_or_pop( PUSH);
+ goto skip_nl;
} else if (str_eq( identifier, "pop_macro")) {
- push_or_pop( POP);
- goto skip_nl;
+ push_or_pop( POP);
+ goto skip_nl;
#endif
#if COMPILER == LCC
} else if (str_eq( identifier, "optimize")
- && (skip_ws() == '(')
- && (char_type[ (c = skip_ws()) & UCHARMAX] == DIG)
- && (skip_ws() == ')')) {
- char tmp[ 2];
+ && (skip_ws() == '(')
+ && (char_type[ (c = skip_ws()) & UCHARMAX] == DIG)
+ && (skip_ws() == ')')) {
+ char tmp[ 2];
- tmp[ 0] = c;
- tmp[ 1] = EOS;
- look_and_install( optim_name, DEF_NOARGS - 1, null, tmp);
+ tmp[ 0] = c;
+ tmp[ 1] = EOS;
+ look_and_install( optim_name, DEF_NOARGS_PREDEF, null, tmp);
#endif
#if COMPILER == COMPILER_UNKNOWN
- /*
- * Write here any compiler-specific #pragma sub-directive which should
- * be processed by preprocessor.
- */
+ /*
+ * Write here any compiler-specific #pragma sub-directive which should
+ * be processed by preprocessor.
+ */
#endif
}
if (warn) {
- if (warn_level & 1)
- cwarn( unknown_arg, identifier, 0L, 0);
- goto skip_nl; /* Do not putout the line */
+ if (warn_level & 1)
+ cwarn( unknown_arg, identifier, 0L, 0);
+ goto skip_nl; /* Do not putout the line */
}
- sharp(); /* Synchronize line number before output */
+ sharp( 0, 0); /* Synchronize line number before output */
if (! no_output) {
- mcpp_fputs( "#pragma ", OUT);
- mcpp_fputs( bp, OUT); /* Line is put out */
+ mcpp_fputs( "#pragma ", OUT);
+ mcpp_fputs( bp, OUT); /* Line is put out */
}
-skip_nl: /* Don't use skip_nl() which skips to the newline in source file */
+ skip_nl: /* Don't use skip_nl() which skips to the newline in source file */
while (get_ch() != '\n')
- ;
-}
-
-static void do_once(
- const char * dir,
- const char * filename
-)
-/*
- * Process #pragma MCPP once or #pragma once so as not to re-include the file
- * in future.
- * This directive has been imported from GCC V.1.* / cpp as an extension.
- */
-{
- INC_LIST * inc;
- size_t fnamlen;
-
- filename = norm_path( dir, filename); /* Normalize path name */
- fnamlen = ACE_OS::strlen( filename);
- inc = (INC_LIST *) xmalloc( sizeof (INC_LIST) + fnamlen + 1);
- ACE_OS::memcpy( inc->fname, filename, fnamlen + 1);
- ACE_OS::free( (void *) filename);
- inc->next = 0;
- if (start_inc == 0)
- start_inc = last_inc = inc; /* The first file */
- else
- last_inc = last_inc->next = inc; /* Append the file to the list */
-}
-
-static int included(
- const char * dir,
- const char * filename
-)
-/*
- * Has the file been once included ?
- * This routine is called only from open_file().
- */
-{
+ ;
+ }
+
+ static void do_once(
+ const char * fullname /* Full-path-list of the header */
+ )
+ /*
+ * Process #pragma once so as not to re-include the file later.
+ * This directive has been imported from GCC V.1.* / cpp as an extension.
+ */
+ {
+ if (once_list == 0) { /* Should initialize */
+ max_once = INIT_NUM_ONCE;
+ once_list = (INC_LIST *) xmalloc( sizeof (INC_LIST) * max_once);
+ once_end = &once_list[ 0];
+ } else if (once_end - once_list >= max_once) {
+ /* Double the elements */
+ once_list = (INC_LIST *) xrealloc( reinterpret_cast <char *> (once_list), sizeof (INC_LIST) * max_once * 2);
+ once_end = &once_list[ max_once];
+ max_once *= 2;
+ }
+ once_end->name = const_cast <char *> (fullname);
+ once_end->len = ACE_OS::strlen( fullname);
+ once_end++;
+ }
+
+ static int included(
+ const char * fullname
+ )
+ /*
+ * Has the file been once included ?
+ * This routine is only called from open_file().
+ */
+ {
INC_LIST * inc;
- char * fname;
-
- fname = norm_path( dir, filename);
- for (inc = start_inc; inc; inc = inc->next) {
- if (str_eq( inc->fname, fname)) {
- /* Already included */
- if (mcpp_debug & PATH)
- mcpp_fprintf( DBG, "Once included \"%s\"\n", fname);
- ACE_OS::free( fname);
- return TRUE;
- }
+ size_t fnamelen;
+
+ if (once_list == 0) /* No once file registered */
+ return FALSE;
+ fnamelen = ACE_OS::strlen( fullname);
+ for (inc = once_list; inc < once_end; inc++) {
+ if (inc->len == fnamelen && str_case_eq( inc->name, fullname)) {
+ /* Already included */
+ if (mcpp_debug & PATH)
+ mcpp_fprintf( DBG, "Once included \"%s\"\n", fullname);
+ return TRUE;
+ }
}
- ACE_OS::free( fname);
return FALSE; /* Not yet included */
-}
-
-static void push_or_pop(
- int direction
-)
-/* Process #pragma MCPP push_macro( "MACRO"),
- * #pragma MCPP pop_macro( "MACRO") for other compilers than Visual C,
- * and #pragma push_macro( "MACRO"), #pragma pop_macro( "MACRO") for Visual C.
- * Note:1. "push" count is set in defp->push.
- * 2. pushed definitions are inserted immediatly after the current
- * definition of the same name.
- * 3. the definitions of a same name macro can be pushed multiple times.
- */
-{
+ }
+
+ static void push_or_pop(
+ int direction
+ )
+ /* Process #pragma MCPP push_macro( "MACRO"),
+ * #pragma MCPP pop_macro( "MACRO") for other compilers than Visual C,
+ * and #pragma push_macro( "MACRO"), #pragma pop_macro( "MACRO") for Visual C.
+ * Note:1. "push" count is set in defp->push.
+ * 2. pushed definitions are inserted immediatly after the current
+ * definition of the same name.
+ * 3. the definitions of a same name macro can be pushed multiple times.
+ */
+ {
char * tp;
DEFBUF ** prevp;
DEFBUF * defp;
@@ -3295,263 +4291,277 @@ static void push_or_pop(
size_t s_name, s_def;
if (skip_ws() == '('
- && scan_token( skip_ws(), (tp = work_buf, &tp), work_end) == STR
- && skip_ws() == ')') { /* Correct syntax */
+ && scan_token( skip_ws(), (tp = work_buf, &tp), work_end) == STR
+ && skip_ws() == ')') { /* Correct syntax */
- if (is_junk())
+ if (is_junk())
+ return;
+ s_name = ACE_OS::strlen( work_buf) - 2;
+ *(work_buf + s_name + 1) = '\0';
+ ACE_OS::memcpy( identifier, work_buf + 1, s_name + 1);
+ /* Remove enclosing '"' */
+ prevp = look_prev( identifier, &cmp);
+ if (cmp == 0) { /* Current definition or pushed definition exists */
+ defp = *prevp;
+ if (direction == PUSH) {/* #pragma push_macro( "MACRO") */
+ if (defp->push) { /* No current definition*/
+ if (warn_level & 1)
+ cwarn( "\"%s\" is already pushed" /* _W1_ */
+ , identifier, 0L, 0);
return;
- s_name = ACE_OS::strlen( work_buf) - 2;
- *(work_buf + s_name + 1) = '\0';
- ACE_OS::memcpy( identifier, work_buf + 1, s_name + 1);
- /* Remove enclosing '"' */
- prevp = look_prev( identifier, &cmp);
- if (cmp == 0) { /* Current definition or pushed definition exists */
- defp = *prevp;
- if (direction == PUSH) {/* #pragma push_macro( "MACRO") */
- if (defp->push) { /* No current definition*/
- if (warn_level & 1)
- cwarn( "\"%s\" is already pushed" /* _W1_ */
- , identifier, 0L, 0);
- return;
- }
- /* Else the current definition exists. Push it */
- s_def = sizeof (DEFBUF) + 3 + s_name
- + ACE_OS::strlen( defp->repl) + ACE_OS::strlen( defp->fname);
- if (mcpp_mode == STD)
- s_def += ACE_OS::strlen( defp->parmnames);
- dp = (DEFBUF *) xmalloc( s_def);
- ACE_OS::memcpy( dp, defp, s_def); /* Copy the definition */
- dp->link = *prevp; /* Insert to linked-list*/
- *prevp = dp; /* the pushed def */
- prevp = &dp->link; /* Next link to search */
- } else { /* #pragma pop_macro( "MACRO") */
- if (defp->push == 0) { /* Current definition */
- if (defp->link == 0
- || ! str_eq( identifier, defp->link->name)) {
- if (warn_level & 1)
- cwarn( "\"%s\" has not been pushed" /* _W1_ */
- , identifier, 0L, 0);
- return;
- } else {
- *prevp = defp->link;
- /* Link the previous and the next */
- ACE_OS::free( defp);
- /* Delete the definition to enable popped def */
- }
- } /* Else no current definition exists */
- }
- while ((defp = *prevp) != 0) {
- /* Increment or decrement "push" count of all pushed defs */
- if ((cmp = ACE_OS::memcmp( defp->name, identifier, s_name)) > 0)
- break;
- defp->push += direction; /* Increment or decrement */
- prevp = &defp->link;
+ }
+ /* Else the current definition exists. Push it */
+ s_def = sizeof (DEFBUF) + 3 + s_name
+ + ACE_OS::strlen( defp->repl) + ACE_OS::strlen( defp->fname);
+ if (mcpp_mode == STD)
+ s_def += ACE_OS::strlen( defp->parmnames);
+ dp = (DEFBUF *) xmalloc( s_def);
+ ACE_OS::memcpy( dp, defp, s_def); /* Copy the definition */
+ dp->link = *prevp; /* Insert to linked-list*/
+ *prevp = dp; /* the pushed def */
+ prevp = &dp->link; /* Next link to search */
+ } else { /* #pragma pop_macro( "MACRO") */
+ if (defp->push == 0) { /* Current definition */
+ if (defp->link == 0
+ || ! str_eq( identifier, defp->link->name)) {
+ if (warn_level & 1)
+ cwarn( "\"%s\" has not been pushed" /* _W1_ */
+ , identifier, 0L, 0);
+ return;
+ } else {
+ *prevp = defp->link;
+ /* Link the previous and the next */
+ ACE_OS::free( defp);
+ /* Delete the definition to enable popped def */
}
- } else { /* No current definition nor pushed definition */
- if (warn_level & 1)
- cwarn( "\"%s\" has not been defined" /* _W1_ */
- , identifier, 0L, 0);
+ } /* Else no current definition exists */
}
- } else { /* Wrong syntax */
+ while ((defp = *prevp) != 0) {
+ /* Increment or decrement "push" count of all pushed defs */
+ if ((cmp = ACE_OS::memcmp( defp->name, identifier, s_name)) > 0)
+ break;
+ defp->push += direction; /* Increment or decrement */
+ prevp = &defp->link;
+ }
+ } else { /* No current definition nor pushed definition */
if (warn_level & 1)
- cwarn( "Bad %s syntax", direction == PUSH /* _W1_ */
- ? "push_macro" : "pop_macro", 0L, 0);
+ cwarn( "\"%s\" has not been defined" /* _W1_ */
+ , identifier, 0L, 0);
+ }
+ } else { /* Wrong syntax */
+ if (warn_level & 1)
+ cwarn( "Bad %s syntax", direction == PUSH /* _W1_ */
+ ? "push_macro" : "pop_macro", 0L, 0);
}
-}
-
-static void do_asm(
- int asm_start /* #asm ? */
-)
-/*
- * #asm, #endasm
- * Originally written for OS-9/09 Microware C.
- */
-{
+ }
+
+ static void do_asm(
+ int asm_start /* #asm ? */
+ )
+ /*
+ * #asm, #endasm
+ * Originally written for OS-9/09 Microware C.
+ */
+ {
if (! compiling)
- return;
+ return;
if (asm_start == (in_asm != 0L)) {
- if (in_asm)
- cerror( "In #asm block started at line %.0s%ld" /* _E_ */
- , 0, in_asm, 0);
- else
- cerror( "Without #asm", 0, 0L, 0); /* _E_ */
- skip_nl();
- unget_ch();
- return;
+ if (in_asm)
+ cerror( "In #asm block started at line %.0s%ld" /* _E_ */
+ , 0, in_asm, 0);
+ else
+ cerror( "Without #asm", 0, 0L, 0); /* _E_ */
+ skip_nl();
+ unget_ch();
+ return;
}
in_asm = asm_start ? src_line : 0L;
-}
-
-void do_old( void)
-/*
- * Process the out-of-standard directives.
- * GCC permits #include_next and #warning even in STANDARD mode.
- */
-{
+ }
+
+ void do_old( void)
+ /*
+ * Process the out-of-standard directives.
+ * GCC permits #include_next and #warning even in STANDARD mode.
+ */
+ {
static const char * const unknown
- = "Unknown #directive \"%s\"%.0ld%s"; /* _E_ _W8_ */
+ = "Unknown #directive \"%s\"%.0ld%s"; /* _E_ _W8_ */
+ // static const char * const ext
+ // = "%s is not allowed by Standard%.0ld%s"; /* _W2_ _W8_*/
#if COMPILER == GNUC
- static const char * const gnu_ext
- = "%s is not allowed by Standard%.0ld%s"; /* _W2_ _W8_*/
-
if (str_eq( identifier, "include_next")) {
- if ((compiling && (warn_level & 2))
- || (! compiling && warn_level & 8))
- cwarn( gnu_ext, "#include_next", 0L
- , compiling ? 0 : " (in skipped block)");
- if (! compiling)
- return;
- in_include = TRUE;
- do_include( TRUE);
- in_include = FALSE;
+ if ((compiling && (warn_level & 2))
+ || (! compiling && (warn_level & 8)))
+ cwarn( ext, "#include_next", 0L
+ , compiling ? 0 : " (in skipped block)");
+ if (! compiling)
return;
+ in_include = TRUE;
+ do_include( TRUE);
+ in_include = FALSE;
+ return;
} else if (str_eq( identifier, "warning")) {
- if ((compiling && (warn_level & 2))
- || (! compiling && warn_level & 8))
- cwarn( gnu_ext, "#warning", 0L
- , compiling ? 0 : " (in skipped block)");
- if (! compiling)
- return;
- cwarn( infile->buffer, 0, 0L, 0);
- /* Always output the warning */
- skip_nl();
- unget_ch();
+ if ((compiling && (warn_level & 2))
+ || (! compiling && (warn_level & 8)))
+ cwarn( ext, "#warning", 0L
+ , compiling ? 0 : " (in skipped block)");
+ if (! compiling)
return;
+ cwarn( infile->buffer, 0, 0L, 0);
+ /* Always output the warning */
+ skip_nl();
+ unget_ch();
+ return;
} else if (str_eq( identifier, "ident") || str_eq( identifier, "sccs")) {
- if ((compiling && (warn_level & 1))
- || (! compiling && warn_level & 8)) {
- if (str_eq( identifier, "ident"))
- cwarn(
- compiling ? "Ignored #ident" : "#ident (in skipped block)" /* _W1_ _W8_*/
- , 0, 0L, 0);
- else
- cwarn(
- compiling ? "Ignored #sccs" : "#sccs (in skipped block)" /* _W1_ _W8_*/
- , 0, 0L, 0);
- }
- if (! compiling)
- return;
- skip_nl();
- unget_ch();
+ if ((compiling && (warn_level & 1))
+ || (! compiling && (warn_level & 8))) {
+ if (str_eq( identifier, "ident"))
+ cwarn(
+ compiling ? "Ignored #ident" : "#ident (in skipped block)" /* _W1_ _W8_*/
+ , 0, 0L, 0);
+ else
+ cwarn(
+ compiling ? "Ignored #sccs" : "#sccs (in skipped block)" /* _W1_ _W8_*/
+ , 0, 0L, 0);
+ }
+ if (! compiling)
return;
+ skip_nl();
+ unget_ch();
+ return;
}
#endif /* COMPILER == GNUC */
#if COMPILER == MSC
if (str_eq( identifier, "using") || str_eq( identifier, "import")) {
- /* #using or #import */
- if (! compiling)
- return;
- mcpp_fputs( infile->buffer, OUT); /* Putout the line as is*/
- skip_nl();
- unget_ch();
+ /* #using or #import */
+ if (! compiling)
return;
+ mcpp_fputs( infile->buffer, OUT); /* Putout the line as is*/
+ skip_nl();
+ unget_ch();
+ return;
}
#endif
- if (! standard && do_prestd_directive())
+#if SYSTEM == SYS_MAC
+ if (str_eq( identifier, "import")) {
+ if ((compiling && (warn_level & 2))
+ || (! compiling && (warn_level & 8)))
+ cwarn( ext, "#import", 0L
+ , compiling ? 0 : " (in skipped block)");
+ if (! compiling)
return;
+ in_import = in_include = TRUE;
+ do_include( FALSE);
+ in_import = in_include = FALSE;
+ return;
+ }
+#endif
+
+ if (! standard && do_prestd_directive())
+ return;
if (compiling) {
- if (lang_asm) { /* "Assembler" source */
- if (warn_level & 1)
- cwarn( unknown, identifier, 0L, 0);
- mcpp_fputs( infile->buffer, OUT); /* Putout the line */
- } else {
- cerror( unknown, identifier, 0L, 0);
- }
+ if (option_flags.lang_asm) { /* "Assembler" source */
+ if (warn_level & 1)
+ cwarn( unknown, identifier, 0L, 0);
+ mcpp_fputs( infile->buffer, OUT); /* Putout the line */
+ } else {
+ cerror( unknown, identifier, 0L, 0);
+ }
} else if (warn_level & 8) {
- cwarn( unknown, identifier, 0L, " (in skipped block)");
+ cwarn( unknown, identifier, 0L, " (in skipped block)");
}
skip_nl();
unget_ch();
return;
-}
+ }
-static int do_prestd_directive( void)
-/*
- * Process directives for pre-Standard mode.
- */
-{
+ static int do_prestd_directive( void)
+ /*
+ * Process directives for pre-Standard mode.
+ */
+ {
#if COMPILER != GNUC
if (str_eq( identifier, "assert")) { /* #assert */
- if (! compiling) /* Only validity check */
- return TRUE;
- if (eval_if() == 0L) { /* Assert expression */
- cerror( "Preprocessing assertion failed" /* _E_ */
- , 0, 0L, 0);
- skip_nl();
- unget_ch();
- }
+ if (! compiling) /* Only validity check */
return TRUE;
+ if (eval_if() == 0L) { /* Assert expression */
+ cerror( "Preprocessing assertion failed" /* _E_ */
+ , 0, 0L, 0);
+ skip_nl();
+ unget_ch();
+ }
+ return TRUE;
} else
#endif
- if (str_eq( identifier, "put_defines")) {
+ if (str_eq( identifier, "put_defines")) {
if (! compiling) /* Only validity check */
- return TRUE;
+ return TRUE;
if (mcpp_mode != OLD_PREP && ! is_junk())
- dump_def( dDflag, TRUE); /* #put_defines */
+ dump_def( TRUE, FALSE); /* #put_defines */
skip_nl();
unget_ch();
return TRUE;
- } else if (str_eq( identifier, "preprocess")) {
+ } else if (str_eq( identifier, "preprocess")) {
if (! compiling) /* Only validity check */
- return TRUE;
+ return TRUE;
if (mcpp_mode != OLD_PREP && ! is_junk())
- /* Just putout the directive for the succeding preprocessor */
- mcpp_fputs( "#preprocessed\n", OUT);
+ /* Just putout the directive for the succeding preprocessor */
+ mcpp_fputs( "#preprocessed\n", OUT);
skip_nl();
unget_ch();
return TRUE;
- } else if (str_eq( identifier, "preprocessed")) {
+ } else if (str_eq( identifier, "preprocessed")) {
if (! compiling) /* Only validity check */
- return TRUE;
+ return TRUE;
if (mcpp_mode != OLD_PREP && ! is_junk()) {
- skip_nl();
- do_preprocessed(); /* #preprocessed */
- return TRUE;
+ skip_nl();
+ do_preprocessed(); /* #preprocessed */
+ return TRUE;
}
skip_nl();
unget_ch();
return TRUE;
- }
+ }
if (str_eq( identifier, "debug")) { /* #debug <args> */
- if (! compiling) /* Only validity check */
- return TRUE;
- do_debug( TRUE);
+ if (! compiling) /* Only validity check */
return TRUE;
+ do_debug( TRUE);
+ return TRUE;
} else if (str_eq( identifier, "end_debug")) {
- if (! compiling)
- return TRUE;
- do_debug( FALSE); /* #end_debug <args> */
+ if (! compiling)
return TRUE;
+ do_debug( FALSE); /* #end_debug <args> */
+ return TRUE;
}
if (str_eq( identifier, "asm")) { /* #asm */
- do_asm( TRUE);
- return TRUE;
+ do_asm( TRUE);
+ return TRUE;
}
if (str_eq( identifier, "endasm")) { /* #endasm */
- do_asm( FALSE);
- skip_nl(); /* Skip comments, etc. */
- unget_ch();
- return TRUE;
+ do_asm( FALSE);
+ skip_nl(); /* Skip comments, etc. */
+ unget_ch();
+ return TRUE;
}
return FALSE; /* Unknown directive */
-}
-
-static void do_preprocessed( void)
-/*
- * The source file has been already preprocessed.
- * Copy the lines to output.
- * Install macros according the #define directives.
- */
-{
+ }
+
+ static void do_preprocessed( void)
+ /*
+ * The source file has been already preprocessed.
+ * Copy the lines to output.
+ * Install macros according the #define directives.
+ */
+ {
const char * corrupted =
- "This preprocessed file is corrupted"; /* _F_ */
+ "This preprocessed file is corrupted"; /* _F_ */
FILEINFO * file;
char * lbuf;
char * cp;
@@ -3575,188 +4585,292 @@ static void do_preprocessed( void)
/* Copy the input to output until a comment line appears. */
while (ACE_OS::fgets( lbuf, NBUFF, file->fp) != 0
- && ACE_OS::memcmp( lbuf, "/*", 2) != 0) {
+ && ACE_OS::memcmp( lbuf, "/*", 2) != 0) {
#if STD_LINE_PREFIX == FALSE
- if (ACE_OS::memcmp( lbuf, "#line ", 6) == 0) {
- ACE_OS::strcpy( arg, lbuf + 6);
- mcpp_fputs( conv, OUT);
- } else
+ if (ACE_OS::memcmp( lbuf, "#line ", 6) == 0) {
+ ACE_OS::strcpy( arg, lbuf + 6);
+ mcpp_fputs( conv, OUT);
+ } else
#endif
{
- mcpp_fputs( lbuf, OUT);
+ mcpp_fputs( lbuf, OUT);
}
}
if (! str_eq( lbuf, "/* Currently defined macros. */\n"))
- cfatal( "This is not a preprocessed source" /* _F_ */
- , 0, 0L, 0);
+ cfatal( "This is not a preprocessed source" /* _F_ */
+ , 0, 0L, 0);
/* Define macros according to the #define lines. */
while (ACE_OS::fgets( lbuf, NWORK, file->fp) != 0) {
- if (ACE_OS::memcmp( lbuf, "/*", 2) == 0) {
- /* Standard predefined macro */
- continue;
- } else {
- if (ACE_OS::memcmp( lbuf, "#define ", 8) != 0) {
- if (ACE_OS::memcmp( lbuf, "#line", 5) == 0)
- continue;
- else
- cfatal( corrupted, 0, 0L, 0);
- }
- /* Filename and line-number information in comment as: */
- /* dir/fname:1234\t*/
- cp = lbuf + ACE_OS::strlen( lbuf);
- if ((ACE_OS::memcmp( cp - 4, "\t*/\n", 4) != 0)
- || (*(cp - 4) = EOS
- , (comment = ACE_OS::strrchr( lbuf, '*')) == 0)
- || (ACE_OS::memcmp( --comment, "/* ", 3) != 0)
- || ((colon = ACE_OS::strrchr( comment, ':')) == 0))
- cfatal( corrupted, 0, 0L, 0);
- src_line = atol( colon + 1); /* Pseudo line number */
- *colon = EOS;
- dir = comment + 3;
- inc_dirp = &null;
- /* Search the include directory list */
- for (incptr = incdir ; incptr < incend; incptr++) {
- if (ACE_OS::memcmp( *incptr, dir, ACE_OS::strlen( *incptr)) == 0) {
- inc_dirp = incptr;
- break;
- }
- }
- /* Register the filename to fnamelist[] */
- /* inc_dirp may be 0, and cur_fname may be "(predefined)" */
- cur_fname = set_fname( dir + ACE_OS::strlen( *inc_dirp));
- ACE_OS::strcpy( comment - 2, "\n"); /* Remove the comment */
- unget_string( lbuf + 8, 0);
- do_define( FALSE);
- get_ch(); /* '\n' */
- get_ch(); /* Clear the "file" */
- unget_ch(); /* infile == file */
+ if (ACE_OS::memcmp( lbuf, "/*", 2) == 0) {
+ /* Standard predefined macro */
+ continue;
+ }
+ if (ACE_OS::memcmp( lbuf, "#define ", 8) != 0) {
+ if (ACE_OS::memcmp( lbuf, "#line", 5) == 0)
+ continue;
+ else
+ cfatal( corrupted, 0, 0L, 0);
+ }
+ /* Filename and line-number information in comment as: */
+ /* dir/fname:1234\t*/
+ cp = lbuf + ACE_OS::strlen( lbuf);
+ if ((ACE_OS::memcmp( cp - 4, "\t*/\n", 4) != 0)
+ || (*(cp - 4) = EOS
+ , (comment = ACE_OS::strrchr( lbuf, '*')) == 0)
+ || (ACE_OS::memcmp( --comment, "/* ", 3) != 0)
+ || ((colon = ACE_OS::strrchr( comment, ':')) == 0))
+ cfatal( corrupted, 0, 0L, 0);
+ src_line = ACE_OS::atol( colon + 1); /* Pseudo line number */
+ *colon = EOS;
+ dir = comment + 3;
+ inc_dirp = &null;
+ /* Search the include directory list */
+ for (incptr = incdir ; incptr < incend; incptr++) {
+ if (ACE_OS::memcmp( *incptr, dir, ACE_OS::strlen( *incptr)) == 0) {
+ inc_dirp = incptr;
+ break;
}
+ }
+ /* Register the filename to fnamelist[] */
+ /* inc_dirp may be 0, and cur_fname may be "(predefined)" */
+ cur_fname = set_fname( dir + ACE_OS::strlen( *inc_dirp));
+ ACE_OS::strcpy( comment - 2, "\n"); /* Remove the comment */
+ unget_string( lbuf + 8, 0);
+ do_define( FALSE, 0);
+ get_ch(); /* '\n' */
+ get_ch(); /* Clear the "file" */
+ unget_ch(); /* infile == file */
}
file->bptr = file->buffer + ACE_OS::strlen( file->buffer);
-}
-
-static int do_debug(
- int set /* TRUE to set debugging */
-)
-/*
- * #pragma MCPP debug, #pragma MCPP end_debug, #debug, #end_debug
- * Return TRUE when diagnostic is issued else return FALSE.
- */
-{
+ }
+
+ static int do_debug(
+ int set /* TRUE to set debugging */
+ )
+ /*
+ * #pragma MCPP debug, #pragma MCPP end_debug, #debug, #end_debug
+ * Return TRUE when diagnostic is issued else return FALSE.
+ */
+ {
struct Debug_arg {
- const char * arg_name; /* Name of option */
- int arg_num; /* Value of 'debug' */
+ const char * arg_name; /* Name of option */
+ int arg_num; /* Value of 'debug' */
};
static struct Debug_arg debug_args[] = {
- { "path", PATH },
- { "token", TOKEN },
- { "expand", EXPAND },
- { "if", IF },
- { "expression", EXPRESSION },
- { "getc", GETC },
- { "memory", MEMORY },
- { 0, 0 },
+ { "path", PATH },
+ { "token", TOKEN },
+ { "expand", EXPAND },
+ { "macro_call", MACRO_CALL }, /* Implemented only in STD mode */
+ { "if", IF },
+ { "expression", EXPRESSION },
+ { "getc", GETC },
+ { "memory", MEMORY },
+ { 0, 0 },
};
struct Debug_arg *argp;
- int num;
+ int num = 0;
int c;
c = skip_ws();
if (c == '\n') {
- unget_ch();
+ unget_ch();
+ if (set) {
+ if (warn_level & 1)
+ cwarn( "No argument", 0, 0L, 0); /* _W1_ */
+ return TRUE;
+ } else {
+ mcpp_debug = 0; /* Clear all the flags */
+ return FALSE;
+ }
+ }
+ while (scan_token( c, (workp = work_buf, &workp), work_end) == NAM) {
+ argp = debug_args;
+ while (argp->arg_name) {
+ if (str_eq( argp->arg_name, work_buf))
+ break;
+ argp++;
+ }
+ if (argp->arg_name == 0) {
+ if (warn_level & 1)
+ cwarn( unknown_arg, work_buf, 0L, 0);
+ goto diagnosed;
+ } else {
+ num = argp->arg_num;
if (set) {
- if (warn_level & 1)
- cwarn( "No argument", 0, 0L, 0); /* _W1_ */
- return TRUE;
+ mcpp_debug |= num;
+ if (num == PATH)
+ dump_path();
+ else if (num == MEMORY)
+ print_heap();
+ else if (num == MACRO_CALL)
+ option_flags.k = TRUE; /* This pragma needs this mode */
} else {
- mcpp_debug = 0; /* Clear all the flags */
- return FALSE;
+ mcpp_debug &= ~num;
}
+ }
+ c = skip_ws();
}
- while (scan_token( c, (workp = work_buf, &workp), work_end) == NAM) {
- argp = debug_args;
- while (argp->arg_name) {
- if (str_eq( argp->arg_name, work_buf))
- break;
- argp++;
- }
- if (argp->arg_name == 0) {
- if (warn_level & 1)
- cwarn( unknown_arg, work_buf, 0L, 0);
- goto diagnosed;
+ if ((mcpp_mode != STD && (mcpp_debug & MACRO_CALL)) || c != '\n') {
+ if (warn_level & 1) {
+ if (c != '\n') {
+ cwarn( not_ident, work_buf, 0L, 0);
} else {
- num = argp->arg_num;
- if (set) {
- mcpp_debug |= num;
- if (num == PATH)
- dump_path();
- else if (num == MEMORY)
- print_heap();
- } else {
- mcpp_debug &= ~num;
- }
+ cwarn( unknown_arg, work_buf, 0L, 0);
+ mcpp_debug &= ~num; /* Disable */
}
- c = skip_ws();
- }
- if (c != '\n') {
- if (warn_level & 1)
- cwarn( not_ident, work_buf, 0L, 0);
- skip_nl();
- unget_ch();
- goto diagnosed;
+ }
+ skip_nl();
+ unget_ch();
+ goto diagnosed;
}
unget_ch();
return FALSE;
-diagnosed:
+ diagnosed:
return TRUE;
-}
+ }
-void put_asm( void)
-/*
- * Put out source line as it is.
- */
-{
+ void put_asm( void)
+ /*
+ * Put out source line as it is.
+ */
+ {
#if 0
mcpp_fputs( "#2\n", OUT);
mcpp_fputs( infile->buffer, OUT);
skip_nl();
#endif
-}
+ }
-static void dump_path( void)
-/*
- * Show the include directories.
- */
-{
+ static void dump_path( void)
+ /*
+ * Show the include directories.
+ */
+ {
const char ** incptr;
const char * inc_dir;
const char * dir = "./";
+ // int i;
mcpp_fputs( "Include paths are as follows --\n", DBG);
for (incptr = incdir; incptr < incend; incptr++) {
- inc_dir = *incptr;
- if (*inc_dir == '\0')
- inc_dir = dir;
- mcpp_fprintf( DBG, " %s\n", inc_dir);
+ inc_dir = *incptr;
+ if (*inc_dir == '\0')
+ inc_dir = dir;
+ mcpp_fprintf( DBG, " %s\n", inc_dir);
}
mcpp_fputs( "End of include path list.\n", DBG);
-}
+#if SYSTEM == SYS_MAC
+ mcpp_fputs( "Framework paths are as follows --\n", DBG);
+ for (i = 0; i < num_framework; i++ )
+ mcpp_fprintf( DBG, " %s\n", framework[ i]);
+ mcpp_fputs( "End of framework path list.\n", DBG);
+#endif
+ }
+
+ /*
+ * Note: The getopt() of glibc should not be used since the specification
+ * differs from the standard one.
+ * Use this mcpp_getopt() for mcpp.
+ */
+
+ /* Based on the public-domain-software released by AT&T in 1985. */
+
+#define OPTERR( s, c) if (mcpp_opterr) { \
+ mcpp_fputs( argv[0], ERR); \
+ mcpp_fputs( s, ERR); \
+ mcpp_fputc( c, ERR); \
+ mcpp_fputc( '\n', ERR); \
+ }
+
+ static int mcpp_getopt(
+ int argc,
+ char * const * argv,
+ const char * opts
+ )
+ /*
+ * Get the next option (and it's argument) from the command line.
+ */
+ {
+ const char * const error1 = ": option requires an argument --";
+ const char * const error2 = ": illegal option --";
+ static int sp = 1;
+ int c;
+ const char * cp;
-/*
- * list_heap() is a function to print out information of heap-memory.
- * See "kmmalloc-2.5.1.lzh" by kmatsui.
- */
+ if (sp == 1) {
+ if (argc <= mcpp_optind ||
+ argv[ mcpp_optind][ 0] != '-'
+ || argv[ mcpp_optind][ 1] == '\0') {
+ return EOF;
+ } else if (ACE_OS::strcmp( argv[ mcpp_optind], "--") == 0) {
+ mcpp_optind++;
+ return EOF;
+ }
+ }
+ /* mcpp_optopt = c = (unsigned char) argv[ mcpp_optind][ sp]; */
+ mcpp_optopt = c = argv[ mcpp_optind][ sp] & UCHARMAX;
+ if (c == ':' || (cp = ACE_OS::strchr( opts, c)) == 0) {
+ OPTERR( error2, c)
+ if (argv[ mcpp_optind][ ++sp] == '\0') {
+ mcpp_optind++;
+ sp = 1;
+ }
+ return '?';
+ }
+ if (*++cp == ':') {
+ if (argv[ mcpp_optind][ sp+1] != '\0') {
+ mcpp_optarg = &argv[ mcpp_optind++][ sp+1];
+ } else if (argc <= ++mcpp_optind) {
+ OPTERR( error1, c)
+ sp = 1;
+ return '?';
+ } else {
+ mcpp_optarg = argv[ mcpp_optind++];
+ }
+ sp = 1;
+ } else {
+ if (argv[ mcpp_optind][ ++sp] == '\0') {
+ sp = 1;
+ mcpp_optind++;
+ }
+ mcpp_optarg = 0;
+ }
+ return c;
+ }
+
+#if defined(HOST_HAVE_STPCPY) && HOST_HAVE_STPCPY == FALSE
+ char * stpcpy(
+ char * dest,
+ const char * src
+ )
+ /*
+ * Copy the string and return the advanced pointer.
+ */
+ {
+ const char * s;
+ char * d;
+
+ for (s = src, d = dest; (*d++ = *s++) != '\0'; )
+ ;
+ return d - 1;
+ }
+#endif
+
+ /*
+ * list_heap() is a function to print out information of heap-memory.
+ * See "kmmalloc-2.5.3.zip" by kmatsui.
+ */
#if KMMALLOC
- int list_heap( int);
+ int list_heap( int);
#elif BSD_MALLOC
- int list_heap( char *);
+ int list_heap( char *);
#elif DB_MALLOC || DMALLOC
- int list_heap( FILE *);
+ int list_heap( FILE *);
#endif
-void print_heap( void)
-{
+ void print_heap( void)
+ {
#if KMMALLOC
list_heap( 1);
#elif BSD_MALLOC
@@ -3764,42 +4878,36 @@ void print_heap( void)
#elif DB_MALLOC || DMALLOC || PHK_MALLOC || DLMALLOC
list_heap( fp_debug);
#endif
-}
+ }
-void at_end( void)
-/*
- * Handle the commands to be executed at the end of processing.
- */
-{
+ void at_end( void)
+ /*
+ * Handle the commands to be executed at the end of processing.
+ */
+ {
#if COMPILER == GNUC
- if (dMflag || dDflag) {
- dump_def( dDflag, FALSE);
- }
-#endif
-}
-
-#if MCPP_LIB
-void clear_filelist( void)
-/*
- * Free malloced memory for filename-list and directory-list.
- */
-{
- const char ** namep;
- INC_LIST * inc;
- INC_LIST * pnext;
-
+ if (dMflag || dDflag)
+ dump_def( FALSE, FALSE);
+#endif
+ }
+
+#ifdef MCPP_LIB
+ void clear_filelist( void)
+ /*
+ * Free malloced memory for filename-list and directory-list.
+ */
+ {
+ const char ** incp;
+ INC_LIST * namep;
+
+ for (incp = incdir; incp < incend; incp++)
+ ACE_OS::free( (void *) *incp);
+ ACE_OS::free( (void *) incdir);
for (namep = fnamelist; namep < fname_end; namep++)
- ACE_OS::free( (void*) *namep);
-
- if (standard) {
- for (inc = start_inc; inc != 0; inc = pnext) {
- pnext = inc->next;
- ACE_OS::free( inc);
- }
- start_inc = 0;
- }
-
- for (namep = incdir; namep < incend; namep++)
- ACE_OS::free( (void *) *namep);
-}
+ ACE_OS::free( (void *) namep->name);
+ ACE_OS::free( (void *) fnamelist);
+ if (standard)
+ ACE_OS::free( (void *) once_list);
+ }
#endif
+
diff --git a/TAO/TAO_IDL/contrib/mcpp/testmain.c b/TAO/TAO_IDL/contrib/mcpp/testmain.c
new file mode 100644
index 00000000000..fdef7aa80f5
--- /dev/null
+++ b/TAO/TAO_IDL/contrib/mcpp/testmain.c
@@ -0,0 +1,84 @@
+/* $Id$
+ * testmain.c: A sample source to show how to use mcpp as a subroutine.
+ * 2006/11 Contributed by Juergen Mueller.
+ * Refer to mcpp-porting.html section 3.12 for compiling mcpp as a subroutine.
+ *
+ * 2007/03 Updated to enable testing of memory buffer output.
+ * 2008/04 The macro MCPP_LIB is no longer necessary.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include "mcpp_lib.h"
+// FUZZ: disable check_for_improper_main_declaration
+int main(int argc, char *argv[])
+// FUZZ: enable check_for_improper_main_declaration
+{
+ int i, j;
+ char ** tmp_argv;
+
+ tmp_argv = (char **) malloc(sizeof(char *) * (argc + 1));
+
+ if (tmp_argv == 0) {
+ return(0);
+ }
+
+ /*
+ * assume strict order: <options, ...> <files, ...> and
+ * each option and its argument are specified without intervening spaces
+ * such as '-I/dir' or '-otmp.i' (not '-I /dir' nor '-o tmp.i').
+ */
+ for (i = 0; i < argc; ++i) {
+ tmp_argv[i] = argv[i]; /* copy options */
+
+ if ( (*argv[i] != '-')
+ && (*argv[i] != '/')
+ && (i > 0)) {
+ break;
+ }
+ }
+
+ /* this works only if called function does not manipulate pointer array! */
+ /*
+ * Note that mcpp no longer uses freopen() since 2008/04/20, so you can
+ * output multiple input to different files, though this sample output
+ * to stdout, which may be redirected.
+ */
+ for (j = i; i < argc; ++i) {
+ int retval;
+ char * result;
+ clock_t start, finish;
+
+ tmp_argv[j] = argv[i]; /* process each file */
+ fprintf(stderr, "\n%s\n", argv[i]);
+
+ start = clock(); /* get start time */
+#if OUT2MEM /* Use memory buffer */
+ mcpp_use_mem_buffers( 1); /* enable memory output */
+ retval = mcpp_lib_main(j + 1, tmp_argv); /* call MCPP */
+ result = mcpp_get_mem_buffer( OUT); /* get the output */
+ if (result)
+ fputs( result, stdout);
+ result = mcpp_get_mem_buffer( ERR); /* get the diagnostics */
+ if (result)
+ fputs( result, stderr);
+#if 0 /* debug output is the same with normal output by default */
+ result = mcpp_get_mem_buffer( DBG); /* get the debug output */
+ if (result)
+ fputs( result, stdout); /* appended to output */
+#endif
+#else /* Normal output to file */
+ retval = mcpp_lib_main(j + 1, tmp_argv);
+#endif
+ finish = clock(); /* get finish time */
+
+ fprintf(stderr, "\nReturned status:%d, Elapsed time: %.3f seconds.\n",
+ retval, (double)(finish - start) / (double)CLOCKS_PER_SEC);
+ }
+
+ free(tmp_argv);
+
+ return(0);
+}
diff --git a/TAO/TAO_IDL/driver/drv_mcpp_preproc.cpp b/TAO/TAO_IDL/driver/drv_mcpp_preproc.cpp
index faa8ea96f47..bbb496b4e4f 100644
--- a/TAO/TAO_IDL/driver/drv_mcpp_preproc.cpp
+++ b/TAO/TAO_IDL/driver/drv_mcpp_preproc.cpp
@@ -284,7 +284,7 @@ DRV_cpp_init (void)
// e.g. "/usr/local/include/tao"
// We deal with a case like this below ...
DRV_add_include_path (include_path1, TAO_IDL_INCLUDE_DIR, 0);
- DRV_add_include_path (include_path2, ".", 0);
+ DRV_add_include_path (include_path2, TAO_IDL_INCLUDE_DIR, "/tao");
#else
DRV_add_include_path (include_path1, ".", 0);
#endif /* TAO_IDL_INCLUDE_DIR */
@@ -494,9 +494,15 @@ DRV_cpp_post_init (void)
}
else
{
+#if defined (TAO_IDL_INCLUDE_DIR)
+ DRV_add_include_path (include_path3,
+ TAO_IDL_INCLUDE_DIR,
+ "/orbsvcs");
+#else
// If ACE_ROOT isn't defined either, there will already
// be a warning from DRV_preproc().
DRV_add_include_path (include_path3, ".", 0);
+#endif /* TAO_IDL_INCLUDE_DIR */
}
}
@@ -531,10 +537,22 @@ DRV_cpp_post_init (void)
}
else
{
+#if defined (TAO_IDL_INCLUDE_DIR)
+ DRV_add_include_path (include_path4,
+ TAO_IDL_INCLUDE_DIR,
+ 0);
+ DRV_add_include_path (include_path5,
+ TAO_IDL_INCLUDE_DIR,
+ "/ciao");
+ DRV_add_include_path (include_path5,
+ TAO_IDL_INCLUDE_DIR,
+ "/ccm");
+#else
// If ACE_ROOT isn't defined either, there will already
// be a warning from DRV_preproc().
DRV_add_include_path (include_path4, ACE_ROOT, ".");
DRV_add_include_path (include_path5, ACE_ROOT, ".");
+#endif /* TAO_IDL_INCLUDE_DIR */
}
}
diff --git a/TAO/TAO_IDL/driver/drv_preproc.cpp b/TAO/TAO_IDL/driver/drv_preproc.cpp
index d1d5bc58e8d..8780ec5c55c 100644
--- a/TAO/TAO_IDL/driver/drv_preproc.cpp
+++ b/TAO/TAO_IDL/driver/drv_preproc.cpp
@@ -292,8 +292,12 @@ DRV_cpp_init (void)
// TAO_IDL_INCLUDE_DIR may be in quotes,
// e.g. "/usr/local/include/tao"
// We deal with a case like this below ...
- DRV_add_include_path (include_path1, TAO_IDL_INCLUDE_DIR, 0);
- DRV_add_include_path (include_path2, ".", 0);
+ DRV_add_include_path (include_path1,
+ TAO_IDL_INCLUDE_DIR,
+ 0);
+ DRV_add_include_path (include_path2,
+ TAO_IDL_INCLUDE_DIR,
+ "/tao");
#else
DRV_add_include_path (include_path1, ".", 0);
#endif /* TAO_IDL_INCLUDE_DIR */
@@ -507,9 +511,15 @@ DRV_cpp_post_init (void)
}
else
{
+#if defined (TAO_IDL_INCLUDE_DIR)
+ DRV_add_include_path (include_path3,
+ TAO_IDL_INCLUDE_DIR,
+ "/orbsvcs");
+#else
// If ACE_ROOT isn't defined either, there will already
// be a warning from DRV_preproc().
DRV_add_include_path (include_path3, ".", 0);
+#endif /* TAO_IDL_INCLUDE_DIR */
}
}
@@ -544,10 +554,22 @@ DRV_cpp_post_init (void)
}
else
{
+#if defined (TAO_IDL_INCLUDE_DIR)
+ DRV_add_include_path (include_path4,
+ TAO_IDL_INCLUDE_DIR,
+ 0);
+ DRV_add_include_path (include_path5,
+ TAO_IDL_INCLUDE_DIR,
+ "/ciao");
+ DRV_add_include_path (include_path5,
+ TAO_IDL_INCLUDE_DIR,
+ "/ccm");
+#else
// If ACE_ROOT isn't defined either, there will already
// be a warning from DRV_preproc().
DRV_add_include_path (include_path4, ACE_ROOT, ".");
DRV_add_include_path (include_path5, ACE_ROOT, ".");
+#endif /* TAO_IDL_INCLUDE_DIR */
}
}
@@ -1091,7 +1113,7 @@ DRV_pre_proc (const char *myfile)
ACE_Process process;
// For complex builds, the default command line buffer size of 1024
- // is sometimes not enough. We use 4096 here.
+ // is sometimes not enough. We use 8192 here.
ACE_Process_Options cpp_options (1, // Inherit environment.
TAO_IDL_COMMAND_LINE_BUFFER_SIZE);
@@ -1099,7 +1121,14 @@ DRV_pre_proc (const char *myfile)
DRV_cpp_putarg (t_ifile);
DRV_cpp_putarg (0); // Null terminate the DRV_arglist.
- cpp_options.command_line (DRV_arglist);
+ if (cpp_options.command_line (DRV_arglist) != 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("%s: command line processing \"%s\" failed\n"),
+ ACE_TEXT_CHAR_TO_TCHAR (idl_global->prog_name ()),
+ DRV_arglist[0]));
+ throw Bailout ();
+ }
// Rename temporary files so that they have extensions accepted
// by the preprocessor. Renaming is (supposed to be) an atomic
diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy
index 7158b8728b2..adbaccf081d 100644
--- a/TAO/TAO_IDL/fe/idl.yy
+++ b/TAO/TAO_IDL/fe/idl.yy
@@ -4224,16 +4224,59 @@ param_type_spec
{
d->last_referenced_as ($1);
AST_Decl::NodeType nt = d->node_type ();
+ AST_Type *t = AST_Type::narrow_from_decl (d);
+ AST_Typedef *td = 0;
+ bool can_be_undefined = false;
if (nt == AST_Decl::NT_struct_fwd
|| nt == AST_Decl::NT_union_fwd
|| nt == AST_Decl::NT_struct
- || nt == AST_Decl::NT_union)
+ || nt == AST_Decl::NT_union
+ || nt == AST_Decl::NT_typedef)
{
- if (! AST_Type::narrow_from_decl (d)->is_defined ())
+ // This code block ensures that a sequence of
+ // as-yet-undefined struct or union isn't used
+ // as a return type or argument.
+ if (nt == AST_Decl::NT_typedef)
{
- idl_global->err ()->error1 (UTL_Error::EIDL_ILLEGAL_ADD,
- d);
+ td = AST_Typedef::narrow_from_decl (d);
+ AST_Type *pbt = td->primitive_base_type ();
+
+ if (pbt->node_type () == AST_Decl::NT_sequence)
+ {
+ t = pbt;
+ AST_Sequence *seq_type =
+ AST_Sequence::narrow_from_decl (pbt);
+ AST_Type *elem_type =
+ seq_type->base_type ();
+ AST_Decl::NodeType elem_nt =
+ elem_type->node_type ();
+
+ if (elem_nt == AST_Decl::NT_typedef)
+ {
+ AST_Typedef *elem_td =
+ AST_Typedef::narrow_from_decl (elem_type);
+ elem_type = elem_td->primitive_base_type ();
+ elem_nt = elem_type->node_type ();
+ }
+
+ if (elem_nt == AST_Decl::NT_interface
+ || elem_nt == AST_Decl::NT_interface_fwd
+ || elem_nt == AST_Decl::NT_valuetype
+ || elem_nt == AST_Decl::NT_valuetype_fwd
+ || elem_nt == AST_Decl::NT_component
+ || elem_nt == AST_Decl::NT_component_fwd)
+ {
+ can_be_undefined = true;
+ }
+ }
+ }
+
+ if (! t->is_defined () && ! can_be_undefined)
+ {
+ idl_global->err ()->error1 (
+ UTL_Error::EIDL_ILLEGAL_ADD,
+ (nt == AST_Decl::NT_typedef ? td : t));
/* If we don't return here, we'll crash later.*/
return 1;
diff --git a/TAO/TAO_IDL/fe/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp
index 7a720d016c4..a71d990eeeb 100644
--- a/TAO/TAO_IDL/fe/y.tab.cpp
+++ b/TAO/TAO_IDL/fe/y.tab.cpp
@@ -6388,16 +6388,59 @@ tao_yyreduce:
{
d->last_referenced_as (tao_yyvsp[0].idlist);
AST_Decl::NodeType nt = d->node_type ();
+ AST_Type *t = AST_Type::narrow_from_decl (d);
+ AST_Typedef *td = 0;
+ bool can_be_undefined = false;
if (nt == AST_Decl::NT_struct_fwd
|| nt == AST_Decl::NT_union_fwd
|| nt == AST_Decl::NT_struct
- || nt == AST_Decl::NT_union)
+ || nt == AST_Decl::NT_union
+ || nt == AST_Decl::NT_typedef)
{
- if (! AST_Type::narrow_from_decl (d)->is_defined ())
+ // This code block ensures that a sequence of
+ // as-yet-undefined struct or union isn't used
+ // as a return type or argument.
+ if (nt == AST_Decl::NT_typedef)
{
- idl_global->err ()->error1 (UTL_Error::EIDL_ILLEGAL_ADD,
- d);
+ td = AST_Typedef::narrow_from_decl (d);
+ AST_Type *pbt = td->primitive_base_type ();
+
+ if (pbt->node_type () == AST_Decl::NT_sequence)
+ {
+ t = pbt;
+ AST_Sequence *seq_type =
+ AST_Sequence::narrow_from_decl (pbt);
+ AST_Type *elem_type =
+ seq_type->base_type ();
+ AST_Decl::NodeType elem_nt =
+ elem_type->node_type ();
+
+ if (elem_nt == AST_Decl::NT_typedef)
+ {
+ AST_Typedef *elem_td =
+ AST_Typedef::narrow_from_decl (elem_type);
+ elem_type = elem_td->primitive_base_type ();
+ elem_nt = elem_type->node_type ();
+ }
+
+ if (elem_nt == AST_Decl::NT_interface
+ || elem_nt == AST_Decl::NT_interface_fwd
+ || elem_nt == AST_Decl::NT_valuetype
+ || elem_nt == AST_Decl::NT_valuetype_fwd
+ || elem_nt == AST_Decl::NT_component
+ || elem_nt == AST_Decl::NT_component_fwd)
+ {
+ can_be_undefined = true;
+ }
+ }
+ }
+
+ if (! t->is_defined () && ! can_be_undefined)
+ {
+ idl_global->err ()->error1 (
+ UTL_Error::EIDL_ILLEGAL_ADD,
+ (nt == AST_Decl::NT_typedef ? td : t));
/* If we don't return here, we'll crash later.*/
return 1;
diff --git a/TAO/TAO_IDL/include/ast_sequence.h b/TAO/TAO_IDL/include/ast_sequence.h
index ac21f2b357a..42646602968 100644
--- a/TAO/TAO_IDL/include/ast_sequence.h
+++ b/TAO/TAO_IDL/include/ast_sequence.h
@@ -104,6 +104,10 @@ public:
// union, array, typedef, and interface.
virtual bool legal_for_primary_key (void) const;
+ // Is the element type a forward declared struct or union
+ // that hasn't yet been fully defined?
+ virtual bool is_defined (void);
+
// Cleanup method.
virtual void destroy (void);
diff --git a/TAO/TAO_IDL/include/drv_extern.h b/TAO/TAO_IDL/include/drv_extern.h
index 74cd143f10e..d17fc3f264c 100644
--- a/TAO/TAO_IDL/include/drv_extern.h
+++ b/TAO/TAO_IDL/include/drv_extern.h
@@ -68,7 +68,7 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
#define _DRV_EXTERN_DRV_EXTERN_HH
// The ACE_Process_Options default size of 1024 is sometimes not enough.
-const unsigned long TAO_IDL_COMMAND_LINE_BUFFER_SIZE = 4 * 1024;
+const unsigned long TAO_IDL_COMMAND_LINE_BUFFER_SIZE = 8 * 1024;
// External functions for the IDL compiler driver program.
extern void DRV_parse_args (long, char **);
diff --git a/TAO/TAO_IDL/tao_idl.cpp b/TAO/TAO_IDL/tao_idl.cpp
index 3d50a37ba24..a80425bc792 100644
--- a/TAO/TAO_IDL/tao_idl.cpp
+++ b/TAO/TAO_IDL/tao_idl.cpp
@@ -196,9 +196,9 @@ DRV_drive (const char *s)
if (idl_global->compile_flags () & IDL_CF_INFORMATIVE)
{
ACE_DEBUG ((LM_DEBUG,
- "%s: preprocessing %s\n",
- ACE_TEXT_CHAR_TO_TCHAR (idl_global->prog_name ()),
- ACE_TEXT_CHAR_TO_TCHAR (s)));
+ ACE_TEXT("%C: preprocessing %C\n"),
+ idl_global->prog_name (),
+ s));
}
DRV_pre_proc (s);
@@ -214,9 +214,9 @@ DRV_drive (const char *s)
if (idl_global->compile_flags () & IDL_CF_INFORMATIVE)
{
ACE_DEBUG ((LM_DEBUG,
- "%s: parsing %s\n",
- ACE_TEXT_CHAR_TO_TCHAR (idl_global->prog_name ()),
- ACE_TEXT_CHAR_TO_TCHAR (s)));
+ ACE_TEXT("%C: parsing %C\n"),
+ idl_global->prog_name (),
+ s));
}
// Return value not used - error count stored in idl_global
@@ -225,8 +225,8 @@ DRV_drive (const char *s)
// Filename set by FE_yyparse(), so we output it immediately after.
ACE_DEBUG ((LM_DEBUG,
- "processing %s\n",
- ACE_TEXT_CHAR_TO_TCHAR (idl_global->filename ()->get_string ())));
+ ACE_TEXT("processing %C\n"),
+ idl_global->filename ()->get_string ()));
// We must do this as late as possible to make sure any
// forward declared structs or unions contained in a
@@ -237,9 +237,9 @@ DRV_drive (const char *s)
if (idl_global->err_count () > 0)
{
ACE_ERROR ((LM_ERROR,
- "%s: %s: found %d error%s\n",
- ACE_TEXT_CHAR_TO_TCHAR (idl_global->prog_name ()),
- ACE_TEXT_CHAR_TO_TCHAR (s),
+ ACE_TEXT("%C: %C: found %d error%s\n"),
+ idl_global->prog_name (),
+ s,
idl_global->err_count (),
(idl_global->err_count () > 1
? ACE_TEXT ("s")
@@ -254,9 +254,9 @@ DRV_drive (const char *s)
&& (idl_global->compile_flags () & IDL_CF_DUMP_AST))
{
ACE_DEBUG ((LM_DEBUG,
- "%s: dump %s\n",
- ACE_TEXT_CHAR_TO_TCHAR (idl_global->prog_name ()),
- ACE_TEXT_CHAR_TO_TCHAR (s)));
+ ACE_TEXT("%C: dump %C\n"),
+ idl_global->prog_name (),
+ s));
}
if (idl_global->compile_flags () & IDL_CF_DUMP_AST)
@@ -271,9 +271,9 @@ DRV_drive (const char *s)
if (idl_global->compile_flags () & IDL_CF_INFORMATIVE)
{
ACE_DEBUG ((LM_DEBUG,
- "%s: BE processing on %s\n",
- ACE_TEXT_CHAR_TO_TCHAR (idl_global->prog_name ()),
- ACE_TEXT_CHAR_TO_TCHAR (s)));
+ ACE_TEXT("%C: BE processing on %C\n"),
+ idl_global->prog_name (),
+ s));
}
// Make sure all forward declared structs and unions are defined
diff --git a/TAO/TAO_IDL/tao_idl.mpc b/TAO/TAO_IDL/tao_idl.mpc
index 232a217f66f..d8760007ad5 100644
--- a/TAO/TAO_IDL/tao_idl.mpc
+++ b/TAO/TAO_IDL/tao_idl.mpc
@@ -86,7 +86,7 @@ project(TAO_IDL_EXE) : aceexe, install, tao_output, crosscompile, mcpp, tao_idl_
exename = tao_idl
libs += TAO_IDL_BE TAO_IDL_FE
exeout = $(ACE_ROOT)/bin
- after += TAO_IDL_BE TAO_IDL_FE gperf
+ after += TAO_IDL_BE gperf
includes += $(TAO_ROOT)
specific (automake) {
diff --git a/TAO/TAO_IDL/util/utl_err.cpp b/TAO/TAO_IDL/util/utl_err.cpp
index 3e0cd97df09..506648e4899 100644
--- a/TAO/TAO_IDL/util/utl_err.cpp
+++ b/TAO/TAO_IDL/util/utl_err.cpp
@@ -129,7 +129,7 @@ error_string (UTL_Error::ErrorCode c)
case UTL_Error::EIDL_LABEL_TYPE:
return "label type incompatible with union discriminator type, ";
case UTL_Error::EIDL_ILLEGAL_ADD:
- return "forward declared type may be used only as a sequence element, ";
+ return "illegal use of incomplete type, ";
case UTL_Error::EIDL_ILLEGAL_USE:
return "illegal type used in expression, ";
case UTL_Error::EIDL_ILLEGAL_RAISES:
diff --git a/TAO/TAO_IDL/util/utl_global.cpp b/TAO/TAO_IDL/util/utl_global.cpp
index 5e9dfe7b3c0..68d05df6e0d 100644
--- a/TAO/TAO_IDL/util/utl_global.cpp
+++ b/TAO/TAO_IDL/util/utl_global.cpp
@@ -1486,9 +1486,9 @@ IDL_GlobalData::check_gperf (void)
ACE_Process_Options process_options;
// Set the command line for the gperf program.
- process_options.command_line ("%s"
- " "
- "-V",
+ process_options.command_line (ACE_TEXT ("%s")
+ ACE_TEXT (" ")
+ ACE_TEXT ("-V"),
idl_global->gperf_path ());
// Spawn a process for gperf.
diff --git a/TAO/VERSION b/TAO/VERSION
index f76d8cbe107..f562695594e 100644
--- a/TAO/VERSION
+++ b/TAO/VERSION
@@ -1,4 +1,4 @@
-This is TAO version 1.7, released Tue Apr 14 09:48:27 CDT 2009
+This is TAO version 1.7, released Mon Jun 22 09:33:40 CDT 2009
If you have any problems with or questions about TAO, please send
e-mail to the TAO mailing list (tao-users@cs.wustl.edu), using the
diff --git a/TAO/bin/tao_orb_tests.lst b/TAO/bin/tao_orb_tests.lst
index eb2ba93a4ad..b2f9368eb10 100644
--- a/TAO/bin/tao_orb_tests.lst
+++ b/TAO/bin/tao_orb_tests.lst
@@ -155,7 +155,14 @@ TAO/tests/Bug_3575_Regression/run_test.pl:
TAO/tests/Bug_3597_Regression/run_test.pl:
TAO/tests/Bug_3598a_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
TAO/tests/Bug_3630_Regression/run_test.pl: !FIXED_BUGS_ONLY
+TAO/tests/Bug_3632_Regression/run_test.pl:
TAO/tests/Bug_3636_Regression/run_test.pl: !FIXED_BUGS_ONLY
+TAO/tests/Bug_3647_Regression/run_test.pl:
+TAO/tests/Bug_3672_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !FIXED_BUGS_ONLY
+TAO/tests/Bug_3674_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
+TAO/tests/Bug_3676_Regression/run_test.pl: !NO_MESSAGING
+TAO/tests/Bug_3683_Regression/run_test.pl:
+TAO/tests/Bug_3695_Regression/run_test.pl:
TAO/tests/DIOP/run_test.pl: !ST !NO_DIOP !ACE_FOR_TAO !CORBA_E_MICRO !LabVIEW_RT !WinCE !FUZZ
TAO/tests/DIOP/run_test_ipv6.pl: IPV6 !ST !NO_DIOP !ACE_FOR_TAO !CORBA_E_MICRO !LabVIEW_RT !WinCE !FUZZ
TAO/tests/RTCORBA/Activate_Object_Multiple_ORBs/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
@@ -165,15 +172,15 @@ TAO/tests/RTCORBA/Client_Protocol/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_
TAO/tests/RTCORBA/Collocation/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
TAO/tests/RTCORBA/Destroy_Thread_Pool/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
TAO/tests/RTCORBA/Explicit_Binding/run_test.pl: !VxWorks !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !IPV6 !ACE_FOR_TAO
-TAO/tests/RTCORBA/Linear_Priority/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST!LynxOS
+TAO/tests/RTCORBA/Linear_Priority/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !LynxOS
TAO/tests/RTCORBA/MT_Client_Protocol_Priority/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !ACE_FOR_TAO !OpenVMS_IA64Crash
TAO/tests/RTCORBA/ORB_init/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
TAO/tests/RTCORBA/Persistent_IOR/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
-TAO/tests/RTCORBA/Policies/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO!ST
+TAO/tests/RTCORBA/Policies/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
TAO/tests/RTCORBA/Policy_Combinations/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
TAO/tests/RTCORBA/Priority_Inversion_With_Bands/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !ACE_FOR_TAO !OpenVMS_IA64Crash
TAO/tests/RTCORBA/Private_Connection/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO
-TAO/tests/RTCORBA/Profile_And_Endpoint_Selection/run_test.pl: !VxWorks!MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !IPV6 !ACE_FOR_TAO
+TAO/tests/RTCORBA/Profile_And_Endpoint_Selection/run_test.pl: !VxWorks !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !IPV6 !ACE_FOR_TAO
TAO/tests/RTCORBA/RTMutex/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
TAO/tests/RTCORBA/Server_Declared/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST
TAO/tests/RTCORBA/Server_Protocol/run_test.pl: !VxWorks !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !IPV6 !ACE_FOR_TAO
@@ -347,10 +354,10 @@ TAO/tests/Portable_Interceptors/Bug_3582/run_test.pl: !MINIMUM !CORBA_E_COMPACT
TAO/tests/ORT/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS
TAO/tests/Object_Loader/run_test.pl: !STATIC !LabVIEW_RT !WinCE !FUZZ
TAO/tests/Two_Objects/run_test.pl: !ST
-TAO/tests/TransportCurrent/Framework/run_test.pl -dynamic: !DISABLE_TRANSPORT_CURRENT !STATIC !DISABLE_INTERCEPTORS !MINIMUM !LabVIEW_RT !WinCE !FUZZ
-TAO/tests/TransportCurrent/Framework/run_test.pl -static: !DISABLE_TRANSPORT_CURRENT STATIC !DISABLE_INTERCEPTORS !MINIMUM !LabVIEW_RT !WinCE !FUZZ
-TAO/tests/TransportCurrent/IIOP/run_test.pl -dynamic: !DISABLE_TRANSPORT_CURRENT !STATIC !DISABLE_INTERCEPTORS !MINIMUM !LabVIEW_RT !WinCE !FUZZ
-TAO/tests/TransportCurrent/IIOP/run_test.pl -static: !DISABLE_TRANSPORT_CURRENT STATIC !DISABLE_INTERCEPTORS !MINIMUM !LabVIEW_RT !WinCE !FUZZ
+TAO/tests/TransportCurrent/Framework/run_test.pl -dynamic: !DISABLE_TRANSPORT_CURRENT !STATIC !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !MINIMUM !LabVIEW_RT !WinCE !FUZZ
+TAO/tests/TransportCurrent/Framework/run_test.pl -static: !DISABLE_TRANSPORT_CURRENT STATIC !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !MINIMUM !LabVIEW_RT !WinCE !FUZZ
+TAO/tests/TransportCurrent/IIOP/run_test.pl -dynamic: !DISABLE_TRANSPORT_CURRENT !STATIC !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !MINIMUM !LabVIEW_RT !WinCE !FUZZ
+TAO/tests/TransportCurrent/IIOP/run_test.pl -static: !DISABLE_TRANSPORT_CURRENT STATIC !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !MINIMUM !LabVIEW_RT !WinCE !FUZZ
TAO/tests/Transport_Cache_Manager/run_test.pl
TAO/tests/UNKNOWN_Exception/run_test.pl:
TAO/tests/Native_Exceptions/run_test.pl:
@@ -398,6 +405,7 @@ TAO/tests/DII_Collocation_Tests/twoway/run_test.pl: !ST !MINIMUM !CORBA_E_COMPAC
TAO/tests/Compression/run_test.pl
TAO/tests/Collocated_Forwarding/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !ACE_FOR_TAO !LabVIEW_RT !WinCE !FUZZ
TAO/tests/ZIOP/run_test.pl: ZIOP ZLIB
+TAO/tests/ForwardUponObjectNotExist/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !ACE_FOR_TAO !LabVIEW_RT !WinCE !FUZZ
TAO/DevGuideExamples/BiDirectionalGIOP/run_test.pl: !MINIMUM !CORBA_E_MICRO
TAO/DevGuideExamples/GettingStarted/run_test.pl: !LabVIEW_RT !WinCE !FUZZ !VxWorks !VxWorks_RTP
TAO/DevGuideExamples/LocalObjects/Messenger/run_test.pl: !LabVIEW_RT !WinCE !FUZZ
diff --git a/TAO/bin/tao_other_tests.lst b/TAO/bin/tao_other_tests.lst
index 1a1b4123baf..b28dbec8a35 100644
--- a/TAO/bin/tao_other_tests.lst
+++ b/TAO/bin/tao_other_tests.lst
@@ -67,7 +67,6 @@ TAO/orbsvcs/tests/Bug_2316_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CO
TAO/orbsvcs/tests/Bug_2377_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Bug_2615_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Bug_2777_Regression/run_test.pl: !MINIMUM !CORBA_E_MICRO !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
-TAO/orbsvcs/tests/Bug_2926_Regression/run_test.pl: !ST !NO_MESSAGING !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !LynxOS !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Bug_3215_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Bug_3216_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !DISABLE_INTERCEPTORS !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Bug_3418_Regression/run_test.pl: !ST SSL !STATIC !DISABLE_INTERCEPTORS !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
@@ -118,6 +117,7 @@ TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_
TAO/orbsvcs/tests/ImplRepo/scale/run_test.pl -servers 5 -objects 5: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ !LynxOS
TAO/orbsvcs/tests/ImplRepo/Bug_689_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/ImplRepo/Bug_2604_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ !LynxOS
+TAO/orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !WCHAR !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ !LynxOS
TAO/orbsvcs/examples/ImR/Combined_Service/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ST !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ !LynxOS
TAO/orbsvcs/examples/CosEC/TypedSimple/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !NO_IFR !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ !WCHAR
TAO/orbsvcs/tests/CosEvent/Timeout/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ST !NO_MESSAGING !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ !LynxOS
@@ -150,6 +150,14 @@ TAO/orbsvcs/tests/Notify/Persistent_Filter/run_test.pl: !ST !NO_MESSAGING !MINIM
TAO/orbsvcs/tests/Notify/Validate_Client/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Notify/Bug_1884_Regression/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Notify/Bug_1884_Regression/run_test.pl -p: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
+TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
+TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
+TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
+TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
+TAO/orbsvcs/tests/Notify/Bug_3663_Regression/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ !FIXED_BUGS_ONLY
+TAO/orbsvcs/tests/Notify/Bug_2926_Regression/run_test.pl: !ST !NO_MESSAGING !STATIC !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !LynxOS !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
+TAO/orbsvcs/tests/Notify/Bug_3688_Regression/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
+TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/EC_Mcast/run_test.pl: !NO_MCAST !NO_MESSAGING !DISABLE_ToFix_LynxOS_PPC !ACE_FOR_TAO !CORBA_E_MICRO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
# FAILS 'TAO/orbsvcs/tests/EC_Multiple/run_test.pl !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
# NO REDIRECTION TAO/examples/Simple/echo/run_test.pl < Echo.idl !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
@@ -185,6 +193,7 @@ TAO/orbsvcs/tests/IOR_MCast/run_test_ipv6.pl: IPV6 !NO_MCAST !MINIMUM !CORBA_E_C
TAO/orbsvcs/tests/Bug_2709_Regression/run_test.pl: !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !ST !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Bug_2800_Regression/run_test.pl: !ST !CORBA_E_MICRO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Bug_2800_Regression/run_test_federated.pl: !ST !CORBA_E_MICRO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
+TAO/orbsvcs/tests/Bug_3673_Regression/run_test.pl: !ST !CORBA_E_MICRO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/examples/Notify/Filter/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/examples/Notify/Subscribe/run_test.pl: !ST !NO_MESSAGING !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !ACE_FOR_TAO !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
TAO/orbsvcs/tests/Bug_2925_Regression/run_test.pl: !ST !MINIMUM !CORBA_E_COMPACT !CORBA_E_MICRO !STATIC !VxWorks !VxWorks_RTP !LabVIEW_RT !WinCE !FUZZ
diff --git a/TAO/configure.ac b/TAO/configure.ac
index 0f3f8804474..5f1224d8229 100644
--- a/TAO/configure.ac
+++ b/TAO/configure.ac
@@ -430,7 +430,6 @@ if test $tao_build_tests = yes; then
orbsvcs/tests/Bug_2709_Regression/Makefile
orbsvcs/tests/Bug_2800_Regression/Makefile
orbsvcs/tests/Bug_2925_Regression/Makefile
- orbsvcs/tests/Bug_2926_Regression/Makefile
orbsvcs/tests/Bug_3215_Regression/Makefile
orbsvcs/tests/Bug_3216_Regression/Makefile
orbsvcs/tests/COIOP_Naming_Test/Makefile
diff --git a/TAO/docs/Options.html b/TAO/docs/Options.html
index a46262e74c8..0d29a61bb9e 100644
--- a/TAO/docs/Options.html
+++ b/TAO/docs/Options.html
@@ -879,6 +879,12 @@ run as a background process. Note, that this changes the working directory to
be the root directory "/". This especially affects relative paths specified at the command line.
This option is only meaningful on OS platforms that support daemonization.</td>
</tr>
+ <tr>
+ <td><code>-ORBForwardInvocationOnObjectNotExist</code> <em>boolean (0|1)</em></td>
+ <td>If this option is 1, the ORB forwards the request to next available profile when
+ receiving OBJECT_NOT_EXIST exception reply. The default is <CODE>0</CODE>(disabled).
+ </td>
+ </tr>
</tbody>
</table>
</p>
@@ -1536,7 +1542,9 @@ require nested upcalls are not "pure" synchronous clients. Also note that this
strategy will only affect two way calls, since there is no waiting for
one way calls. This strategy can also be used in an application that
is both a client and a server if the server side is handled by a
-separate thread and the client threads are "pure" clients. </p> <p>
+separate thread and the client threads are "pure" clients. When this strategy
+is set to RW, then also the -ORBFlushingStrategy (which is part of the
+Resource_Factory) has to be set to <code>blocking</code>.</p> <p>
<CODE>MT_NOUPCALL</CODE> <b>(EXPERIMENTAL!)</b> means use a client connection handler that
participates in the leader-follower model like MT, but, like
RW, does not allow handling of nested upcalls within the
diff --git a/TAO/docs/compiler.html b/TAO/docs/compiler.html
index 856ca124a61..d56552ca306 100644
--- a/TAO/docs/compiler.html
+++ b/TAO/docs/compiler.html
@@ -142,14 +142,14 @@ the following:
that ACE runs on. <P>
<li>Build the <CODE>gperf</CODE> in $ACE_ROOT/apps/gperf. This build
- also leaves a copy/link of the gperf program at the $ACE_ROOT/bin
+ also leaves a copy/link of the ace_gperf program at the $ACE_ROOT/bin
directory.<P>
<li>Set the environment variable $ACE_ROOT appropriately or add
$ACE_ROOT/bin to your search path. <P>
<li>Use the <CODE>-g</CODE> option for the TAO IDL compiler or set
- your search path accordingly to install <CODE>gperf</CODE> in a
+ your search path accordingly to install <CODE>ace_gperf</CODE> in a
directory other than $ACE_ROOT/bin.
</ul>
@@ -496,10 +496,10 @@ also receives other options that are specific to it.<p>
</TR>
<tr><a name="g">
- <td><tt>-g</tt></td>
+ <td><tt>-g </tt><i>path</i></td>
<td>To specify the path for the perfect hasing program (GPERF). Default
- is $ACE_ROOT/bin/gperf.&nbsp;</td>
+ is $ACE_ROOT/bin/ace_gperf.&nbsp;</td>
<td>&nbsp;</td>
</tr>
diff --git a/TAO/docs/rtcorba/features.html b/TAO/docs/rtcorba/features.html
index 65639d82577..4c217d136ea 100644
--- a/TAO/docs/rtcorba/features.html
+++ b/TAO/docs/rtcorba/features.html
@@ -773,7 +773,7 @@ these TAO supported mappings through the Service Configurator (svc.conf)
files with the following entry:</dd>
<p>static RT_ORB_Loader "-ORBSchedPolicy SCHED_FIFO -ORBScopePolicy PROCESS
--ORBPriorityMapping direct <i>-ORBNetworkPriorityMapping Linear</i>"
+-ORBPriorityMapping direct <i>-RTORBNetworkPriorityMapping Linear</i>"
<br>&nbsp;
<li>
<b>Network Priority Mapping Manager</b></li>
diff --git a/TAO/examples/RTCORBA/Activity/Builder.cpp b/TAO/examples/RTCORBA/Activity/Builder.cpp
index 83673cd8a82..e1895cb5854 100644
--- a/TAO/examples/RTCORBA/Activity/Builder.cpp
+++ b/TAO/examples/RTCORBA/Activity/Builder.cpp
@@ -40,8 +40,8 @@ Builder::init (int argc, ACE_TCHAR *argv[])
task_count_ = ACE_OS::atoi (current_arg);
ACE_NEW_RETURN (task_list_, Periodic_Task*[task_count_], -1);
ACE_OS::memset (this->task_list_,
- this->task_count_ * sizeof (this->task_list_[0]),
- 0);
+ 0,
+ this->task_count_ * sizeof (this->task_list_[0]));
arg_shifter.consume_arg ();
}
if (0 != (current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-JobCount"))))
@@ -49,8 +49,8 @@ Builder::init (int argc, ACE_TCHAR *argv[])
job_count_ = ACE_OS::atoi (current_arg);
ACE_NEW_RETURN (job_list_, Job_i*[job_count_], -1);
ACE_OS::memset (this->job_list_,
- this->job_count_ * sizeof (this->job_list_[0]),
- 0);
+ 0,
+ this->job_count_ * sizeof (this->job_list_[0]));
arg_shifter.consume_arg ();
}
if (0 != (current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-POACount"))))
@@ -58,8 +58,8 @@ Builder::init (int argc, ACE_TCHAR *argv[])
poa_count_ = ACE_OS::atoi (current_arg);
ACE_NEW_RETURN (poa_list_, POA_Holder*[poa_count_], -1);
ACE_OS::memset (this->poa_list_,
- this->poa_count_ * sizeof (this->poa_list_[0]),
- 0);
+ 0,
+ this->poa_count_ * sizeof (this->poa_list_[0]));
arg_shifter.consume_arg ();
}
else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-ThreadTask")) == 0)
@@ -119,7 +119,7 @@ Builder::init (int argc, ACE_TCHAR *argv[])
else
return -1;
}
- else
+ else
{
arg_shifter.ignore_arg ();
}
@@ -145,7 +145,7 @@ Builder::fini (void)
delete [] this->job_list_;
for (count = 0; count < this->poa_count_; ++count)
- delete this->poa_list_[count];
+ delete this->poa_list_[count];
delete [] this->poa_list_;
already_cleaned = true;
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_Basic/EchoEventConsumerMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_Basic/EchoEventConsumerMain.cpp
index 79a2ef70181..208d82687fe 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_Basic/EchoEventConsumerMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_Basic/EchoEventConsumerMain.cpp
@@ -46,12 +46,13 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
consumerAdmin->obtain_push_supplier();
// Instantiate an EchoEventConsumer_i servant.
- EchoEventConsumer_i servant(orb.in(), supplier.in(), EVENTS_TILL_SHUTDOWN);
+ PortableServer::Servant_var<EchoEventConsumer_i> servant =
+ new EchoEventConsumer_i(orb.in(), supplier.in(), EVENTS_TILL_SHUTDOWN);
// Register it with the RootPOA.
obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(oid.in());
CosEventComm::PushConsumer_var consumer =
CosEventComm::PushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/EchoEventConsumerMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/EchoEventConsumerMain.cpp
index 448984bef77..67a61e1786e 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/EchoEventConsumerMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/EchoEventConsumerMain.cpp
@@ -9,6 +9,8 @@
#include "orbsvcs/CosEventChannelAdminC.h"
#include "orbsvcs/CosNamingC.h"
+#include "ace/OS_NS_unistd.h"
+
#include <iostream>
const int EVENT_LIMIT = 10;
@@ -23,8 +25,17 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::Object_var obj = orb->resolve_initial_references("NameService");
CosNaming::NamingContextExt_var root_context = CosNaming::NamingContextExt::_narrow(obj.in());
- // Find the EchoEventChannel.
- obj = root_context->resolve_str("CosEventService");
+ obj = CORBA::Object::_nil();
+
+ while (CORBA::is_nil(obj.in())) {
+ try {
+ // Find the EchoEventChannel.
+ obj = root_context->resolve_str("CosEventService");
+ } catch (const CosNaming::NamingContext::NotFound&) {
+ // Sleep for a second and try again
+ ACE_OS::sleep(1);
+ }
+ }
// Downcast the object reference to an EventChannel reference.
CosEventChannelAdmin::EventChannel_var echoEC =
@@ -44,12 +55,13 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
consumerAdmin->obtain_push_supplier();
// Instantiate an EchoEventConsumer_i servant.
- EchoEventConsumer_i servant(orb.in(), supplier.in(), EVENT_LIMIT);
+ PortableServer::Servant_var<EchoEventConsumer_i> servant =
+ new EchoEventConsumer_i(orb.in(), supplier.in(), EVENT_LIMIT);
// Register it with the RootPOA.
obj = orb->resolve_initial_references("RootPOA");
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(oid.in());
CosEventComm::PushConsumer_var consumer =
CosEventComm::PushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/run_test.pl b/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/run_test.pl
index 10e527f7fc4..dea4d416326 100755
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_SupplierSideEC/run_test.pl
@@ -27,9 +27,6 @@ if (PerlACE::waitforfile_timed ($iorfile, 5) == -1) {
$S = new PerlACE::Process("EchoEventSupplier", $arg_ns_ref);
$S->Spawn();
-# Allow time for the supplier to register with the Naming Service
-sleep(2);
-
# start EchoEventConsumer
$C = new PerlACE::Process("EchoEventConsumer", $arg_ns_ref);
$CRET = $C->SpawnWaitKill(60);
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_TypedEC/ConsumerMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_TypedEC/ConsumerMain.cpp
index 50f4509ceb1..d469b7c5512 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_TypedEC/ConsumerMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/OMG_TypedEC/ConsumerMain.cpp
@@ -48,7 +48,8 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
consumerAdmin->obtain_typed_push_supplier(::_tc_Messenger->id());
// Instantiate an Messenger_i servant.
- Messenger_i servant(orb.in(), supplier.in(), EVENTS_TILL_SHUTDOWN);
+ PortableServer::Servant_var<Messenger_i> servant =
+ new Messenger_i(orb.in(), supplier.in(), EVENTS_TILL_SHUTDOWN);
// Register it with the RootPOA.
// Activate the POA here before we connect our consumer.
@@ -57,11 +58,12 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POAManager_var poa_manager = poa->the_POAManager();
poa_manager->activate();
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var messenger_obj = poa->id_to_reference(oid.in());
- Consumer_i consumer_servant(orb.in(), messenger_obj.in());
+ PortableServer::Servant_var<Consumer_i> consumer_servant =
+ new Consumer_i(orb.in(), messenger_obj.in());
PortableServer::ObjectId_var cons_oid =
- poa->activate_object(&consumer_servant);
+ poa->activate_object(consumer_servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(cons_oid.in());
CosTypedEventComm::TypedPushConsumer_var consumer =
CosTypedEventComm::TypedPushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventConsumerMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventConsumerMain.cpp
index 37695b39784..92ad339261a 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventConsumerMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventConsumerMain.cpp
@@ -48,10 +48,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
// Instantiate an EchoEventConsumer_i servant.
- EchoEventConsumer_i servant(orb.in(), supplier.in(), EVENT_LIMIT);
+ PortableServer::Servant_var<EchoEventConsumer_i> servant =
+ new EchoEventConsumer_i(orb.in(), supplier.in(), EVENT_LIMIT);
// Register it with the RootPOA.
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(oid.in());
RtecEventComm::PushConsumer_var consumer =
RtecEventComm::PushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventSupplierMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventSupplierMain.cpp
index 76d9ee6e3bd..dd571baada7 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventSupplierMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Basic/EchoEventSupplierMain.cpp
@@ -51,10 +51,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
// Instantiate an EchoEventSupplier_i servant.
- EchoEventSupplier_i servant(orb.in());
+ PortableServer::Servant_var<EchoEventSupplier_i> servant =
+ new EchoEventSupplier_i(orb.in());
// Register it with the RootPOA.
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var supplier_obj = poa->id_to_reference(oid.in());
RtecEventComm::PushSupplier_var supplier =
RtecEventComm::PushSupplier::_narrow(supplier_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventConsumerMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventConsumerMain.cpp
index 0383911fb6c..16fef65a5e0 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventConsumerMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventConsumerMain.cpp
@@ -65,8 +65,9 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Instantiate an EchoEventConsumer_i servant and register it
// with the RootPOA
- EchoEventConsumer_i servant(orb.in(), supplier.in(), EVENT_LIMIT);
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::Servant_var<EchoEventConsumer_i> servant =
+ new EchoEventConsumer_i(orb.in(), supplier.in(), EVENT_LIMIT);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(oid.in());
RtecEventComm::PushConsumer_var consumer =
RtecEventComm::PushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventSupplierMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventSupplierMain.cpp
index 81e1e10e755..6d693ad7f46 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventSupplierMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Federated/EchoEventSupplierMain.cpp
@@ -80,9 +80,10 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Create a local event channel and register it with the RootPOA.
TAO_EC_Event_Channel_Attributes attributes (poa.in (), poa.in ());
- TAO_EC_Event_Channel ec_impl (attributes);
- ec_impl.activate ();
- PortableServer::ObjectId_var oid = poa->activate_object(&ec_impl);
+ PortableServer::Servant_var<TAO_EC_Event_Channel> ec_impl =
+ new TAO_EC_Event_Channel(attributes);
+ ec_impl->activate ();
+ PortableServer::ObjectId_var oid = poa->activate_object(ec_impl.in());
CORBA::Object_var ec_obj = poa->id_to_reference(oid.in());
RtecEventChannelAdmin::EventChannel_var ec =
RtecEventChannelAdmin::EventChannel::_narrow(ec_obj.in());
@@ -101,10 +102,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
admin->obtain_push_consumer();
// Instantiate an EchoEventSupplier_i servant.
- EchoEventSupplier_i servant(orb.in());
+ PortableServer::Servant_var<EchoEventSupplier_i> servant =
+ new EchoEventSupplier_i(orb.in());
// Register it with the RootPOA.
- oid = poa->activate_object(&servant);
+ oid = poa->activate_object(servant.in());
CORBA::Object_var supplier_obj = poa->id_to_reference(oid.in());
RtecEventComm::PushSupplier_var supplier =
RtecEventComm::PushSupplier::_narrow(supplier_obj.in());
@@ -133,7 +135,8 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Initialize data fields in event.
event[0].data.any_value <<= eventData;
- TAO_EC_Gateway_IIOP gateway;
+ PortableServer::Servant_var<TAO_EC_Gateway_IIOP> gateway =
+ new TAO_EC_Gateway_IIOP;
int gateway_initialized = 0;
std::cout << "Supplier starting sending of events.\n";
@@ -167,10 +170,10 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// There is a good remote event channel so initialize the
// gateway.
if (ok) {
- gateway.init(remote_ec.in(), ec.in());
+ gateway->init(remote_ec.in(), ec.in());
PortableServer::ObjectId_var gateway_oid =
- poa->activate_object(&gateway);
+ poa->activate_object(gateway.in());
CORBA::Object_var gateway_obj =
poa->id_to_reference(gateway_oid.in());
RtecEventChannelAdmin::Observer_var obs =
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventConsumerMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventConsumerMain.cpp
index 66bd74c77fe..d3a202ba988 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventConsumerMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventConsumerMain.cpp
@@ -55,8 +55,9 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Instantiate an EchoEventConsumer_i servant and register it
// with the RootPOA
- EchoEventConsumer_i servant(orb.in(), supplier.in(), EVENT_LIMIT);
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::Servant_var<EchoEventConsumer_i> servant =
+ new EchoEventConsumer_i(orb.in(), supplier.in(), EVENT_LIMIT);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(oid.in());
RtecEventComm::PushConsumer_var consumer =
RtecEventComm::PushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventSupplierMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventSupplierMain.cpp
index 4f0830bc17f..f166a3d1257 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventSupplierMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_Filter/EchoEventSupplierMain.cpp
@@ -52,10 +52,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
// Instantiate an EchoEventConsumer_i servant.
- EchoEventSupplier_i servant(orb.in());
+ PortableServer::Servant_var<EchoEventSupplier_i> servant =
+ new EchoEventSupplier_i(orb.in());
// Register it with the RootPOA.
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var supplier_obj = poa->id_to_reference(oid.in());
RtecEventComm::PushSupplier_var supplier =
RtecEventComm::PushSupplier::_narrow(supplier_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventConsumerMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventConsumerMain.cpp
index f17acbf8f81..1f8e78e255b 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventConsumerMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventConsumerMain.cpp
@@ -63,10 +63,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
// Instantiate an EchoEventConsumer_i servant.
- EchoEventConsumer_i servant(orb.in(), supplier.in(), EVENT_LIMIT);
+ PortableServer::Servant_var<EchoEventConsumer_i> servant =
+ new EchoEventConsumer_i(orb.in(), supplier.in(), EVENT_LIMIT);
// Register it with the RootPOA.
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(oid.in());
RtecEventComm::PushConsumer_var consumer =
RtecEventComm::PushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventSupplierMain.cpp b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventSupplierMain.cpp
index e2e1b6f5c4d..b00f7b96444 100644
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventSupplierMain.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/EchoEventSupplierMain.cpp
@@ -94,9 +94,10 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Create a local event channel and register it
TAO_EC_Event_Channel_Attributes attributes (poa.in (), poa.in ());
- TAO_EC_Event_Channel ec_impl (attributes);
- ec_impl.activate ();
- PortableServer::ObjectId_var oid = poa->activate_object(&ec_impl);
+ PortableServer::Servant_var<TAO_EC_Event_Channel> ec_impl =
+ new TAO_EC_Event_Channel(attributes);
+ ec_impl->activate ();
+ PortableServer::ObjectId_var oid = poa->activate_object(ec_impl.in());
CORBA::Object_var ec_obj = poa->id_to_reference(oid.in());
RtecEventChannelAdmin::EventChannel_var ec =
RtecEventChannelAdmin::EventChannel::_narrow(ec_obj.in());
@@ -115,10 +116,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
admin->obtain_push_consumer();
// Instantiate an EchoEventSupplier_i servant.
- EchoEventSupplier_i servant(orb.in());
+ PortableServer::Servant_var<EchoEventSupplier_i> servant =
+ new EchoEventSupplier_i(orb.in());
// Register it with the RootPOA.
- oid = poa->activate_object(&servant);
+ oid = poa->activate_object(servant.in());
CORBA::Object_var supplier_obj = poa->id_to_reference(oid.in());
RtecEventComm::PushSupplier_var supplier =
RtecEventComm::PushSupplier::_narrow(supplier_obj.in());
@@ -132,10 +134,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// This will be used by the sender object and the multicast
// receiver.
ACE_INET_Addr send_addr (port, address);
- SimpleAddressServer addr_srv_impl (send_addr);
+ PortableServer::Servant_var<SimpleAddressServer> addr_srv_impl =
+ new SimpleAddressServer(send_addr);
PortableServer::ObjectId_var addr_srv_oid =
- poa->activate_object(&addr_srv_impl);
+ poa->activate_object(addr_srv_impl.in());
CORBA::Object_var addr_srv_obj = poa->id_to_reference(addr_srv_oid.in());
RtecUDPAdmin::AddrServer_var addr_srv =
RtecUDPAdmin::AddrServer::_narrow(addr_srv_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/run_test.pl b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/run_test.pl
index 176c6327f8f..3c66425f182 100755
--- a/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/EventServices/RTEC_MCast_Federated/run_test.pl
@@ -53,7 +53,7 @@ $ec1iorfile = PerlACE::LocalFile ("ec1.ior");
$ec2iorfile = PerlACE::LocalFile ("ec2.ior");
$arg_ns_ref = "-ORBInitRef NameService=file://$nsiorfile";
-$end_point = "-ORBEndpoint iiop://localhost";
+$end_point = "-ORBListenEndpoints iiop://localhost";
$ns_port = PerlACE::random_port();
unlink $nsiorfile;
diff --git a/TAO/orbsvcs/DevGuideExamples/ImplRepo/Basic/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/ImplRepo/Basic/MessengerServer.cpp
index 63678a9b2f3..9ab3f93900d 100644
--- a/TAO/orbsvcs/DevGuideExamples/ImplRepo/Basic/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/ImplRepo/Basic/MessengerServer.cpp
@@ -45,12 +45,12 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa = createPersistentPOA(root_poa.in(), poa_name);
- Messenger_i servant;
+ PortableServer::Servant_var<Messenger_i> servant = new Messenger_i;
PortableServer::ObjectId_var object_id =
PortableServer::string_to_ObjectId("object");
- poa->activate_object_with_id(object_id.in(), &servant);
+ poa->activate_object_with_id(object_id.in(), servant.in());
obj = poa->id_to_reference(object_id.in());
CORBA::String_var ior = orb->object_to_string(obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/ImplRepo/IORTable/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/ImplRepo/IORTable/MessengerServer.cpp
index 5abbd2fc6db..a57efbde2f6 100644
--- a/TAO/orbsvcs/DevGuideExamples/ImplRepo/IORTable/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/ImplRepo/IORTable/MessengerServer.cpp
@@ -52,12 +52,13 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa = createPersistentPOA(root_poa.in(), poa_name);
- Messenger_i servant1, servant2;
+ PortableServer::Servant_var<Messenger_i> servant1 = new Messenger_i;
+ PortableServer::Servant_var<Messenger_i> servant2 = new Messenger_i;
PortableServer::ObjectId_var id1 = PortableServer::string_to_ObjectId("Object1");
- poa->activate_object_with_id(id1.in(), &servant1);
+ poa->activate_object_with_id(id1.in(), servant1.in());
PortableServer::ObjectId_var id2 = PortableServer::string_to_ObjectId("Object2");
- poa->activate_object_with_id(id2.in(), &servant2);
+ poa->activate_object_with_id(id2.in(), servant2.in());
obj = poa->id_to_reference(id1.in());
CORBA::String_var ior1 = orb->object_to_string(obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/ImplRepo/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/ImplRepo/MessengerServer.cpp
index 6e6e804a2ca..4a6a52b9b75 100644
--- a/TAO/orbsvcs/DevGuideExamples/ImplRepo/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/ImplRepo/MessengerServer.cpp
@@ -47,7 +47,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var messenger_poa = createPOA(root_poa.in(), poa_name);
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
PortableServer::ObjectId_var object_id =
PortableServer::string_to_ObjectId("messenger_object");
@@ -57,7 +57,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// obtain its object reference, and get a
// stringified IOR.
//
- messenger_poa->activate_object_with_id(object_id.in(), &messenger_servant);
+ messenger_poa->activate_object_with_id(object_id.in(), messenger_servant.in());
//
// Create binding between "MessengerService" and
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerClient.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerClient.cpp
index 4f56c28b581..d5c8320b9a3 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerClient.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerClient.cpp
@@ -2,6 +2,7 @@
#include "MessengerC.h"
#include "orbsvcs/CosNamingC.h"
+#include "ace/OS_NS_unistd.h"
#include <iostream>
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
@@ -24,7 +25,15 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name.length( 2 );
name[0].id = CORBA::string_dup( "example" );
name[1].id = CORBA::string_dup( "Messenger" );
- CORBA::Object_var obj = root->resolve_str("example/Messenger");
+ CORBA::Object_var obj = CORBA::Object::_nil();
+ while (CORBA::is_nil(obj.in())) {
+ try {
+ obj = root->resolve_str("example/Messenger");
+ } catch (const CosNaming::NamingContext::NotFound&) {
+ // Sleep for a second and try again
+ ACE_OS::sleep(1);
+ }
+ }
// Narrow the Messenger object reference
Messenger_var messenger = Messenger::_narrow(obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerServer.cpp
index 4566177938b..72c893f917c 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/MessengerServer.cpp
@@ -44,8 +44,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name[1].id = CORBA::string_dup( "Messenger" );
// Create an object
- Messenger_i messenger_servant;
- PortableServer::ObjectId_var oid = poa->activate_object(&messenger_servant);
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
+ PortableServer::ObjectId_var oid = poa->activate_object(messenger_servant.in());
obj = poa->id_to_reference( oid.in() );
root->rebind(name, obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/run_test.pl b/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/run_test.pl
index 4a2f39045a4..e2fa978cf93 100755
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Messenger/run_test.pl
@@ -31,11 +31,6 @@ if (PerlACE::waitforfile_timed ($nsiorfile, 5) == -1) {
$S = new PerlACE::Process("MessengerServer", $arg_ns_ref);
$S->Spawn();
-# Give the server some time
-# to bind the object reference
-# with the Naming Service
-sleep 3;
-
# start MessengerClient
$C = new PerlACE::Process("MessengerClient", $arg_ns_ref);
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerClient.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerClient.cpp
index bcb73045e27..449d57cd576 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerClient.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerClient.cpp
@@ -3,6 +3,7 @@
#include "MessengerC.h"
#include "orbsvcs/CosNamingC.h"
#include "orbsvcs/Naming/Naming_Client.h"
+#include "ace/OS_NS_unistd.h"
#include <iostream>
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
@@ -24,7 +25,15 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name.length( 2 );
name[0].id = CORBA::string_dup( "example" );
name[1].id = CORBA::string_dup( "Messenger" );
- CORBA::Object_var obj = naming_client->resolve(name);
+ CORBA::Object_var obj = CORBA::Object::_nil();
+ while (CORBA::is_nil(obj.in())) {
+ try {
+ obj = naming_client->resolve(name);
+ } catch (const CosNaming::NamingContext::NotFound&) {
+ // Sleep for a second and try again
+ ACE_OS::sleep(1);
+ }
+ }
// Narrow
Messenger_var messenger = Messenger::_narrow(obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerServer.cpp
index 40e46da5588..2931c9af9c6 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/MessengerServer.cpp
@@ -43,8 +43,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name[1].id = CORBA::string_dup( "Messenger" );
// Create an object
- Messenger_i servant;
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::Servant_var<Messenger_i> servant = new Messenger_i;
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
obj = poa->id_to_reference(oid.in());
naming_client->rebind(name, obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/run_test.pl b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/run_test.pl
index 8bae3ffa518..9070b8886ac 100755
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Client/run_test.pl
@@ -32,11 +32,6 @@ $MessengerServer = "MessengerServer";
$S = new PerlACE::Process($MessengerServer, $arg_ns_ref);
$S->Spawn();
-# Give the server some time
-# to bind the object reference
-# with the Naming Service
-sleep 3;
-
# start MessengerClient
$MessengerClient = "MessengerClient";
$C = new PerlACE::Process($MessengerClient, $arg_ns_ref );
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/MessengerServer.cpp
index 95880c8d32f..e08e6bba229 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/MessengerServer.cpp
@@ -46,8 +46,8 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name[1].kind = CORBA::string_dup( "kind2" );
// Create an object
- Messenger_i servant;
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::Servant_var<Messenger_i> servant = new Messenger_i;
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var messenger_obj = poa->id_to_reference(oid.in());
root->rebind(name, messenger_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/README b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/README
index c816b68c778..e2466608fcf 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/README
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/README
@@ -18,7 +18,7 @@ How to Run:
-----------
To start the Naming_Service:
----------------------------
-$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service -ORBEndPoint iiop://localhost:2809 &
+$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service -ORBListenEndpoints iiop://localhost:2809 &
To start the server:
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/run_test.pl b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/run_test.pl
index 5c62e4de560..eac00add5ad 100755
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Context_Ext/run_test.pl
@@ -16,7 +16,7 @@ unlink $ior;
# start Naming Service
unlink($nsior);
$NameService = "$ENV{TAO_ROOT}/orbsvcs/Naming_Service/Naming_Service";
-$NS = new PerlACE::Process($NameService, "-ORBEndPoint iiop://localhost:2809 -o $nsior");
+$NS = new PerlACE::Process($NameService, "-ORBListenEndpoints iiop://localhost:2809 -o $nsior");
$NS->Spawn();
if (PerlACE::waitforfile_timed ($nsior, 10) == -1) {
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Server/MessengerTask.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Server/MessengerTask.cpp
index 030214872d7..e43f2776d0b 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Server/MessengerTask.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/Naming_Server/MessengerTask.cpp
@@ -56,8 +56,8 @@ int MessengerTask::svc()
name[1].id = CORBA::string_dup("Messenger");
// Create an object
- Messenger_i servant;
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::Servant_var<Messenger_i> servant = new Messenger_i;
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
obj = poa->id_to_reference(oid.in());
root->rebind(name, obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerClient.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerClient.cpp
index e71d7dc2b36..01bea71a6f0 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerClient.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerClient.cpp
@@ -2,6 +2,7 @@
#include "MessengerC.h"
#include "orbsvcs/CosNamingC.h"
+#include "ace/OS_NS_unistd.h"
#include <iostream>
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
@@ -31,7 +32,15 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
}
// Resolve the Messenger object
- obj = root->resolve_str("example/Messenger");
+ obj = CORBA::Object::_nil();
+ while (CORBA::is_nil(obj.in())) {
+ try {
+ obj = root->resolve_str("example/Messenger");
+ } catch (const CosNaming::NamingContext::NotFound&) {
+ // Sleep for a second and try again
+ ACE_OS::sleep(1);
+ }
+ }
// Narrow
Messenger_var messenger = Messenger::_narrow(obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerServer.cpp
index ab882806879..a9c67a032b0 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/MessengerServer.cpp
@@ -43,8 +43,8 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name[1].id = CORBA::string_dup("Messenger");
// Create an object
- Messenger_i servant;
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::Servant_var<Messenger_i> servant = new Messenger_i;
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
obj = poa->id_to_reference(oid.in());
Messenger_var messenger = Messenger::_narrow(obj.in());
root->rebind(name, messenger.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/README b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/README
index 72ac810d00f..414445658a0 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/README
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/README
@@ -39,7 +39,7 @@ Here are some examples:
REM start the name server
cd/d %TAO_ROOT%\orbsvcs\Naming_Service
title NS
-Naming_Service -ORBEndpoint iiop://localhost:2809 -m 0
+Naming_Service -ORBListenEndpoints iiop://localhost:2809 -m 0
REM start the example server
cd/d %EXAMPLES%\NamingService\corbaloc_Messenger\Debug
@@ -81,7 +81,7 @@ REM !!! kill the previous Naming_Service and MessengerServer !!!
REM start the name server (at another address)
cd/d %TAO_ROOT%\orbsvcs\Naming_Service
-Naming_Service -ORBEndpoint iiop://localhost:9999 -m 0
+Naming_Service -ORBListenEndpoints iiop://localhost:9999 -m 0
REM start the example server
cd/d %EXAMPLES%\NamingService\corbaloc_Messenger\Debug
@@ -137,7 +137,7 @@ REM iioploc: is TAO specific and deprecated
REM start the name server
cd/d %TAO_ROOT%\orbsvcs\Naming_Service
title NS
-Naming_Service -ORBEndpoint iiop://localhost:2809 -m 0
+Naming_Service -ORBListenEndpoints iiop://localhost:2809 -m 0
REM -ORBInitRef with iioploc (TAO specific and deprecated)
MessengerServer -ORBInitRef NameService=iioploc://localhost:2809/NameService
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/run_test.pl b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/run_test.pl
index 6df4159cd9f..b622edee34d 100755
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaloc_Messenger/run_test.pl
@@ -12,12 +12,23 @@ use PerlACE::Run_Test;
$TARGETHOSTNAME = "localhost";
$def_port = 2809;
+my($nsiorfile) = "ns.ior";
+unlink($nsiorfile);
+
# start Naming Service
$NameService = "$ENV{TAO_ROOT}/orbsvcs/Naming_Service/Naming_Service";
-$NS = new PerlACE::Process($NameService, "-ORBEndpoint iiop://$TARGETHOSTNAME:$def_port");
+$NS = new PerlACE::Process($NameService, "-ORBListenEndpoints iiop://$TARGETHOSTNAME:$def_port -o $nsiorfile");
+
$NS->Spawn();
+if (PerlACE::waitforfile_timed ($nsiorfile, 5) == -1) {
+ print STDERR "ERROR: cannot find file <$nsiorfile>\n";
+ $NS->Kill();
+ exit 1;
+}
-sleep(1);
+# File is only used to make sure the NS is fully running, so we can
+# remove it now.
+unlink($nsiorfile);
# List of tests to test corbaloc URL syntax.
@corbaloc_servers = ( "-ORBDefaultInitRef corbaloc::$TARGETHOSTNAME",
@@ -44,14 +55,11 @@ $MessengerClient= "MessengerClient";
$test_number = 0;
foreach $o (@corbaloc_servers) {
-
# Run messenger server for each test.
#print "Start $MessengerServer $o \n";
$SR = new PerlACE::Process($MessengerServer, $o);
$SR->Spawn();
- sleep(1);
-
#print "Start $MessengerClient \n";
$CL = new PerlACE::Process($MessengerClient, "-ORBDefaultInitRef iiop://$TARGETHOSTNAME:$def_port");
$test_number++;
@@ -69,6 +77,15 @@ foreach $o (@corbaloc_servers) {
print "======================================\n\n";
$SR->Kill(1);
+
+ # remove ns entry...
+ $nsdel = "$ENV{ACE_ROOT}/bin/tao_nsdel";
+ $NSDEL = new PerlACE::Process($nsdel, "--quiet --name example/Messenger -ORBInitRef NameService=corbaloc::$TARGETHOSTNAME:$def_port/NameService");
+ if ($NSDEL->SpawnWaitKill(15) != 0) {
+ print STDERR "ERROR: tao_nsdel failed\n";
+ $NS->Kill();
+ exit 1;
+ }
}
@@ -76,8 +93,6 @@ foreach $o (@corbaloc_servers) {
$SR = new PerlACE::Process($MessengerServer, "-ORBDefaultInitRef iiop://$TARGETHOSTNAME:$def_port");
$SR->Spawn();
-sleep(1);
-
$i = 0;
foreach $o (@corbaloc_clients) {
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/MessengerServer.cpp
index dfabdf2746e..694c87d02e5 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/MessengerServer.cpp
@@ -3,6 +3,7 @@
#include "Messenger_i.h"
#include "orbsvcs/CosNamingC.h"
#include <iostream>
+#include <fstream>
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try {
@@ -42,14 +43,19 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name[1].id = CORBA::string_dup("Messenger");
// Create an object
- Messenger_i servant;
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::Servant_var<Messenger_i> servant = new Messenger_i;
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
obj = poa->id_to_reference(oid.in());
Messenger_var messenger = Messenger::_narrow(obj.in());
root->rebind(name, messenger.in());
std::cout << "Messenger object bound in Naming Service" << std::endl;
+ // Write a file to let the run_test.pl script know we are ready.
+ std::ofstream iorFile( "MessengerServer.ready" );
+ iorFile << "Ready" << std::endl;
+ iorFile.close();
+
// Accept requests
orb->run();
orb->destroy();
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/README b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/README
index 4f530421b08..4486d3b9da4 100644
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/README
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/README
@@ -36,7 +36,7 @@ Here are some examples:
REM start the name server
cd/d %TAO_ROOT%\orbsvcs\Naming_Service
title NS
-Naming_Service -ORBEndpoint iiop://localhost:2809 -m 0
+Naming_Service -ORBListenEndpoints iiop://localhost:2809 -m 0
REM start the example server
cd/d %EXAMPLES%\NamingService\corbaname_Messenger\Debug
diff --git a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/run_test.pl b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/run_test.pl
index 8aa19b03646..90faf119c93 100755
--- a/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/NamingService/corbaname_Messenger/run_test.pl
@@ -12,11 +12,12 @@ use PerlACE::Run_Test;
$TARGETHOSTNAME = "localhost";
$def_port = 2809;
$nsior = "ns.ior";
+$msfile = "MessengerServer.ready";
# start Naming Service
unlink($nsior);
$NameService = "$ENV{TAO_ROOT}/orbsvcs/Naming_Service/Naming_Service";
-$NS = new PerlACE::Process($NameService, "-ORBEndpoint iiop://$TARGETHOSTNAME:$def_port -o $nsior");
+$NS = new PerlACE::Process($NameService, "-ORBListenEndpoints iiop://$TARGETHOSTNAME:$def_port -o $nsior");
$NS->Spawn();
if (PerlACE::waitforfile_timed ($nsior, 10) == -1) {
@@ -26,11 +27,19 @@ if (PerlACE::waitforfile_timed ($nsior, 10) == -1) {
}
# start the server
+unlink($msfile);
print "Start Messenger Server \n";
$SR = new PerlACE::Process("MessengerServer",
"-ORBInitRef NameService=iiop://$TARGETHOSTNAME:$def_port/NameService");
$SR->Spawn();
-sleep(2);
+
+if (PerlACE::waitforfile_timed ($msfile, 10) == -1) {
+ print STDERR "ERROR: cannot find file <$msfile>\n";
+ $SR->Kill ();
+ $NS->Kill ();
+ exit 1;
+}
+unlink($msfile);
@corbaname_clients = ("corbaname:iiop:$TARGETHOSTNAME:2809#example/Messenger",
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerConsumer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerConsumer.cpp
index 1196078a73f..251383637b2 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerConsumer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerConsumer.cpp
@@ -25,7 +25,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin =
ec->new_for_consumers(ifgop,
@@ -35,9 +35,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa = PortableServer::POA::_narrow (obj.in());
- EventSequenceConsumer_i servant(orb.in());
+ PortableServer::Servant_var<EventSequenceConsumer_i> servant =
+ new EventSequenceConsumer_i(orb.in());
- PortableServer::ObjectId_var objectId = poa->activate_object(&servant);
+ PortableServer::ObjectId_var objectId = poa->activate_object(servant.in());
obj = poa->id_to_reference (objectId.in());
CosNotifyComm::SequencePushConsumer_var consumer =
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerServer.cpp
index 640f0013c6e..e0ff009ea28 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/MessengerServer.cpp
@@ -21,8 +21,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
PortableServer::POAManager_var mgr = poa->the_POAManager();
mgr->activate();
- Messenger_i messenger_servant (orb.in());
- PortableServer::ObjectId_var oid = poa->activate_object (&messenger_servant);
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i(orb.in());
+ PortableServer::ObjectId_var oid = poa->activate_object (messenger_servant.in());
obj = poa->id_to_reference(oid.in());
CORBA::String_var str = orb->object_to_string (obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/Messenger_i.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/Messenger_i.cpp
index 17dea7b9aff..9d3dadaa1a5 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/Messenger_i.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/EventSequence/Messenger_i.cpp
@@ -39,7 +39,7 @@ Messenger_i::Messenger_i (CORBA::ORB_ptr orb)
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
ec->new_for_suppliers (ifgop, adminid);
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerConsumer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerConsumer.cpp
index 035b72b23c0..89fdc1f0544 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerConsumer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerConsumer.cpp
@@ -110,13 +110,14 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa =
PortableServer::POA::_narrow(poa_object.in());
- StructuredEventConsumer_i servant(orb.in());
+ PortableServer::Servant_var<StructuredEventConsumer_i> servant =
+ new StructuredEventConsumer_i(orb.in());
/*
CosNotifyComm::StructuredPushConsumer_var consumer =
- servant._this();
+ servant->_this();
*/
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(oid.in());
CosNotifyComm::StructuredPushConsumer_var consumer =
CosNotifyComm::StructuredPushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerServer.cpp
index a26fb9a60c4..458d1746892 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/Filtering/MessengerServer.cpp
@@ -59,11 +59,12 @@ ACE_TMAIN(int argc, ACE_TCHAR* argv[])
mgr->activate();
// Create our Messenger servant.
- Messenger_i messenger_servant(orb.in());
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i(orb.in());
// Register it with the RootPOA.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
// Generating the ior file is just for the purpose of synchronize the
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerConsumer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerConsumer.cpp
index 63a9956ca80..6bbee91521d 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerConsumer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerConsumer.cpp
@@ -30,7 +30,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin =
ec->new_for_consumers(ifgop,
@@ -42,9 +42,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa =
PortableServer::POA::_narrow (poa_object.in());
- StructuredEventConsumer_i servant (orb.in());
+ PortableServer::Servant_var<StructuredEventConsumer_i> servant =
+ new StructuredEventConsumer_i(orb.in());
- PortableServer::ObjectId_var objectId = poa->activate_object (&servant);
+ PortableServer::ObjectId_var objectId = poa->activate_object (servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference (objectId.in ());
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerServer.cpp
index aa3ad6bb744..f375895feb6 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/MessengerServer.cpp
@@ -16,8 +16,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
PortableServer::POAManager_var mgr = poa->the_POAManager();
mgr->activate();
- Messenger_i messenger_servant (orb.in ());
- PortableServer::ObjectId_var oid = poa->activate_object (&messenger_servant);
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i(orb.in ());
+ PortableServer::ObjectId_var oid = poa->activate_object (messenger_servant.in());
CORBA::Object_var messenger_obj = poa->id_to_reference (oid.in ());
CORBA::String_var str = orb->object_to_string (messenger_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/Messenger_i.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/Messenger_i.cpp
index 91addf9f407..a2831e16f0f 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/Messenger_i.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/Messenger/Messenger_i.cpp
@@ -43,7 +43,7 @@ Messenger_i::Messenger_i (CORBA::ORB_ptr orb)
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
ec->new_for_suppliers (ifgop, adminid);
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerConsumer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerConsumer.cpp
index 589b6a37c70..1c886f4552c 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerConsumer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerConsumer.cpp
@@ -56,7 +56,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin =
ec->new_for_consumers(ifgop,
@@ -67,10 +67,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
}
- StructuredEventConsumer_i servant(orb.in());
+ PortableServer::Servant_var<StructuredEventConsumer_i> servant =
+ new StructuredEventConsumer_i(orb.in());
- CosNotifyComm::StructuredPushConsumer_var consumer =
- servant._this();
+ CosNotifyComm::StructuredPushConsumer_var consumer = servant->_this();
CosNotifyChannelAdmin::ProxyID consumeradmin_proxy_id;
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerServer.cpp
index e64d6a4b4c8..e8f21aa8af4 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/MessengerServer.cpp
@@ -27,9 +27,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
mgr->activate();
// Create an object
- Messenger_i messenger_servant(orb.in());
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i(orb.in());
- Messenger_var messenger = messenger_servant._this();
+ Messenger_var messenger = messenger_servant->_this();
CosNaming::Name name;
name.length (1);
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/Messenger_i.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/Messenger_i.cpp
index b362f3ba60e..22b66bac034 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/Messenger_i.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/OfferSubscriptions/Messenger_i.cpp
@@ -61,7 +61,7 @@ Messenger_i::Messenger_i (CORBA::ORB_ptr orb)
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
ec->new_for_suppliers (ifgop, adminid);
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerConsumer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerConsumer.cpp
index ca63f55d999..55c7936e0e6 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerConsumer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerConsumer.cpp
@@ -30,7 +30,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin =
ec->new_for_consumers(ifgop, adminid);
@@ -41,9 +41,10 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa =
PortableServer::POA::_narrow (poa_object.in());
- StructuredEventConsumer_i servant (orb.in());
+ PortableServer::Servant_var<StructuredEventConsumer_i> servant =
+ new StructuredEventConsumer_i(orb.in());
- PortableServer::ObjectId_var objectId = poa->activate_object (&servant);
+ PortableServer::ObjectId_var objectId = poa->activate_object (servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference (objectId.in ());
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerServer.cpp
index 94ec2c65574..9cc7b95420f 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/MessengerServer.cpp
@@ -22,8 +22,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
PortableServer::POAManager_var mgr = poa->the_POAManager();
mgr->activate();
- Messenger_i messenger_servant (orb.in ());
- PortableServer::ObjectId_var oid = poa->activate_object (&messenger_servant);
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i(orb.in ());
+ PortableServer::ObjectId_var oid = poa->activate_object (messenger_servant.in());
CORBA::Object_var messenger_obj = poa->id_to_reference (oid.in ());
CORBA::String_var str = orb->object_to_string (messenger_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/Messenger_i.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/Messenger_i.cpp
index e5d99375ae4..a1b646d43c6 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/Messenger_i.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/QoSProperties/Messenger_i.cpp
@@ -55,7 +55,7 @@ Messenger_i::Messenger_i (CORBA::ORB_ptr orb)
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
ec->new_for_suppliers (ifgop, adminid);
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerConsumer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerConsumer.cpp
index 9f981295a41..8d6f28b5ae5 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerConsumer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerConsumer.cpp
@@ -9,6 +9,7 @@
#include "StructuredEventConsumer_i.h"
#include "Priorities.h"
#include <iostream>
+#include <fstream>
int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
@@ -33,7 +34,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::ConsumerAdmin_var consumer_admin =
ec->new_for_consumers(ifgop,
@@ -95,10 +96,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
poa_manager.in (),
poa_policy_list);
- StructuredEventConsumer_i servant (orb.in());
+ PortableServer::Servant_var<StructuredEventConsumer_i> servant =
+ new StructuredEventConsumer_i(orb.in());
PortableServer::ObjectId_var objectId =
- rt_poa->activate_object (&servant);
+ rt_poa->activate_object (servant.in());
CORBA::Object_var consumer_obj =
rt_poa->id_to_reference (objectId.in ());
@@ -163,6 +165,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
poa_manager->activate();
+ // Write a file to let the run_test.pl script know we are ready.
+ std::ofstream iorFile( "MessengerConsumer.ready" );
+ iorFile << "Ready" << std::endl;
+ iorFile.close();
+
orb->run();
}
catch(const CORBA::Exception& ex)
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerServer.cpp
index aa3ad6bb744..f375895feb6 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/MessengerServer.cpp
@@ -16,8 +16,9 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
PortableServer::POAManager_var mgr = poa->the_POAManager();
mgr->activate();
- Messenger_i messenger_servant (orb.in ());
- PortableServer::ObjectId_var oid = poa->activate_object (&messenger_servant);
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i(orb.in ());
+ PortableServer::ObjectId_var oid = poa->activate_object (messenger_servant.in());
CORBA::Object_var messenger_obj = poa->id_to_reference (oid.in ());
CORBA::String_var str = orb->object_to_string (messenger_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/Messenger_i.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/Messenger_i.cpp
index c6dc34bc7e1..92fdf82fd13 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/Messenger_i.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/Messenger_i.cpp
@@ -44,7 +44,7 @@ Messenger_i::Messenger_i (CORBA::ORB_ptr orb)
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
ec->new_for_suppliers (ifgop, adminid);
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/run_test.pl b/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/run_test.pl
index 9c17b7055f1..eaaceb005b9 100755
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/RTNotify/run_test.pl
@@ -11,10 +11,12 @@ use PerlACE::Run_Test;
$nsiorfile = PerlACE::LocalFile("ns.ior");
$messiorfile = PerlACE::LocalFile("Messenger.ior");
$notify_ior = PerlACE::LocalFile("notify.ior");
+$consumerfile = PerlACE::LocalFile("MessengerConsumer.ready");
$arg_ns_ref = "-ORBInitRef NameService=file://$nsiorfile";
unlink $nsiorfile;
unlink $messiorfile;
unlink $notify_ior;
+unlink $consumerfile;
# start Naming Service
$NameService = "$ENV{TAO_ROOT}/orbsvcs/Naming_Service/Naming_Service";
@@ -58,8 +60,15 @@ if (PerlACE::waitforfile_timed ($messiorfile, 15) == -1) {
$MC = new PerlACE::Process("MessengerConsumer",
"$arg_ns_ref -ORBSvcConf nsclient.conf");
$MC->Spawn();
+if (PerlACE::waitforfile_timed ($consumerfile, 15) == -1) {
+ print STDERR "ERROR: Timed out waiting for $consumerfile\n";
+ $MC->Kill();
+ $S->Kill();
+ $NS->Kill();
+ $NFS->Kill();
+ exit 1;
+}
-sleep(2);
# start MessengerClient
$C = new PerlACE::Process("MessengerClient", "");
if ($C->SpawnWaitKill(10) != 0) {
@@ -78,5 +87,6 @@ $NS->Kill();
unlink $nsiorfile;
unlink $messiorfile;
unlink $notify_ior;
+unlink $consumerfile;
exit 0;
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerConsumer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerConsumer.cpp
index 6d286da5e63..b1465b88b3f 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerConsumer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerConsumer.cpp
@@ -97,9 +97,10 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
PortableServer::POA_var poa =
PortableServer::POA::_narrow(poa_object.in());
- StructuredEventConsumer_i servant(orb.in());
+ PortableServer::Servant_var<StructuredEventConsumer_i> servant =
+ new StructuredEventConsumer_i(orb.in());
- PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ PortableServer::ObjectId_var oid = poa->activate_object(servant.in());
CORBA::Object_var consumer_obj = poa->id_to_reference(oid.in());
CosNotifyComm::StructuredPushConsumer_var consumer =
CosNotifyComm::StructuredPushConsumer::_narrow(consumer_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerServer.cpp
index 1e214673971..f557611910b 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerServer.cpp
@@ -26,11 +26,12 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv [])
mgr->activate();
// Create our Messenger servant.
- Messenger_i messenger_servant(orb.in());
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i(orb.in());
// Register it with the RootPOA.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
// Bind it in the Naming Service.
diff --git a/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerSupplier.cpp b/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerSupplier.cpp
index e1468ab0c93..8abe0871b55 100644
--- a/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerSupplier.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/NotifyService/SupplierSideNC/MessengerSupplier.cpp
@@ -4,6 +4,7 @@
#include "orbsvcs/CosNamingC.h"
#include "ace/Profile_Timer.h"
#include "StructuredEventSupplier_i.h"
+#include "ace/OS_NS_unistd.h"
#include <iostream>
int ACE_TMAIN(int argc, ACE_TCHAR * argv[])
@@ -44,7 +45,7 @@ int ACE_TMAIN(int argc, ACE_TCHAR * argv[])
// Become a structured push supplier.
CosNotifyChannelAdmin::AdminID adminid;
CosNotifyChannelAdmin::InterFilterGroupOperator ifgop =
- CosNotifyChannelAdmin::OR_OP;
+ CosNotifyChannelAdmin::AND_OP;
CosNotifyChannelAdmin::SupplierAdmin_var supplier_admin =
ec->new_for_suppliers (ifgop, adminid);
diff --git a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/ClientInitializer.cpp b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/ClientInitializer.cpp
index 3278f25b1cb..08c2c95625a 100644
--- a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/ClientInitializer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/ClientInitializer.cpp
@@ -4,6 +4,7 @@
#include "ClientInterceptor.h"
#include "MessengerC.h"
#include "orbsvcs/CosNamingC.h"
+#include "ace/OS_NS_unistd.h"
#include <iostream>
ClientInitializer::ClientInitializer (void)
@@ -34,7 +35,15 @@ ClientInitializer::post_init (PortableInterceptor::ORBInitInfo_ptr info)
CosNaming::Name name;
name.length( 1 );
name[0].id = CORBA::string_dup( "Messenger" );
- CORBA::Object_var obj = root->resolve( name );
+ CORBA::Object_var obj = CORBA::Object::_nil();
+ while ( CORBA::is_nil( obj.in() ) ) {
+ try {
+ obj = root->resolve( name );
+ } catch (const CosNaming::NamingContext::NotFound&) {
+ // Sleep for a second and try again
+ ACE_OS::sleep(1);
+ }
+ }
Messenger_var messenger = Messenger::_narrow( obj.in() );
if( CORBA::is_nil( messenger.in() ) ) {
diff --git a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerClient.cpp b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerClient.cpp
index 3edbc5d2284..af4307307eb 100644
--- a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerClient.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerClient.cpp
@@ -7,6 +7,7 @@
// Ensure that the PI library is linked in when building statically
#include "tao/PI/PI.h"
#include "orbsvcs/CosNamingC.h"
+#include "ace/OS_NS_unistd.h"
#include <iostream>
int
@@ -42,7 +43,15 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name.length(1);
name[0].id = CORBA::string_dup( "Messenger" );
- CORBA::Object_var obj = root->resolve( name );
+ CORBA::Object_var obj = CORBA::Object::_nil();
+ while ( CORBA::is_nil( obj.in() ) ) {
+ try {
+ obj = root->resolve( name );
+ } catch (const CosNaming::NamingContext::NotFound&) {
+ // Sleep for a second and try again
+ ACE_OS::sleep(1);
+ }
+ }
Messenger_var messenger = Messenger::_narrow( obj.in() );
if( CORBA::is_nil( messenger.in() ) ) {
diff --git a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerServer.cpp
index 4d57232a4ef..3ee2f4c0965 100644
--- a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/MessengerServer.cpp
@@ -35,7 +35,8 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant =
+ new Messenger_i;
// Find the Naming Service
CORBA::Object_var naming_obj =
@@ -53,7 +54,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
name[0].id = CORBA::string_dup( "Messenger" );
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
root->rebind(name, messenger_obj.in());
diff --git a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/README b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/README
index 4c3a74fe759..bce171848f2 100644
--- a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/README
+++ b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/README
@@ -23,7 +23,7 @@ How to Run
Start the Naming Service:
-------------------------
$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service \
- -ORBEndpoint iiop://localhost:9876
+ -ORBListenEndpoints iiop://localhost:9876
To start the server:
------------------
diff --git a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/run_test.pl b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/run_test.pl
index a69fe278929..56c57b64a40 100644..100755
--- a/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/PortableInterceptors/PICurrent_NameService/run_test.pl
@@ -14,7 +14,7 @@ $PORT=9876;
# start Naming Service
$NameService = "$ENV{TAO_ROOT}/orbsvcs/Naming_Service/Naming_Service";
-$NS = new PerlACE::Process($NameService, "-o $nsiorfile -ORBEndpoint iiop://localhost:$PORT");
+$NS = new PerlACE::Process($NameService, "-o $nsiorfile -ORBListenEndpoints iiop://localhost:$PORT");
$NS->Spawn();
if (PerlACE::waitforfile_timed ($nsiorfile, $PerlACE::wait_interval_for_process_creation) == -1) {
print STDERR "ERROR: cannot find file $nsiorfile\n";
@@ -30,7 +30,6 @@ $S = new PerlACE::Process("MessengerServer", $IREF);
$S->Spawn();
# start MessengerClient
-sleep(1);
$C = new PerlACE::Process("MessengerClient", $IREF);
if ($C->SpawnWaitKill(15) != 0) {
$S->Kill();
diff --git a/TAO/orbsvcs/DevGuideExamples/Security/ParticipatingApp/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/Security/ParticipatingApp/MessengerServer.cpp
index 5f4b7573a9e..c88ead4fc53 100644
--- a/TAO/orbsvcs/DevGuideExamples/Security/ParticipatingApp/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/Security/ParticipatingApp/MessengerServer.cpp
@@ -27,12 +27,11 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
SSLIOP::Current_var ssliop_current =
SSLIOP::Current::_narrow (obj.in ());
- Messenger_i messenger_servant(orb.in(),
- ssliop_current.in()
- );
+ PortableServer::Servant_var<Messenger_i> messenger_servant
+ = new Messenger_i(orb.in(), ssliop_current.in());
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
diff --git a/TAO/orbsvcs/DevGuideExamples/Security/PolicyControllingApp/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/Security/PolicyControllingApp/MessengerServer.cpp
index c6fdabeeb1e..430cd575761 100644
--- a/TAO/orbsvcs/DevGuideExamples/Security/PolicyControllingApp/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/Security/PolicyControllingApp/MessengerServer.cpp
@@ -19,12 +19,12 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerServer.cpp b/TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerServer.cpp
index 8cdfce1b28e..e0d7bfe827b 100644
--- a/TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerServer.cpp
+++ b/TAO/orbsvcs/DevGuideExamples/Security/SecurityUnawareApp/MessengerServer.cpp
@@ -19,12 +19,12 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
mgr->activate();
// Create an object
- Messenger_i messenger_servant;
+ PortableServer::Servant_var<Messenger_i> messenger_servant = new Messenger_i;
// Register the servant with the RootPOA, obtain its object
// reference, stringify it, and write it to a file.
PortableServer::ObjectId_var oid =
- poa->activate_object( &messenger_servant );
+ poa->activate_object( messenger_servant.in() );
CORBA::Object_var messenger_obj = poa->id_to_reference( oid.in() );
CORBA::String_var str = orb->object_to_string( messenger_obj.in() );
std::ofstream iorFile( "Messenger.ior" );
diff --git a/TAO/orbsvcs/DevGuideExamples/ValueTypes/Notify/run_test.pl b/TAO/orbsvcs/DevGuideExamples/ValueTypes/Notify/run_test.pl
index 2a7d6c95094..285f3b3df0c 100644..100755
--- a/TAO/orbsvcs/DevGuideExamples/ValueTypes/Notify/run_test.pl
+++ b/TAO/orbsvcs/DevGuideExamples/ValueTypes/Notify/run_test.pl
@@ -16,7 +16,7 @@ my $notifyior = PerlACE::LocalFile ("notify.ior");
my $notify_conf = PerlACE::LocalFile ("notify$PerlACE::svcconf_ext");
my $TS = new PerlACE::Process ("$TAO_ROOT/orbsvcs/Notify_Service/Notify_Service",
- "-boot -orbendpoint iiop://:8888 -NoNameSvc -IORoutput $notifyior -ORBSvcConf " .
+ "-boot -orblistenendpoints iiop://:8888 -NoNameSvc -IORoutput $notifyior -ORBSvcConf " .
"$notify_conf");
my $SUP = new PerlACE::Process ("supplier");
my $CONS = new PerlACE::Process ("consumer");
diff --git a/TAO/orbsvcs/DevGuideExamples/readme.txt b/TAO/orbsvcs/DevGuideExamples/readme.txt
index f6efa4d084f..40a511ea8b2 100644
--- a/TAO/orbsvcs/DevGuideExamples/readme.txt
+++ b/TAO/orbsvcs/DevGuideExamples/readme.txt
@@ -9,4 +9,16 @@ does not guarantee their accuracy or their suitability for any
particular use. OCI does provide additional distributions of TAO
and provides commercial support for TAO. Visit
http://www.theaceorb.com or contact sales@ociweb.com for more
+information on OCI's business model with respect to TAO."
+"These examples were developed by and are included in this
+distribution with the permission of Object Computing, Inc. (OCI)
+for the purpose of illustrating the usage of certain features of
+The ACE ORB (TAO) as described in OCI's TAO Developer's Guide.
+They are provided as is with no warranty, expressed or implied.
+Though the examples are believed to illustrate correct usage of
+TAO, OCI does not actively maintain them in this distribution and
+does not guarantee their accuracy or their suitability for any
+particular use. OCI does provide additional distributions of TAO
+and provides commercial support for TAO. Visit
+http://www.theaceorb.com or contact sales@ociweb.com for more
information on OCI's business model with respect to TAO." \ No newline at end of file
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Gateway_Service/FTRTEC_Gateway_Service.cpp b/TAO/orbsvcs/FTRT_Event_Service/Gateway_Service/FTRTEC_Gateway_Service.cpp
index 35f280c4b30..42dc5aada48 100644
--- a/TAO/orbsvcs/FTRT_Event_Service/Gateway_Service/FTRTEC_Gateway_Service.cpp
+++ b/TAO/orbsvcs/FTRT_Event_Service/Gateway_Service/FTRTEC_Gateway_Service.cpp
@@ -36,7 +36,7 @@ int parse_args (int argc, ACE_TCHAR *argv[])
{
case 'i':
{
- CORBA::Object_var obj = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (get_opt.opt_arg ()));
+ CORBA::Object_var obj = orb->string_to_object (get_opt.opt_arg ());
ftec = FtRtecEventChannelAdmin::EventChannel::_narrow (obj.in());
}
break;
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
index 78cf1a90d1f..d78d4e1ff44 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp
@@ -58,6 +58,7 @@ ImR_Locator_i::ImR_Locator_i (void)
, ins_locator_ (0)
, debug_ (0)
, read_only_ (false)
+ , unregister_if_address_reused_ (false)
{
// Visual C++ 6.0 is not smart enough to do a direct assignment
// while allocating the INS_Locator. So, we have to do it in
@@ -85,6 +86,7 @@ ImR_Locator_i::init_with_orb (CORBA::ORB_ptr orb, Options& opts)
read_only_ = opts.readonly ();
startup_timeout_ = opts.startup_timeout ();
ping_interval_ = opts.ping_interval ();
+ unregister_if_address_reused_ = opts.unregister_if_address_reused ();
CORBA::Object_var obj =
this->orb_->resolve_initial_references ("RootPOA");
@@ -791,7 +793,8 @@ ImR_Locator_i::add_or_update_server (const char* server,
if (this->debug_ > 1)
ACE_DEBUG ((LM_DEBUG, "ImR: Adding server <%s>.\n", server));
- this->repository_.add_server (server,
+ this->repository_.add_server ("",
+ server,
options.activator.in (),
options.command_line.in (),
options.environment,
@@ -965,30 +968,52 @@ ImR_Locator_i::shutdown_server (const char* server)
}
void
-ImR_Locator_i::server_is_running (const char* name,
+ImR_Locator_i::server_is_running (const char* id,
const char* partial_ior,
ImplementationRepository::ServerObject_ptr server)
{
- ACE_ASSERT (name != 0);
+ ACE_ASSERT (id != 0);
ACE_ASSERT (partial_ior != 0);
ACE_ASSERT (! CORBA::is_nil (server));
+ ACE_CString server_id;
+ ACE_CString name;
+
+ const char *pos = ACE_OS::strchr (id, ':');
+ if (pos)
+ {
+ ACE_CString idstr (id);
+ server_id = idstr.substr (0, pos - id);
+ name = idstr.substr (pos - id + 1);
+ }
+ else
+ {
+ name = id;
+ }
+
if (this->debug_ > 0)
- ACE_DEBUG ((LM_DEBUG, "ImR: Server %s is running at %s.\n", name, partial_ior));
+ ACE_DEBUG ((LM_DEBUG, "ImR: Server %s is running at %s.\n",
+ name.c_str (), partial_ior));
+
CORBA::String_var ior = orb_->object_to_string (server);
if (this->debug_ > 1)
- ACE_DEBUG ((LM_DEBUG, "ImR: Server %s callback at %s.\n", name, ior.in ()));
+ ACE_DEBUG ((LM_DEBUG, "ImR: Server %s callback at %s.\n",
+ name.c_str (), ior.in ()));
+
+ if (this->unregister_if_address_reused_)
+ this->repository_.unregister_if_address_reused (server_id, name, partial_ior);
Server_Info_Ptr info = this->repository_.get_server (name);
if (info.null ())
{
if (this->debug_ > 0)
- ACE_DEBUG ((LM_DEBUG, "ImR: Auto adding NORMAL server <%s>.\n", name));
+ ACE_DEBUG ((LM_DEBUG, "ImR: Auto adding NORMAL server <%s>.\n", name.c_str ()));
ImplementationRepository::EnvironmentList env (0);
- this->repository_.add_server (name,
+ this->repository_.add_server (server_id,
+ name,
"", // no activator
"", // no cmdline
ImplementationRepository::EnvironmentList (),
@@ -1002,22 +1027,32 @@ ImR_Locator_i::server_is_running (const char* name,
}
else
{
+ if (info->server_id != server_id)
+ {
+ if (! info->server_id.empty())
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("ImR - WARNING: server \"%s\" changed server id from ")
+ ACE_TEXT ("\"%s\" to \"%s\" waiting PER_CLIENT clients.\n"),
+ name.c_str (), info->server_id.c_str (), server_id.c_str ()));
+ info->server_id = server_id;
+ }
+
if (info->activation_mode != ImplementationRepository::PER_CLIENT) {
info->ior = ior.in ();
info->partial_ior = partial_ior;
info->server = ImplementationRepository::ServerObject::_nil (); // Will connect at first access
-
+
int err = this->repository_.update_server (*info);
ACE_ASSERT (err == 0);
ACE_UNUSED_ARG (err);
- waiter_svt_.unblock_one (name, partial_ior, ior.in (), false);
+ waiter_svt_.unblock_one (name.c_str (), partial_ior, ior.in (), false);
} else {
// Note : There's no need to unblock all the waiting request until
// we know the final status of the server.
if (info->waiting_clients > 0)
{
- waiter_svt_.unblock_one (name, partial_ior, ior.in (), true);
+ waiter_svt_.unblock_one (name.c_str (), partial_ior, ior.in (), true);
}
else if (this->debug_ > 1)
{
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
index 03ca0f0e594..7d6ecadacb3 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.h
@@ -150,6 +150,7 @@ private:
bool read_only_;
ACE_Time_Value startup_timeout_;
ACE_Time_Value ping_interval_;
+ bool unregister_if_address_reused_;
};
#include /**/ "ace/post.h"
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp
index 7c4c3009646..88408d3108e 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.cpp
@@ -38,6 +38,7 @@ Options::Options ()
, startup_timeout_(DEFAULT_START_TIMEOUT)
, readonly_ (false)
, service_command_(SC_NONE)
+, unregister_if_address_reused_ (false)
{
}
@@ -144,6 +145,11 @@ Options::parse_args (int &argc, ACE_TCHAR *argv[])
this->repo_mode_ = REPO_HEAP_FILE;
}
else if (ACE_OS::strcasecmp (shifter.get_current (),
+ ACE_TEXT ("-UnregisterIfAddressReused")) == 0)
+ {
+ this->unregister_if_address_reused_ = true;
+ }
+ else if (ACE_OS::strcasecmp (shifter.get_current (),
ACE_TEXT ("-r")) == 0)
{
this->repo_mode_ = REPO_REGISTRY;
@@ -503,3 +509,8 @@ Options::readonly (void) const
return this->readonly_;
}
+bool
+Options::unregister_if_address_reused (void) const
+{
+ return this->unregister_if_address_reused_;
+}
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h
index 49450048482..2cf290d07c5 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Options.h
@@ -94,6 +94,8 @@ public:
/// during indirect invocations, if this interval has elapsed.
ACE_Time_Value ping_interval (void) const;
+ bool unregister_if_address_reused (void) const;
+
private:
/// Parses and pulls out arguments for the ImR
int parse_args (int &argc, ACE_TCHAR *argv[]);
@@ -142,6 +144,10 @@ private:
/// The persistent XML file name.
ACE_TString persist_file_name_;
+
+ /// Should check the server address and remove previous server if
+ /// the address is reused.
+ bool unregister_if_address_reused_;
};
#endif
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp
index d847a6a3fdf..6092c74f041 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.cpp
@@ -22,6 +22,7 @@ static const ACE_TCHAR* ACTIVATOR = ACE_TEXT("Activator");
static const ACE_TCHAR* SERVERS_ROOT_KEY = ACE_TEXT("Servers");
static const ACE_TCHAR* ACTIVATORS_ROOT_KEY = ACE_TEXT("Activators");
static const ACE_TCHAR* TOKEN = ACE_TEXT("Token");
+static const ACE_TCHAR* SERVER_ID = ACE_TEXT("ServerId");
#if defined (ACE_WIN32) && !defined (ACE_LACKS_WIN32_REGISTRY)
static const char* WIN32_REG_KEY = "Software\\TAO\\ImplementationRepository";
@@ -75,7 +76,7 @@ static void loadServersAsBinary(ACE_Configuration& config, Locator_Repository::S
ACE_TString name;
while (config.enumerate_sections (root, index, name) == 0)
{
- ACE_CString cmdline, dir, envstr, partial_ior, ior, aname;
+ ACE_CString server_id, cmdline, dir, envstr, partial_ior, ior, aname;
u_int amodeint = ImplementationRepository::MANUAL;
u_int start_limit;
@@ -85,6 +86,7 @@ static void loadServersAsBinary(ACE_Configuration& config, Locator_Repository::S
config.open_section (root, name.c_str (), 0, key);
// Ignore any missing values. Server name is enough on its own.
+ config.get_string_value (key, SERVER_ID, server_id);
config.get_string_value (key, ACTIVATOR, aname);
config.get_string_value (key, STARTUP_COMMAND, cmdline);
config.get_string_value (key, WORKING_DIR, dir);
@@ -100,7 +102,7 @@ static void loadServersAsBinary(ACE_Configuration& config, Locator_Repository::S
ImplementationRepository::EnvironmentList env_vars =
ImR_Utils::parseEnvList (envstr);
- Server_Info_Ptr info (new Server_Info(name, aname, cmdline,
+ Server_Info_Ptr info (new Server_Info(server_id, name, aname, cmdline,
env_vars, dir, amode, start_limit, partial_ior, ior));
map.bind (name, info);
index++;
@@ -135,10 +137,10 @@ public:
: repo_ (repo)
{
}
- virtual void next_server (const ACE_CString& name,
- const ACE_CString& aname, const ACE_CString& cmdline,
- const Locator_XMLHandler::EnvList& envlst, const ACE_CString& dir,
- const ACE_CString& amodestr, int start_limit,
+ virtual void next_server (const ACE_CString& server_id,
+ const ACE_CString& name, const ACE_CString& aname,
+ const ACE_CString& cmdline, const Locator_XMLHandler::EnvList& envlst,
+ const ACE_CString& dir, const ACE_CString& amodestr, int start_limit,
const ACE_CString& partial_ior, const ACE_CString& ior)
{
ImplementationRepository::ActivationMode amode =
@@ -149,7 +151,7 @@ public:
int limit = start_limit < 1 ? 1 : start_limit;
- Server_Info_Ptr si (new Server_Info (name, aname, cmdline,
+ Server_Info_Ptr si (new Server_Info (server_id, name, aname, cmdline,
env_vars, dir, amode, limit, partial_ior, ior));
this->repo_.servers ().bind (name, si);
@@ -224,6 +226,7 @@ static void saveAsXML (const ACE_CString& fname, Locator_Repository& repo)
{
Server_Info_Ptr& info = sientry->int_id_;
+ ACE_CString server_id = ACEXML_escape_string (info->server_id);
ACE_CString name = ACEXML_escape_string (info->name);
ACE_CString activator = ACEXML_escape_string (info->activator);
ACE_CString cmdline = ACEXML_escape_string (info->cmdline);
@@ -232,6 +235,7 @@ static void saveAsXML (const ACE_CString& fname, Locator_Repository& repo)
ACE_CString ior = ACEXML_escape_string (info->ior);
ACE_OS::fprintf (fp,"\t<%s", Locator_XMLHandler::SERVER_INFO_TAG);
+ ACE_OS::fprintf (fp," server_id=\"%s\"", server_id.c_str ());
ACE_OS::fprintf (fp," name=\"%s\"", name.c_str ());
ACE_OS::fprintf (fp," activator=\"%s\"", activator.c_str ());
ACE_OS::fprintf (fp," command_line=\"%s\"", cmdline.c_str ());
@@ -276,6 +280,7 @@ static void saveAsXML (const ACE_CString& fname, Locator_Repository& repo)
Locator_Repository::Locator_Repository ()
: rmode_ (Options::REPO_NONE)
, config_ (0)
+, debug_ (0)
{
}
@@ -284,6 +289,7 @@ Locator_Repository::init(const Options& opts)
{
this->rmode_ = opts.repository_mode ();
this->fname_ = opts.persist_file_name ();
+ this->debug_ = opts.debug ();
int err = 0;
switch (this->rmode_)
@@ -348,8 +354,69 @@ Locator_Repository::init(const Options& opts)
return err;
}
+
+int
+Locator_Repository::unregister_if_address_reused (
+ const ACE_CString& server_id,
+ const ACE_CString& name,
+ const char* partial_ior)
+{
+ if (this->debug_ > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)ImR: checking reuse address ")
+ ACE_TEXT ("for server \"%s %s\" ior \"%s\"\n"),
+ server_id.c_str(), name.c_str (), partial_ior));
+ }
+
+ ACE_Vector<ACE_CString> srvs;
+
+ Locator_Repository::SIMap::ENTRY* sientry = 0;
+ Locator_Repository::SIMap::ITERATOR siit (servers ());
+ for (; siit.next (sientry); siit.advance() )
+ {
+ Server_Info_Ptr& info = sientry->int_id_;
+
+ if (this->debug_)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)ImR: iterating - registered server")
+ ACE_TEXT ("\"%s %s\" ior \"%s\"\n"), info->server_id.c_str(),
+ info->name.c_str (), info->partial_ior.c_str ()));
+ }
+
+ if (info->partial_ior == partial_ior
+ && name != info->name
+ && info->server_id != server_id)
+ {
+ if (this->debug_)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)ImR: reuse address %s so remove")
+ ACE_TEXT ("server %s \n"), info->partial_ior.c_str (), info->name.c_str ()));
+ }
+ if (! info->name.empty ())
+ {
+ srvs.push_back (info->name);
+ }
+ }
+ }
+
+ int err = 0;
+ for (size_t i = 0; i < srvs.size (); ++i)
+ {
+
+ if (this->remove_server (srvs[i]) != 0)
+ {
+ err = -1;
+ }
+ }
+
+ return err;
+}
+
+
+
int
-Locator_Repository::add_server (const ACE_CString& name,
+Locator_Repository::add_server (const ACE_CString& server_id,
+ const ACE_CString& name,
const ACE_CString& aname,
const ACE_CString& startup_command,
const ImplementationRepository::EnvironmentList& env_vars,
@@ -361,7 +428,7 @@ Locator_Repository::add_server (const ACE_CString& name,
ImplementationRepository::ServerObject_ptr svrobj)
{
int limit = start_limit < 1 ? 1 : start_limit;
- Server_Info_Ptr info(new Server_Info (name, aname, startup_command,
+ Server_Info_Ptr info(new Server_Info (server_id, name, aname, startup_command,
env_vars, working_dir, activation, limit, partial_ior, ior, svrobj));
int err = servers ().bind (name, info);
@@ -416,6 +483,7 @@ Locator_Repository::update_server (const Server_Info& info)
ACE_CString envstr = ImR_Utils::envListToString(info.env_vars);
+ cfg.set_string_value (key, SERVER_ID, info.server_id.c_str ());
cfg.set_string_value (key, ACTIVATOR, info.activator.c_str ());
cfg.set_string_value (key, STARTUP_COMMAND, info.cmdline.c_str ());
cfg.set_string_value (key, WORKING_DIR, info.dir.c_str ());
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h
index 2ef50b5753a..302df853cc8 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_Repository.h
@@ -54,8 +54,13 @@ public:
/// Initializes the Server Repository
int init (const Options& opts);
+ int unregister_if_address_reused (const ACE_CString& server_id,
+ const ACE_CString& name,
+ const char* partial_ior);
+
/// Add a new server to the Repository
- int add_server (const ACE_CString& name,
+ int add_server (const ACE_CString& server_id,
+ const ACE_CString& name,
const ACE_CString& aname,
const ACE_CString& startup_command,
const ImplementationRepository::EnvironmentList& environment_vars,
@@ -108,6 +113,8 @@ private:
ACE_Auto_Ptr<ACE_Configuration> config_;
// XML requires the file name
ACE_CString fname_;
+
+ unsigned int debug_;
};
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp
index 087ff256dfa..55757e8c97f 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp
@@ -28,18 +28,19 @@ Locator_XMLHandler::startElement (const ACEXML_Char*,
this->server_name_ = ACE_TEXT("");
this->env_vars_.clear();
- if (attrs != 0 && attrs->getLength () == 8)
+ if (attrs != 0 && attrs->getLength () == 9)
{
- this->server_name_ = attrs->getValue ((size_t)0);
- this->activator_name_ = attrs->getValue ((size_t)1);
- this->command_line_ = attrs->getValue ((size_t)2);
- this->working_dir_ = attrs->getValue ((size_t)3);
- this->activation_ = attrs->getValue ((size_t)4);
+ this->server_id_ = attrs->getValue ((size_t)0);
+ this->server_name_ = attrs->getValue ((size_t)1);
+ this->activator_name_ = attrs->getValue ((size_t)2);
+ this->command_line_ = attrs->getValue ((size_t)3);
+ this->working_dir_ = attrs->getValue ((size_t)4);
+ this->activation_ = attrs->getValue ((size_t)5);
this->env_vars_.clear ();
- int limit = ACE_OS::atoi (attrs->getValue ((size_t)5));
+ int limit = ACE_OS::atoi (attrs->getValue ((size_t)6));
this->start_limit_ = limit;
- this->partial_ior_ = attrs->getValue ((size_t)6);
- this->server_object_ior_ = attrs->getValue ((size_t)7);
+ this->partial_ior_ = attrs->getValue ((size_t)7);
+ this->server_object_ior_ = attrs->getValue ((size_t)8);
}
}
else if (ACE_OS::strcasecmp (qName, ACTIVATOR_INFO_TAG) == 0)
@@ -74,7 +75,8 @@ Locator_XMLHandler::endElement (const ACEXML_Char*,
if (ACE_OS::strcasecmp (qName, SERVER_INFO_TAG) == 0
&& this->server_name_.length () > 0)
{
- this->callback_.next_server (this->server_name_,
+ this->callback_.next_server (
+ this->server_id_, this->server_name_,
this->activator_name_, this->command_line_,
this->env_vars_, this->working_dir_, this->activation_,
this->start_limit_, this->partial_ior_, this->server_object_ior_);
diff --git a/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.h b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.h
index 25d13752827..5ab9d4bbc65 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Locator_XMLHandler.h
@@ -45,11 +45,12 @@ public:
struct Callback {
virtual ~Callback() {}
- virtual void next_server (const ACE_CString& server_name,
- const ACE_CString& aname, const ACE_CString& startup_cmd,
- const EnvList& env_vars, const ACE_CString& working_dir,
- const ACE_CString& actmode, int start_limit,
- const ACE_CString& partial_ior, const ACE_CString& ior) = 0;
+ virtual void next_server (const ACE_CString& server_id,
+ const ACE_CString& server_name, const ACE_CString& aname,
+ const ACE_CString& startup_cmd, const EnvList& env_vars,
+ const ACE_CString& working_dir, const ACE_CString& actmode,
+ int start_limit, const ACE_CString& partial_ior,
+ const ACE_CString& ior) = 0;
virtual void next_activator (const ACE_CString& activator_name,
long token,
@@ -72,6 +73,7 @@ public:
// callback on completion of an element
Callback& callback_;
+ ACE_CString server_id_;
ACE_TString server_name_;
ACE_TString activator_name_;
ACE_TString command_line_;
diff --git a/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp b/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp
index ed15f71c699..94a37c57b05 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/Server_Info.cpp
@@ -3,6 +3,7 @@
Server_Info::Server_Info
(
+ const ACE_CString& serverId,
const ACE_CString& server_name,
const ACE_CString& aname,
const ACE_CString& cmdline,
@@ -14,7 +15,8 @@ Server_Info::Server_Info
const ACE_CString& server_ior,
ImplementationRepository::ServerObject_ptr svrobj
)
- : name (server_name)
+ : server_id (serverId)
+ , name (server_name)
, activator (aname)
, cmdline( cmdline)
, env_vars (env)
diff --git a/TAO/orbsvcs/ImplRepo_Service/Server_Info.h b/TAO/orbsvcs/ImplRepo_Service/Server_Info.h
index 4e3bcd06d66..12403532beb 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Server_Info.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Server_Info.h
@@ -28,7 +28,8 @@
*/
struct Server_Info
{
- Server_Info (const ACE_CString& server_name,
+ Server_Info (const ACE_CString& serverId,
+ const ACE_CString& name,
const ACE_CString& aname,
const ACE_CString& cmdline,
const ImplementationRepository::EnvironmentList& env,
@@ -46,7 +47,9 @@ struct Server_Info
void reset();
/// The name of the server.
+ ACE_CString server_id;
ACE_CString name;
+
/// The name of the activator in which this server runs
ACE_CString activator;
/// The command line startup command (program and arguments).
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Server.cpp b/TAO/orbsvcs/Notify_Service/Notify_Server.cpp
index e90cfe8cd31..16554fa8e2c 100644
--- a/TAO/orbsvcs/Notify_Service/Notify_Server.cpp
+++ b/TAO/orbsvcs/Notify_Service/Notify_Server.cpp
@@ -35,7 +35,7 @@ Notify_Service_Shutdown_Functor::operator() (int which_signal)
if (TAO_debug_level > 0)
ACE_DEBUG ((LM_DEBUG,
"shutting down on signal %d\n", which_signal));
- (void) this->svc_.shutdown ();
+ (void) this->svc_.fini ();
}
// Driver function for the TAO Notify Service.
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Service.cpp b/TAO/orbsvcs/Notify_Service/Notify_Service.cpp
index 82ef3482818..4a8b221ae11 100644
--- a/TAO/orbsvcs/Notify_Service/Notify_Service.cpp
+++ b/TAO/orbsvcs/Notify_Service/Notify_Service.cpp
@@ -24,32 +24,26 @@ TAO_Notify_Service_Driver::TAO_Notify_Service_Driver (void)
: notify_service_ (0)
, bootstrap_ (false)
, use_name_svc_ (true)
-, ior_output_file_ (0)
+, ior_output_file_name_ (0)
, notify_factory_name_ (NOTIFY_KEY)
-, notify_channel_name_ (NOTIFY_CHANNEL_NAME)
, register_event_channel_ (false)
, nthreads_ (1)
, separate_dispatching_orb_ (false)
, timeout_ (0)
, logging_worker_(this)
+, shutdown_orb_ (true)
+, shutdown_dispatching_orb_ (true)
{
- // No-Op.
}
TAO_Notify_Service_Driver::~TAO_Notify_Service_Driver (void)
{
- if (ior_output_file_)
- ACE_OS::fclose(ior_output_file_);
}
int
TAO_Notify_Service_Driver::init_ORB (int& argc, ACE_TCHAR *argv [])
{
- // Copy command line parameter.
- ACE_Argv_Type_Converter command_line(argc, argv);
-
- this->orb_ = CORBA::ORB_init (command_line.get_argc(),
- command_line.get_ASCII_argv());
+ this->orb_ = CORBA::ORB_init (argc, argv);
this->apply_timeout (this->orb_.in ());
@@ -75,12 +69,7 @@ TAO_Notify_Service_Driver::init_ORB (int& argc, ACE_TCHAR *argv [])
int
TAO_Notify_Service_Driver::init_dispatching_ORB (int& argc, ACE_TCHAR *argv [])
{
- // Copy command line parameter.
- ACE_Argv_Type_Converter command_line(argc, argv);
-
- this->dispatching_orb_ = CORBA::ORB_init (command_line.get_argc(),
- command_line.get_TCHAR_argv(),
- "dispatcher");
+ this->dispatching_orb_ = CORBA::ORB_init (argc, argv, "dispatcher");
this->apply_timeout (this->dispatching_orb_.in ());
@@ -132,9 +121,12 @@ TAO_Notify_Service_Driver::init (int argc, ACE_TCHAR *argv[])
if (this->notify_service_ == 0)
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Service not found. Check service ")
- ACE_TEXT ("configurator file.\n")));
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Service not found. Check service ")
+ ACE_TEXT ("configurator file.\n")));
+ }
return -1;
}
@@ -152,43 +144,51 @@ TAO_Notify_Service_Driver::init (int argc, ACE_TCHAR *argv[])
this->notify_service_->init_service (this->orb_.in ());
}
- logging_worker_.start();
+ this->logging_worker_.start();
if (this->nthreads_ > 0) // we have chosen to run in a thread pool.
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("Running %d ORB threads\n"),
- this->nthreads_));
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("Running %d ORB threads\n"),
+ this->nthreads_));
+ }
worker_.orb (this->orb_.in ());
// Task activation flags.
- long flags =
+ long const flags =
THR_NEW_LWP |
THR_JOINABLE |
this->orb_->orb_core ()->orb_params ()->thread_creation_flags ();
- int priority =
+ int const priority =
ACE_Sched_Params::priority_min (ACE_Utils::truncate_cast<ACE_Sched_Params::Policy> (this->orb_->orb_core ()->orb_params ()->sched_policy ()),
ACE_Utils::truncate_cast<int> (this->orb_->orb_core ()->orb_params ()->scope_policy ()));
if (worker_.activate (flags,
this->nthreads_, 0, priority) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Cannot activate client threads\n"), -1);
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot activate client threads\n"), -1);
+ }
}
// Check first if the naming service
if (this->use_name_svc_)
{
// Resolve the naming service.
- int ns_ret = this->resolve_naming_service ();
+ int const ns_ret = this->resolve_naming_service ();
if (ns_ret != 0)
return -1;
}
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("\nStarting up the Notification Service...\n")));
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT("\nStarting up the Notification Service...\n")));
+ }
// Activate the factory
this->notify_factory_ =
@@ -204,10 +204,14 @@ TAO_Notify_Service_Driver::init (int argc, ACE_TCHAR *argv[])
IORTable::Table_var adapter =
IORTable::Table::_narrow (table_object.in ());
+
if (CORBA::is_nil (adapter.in ()))
{
- ACE_ERROR ((LM_ERROR,
- "Nil IORTable. corbaloc support not enabled.\n"));
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Nil IORTable. corbaloc support not enabled.\n"));
+ }
}
else
{
@@ -217,57 +221,68 @@ TAO_Notify_Service_Driver::init (int argc, ACE_TCHAR *argv[])
}
}
-
// Register with the Name service, if asked
- if (this->use_name_svc_)
+ if (this->use_name_svc_ && !CORBA::is_nil (this->naming_.in ()))
{
- ACE_ASSERT (!CORBA::is_nil (this->naming_.in ()));
-
CosNaming::Name_var name =
this->naming_->to_name (this->notify_factory_name_.c_str ());
-
this->naming_->rebind (name.in (),
this->notify_factory_.in ());
- ACE_DEBUG ((LM_DEBUG,
- "Registered with the naming service as: %C\n",
- this->notify_factory_name_.c_str()));
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Registered with the naming service as: %C\n",
+ this->notify_factory_name_.c_str()));
+ }
if (this->register_event_channel_)
{
- // create an event channel
- CosNotifyChannelAdmin::ChannelID id;
-
- CosNotification::QoSProperties initial_qos;
- CosNotification::AdminProperties initial_admin;
-
- CosNotifyChannelAdmin::EventChannel_var ec;
- TAO_Notify_EventChannelFactory* factory_impl =
- dynamic_cast<TAO_Notify_EventChannelFactory*> (
- this->notify_factory_->_servant ());
- if (factory_impl == 0)
+ // If we don't have any name configured, default to the standard name
+ if (this->notify_channel_name_.is_empty ())
{
- ec = this->notify_factory_->create_channel (initial_qos,
- initial_admin,
- id);
+ notify_channel_name_.insert (NOTIFY_CHANNEL_NAME);
}
- else
+
+ for (ACE_Unbounded_Set<ACE_CString>::const_iterator ci (
+ this->notify_channel_name_); !ci.done(); ci++)
{
- ec = factory_impl->create_named_channel (
- initial_qos, initial_admin,id,
- this->notify_channel_name_.c_str ());
+ // create an event channel
+ CosNotifyChannelAdmin::ChannelID id;
+
+ CosNotification::QoSProperties initial_qos;
+ CosNotification::AdminProperties initial_admin;
+
+ CosNotifyChannelAdmin::EventChannel_var ec;
+ TAO_Notify_EventChannelFactory* factory_impl =
+ dynamic_cast<TAO_Notify_EventChannelFactory*> (
+ this->notify_factory_->_servant ());
+ if (factory_impl == 0)
+ {
+ ec = this->notify_factory_->create_channel (initial_qos,
+ initial_admin,
+ id);
+ }
+ else
+ {
+ ec = factory_impl->create_named_channel (
+ initial_qos, initial_admin,id,
+ (*ci).c_str ());
+ }
+
+ name = this->naming_->to_name ((*ci).c_str ());
+
+ this->naming_->rebind (name.in (), ec.in ());
+
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "Registered an Event Channel with the naming "
+ "service as: %C\n",
+ (*ci).c_str()));
+ }
}
-
- name = this->naming_->to_name (this->notify_channel_name_.c_str ());
-
- this->naming_->rebind (name.in (),
- ec.in ());
-
- ACE_DEBUG ((LM_DEBUG,
- "Registered an Event Channel with the naming service as: %C\n",
- this->notify_channel_name_.c_str()));
-
}
}
@@ -276,11 +291,20 @@ TAO_Notify_Service_Driver::init (int argc, ACE_TCHAR *argv[])
CORBA::String_var str =
this->orb_->object_to_string (this->notify_factory_.in ());
- if (this->ior_output_file_)
+ if (this->ior_output_file_name_)
{
- ACE_OS::fprintf (this->ior_output_file_, "%s", str.in ());
- ACE_OS::fclose (this->ior_output_file_);
- this->ior_output_file_ = 0;
+ FILE* ior_output_file = ACE_OS::fopen (ior_output_file_name_,
+ ACE_TEXT("w"));
+ if (ior_output_file == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to open %s for writing: %p\n",
+ this->ior_output_file_name_, "Notify_Service"),
+ -1);
+ }
+
+ ACE_OS::fprintf (ior_output_file, "%s", str.in ());
+ ACE_OS::fclose (ior_output_file);
}
else if (TAO_debug_level > 0)
{
@@ -304,8 +328,7 @@ TAO_Notify_Service_Driver::resolve_naming_service (void)
" (%P|%t) Unable to resolve the Naming Service.\n"),
-1);
- this->naming_ =
- CosNaming::NamingContextExt::_narrow (naming_obj.in ());
+ this->naming_ = CosNaming::NamingContextExt::_narrow (naming_obj.in ());
return 0;
}
@@ -314,29 +337,32 @@ int
TAO_Notify_Service_Driver::run (void)
{
if (TAO_debug_level > 0 )
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("%s: Running the Notification Service\n"),
- ACE_TEXT_CHAR_TO_TCHAR (__FILE__)));
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%C: Running the Notification Service\n"),
+ __FILE__));
if (this->nthreads_ > 0)
{
- worker_.thr_mgr ()->wait ();
+ this->worker_.wait ();
return 0;
}
-
- this->orb_->run ();
+ else
+ {
+ this->orb_->run ();
+ }
this->logging_worker_.end();
return 0;
}
-void
-TAO_Notify_Service_Driver::shutdown (void)
+int
+TAO_Notify_Service_Driver::fini (void)
{
/// Release all the _vars as the ORB about to go away.
CosNotifyChannelAdmin::EventChannelFactory_var factory =
this->notify_factory_._retn ();
CORBA::ORB_var orb = this->orb_._retn ();
+ CORBA::ORB_var dispatching_orb = this->dispatching_orb_._retn ();
PortableServer::POA_var poa = this->poa_._retn ();
CosNaming::NamingContextExt_var naming = this->naming_._retn ();
@@ -344,26 +370,77 @@ TAO_Notify_Service_Driver::shutdown (void)
// correctly. Depending upon the type of service loaded, it may
// or may not actually perform any actions.
this->notify_service_->finalize_service (factory.in ());
+ factory = CosNotifyChannelAdmin::EventChannelFactory::_nil ();
+
+ this->notify_service_->fini ();
// Deactivate.
if (this->use_name_svc_ && !CORBA::is_nil (naming.in ()))
{
+ // Unbind all event channels from the naming service
+ if (this->register_event_channel_)
+ {
+ for (ACE_Unbounded_Set<ACE_CString>::const_iterator ci (
+ this->notify_channel_name_); !ci.done(); ci++)
+ {
+ CosNaming::Name_var name = naming->to_name ((*ci).c_str ());
+ naming->unbind (name.in ());
+ }
+ }
+
// Unbind from the naming service.
CosNaming::Name_var name =
naming->to_name (this->notify_factory_name_.c_str ());
naming->unbind (name.in ());
+
+ naming = CosNaming::NamingContextExt::_nil ();
}
- poa->destroy (true, true);
-
+ if (!CORBA::is_nil (poa.in ()))
+ {
+ poa->destroy (true, true);
+ poa = PortableServer::POA::_nil ();
+ }
+
+ if (this->shutdown_dispatching_orb_ && !CORBA::is_nil (dispatching_orb_.in ()))
+ {
+ dispatching_orb->shutdown ();
+ }
+
// shutdown the ORB.
- if (!CORBA::is_nil (orb.in ()))
- orb->shutdown ();
+ if (this->shutdown_orb_ && !CORBA::is_nil (orb.in ()))
+ {
+ orb->shutdown ();
+ }
+
+ // Make sure all worker threads are gone.
+ this->worker_.wait ();
+ this->logging_worker_.wait ();
+
+ // Destroy the ORB
+ if (this->shutdown_dispatching_orb_ && !CORBA::is_nil (dispatching_orb_.in ()))
+ {
+ dispatching_orb->destroy ();
+ }
+
+ // Destroy the ORB.
+ if (this->shutdown_orb_ && !CORBA::is_nil (orb.in ()))
+ {
+ orb->destroy ();
+ }
+
+ dispatching_orb_ = CORBA::ORB::_nil ();
+
+ worker_.orb (CORBA::ORB::_nil ());
+
+ orb = CORBA::ORB::_nil ();
+
+ return 0;
}
int
-TAO_Notify_Service_Driver::parse_args (int &argc, ACE_TCHAR *argv[])
+TAO_Notify_Service_Driver::parse_args (int argc, ACE_TCHAR *argv[])
{
ACE_Arg_Shifter arg_shifter (argc, argv);
@@ -375,29 +452,63 @@ TAO_Notify_Service_Driver::parse_args (int &argc, ACE_TCHAR *argv[])
this->notify_factory_name_.set (ACE_TEXT_ALWAYS_CHAR(current_arg));
arg_shifter.consume_arg ();
}
- else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-UseSeparateDispatchingORB")) == 0)
- {
- current_arg = arg_shifter.get_the_parameter
- (ACE_TEXT("-UseSeparateDispatchingORB"));
- if (current_arg != 0 &&
- (ACE_OS::strcmp(ACE_TEXT ("0"), current_arg) == 0 ||
- ACE_OS::strcmp(ACE_TEXT ("1"), current_arg) == 0))
+ else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-ShutdownORB")) == 0)
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Using separate dispatching ORB\n")));
- this->separate_dispatching_orb_ =
- static_cast<bool> (ACE_OS::atoi(current_arg));
+ current_arg = arg_shifter.get_the_parameter
+ (ACE_TEXT("-ShutdownORB"));
+ if (current_arg != 0 &&
+ (ACE_OS::strcmp(ACE_TEXT ("0"), current_arg) == 0 ||
+ ACE_OS::strcmp(ACE_TEXT ("1"), current_arg) == 0))
+ {
+ this->shutdown_orb_ =
+ static_cast<bool> (ACE_OS::atoi(current_arg));
+ }
+ if (current_arg != 0)
+ arg_shifter.consume_arg ();
}
- else
+ else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-ShutdownDispatchingORB")) == 0)
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("WARNING: Unrecognized ")
- ACE_TEXT ("argument (%s) to ")
- ACE_TEXT ("-UseSeparateDispatchingORB.\n"),
- (current_arg == 0 ? ACE_TEXT ("''") : current_arg)));
+ current_arg = arg_shifter.get_the_parameter
+ (ACE_TEXT("-ShutdownDispatchingORB"));
+ if (current_arg != 0 &&
+ (ACE_OS::strcmp(ACE_TEXT ("0"), current_arg) == 0 ||
+ ACE_OS::strcmp(ACE_TEXT ("1"), current_arg) == 0))
+ {
+ this->shutdown_dispatching_orb_ =
+ static_cast<bool> (ACE_OS::atoi(current_arg));
+ }
+ if (current_arg != 0)
+ arg_shifter.consume_arg ();
}
- if (current_arg != 0)
- arg_shifter.consume_arg ();
+ else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-UseSeparateDispatchingORB")) == 0)
+ {
+ current_arg = arg_shifter.get_the_parameter
+ (ACE_TEXT("-UseSeparateDispatchingORB"));
+ if (current_arg != 0 &&
+ (ACE_OS::strcmp(ACE_TEXT ("0"), current_arg) == 0 ||
+ ACE_OS::strcmp(ACE_TEXT ("1"), current_arg) == 0))
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Using separate dispatching ORB\n")));
+ }
+ this->separate_dispatching_orb_ =
+ static_cast<bool> (ACE_OS::atoi(current_arg));
+ }
+ else
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("WARNING: Unrecognized ")
+ ACE_TEXT ("argument (%s) to ")
+ ACE_TEXT ("-UseSeparateDispatchingORB.\n"),
+ (current_arg == 0 ? ACE_TEXT ("''") : current_arg)));
+ }
+ }
+ if (current_arg != 0)
+ arg_shifter.consume_arg ();
}
else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-Boot")) == 0)
{
@@ -422,16 +533,12 @@ TAO_Notify_Service_Driver::parse_args (int &argc, ACE_TCHAR *argv[])
}
else if (0 != (current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-IORoutput"))))
{
- this->ior_output_file_ = ACE_OS::fopen (current_arg, ACE_TEXT("w"));
- if (this->ior_output_file_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Unable to open %s for writing: %p\n",
- current_arg, "Notify_Service"), -1);
+ this->ior_output_file_name_ = current_arg;
arg_shifter.consume_arg ();
}
else if (0 != (current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-ChannelName"))))
{
- this->notify_channel_name_.set(ACE_TEXT_ALWAYS_CHAR(current_arg));
+ this->notify_channel_name_.insert(ACE_CString(ACE_TEXT_ALWAYS_CHAR(current_arg)));
arg_shifter.consume_arg ();
}
else if (arg_shifter.cur_arg_strncasecmp (ACE_TEXT("-Channel")) == 0)
@@ -443,14 +550,17 @@ TAO_Notify_Service_Driver::parse_args (int &argc, ACE_TCHAR *argv[])
}
else if (0 != (current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-Notify_TPReactor"))))
{
- ACE_DEBUG((LM_DEBUG,
- ACE_TEXT ("-Notify_TPReactor option is deprecated, ")
- ACE_TEXT ("use -ORBRunThreads option\n")));
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT ("-Notify_TPReactor option is deprecated, ")
+ ACE_TEXT ("use -RunThreads option\n")));
+ }
this->nthreads_ = ACE_OS::atoi (current_arg);
arg_shifter.consume_arg ();
}
- else if (0 != (current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-ORBRunThreads"))))
+ else if (0 != (current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-RunThreads"))))
{
this->nthreads_ = ACE_OS::atoi (current_arg);
arg_shifter.consume_arg ();
@@ -461,9 +571,12 @@ TAO_Notify_Service_Driver::parse_args (int &argc, ACE_TCHAR *argv[])
this->timeout_ = ACE_OS::atoi (current_arg);
arg_shifter.consume_arg ();
#else
- ACE_DEBUG((LM_DEBUG,
- ACE_TEXT ("WARNING: CORBA Messaging has been disabled.")
- ACE_TExT ("The timeout will not be applied.\n")));
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG((LM_DEBUG,
+ ACE_TEXT ("WARNING: CORBA Messaging has been disabled.")
+ ACE_TExT ("The timeout will not be applied.\n")));
+ }
#endif /* TAO_HAS_CORBA_MESSAGING != 0 */
}
else if ((current_arg = arg_shifter.get_the_parameter (ACE_TEXT("-LoggingInterval"))))
@@ -478,8 +591,10 @@ TAO_Notify_Service_Driver::parse_args (int &argc, ACE_TCHAR *argv[])
ACE_TEXT ("-Boot -[No]NameSvc ")
ACE_TEXT ("-IORoutput file_name ")
ACE_TEXT ("-Channel -ChannelName channel_name ")
- ACE_TEXT ("-ORBRunThreads threads ")
+ ACE_TEXT ("-RunThreads threads ")
ACE_TEXT ("-Timeout <msec>\n")
+ ACE_TEXT ("-ShutdownORB 1|0")
+ ACE_TEXT ("-ShutdownDispatchingORB 1|0")
ACE_TEXT ("default: %s -Factory NotifyEventChannelFactory ")
ACE_TEXT ("-NameSvc -Channel NotifyEventChannel -ORBRunThreads 1\n"),
argv[0], argv[0]));
@@ -499,7 +614,8 @@ TAO_Notify_Service_Driver::parse_args (int &argc, ACE_TCHAR *argv[])
/*****************************************************************/
LoggingWorker::LoggingWorker(TAO_Notify_Service_Driver* ns)
: ns_ (ns),
- started_ (false)
+ started_ (false),
+ timer_id_ (-1)
{
}
@@ -507,43 +623,48 @@ LoggingWorker::LoggingWorker(TAO_Notify_Service_Driver* ns)
void
LoggingWorker::start ()
{
- ACE_Logging_Strategy* logging_strategy = ACE_Dynamic_Service<ACE_Logging_Strategy>::instance ("Logging_Strategy");
+ ACE_Logging_Strategy* logging_strategy =
+ ACE_Dynamic_Service<ACE_Logging_Strategy>::instance ("Logging_Strategy");
if (logging_strategy == 0)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)logging_strategy == 0\n")));
- }
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) logging_strategy == 0\n")));
+ }
else
- {
+ {
if (this->activate (THR_NEW_LWP | THR_JOINABLE, 1) == -1)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t)can not activate the ")
- ACE_TEXT ("logging event thread\n")));
- }
+ {
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("(%P|%t) Can not activate the ")
+ ACE_TEXT ("logging event thread\n")));
+ }
+ }
else {
if (this->ns_->logging_interval_ > ACE_Time_Value::zero)
{
- ACE_Time_Value delay;
- if (this->ns_->orb_->orb_core()->reactor()->
- schedule_timer (logging_strategy, 0, delay,
- this->ns_->logging_interval_) == -1)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT("(%P|%t)failed to schedule ")
- ACE_TEXT("logging switch timer\n")));
- }
+ timer_id_ = this->ns_->orb_->orb_core()->reactor()->
+ schedule_timer (logging_strategy, 0, this->ns_->logging_interval_,
+ this->ns_->logging_interval_);
+ if (timer_id_ == -1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("(%P|%t) Failed to schedule ")
+ ACE_TEXT("logging switch timer\n")));
+ }
}
}
-
- }
+ }
}
-
-int
+int
LoggingWorker::svc (void)
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t)Running logging reactor \n")));
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t)Running logging reactor \n")));
+ }
started_ = true;
this->logging_reactor_.run_event_loop();
@@ -556,8 +677,15 @@ LoggingWorker::end ()
if (started_)
{
this->logging_reactor_.end_event_loop();
- this->thr_mgr ()->wait ();
+ this->wait ();
}
+
+ if (timer_id_ != -1)
+ {
+ this->ns_->orb_->orb_core()->reactor()->
+ cancel_timer (timer_id_);
+ timer_id_ = -1;
+ }
}
Worker::Worker (void)
@@ -586,24 +714,42 @@ Worker::svc (void)
int priority;
if (ACE_Thread::getprio (current, priority) == -1)
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) - Failed to get ")
- ACE_TEXT ("Worker thread priority\n")));
+ if (TAO_debug_level > 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("TAO (%P|%t) - Failed to get ")
+ ACE_TEXT ("Worker thread priority\n")));
+ }
return -1;
}
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Activated Worker Thread to run ")
- ACE_TEXT ("the ORB @ priority:%d\n", priority));
+ if (TAO_debug_level > 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Activated Worker Thread to run ")
+ ACE_TEXT ("the ORB @ priority:%d\n", priority));
+ }
#endif
try
{
- this->orb_->run ();
-
+ if (!CORBA::is_nil (this->orb_.in ()))
+ {
+ this->orb_->run ();
+ }
}
catch (const CORBA::Exception&)
{
}
return 0;
}
+
+ACE_STATIC_SVC_DEFINE (TAO_Notify_Service_Driver,
+ ACE_TEXT ("TAO_Notify_Service_Driver"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (TAO_Notify_Service_Driver),
+ ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
+ 0)
+
+
+ACE_FACTORY_DEFINE (TAO_Notify_Service, TAO_Notify_Service_Driver)
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Service.h b/TAO/orbsvcs/Notify_Service/Notify_Service.h
index 2feb23b3204..156f718a5a2 100644
--- a/TAO/orbsvcs/Notify_Service/Notify_Service.h
+++ b/TAO/orbsvcs/Notify_Service/Notify_Service.h
@@ -21,9 +21,11 @@
#include "tao/PortableServer/PortableServer.h"
#include "orbsvcs/CosNotifyChannelAdminC.h"
#include "orbsvcs/CosNamingC.h"
-#include "../orbsvcs/Notify/CosNotify_Initializer.h"
+#include "orbsvcs/Notify/CosNotify_Initializer.h"
#include "ace/SString.h"
#include "ace/Reactor.h"
+#include "ace/Service_Object.h"
+#include "Notify_Service_Export.h"
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
class TAO_Notify_Service;
@@ -35,15 +37,15 @@ class TAO_Notify_Service_Driver;
class LoggingWorker : public ACE_Task_Base
{
public:
- LoggingWorker (TAO_Notify_Service_Driver* ns);
- virtual int svc (void);
- void start ();
- void end ();
- private:
-
- ACE_Reactor logging_reactor_;
- TAO_Notify_Service_Driver* ns_;
- bool started_;
+ LoggingWorker (TAO_Notify_Service_Driver* ns);
+ virtual int svc (void);
+ void start ();
+ void end ();
+ private:
+ ACE_Reactor logging_reactor_;
+ TAO_Notify_Service_Driver* ns_;
+ bool started_;
+ long timer_id_;
};
/**
@@ -76,9 +78,8 @@ private:
*
* Implementation of the Notification Service front end.
*/
-class TAO_Notify_Service_Driver
+class TAO_Notify_Service_Export TAO_Notify_Service_Driver : public ACE_Service_Object
{
-
friend class LoggingWorker;
public:
@@ -91,7 +92,7 @@ class TAO_Notify_Service_Driver
/// Initializes the Service.
/// Returns 0 on success, -1 on error.
- int init (int argc, ACE_TCHAR *argv[]);
+ virtual int init (int argc, ACE_TCHAR *argv[]);
/// run the Service.
/// Returns 0 on success, -1 on error.
@@ -99,7 +100,7 @@ class TAO_Notify_Service_Driver
/// Shutdown the Service.
/// Returns 0 on success, -1 on error.
- void shutdown (void);
+ virtual int fini (void);
protected:
/// initialize the ORB.
@@ -117,7 +118,7 @@ protected:
int resolve_naming_service (void);
/// Parses the command line arguments.
- int parse_args (int& argc, ACE_TCHAR *argv []);
+ int parse_args (int argc, ACE_TCHAR *argv []);
// = Data members
@@ -127,14 +128,14 @@ protected:
/// true: register itself with the name service
bool use_name_svc_;
- /// File where the IOR of the server object is stored.
- FILE *ior_output_file_;
+ /// File name where the IOR of the server object is stored.
+ const ACE_TCHAR *ior_output_file_name_;
/// The Factory name.
ACE_CString notify_factory_name_;
- /// The Factory name.
- ACE_CString notify_channel_name_;
+ /// The event channel names.
+ ACE_Unbounded_Set <ACE_CString> notify_channel_name_;
/// true: create an event channel and registers it with the Naming Service
/// with the name <notify_channel_name_>
@@ -146,7 +147,7 @@ protected:
/// The ORB that we use.
CORBA::ORB_var orb_;
- /// separate dispatching orb if needed.
+ /// Separate dispatching orb if needed.
CORBA::ORB_var dispatching_orb_;
/// Reference to the root poa.
@@ -167,11 +168,23 @@ protected:
/// The relative round-trip timeout
suseconds_t timeout_;
+ /// Logging interval
ACE_Time_Value logging_interval_;
+
+ /// Logging worker
LoggingWorker logging_worker_;
+
+ /// Shutdown the ORB?
+ bool shutdown_orb_;
+
+ /// Shutdown the dispatching ORB?
+ bool shutdown_dispatching_orb_;
};
TAO_END_VERSIONED_NAMESPACE_DECL
+ACE_STATIC_SVC_DECLARE (TAO_Notify_Service_Driver)
+ACE_FACTORY_DECLARE (TAO_Notify_Service, TAO_Notify_Service_Driver)
+
#include /**/ "ace/post.h"
#endif /* NOTIFY_SERVICE_H */
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Service.mpc b/TAO/orbsvcs/Notify_Service/Notify_Service.mpc
index 8a2fed924a9..9a7cb41bfeb 100644
--- a/TAO/orbsvcs/Notify_Service/Notify_Service.mpc
+++ b/TAO/orbsvcs/Notify_Service/Notify_Service.mpc
@@ -1,28 +1,34 @@
// -*- MPC -*-
// $Id$
-project : valuetype, orbsvcsexe, install, notification_serv, naming, iortable, messaging_optional {
- exename = Notify_Service
+project(TAO_Notify_Service) : orbsvcslib, orbsvcs_output, install, valuetype, orbsvcsexe, install, notification_serv, naming, iortable, messaging_optional {
+ sharedname = TAO_Notify_Service
+ dynamicflags = TAO_NOTIFY_SERVICE_BUILD_DLL
Source_Files {
- Notify_Server.cpp
Notify_Service.cpp
}
Header_Files {
Notify_Service.h
+ Notify_Service_Export.h
+ }
+}
+
+project(Notify_Service) : orbsvcsexe, install, tao_notify_service {
+ exename = Notify_Service
+ Source_Files {
+ Notify_Server.cpp
}
}
-project(NT_Notify_Service) : valuetype, orbsvcsexe, install, notification_serv, naming, iortable, messaging_optional {
+project(NT_Notify_Service) : orbsvcsexe, install, tao_notify_service {
avoids += ace_for_tao
requires += winnt
exename = NT_Notify_Service
Source_Files {
- Notify_Service.cpp
NT_Notify_Server.cpp
NT_Notify_Service.cpp
}
Header_Files {
- Notify_Service.h
NT_Notify_Service.h
}
}
diff --git a/TAO/orbsvcs/Notify_Service/Notify_Service_Export.h b/TAO/orbsvcs/Notify_Service/Notify_Service_Export.h
new file mode 100644
index 00000000000..006cd9112c9
--- /dev/null
+++ b/TAO/orbsvcs/Notify_Service/Notify_Service_Export.h
@@ -0,0 +1,40 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl
+// ------------------------------
+#ifndef TAO_NOTIFY_SERVICE_EXPORT_H
+#define TAO_NOTIFY_SERVICE_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (TAO_AS_STATIC_LIBS)
+# if !defined (TAO_NOTIFY_SERVICE_HAS_DLL)
+# define TAO_NOTIFY_SERVICE_HAS_DLL 0
+# endif /* ! TAO_NOTIFY_SERVICE_HAS_DLL */
+#else
+# if !defined (TAO_NOTIFY_SERVICE_HAS_DLL)
+# define TAO_NOTIFY_SERVICE_HAS_DLL 1
+# endif /* ! TAO_NOTIFY_SERVICE_HAS_DLL */
+#endif
+
+#if defined (TAO_NOTIFY_SERVICE_HAS_DLL) && (TAO_NOTIFY_SERVICE_HAS_DLL == 1)
+# if defined (TAO_NOTIFY_SERVICE_BUILD_DLL)
+# define TAO_Notify_Service_Export ACE_Proper_Export_Flag
+# define TAO_NOTIFY_SERVICE_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define TAO_NOTIFY_SERVICE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* TAO_NOTIFY_SERVICE_BUILD_DLL */
+# define TAO_Notify_Service_Export ACE_Proper_Import_Flag
+# define TAO_NOTIFY_SERVICE_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define TAO_NOTIFY_SERVICE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* TAO_NOTIFY_SERVICE_BUILD_DLL */
+#else /* TAO_NOTIFY_SERVICE_HAS_DLL == 1 */
+# define TAO_Notify_Service_Export
+# define TAO_NOTIFY_SERVICE_SINGLETON_DECLARATION(T)
+# define TAO_NOTIFY_SERVICE_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* TAO_NOTIFY_SERVICE_HAS_DLL == 1 */
+
+#endif /* TAO_NOTIFY_SERVICE_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/orbsvcs/Notify_Service/README b/TAO/orbsvcs/Notify_Service/README
index ddaf3a38801..bf5387008f2 100644
--- a/TAO/orbsvcs/Notify_Service/README
+++ b/TAO/orbsvcs/Notify_Service/README
@@ -40,26 +40,40 @@ Command line arguments:
"-Channel" : If this option is specified, a EventChannel is
created and registered with the Naming Service.
- This option is disabled by default.
+ This option is disabled by default. This option can
+ be specified multiple times, each option will result
+ in a created and registered EventChannel
+
"-ChannelName channel_name" : Specifies the <channel_name> to register with the
Naming Service.
The default is "NotifyEventChannel".
-"-ORBRunThreads nthreads" : Number of threads to run the
- ORB::run method.
+"-RunThreads nthreads" : Number of threads to run the
+ ORB::run method.
"-UseSeparateDispatchingORB 1|0"
: Indicates whether the service should create and
and use a separate ORB dedicated to dispatching of
events.
+"-ShutdownORB 1|0" : Indicates that we have to shutdown the default ORB,
+ 1 by default
+
+"-ShutdownDispatchingORB 1|0" : Indicates that we have to shutdown the
+ dispatching ORB, 1 by default
+
"-Timeout msec" : Applies a relative round-trip timeout of msec microseconds
to the main ORB and, if -UseSeparateDispatchingORB 1 is
specified, to the dispatching ORB. This requires the
'corba_messaging' MPC feature during building of the
Notify_Service, which is on by default.
+"-LoggingInterval seconds" : Sets up a logging interval timer for the ORB's
+ reactor. This is required to use the ACE
+ Logging Service features such as file sizing
+ and rotation. See the example below.
+
!! The -Notify_TPReactor option is deprecated!! use the -ORBRunThreads
option instead.
@@ -75,7 +89,7 @@ on this.
Running the Service:
-------------------
-1. Start the Naming Service from
+1. Start the Naming Service from
$TAO_ROOT/orbsvcs/Naming_Service/Naming_Service -m 1
@@ -86,10 +100,10 @@ if you are using the "-NameSvc" options.
Note:
====
- By default, the Naming Service disables multicast discovery.
+ By default, the Naming Service disables multicast discovery.
The "-m 1" option enables the Naming Service to be resolved via
- multicast.
-
+ multicast.
+
If you do not wish to do this, then use the
-ORBInitRef option in which case the Naming Service should be started
as:
@@ -119,33 +133,58 @@ Note that the client uses:
resolve_initial_references ("NotifyEventChannelFactory");
to obtain the object reference.
-The svc.conf options:
-----------------------
+Using the ACE Logging Service:
+------------------------------
-The "TAO_CosNotify_Service" service object accepts the following options:
+Start the Notify_Service executable with the debug options desired and
+the -LoggingInterval option:
+
+./Notify_Service -ORBDebugLevel 10 -ORBVerboseLogging 1 -ORBSvcConf ns.conf -LoggingInterval 5
-"-DispatchingThreads [thread_count]" : Enables MT dispatching with the specified number
- of threads.
+Configure the logging service in the ns.conf file:
+dynamic Logging_Strategy Service_Object * ACE:_make_ACE_Logging_Strategy() "-s NS -f OSTREAM -t 0 "
-"-ListenerThreads" : How many threads for listener filter evaluation.
-"-AsynchUpdates" : Send subscription and
- publication updates
- asynchronously.
-"-AllocateTaskperProxy" : Allocate worker tasks per
- proxy
+The svc.conf options:
+----------------------
+
+The "TAO_CosNotify_Service" service object accepts the following options:
+
+"-AllocateTaskperProxy" : Allocate worker tasks per proxy
*see footnote below for explanation*
+
"-AllowReconnect" : Allows consumers and suppliers to
reconnect to existing proxies.
+"-AsynchUpdates" : Send subscription and publication
+ updates asynchronously.
+
+"-DefaultConsumerAdminFilterOp [op]" : Sets the default consumer admin filter
+ operator. op can be either "OR" or
+ "AND". The default is "OR" to be
+ consistent with older releases of TAO.
+
+"-DefaultSupplierAdminFilterOp [op]" : Sets the default supplier admin filter
+ operator. op can be either "OR" or
+ "AND". The default is "OR" to be
+ consistent with older releases of TAO.
+
+"-DispatchingThreads [thread_count]" : Enables MT dispatching with the
+ specified number of threads. This
+ option supercedes the deprecated
+ ListenerThreads, MTListenerEval and
+ MTDispatching options. Note that
+ "AllocateTaskperProxy" affects how this
+ value is applied.
+
"-NoUpdates" : Globally disables subscription and
publication updates.
"-ValidateClient" : Creates a thread that periodically
walks the topology tree visiting each
- proxy and checking the liviness of
- the peer. A peer which had ordinary
+ proxy and checking the liviness of
+ the peer. A peer which had ordinary
activity within the validation time
period is considered alive. Otherwise
the peer's _non_existent() operation
@@ -162,17 +201,18 @@ The "TAO_CosNotify_Service" service object accepts the following options:
has to repopulate its topology from a
persistent store, which takes time.
-"-ValidateClientInterval [sec]" : Specifies how frequently after the
+"-ValidateClientInterval [sec]" : Specifies how frequently after the
first pass to revisit the topology
- to further validate clients. The
- default value of 0 means validation
+ to further validate clients. The
+ default value of 0 means validation
will only happen once.
-"-DefaultConsumerAdminFilterOp [op]" : Sets the default consumer admin filter
- operator [OR|AND]. Default is AND.
-
-"-DefaultSupplierAdminFilterOp [op]" : Sets the default supplier admin filter
- operator [OR|AND]. Default is AND.
+"-SourceThreads [thread_count]" : Specifies the number of threads for each
+ supplier admin or proxy consumer. See
+ the note below for details about thread
+ assignments. This option supercedes the
+ deprecated LookupThreads, MTSourceEval,
+ and MTLookup options.
All other options are deprecated and should not be used.
@@ -185,20 +225,19 @@ This means that we want to enable event dispatching with 2 threads.
What does the "-AllocateTaskperProxy" option do?
A Task here implies a thread pool that performs a fixed work in the
-Notify.
-e.g. When you specify "DispatchingThreads 1".
-It means that there is 1 thread to perform the event dispatching to
-consumers IRRESPECTIVE OF THE NUMBER OF PROXYSUPPLIERS. It also means that
-events destined for each consumer will be queued to a buffer for that consumer.
-Therefore, you can also think of this option as Enable Consumer-side Buffering
-of Events.
+Notify Service. e.g. When you specify "-DispatchingThreads 1" this
+means there is 1 thread to perform the event dispatching to consumers
+IRRESPECTIVE OF THE NUMBER OF PROXY SUPPLIERS. It also means that
+events destined for each consumer will be queued to a buffer for that
+consumer. Therefore, you can also think of this option as Enable
+Consumer-side Buffering of Events.
This is the default case.
When you specify "-AllocateTaskperProxy" it asks notify to create a
-dispatching task (with the specified thread pool size) PER
-PROXYSUPPLIER. So if you use this option and connect 50 consumers with
-1 thread for the dispatching task you will have created 50 dispatching
+dispatching task with the specified thread pool size PER PROXY
+SUPPLIER. So if you use this option and connect 50 consumers with 1
+thread for the dispatching task you will have created 50 dispatching
threads! so use this option with care and you might not need it in
most cases.
@@ -209,10 +248,11 @@ and how much thread resources are deployed. e.g. a channel could have
quantities. A dedicated thread pool to this proxy will ensure better
throughput to it's consumers. (Eventually I want to be able to set the
thread pool size via a QoS property)
-Similarly "-ListenerThreads 2" specifies a thread pool for use by
-the supplier-side processing. This enables Buffering on the Supplier-side, with
-the thread pool being used to process supplier side filters and push the
-events to the Consumer side.
+
+Similarly "-SourceThreads 2" specifies a thread pool for use by the
+supplier-side processing. This enables Buffering on the Supplier-side,
+with the thread pool being used to process supplier side filters and
+push the events to the Consumer side.
How to use the NT_Notify_Service
================================
diff --git a/TAO/orbsvcs/examples/Notify/MC/monitor/monitor.cpp b/TAO/orbsvcs/examples/Notify/MC/monitor/monitor.cpp
index 8e3d04c526d..1c9d77bd985 100644
--- a/TAO/orbsvcs/examples/Notify/MC/monitor/monitor.cpp
+++ b/TAO/orbsvcs/examples/Notify/MC/monitor/monitor.cpp
@@ -267,7 +267,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[])
{
ACE_DEBUG ((LM_DEBUG,
"Last: %g Average: %g\n",
- data->data_union.num().dlist[0],
+ data->data_union.num().dlist[0].value,
data->data_union.num().average));
}
else
diff --git a/TAO/orbsvcs/orbsvcs/AV.rc b/TAO/orbsvcs/orbsvcs/AV.rc
index f781e232026..b413f84efb4 100644
--- a/TAO/orbsvcs/orbsvcs/AV.rc
+++ b/TAO/orbsvcs/orbsvcs/AV.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp
index f3a59934841..5fa36386788 100644
--- a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp
+++ b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp
@@ -4108,7 +4108,7 @@ TAO_FlowEndPoint::go_to_listen_i (TAO_FlowSpec_Entry::Role role,
break;
}
AVStreams::protocolSpec my_protocol_spec, peer_protocol_spec;
- AVStreams::protocolSpec *temp_protocols;
+ AVStreams::protocolSpec *temp_protocols = 0;
CORBA::Any_var AvailableProtocols_ptr =
peer_fep->get_property_value ("AvailableProtocols");
AvailableProtocols_ptr.in () >>= temp_protocols;
diff --git a/TAO/orbsvcs/orbsvcs/CosConcurrency.rc b/TAO/orbsvcs/orbsvcs/CosConcurrency.rc
index f331603d81c..6acef854715 100644
--- a/TAO/orbsvcs/orbsvcs/CosConcurrency.rc
+++ b/TAO/orbsvcs/orbsvcs/CosConcurrency.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosEvent.rc b/TAO/orbsvcs/orbsvcs/CosEvent.rc
index ca6c862fa4e..d6cc9b8e7eb 100644
--- a/TAO/orbsvcs/orbsvcs/CosEvent.rc
+++ b/TAO/orbsvcs/orbsvcs/CosEvent.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.cpp b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.cpp
index 96a058330cc..cd72ac42037 100644
--- a/TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.cpp
+++ b/TAO/orbsvcs/orbsvcs/CosEvent/CEC_DynamicImplementation.cpp
@@ -95,7 +95,7 @@ TAO_CEC_DynamicImplementationServer::is_a (CORBA::ServerRequest_ptr request)
CORBA::NamedValue_ptr nv = list->item (0);
CORBA::Any_ptr ap = nv->value ();
- const char *value;
+ const char *value = 0;
*ap >>= value;
if (TAO_debug_level >= 10)
diff --git a/TAO/orbsvcs/orbsvcs/CosEvent_Serv.rc b/TAO/orbsvcs/orbsvcs/CosEvent_Serv.rc
index 3acf53a2b6a..1f0c9f20bfd 100644
--- a/TAO/orbsvcs/orbsvcs/CosEvent_Serv.rc
+++ b/TAO/orbsvcs/orbsvcs/CosEvent_Serv.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosEvent_Skel.rc b/TAO/orbsvcs/orbsvcs/CosEvent_Skel.rc
index 96c8513c4d2..9b946c02901 100644
--- a/TAO/orbsvcs/orbsvcs/CosEvent_Skel.rc
+++ b/TAO/orbsvcs/orbsvcs/CosEvent_Skel.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosLifeCycle.rc b/TAO/orbsvcs/orbsvcs/CosLifeCycle.rc
index abcd96fbf8b..b473dd1fb42 100644
--- a/TAO/orbsvcs/orbsvcs/CosLifeCycle.rc
+++ b/TAO/orbsvcs/orbsvcs/CosLifeCycle.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosLoadBalancing.rc b/TAO/orbsvcs/orbsvcs/CosLoadBalancing.rc
index 95b44fda7f1..e74743f1da6 100644
--- a/TAO/orbsvcs/orbsvcs/CosLoadBalancing.rc
+++ b/TAO/orbsvcs/orbsvcs/CosLoadBalancing.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosNaming.rc b/TAO/orbsvcs/orbsvcs/CosNaming.rc
index f588ff31b1b..14bb96966a1 100644
--- a/TAO/orbsvcs/orbsvcs/CosNaming.rc
+++ b/TAO/orbsvcs/orbsvcs/CosNaming.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosNaming_Serv.rc b/TAO/orbsvcs/orbsvcs/CosNaming_Serv.rc
index 8a78d7cceae..c220c974a61 100644
--- a/TAO/orbsvcs/orbsvcs/CosNaming_Serv.rc
+++ b/TAO/orbsvcs/orbsvcs/CosNaming_Serv.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosNaming_Skel.rc b/TAO/orbsvcs/orbsvcs/CosNaming_Skel.rc
index 4e11b908403..0dced68a41a 100644
--- a/TAO/orbsvcs/orbsvcs/CosNaming_Skel.rc
+++ b/TAO/orbsvcs/orbsvcs/CosNaming_Skel.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosNotification.rc b/TAO/orbsvcs/orbsvcs/CosNotification.rc
index f39d9fe9699..b7262c7fa0f 100644
--- a/TAO/orbsvcs/orbsvcs/CosNotification.rc
+++ b/TAO/orbsvcs/orbsvcs/CosNotification.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosNotification_Serv.rc b/TAO/orbsvcs/orbsvcs/CosNotification_Serv.rc
index c261ee4d0e9..8971fba2147 100644
--- a/TAO/orbsvcs/orbsvcs/CosNotification_Serv.rc
+++ b/TAO/orbsvcs/orbsvcs/CosNotification_Serv.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosNotification_Skel.rc b/TAO/orbsvcs/orbsvcs/CosNotification_Skel.rc
index 534ac2e6d2c..2a3f233965d 100644
--- a/TAO/orbsvcs/orbsvcs/CosNotification_Skel.rc
+++ b/TAO/orbsvcs/orbsvcs/CosNotification_Skel.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosProperty.rc b/TAO/orbsvcs/orbsvcs/CosProperty.rc
index 7ac83c90c20..21632396cf2 100644
--- a/TAO/orbsvcs/orbsvcs/CosProperty.rc
+++ b/TAO/orbsvcs/orbsvcs/CosProperty.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosTime.rc b/TAO/orbsvcs/orbsvcs/CosTime.rc
index 98a8443e7c0..41976094fee 100644
--- a/TAO/orbsvcs/orbsvcs/CosTime.rc
+++ b/TAO/orbsvcs/orbsvcs/CosTime.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosTrading.rc b/TAO/orbsvcs/orbsvcs/CosTrading.rc
index 4c97fd47c18..9423877548d 100644
--- a/TAO/orbsvcs/orbsvcs/CosTrading.rc
+++ b/TAO/orbsvcs/orbsvcs/CosTrading.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosTrading_Serv.rc b/TAO/orbsvcs/orbsvcs/CosTrading_Serv.rc
index f079fe2686c..1aab60f77fc 100644
--- a/TAO/orbsvcs/orbsvcs/CosTrading_Serv.rc
+++ b/TAO/orbsvcs/orbsvcs/CosTrading_Serv.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/CosTrading_Skel.rc b/TAO/orbsvcs/orbsvcs/CosTrading_Skel.rc
index 587858c0034..5f88c354a8c 100644
--- a/TAO/orbsvcs/orbsvcs/CosTrading_Skel.rc
+++ b/TAO/orbsvcs/orbsvcs/CosTrading_Skel.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/DsEventLogAdmin.rc b/TAO/orbsvcs/orbsvcs/DsEventLogAdmin.rc
index 0fec7155d31..6683761ad72 100644
--- a/TAO/orbsvcs/orbsvcs/DsEventLogAdmin.rc
+++ b/TAO/orbsvcs/orbsvcs/DsEventLogAdmin.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/DsLogAdmin.rc b/TAO/orbsvcs/orbsvcs/DsLogAdmin.rc
index d9c4397bc94..e767de71e2f 100644
--- a/TAO/orbsvcs/orbsvcs/DsLogAdmin.rc
+++ b/TAO/orbsvcs/orbsvcs/DsLogAdmin.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.rc b/TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.rc
index 52b474bacc0..346113d6e32 100644
--- a/TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.rc
+++ b/TAO/orbsvcs/orbsvcs/DsNotifyLogAdmin.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp b/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp
index 148695aad77..5933ad66272 100644
--- a/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp
@@ -248,19 +248,19 @@ TAO_ECG_Mcast_EH::add_new_subscriptions (Address_Set& multicast_addresses)
if (socket->open (new_subscription.mcast_addr, this->net_if_, 1) == -1) {
ACE_ERROR ((LM_ERROR,
"Error: %d - Unable to open multicast socket\n",
- errno ));
+ ACE_ERRNO_GET));
}
if ( socket->enable (ACE_NONBLOCK) != 0 ) {
ACE_ERROR ((LM_ERROR,
"Error: %d - Unable to enable nonblocking on mcast_eh\n",
- errno ));
+ ACE_ERRNO_GET));
}
if (socket->join (new_subscription.mcast_addr, 1, this->net_if_) == -1) {
ACE_ERROR ((LM_ERROR,
"Error: %d - Unable to join multicast group\n",
- errno ));
+ ACE_ERRNO_GET));
}
if (this->recvbuf_size_ != 0
@@ -272,7 +272,7 @@ TAO_ECG_Mcast_EH::add_new_subscriptions (Address_Set& multicast_addresses)
{
ACE_ERROR ((LM_ERROR,
"Error: %d - Unable to set mcast_eh recvbuf_size:%d\n",
- errno,
+ ACE_ERRNO_GET,
this->recvbuf_size_));
}
(void) this->reactor ()->register_handler (
diff --git a/TAO/orbsvcs/orbsvcs/FaultTolerance.rc b/TAO/orbsvcs/orbsvcs/FaultTolerance.rc
index afd9bd8826b..9ae406b172f 100644
--- a/TAO/orbsvcs/orbsvcs/FaultTolerance.rc
+++ b/TAO/orbsvcs/orbsvcs/FaultTolerance.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp
index 846388ea8d8..7512098d5fe 100644
--- a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp
+++ b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp
@@ -260,7 +260,7 @@ namespace TAO
if (!(ocdr << gtc.object_group_ref_version))
return;
- CORBA::ULong length =
+ CORBA::ULong const length =
static_cast<CORBA::ULong> (ocdr.total_length ());
sc.context_data.length (length);
CORBA::Octet *buf = sc.context_data.get_buffer ();
@@ -274,8 +274,7 @@ namespace TAO
}
}
// Add this context to the service context list.
- ri->add_request_service_context (sc,
- 0);
+ ri->add_request_service_context (sc, 0);
}
catch (const CORBA::Exception&)
@@ -350,8 +349,7 @@ namespace TAO
}
// Add this context to the service context list.
- ri->add_request_service_context (sc,
- 0);
+ ri->add_request_service_context (sc, 0);
}
catch (const CORBA::Exception&)
{
diff --git a/TAO/orbsvcs/orbsvcs/IFRService.rc b/TAO/orbsvcs/orbsvcs/IFRService.rc
index fd74244fa4f..859f6e1bce8 100644
--- a/TAO/orbsvcs/orbsvcs/IFRService.rc
+++ b/TAO/orbsvcs/orbsvcs/IFRService.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp b/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp
index 8817ed8f766..0129e09dada 100644
--- a/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp
+++ b/TAO/orbsvcs/orbsvcs/IFRService/IFR_Service_Utils_T.cpp
@@ -344,7 +344,7 @@ TAO_Port_Utils<T>::create_entry (const char *id,
return T::_narrow (obj.in ());
}
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x610)
+#if defined (__BORLANDC__) && (__BORLANDC__ < 0x620)
// Borland gives warnings about argument not used on the construct as used
// for the other compilers. This has been reported to Borland, adding
// a workaround to suppress these warnings so that the real important ones
diff --git a/TAO/orbsvcs/orbsvcs/Naming/Flat_File_Persistence.cpp b/TAO/orbsvcs/orbsvcs/Naming/Flat_File_Persistence.cpp
index 90433a8c1d3..072951cd015 100644
--- a/TAO/orbsvcs/orbsvcs/Naming/Flat_File_Persistence.cpp
+++ b/TAO/orbsvcs/orbsvcs/Naming/Flat_File_Persistence.cpp
@@ -73,7 +73,7 @@ TAO_NS_FlatFileStream::open()
ACE_ERROR_RETURN ((LM_ERROR,
"Cannot open file %s for mode %s: (%d) %s\n",
file_.c_str(), mode_.c_str(),
- errno, ACE_OS::strerror(errno)),
+ ACE_ERRNO_GET, ACE_OS::strerror(ACE_ERRNO_GET)),
-1);
#endif
this->fl_ = ACE_OS::fdopen(filelock_.handle_, ACE_TEXT_CHAR_TO_TCHAR(fdmode));
@@ -81,7 +81,7 @@ TAO_NS_FlatFileStream::open()
ACE_ERROR_RETURN ((LM_ERROR,
"Cannot fdopen file %s for mode %s: (%d) %s\n",
file_.c_str(), mode_.c_str(),
- errno, ACE_OS::strerror(errno)),
+ ACE_ERRNO_GET, ACE_OS::strerror(ACE_ERRNO_GET)),
-1);
return 0;
}
diff --git a/TAO/orbsvcs/orbsvcs/Naming/Hash_Naming_Context.cpp b/TAO/orbsvcs/orbsvcs/Naming/Hash_Naming_Context.cpp
index d8923ac5739..2e143e47c8a 100644
--- a/TAO/orbsvcs/orbsvcs/Naming/Hash_Naming_Context.cpp
+++ b/TAO/orbsvcs/orbsvcs/Naming/Hash_Naming_Context.cpp
@@ -81,7 +81,7 @@ TAO_Hash_Naming_Context::get_context (const CosNaming::Name &name)
{
// Add the last component of the name, which was stripped before
// the call to resolve.
- CORBA::ULong rest_len = ex.rest_of_name.length () + 1;
+ CORBA::ULong const rest_len = ex.rest_of_name.length () + 1;
ex.rest_of_name.length (rest_len);
ex.rest_of_name[rest_len - 1] = name[name_len - 1];
diff --git a/TAO/orbsvcs/orbsvcs/Naming/Naming_Server.cpp b/TAO/orbsvcs/orbsvcs/Naming/Naming_Server.cpp
index 0535a464323..63e30ed714a 100644
--- a/TAO/orbsvcs/orbsvcs/Naming/Naming_Server.cpp
+++ b/TAO/orbsvcs/orbsvcs/Naming/Naming_Server.cpp
@@ -431,7 +431,7 @@ TAO_Naming_Server::init_with_orb (int argc,
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT("Unable to open %s for writing:(%u) %p\n"),
this->ior_file_name_,
- errno,
+ ACE_ERRNO_GET,
ACE_TEXT("TAO_Naming_Server::init_with_orb")),
-1);
}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp b/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp
index e222b02d216..8f979d25bb0 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Buffering_Strategy.cpp
@@ -165,6 +165,12 @@ TAO_Notify_Buffering_Strategy::enqueue (TAO_Notify_Method_Request_Queueable* met
local_not_empty_.signal ();
}
+ else
+ {
+ ACE_DEBUG((LM_DEBUG,
+ "Notify (%P|%t) - Panic! did not attempt to enqueue event\n"));
+ return -1;
+ }
size_t count = this->msg_queue_.message_count ();
if (this->tracker_ != 0)
diff --git a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp
index 261d117eee3..d7477c9b8a1 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/CosNotify_Service.cpp
@@ -388,9 +388,9 @@ TAO_CosNotify_Service::finalize_service (
TAO_Notify_EventChannelFactory* necf =
dynamic_cast<TAO_Notify_EventChannelFactory*> (ecf->_servant ());
+
if (necf != 0)
necf->stop_validator();
-
}
void
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp
index f49d421f8da..a1d68620aea 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ETCL_Filter.cpp
@@ -27,7 +27,7 @@ TAO_Notify_Constraint_Expr::~TAO_Notify_Constraint_Expr ()
}
-void
+void
TAO_Notify_Constraint_Expr::save_persistent (
TAO_Notify::Topology_Saver& saver)
{
@@ -46,7 +46,7 @@ TAO_Notify_Constraint_Expr::save_persistent (
}
-void
+void
TAO_Notify_Constraint_Expr::load_attrs(
const TAO_Notify::NVPList& attrs)
{
@@ -62,7 +62,7 @@ TAO_Notify_Constraint_Expr::load_attrs(
TAO_Notify::Topology_Object*
TAO_Notify_Constraint_Expr::load_child (
const ACE_CString &type,
- CORBA::Long id,
+ CORBA::Long id,
const TAO_Notify::NVPList& attrs)
{
ACE_UNUSED_ARG (id);
@@ -75,7 +75,7 @@ TAO_Notify_Constraint_Expr::load_child (
attrs.find ("Type", type);
CORBA::ULong len = this->constr_expr.event_types.length ();
- if (DEBUG_LEVEL)
+ if (DEBUG_LEVEL)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) reload EventType %d \n"),
len + 1));
@@ -156,7 +156,7 @@ TAO_Notify_ETCL_Filter::add_constraint_i (CosNotifyFilter::ConstraintID cnstr_id
auto_ptr <TAO_Notify_Constraint_Expr> auto_expr (notify_constr_expr);
if (TAO_debug_level > 1)
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
ACE_TEXT("Added an empty constraint to filter\n")));
if (this->constraint_expr_list_.bind (cnstr_id, notify_constr_expr) == -1)
@@ -171,8 +171,7 @@ TAO_Notify_ETCL_Filter::add_constraint_i (CosNotifyFilter::ConstraintID cnstr_id
void
TAO_Notify_ETCL_Filter::add_constraint_i
(const CosNotifyFilter::ConstraintInfo& constraint,
- CosNotifyFilter::ConstraintID cnstr_id
- )
+ CosNotifyFilter::ConstraintID cnstr_id)
{
TAO_Notify_Constraint_Expr* notify_constr_expr = 0;
@@ -181,19 +180,18 @@ TAO_Notify_ETCL_Filter::add_constraint_i
CORBA::NO_MEMORY ());
auto_ptr <TAO_Notify_Constraint_Expr> auto_expr (notify_constr_expr);
- const CosNotifyFilter::ConstraintExp& expr =
+ CosNotifyFilter::ConstraintExp const & expr =
constraint.constraint_expression;
- notify_constr_expr->interpreter.
- build_tree (expr);
+ notify_constr_expr->interpreter.build_tree (expr);
notify_constr_expr->constr_expr = expr;
if (cnstr_id == 0)
{
if (TAO_debug_level > 1)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Added constraint %s to filter %d\n"),
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Added constraint %C to filter %d\n"),
expr.constraint_expr.in (), this->id_));
cnstr_id = ++constraint_expr_ids_;
@@ -201,8 +199,8 @@ TAO_Notify_ETCL_Filter::add_constraint_i
else
{
if (TAO_debug_level > 1)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Loaded constraint %s to filter %d\n"),
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Loaded constraint %C to filter %d\n"),
expr.constraint_expr.in (), this->id_));
}
@@ -220,10 +218,10 @@ TAO_Notify_ETCL_Filter::add_constraints (
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
CORBA::INTERNAL ());
- CORBA::ULong constraint_length = constraint_list.length ();
+ CORBA::ULong const constraint_length = constraint_list.length ();
if (TAO_debug_level > 0)
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("constraint_length = %d\n"),
constraint_length));
@@ -265,7 +263,7 @@ TAO_Notify_ETCL_Filter::modify_constraints (
CORBA::INTERNAL ());
// First check if all the ids are valid.
- u_int index;
+ CORBA::ULong index;
for (index = 0; index < del_list.length (); ++index)
{
@@ -355,7 +353,7 @@ TAO_Notify_ETCL_Filter::get_constraints (
TAO_Notify_Constraint_Expr *notify_constr_expr = 0;
- for (u_int index = 0; index < id_list.length (); ++index)
+ for (CORBA::ULong index = 0; index < id_list.length (); ++index)
{
if (this->constraint_expr_list_.find (id_list[index],
notify_constr_expr) == -1)
@@ -377,7 +375,8 @@ TAO_Notify_ETCL_Filter::get_all_constraints (void)
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
CORBA::INTERNAL ());
- CORBA::ULong current_size = static_cast<CORBA::ULong> (this->constraint_expr_list_.current_size ());
+ CORBA::ULong const current_size =
+ static_cast<CORBA::ULong> (this->constraint_expr_list_.current_size ());
// Create the list that goes out.
CosNotifyFilter::ConstraintInfoSeq *infoseq_ptr;
@@ -425,9 +424,7 @@ TAO_Notify_ETCL_Filter::remove_all_constraints_i (void)
CONSTRAINT_EXPR_LIST::ITERATOR iter (this->constraint_expr_list_);
CONSTRAINT_EXPR_LIST::ENTRY *entry;
- u_int index;
-
- for (index = 0; iter.done () == 0; iter.advance (), ++index)
+ for (CORBA::ULong index = 0; iter.done () == 0; iter.advance (), ++index)
{
if (iter.next (entry) != 0)
{
@@ -445,14 +442,14 @@ TAO_Notify_ETCL_Filter::destroy (void)
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
CORBA::INTERNAL ());
- if (CORBA::is_nil (this->poa_.in()))
- return;
-
- this->remove_all_constraints_i ();
+ if (!CORBA::is_nil (this->poa_.in()))
+ {
+ this->remove_all_constraints_i ();
- PortableServer::ObjectId_var refTemp = this->poa_->servant_to_id (this);
- this->poa_->deactivate_object (refTemp.in ());
- this->poa_ = PortableServer::POA::_nil();
+ PortableServer::ObjectId_var refTemp = this->poa_->servant_to_id (this);
+ this->poa_->deactivate_object (refTemp.in ());
+ this->poa_ = PortableServer::POA::_nil();
+ }
}
CORBA::Boolean
@@ -496,8 +493,7 @@ TAO_Notify_ETCL_Filter::match_structured (
CORBA::Boolean
TAO_Notify_ETCL_Filter::match_typed (
- const CosNotification::PropertySeq & /* filterable_data */
- )
+ const CosNotification::PropertySeq & /* filterable_data */)
{
throw CORBA::NO_IMPLEMENT ();
}
@@ -523,7 +519,7 @@ TAO_Notify_ETCL_Filter::get_callbacks (void)
}
-void
+void
TAO_Notify_ETCL_Filter::save_persistent (TAO_Notify::Topology_Saver& saver)
{
TAO_Notify::NVPList attrs;
@@ -543,10 +539,10 @@ TAO_Notify_ETCL_Filter::save_persistent (TAO_Notify::Topology_Saver& saver)
TAO_Notify::NVPList attrs;
bool changed = true;
attrs.push_back(TAO_Notify::NVP("ConstraintId", entry->ext_id_));
- attrs.push_back(TAO_Notify::NVP("Expression",
+ attrs.push_back(TAO_Notify::NVP("Expression",
entry->int_id_->constr_expr.constraint_expr.in ()));
saver.begin_object(0, "constraint", attrs, changed);
-
+
entry->int_id_->save_persistent (saver);
saver.end_object(0, "constraint");
@@ -583,10 +579,8 @@ TAO_Notify_ETCL_Filter::load_attrs(const TAO_Notify::NVPList& attrs)
TAO_Notify::Topology_Object*
TAO_Notify_ETCL_Filter::load_child (const ACE_CString &type,
- CORBA::Long id, const TAO_Notify::NVPList& attrs)
+ CORBA::Long, const TAO_Notify::NVPList& attrs)
{
- ACE_UNUSED_ARG (id);
-
TAO_Notify::Topology_Object* result = this;
if (type == "constraint")
{
@@ -596,12 +590,12 @@ TAO_Notify_ETCL_Filter::load_child (const ACE_CString &type,
TAO_Notify_Object::ID id = ACE_OS::atoi (value);
constraint_expr_ids_ = id;
- if (DEBUG_LEVEL)
+ if (DEBUG_LEVEL)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) reload filter %d constraint %d\n"),
static_cast<int> (this->id_), static_cast<int> (id)));
- TAO_Notify_Constraint_Expr* expr
+ TAO_Notify_Constraint_Expr* expr
= this->add_constraint_i (id);
expr->load_attrs (attrs);
diff --git a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp
index 30ce99ba192..daced62a97a 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/ETCL_FilterFactory.cpp
@@ -187,7 +187,7 @@ TAO_Notify_ETCL_FilterFactory::load_child (const ACE_CString &type,
const char* value = 0;
if (attrs.find ("FilterId", value))
{
- TAO_Notify_Object::ID id = ACE_OS::atoi (value);
+ TAO_Notify_Object::ID const id = ACE_OS::atoi (value);
if (DEBUG_LEVEL)
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) reload filter %d\n"),
@@ -245,8 +245,7 @@ TAO_Notify_ETCL_FilterFactory::get_filter (const TAO_Notify_Object::ID& id)
else
{
CORBA::Object_var obj =
- this->filter_poa_->servant_to_reference (filter
- );
+ this->filter_poa_->servant_to_reference (filter);
CosNotifyFilter::Filter_var filter
= CosNotifyFilter::Filter::_narrow (obj.in ());
diff --git a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp
index e615a5c588a..462aa969035 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/EventChannelFactory.cpp
@@ -515,7 +515,7 @@ TAO_Notify_EventChannelFactory::activate_self (void)
{
if (DEBUG_LEVEL > 9)
{
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) TAO_Notify_EventChannelFactory::activate_self") ));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) TAO_Notify_EventChannelFactory::activate_self\n") ));
}
this->reconnect ();
}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.inl b/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.inl
index d036dd2d16b..9f8ecb8fced 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/FilterAdmin.inl
@@ -16,7 +16,7 @@ TAO_Notify_FilterAdmin::match (const TAO_Notify_Event* event)
// We want to return true if atleast one constraint matches.
FILTER_LIST::ITERATOR iter (this->filter_list_);
- FILTER_LIST::ENTRY *entry;
+ FILTER_LIST::ENTRY *entry = 0;
CORBA::Boolean ret_val = 0;
for (; iter.next (entry); iter.advance ())
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp
index 3d9d66c1244..46c78c8cf82 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Dispatch.cpp
@@ -69,18 +69,18 @@ int TAO_Notify_Method_Request_Dispatch::execute_i (void)
if (this->filtering_ == 1)
{
TAO_Notify_Admin& parent = this->proxy_supplier_->consumer_admin ();
- CORBA::Boolean val = this->proxy_supplier_->check_filters (this->event_,
+ CORBA::Boolean const val = this->proxy_supplier_->check_filters (this->event_,
parent.filter_admin (),
parent.filter_operator ());
if (TAO_debug_level > 1)
- ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("Notify (%P|%t) Proxysupplier %x filter ")
- ACE_TEXT ("eval result = %d"),
+ ACE_TEXT ("eval result = %d\n"),
&this->proxy_supplier_ , val));
// Filter failed - do nothing.
- if (val == 0)
+ if (!val)
return 0;
}
@@ -243,7 +243,7 @@ TAO_Notify_Method_Request_Dispatch_No_Copy::execute (void)
TAO_Notify_Method_Request_Queueable*
TAO_Notify_Method_Request_Dispatch_No_Copy::copy (void)
{
- TAO_Notify_Method_Request_Queueable* request;
+ TAO_Notify_Method_Request_Queueable* request = 0;
TAO_Notify_Event::Ptr event_var (
this->event_->queueable_copy () );
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp
index 018949a94bf..fd33fd2fefe 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Method_Request_Lookup.cpp
@@ -70,10 +70,12 @@ int TAO_Notify_Method_Request_Lookup::execute_i (void)
parent.filter_operator ());
if (TAO_debug_level > 1)
- ACE_DEBUG ((LM_DEBUG, "Proxyconsumer %x filter eval result = %d",&this->proxy_consumer_ , val));
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Notify (%P|%t) Proxyconsumer %x filter ")
+ ACE_TEXT("eval result = %d\n"),
+ &this->proxy_consumer_ , val));
// Filter failed - do nothing.
- if (val == 0)
+ if (!val)
return 0;
// The map of subscriptions.
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp b/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp
index 9159392c8a2..579b773fec3 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/Notify_Constraint_Interpreter.cpp
@@ -21,8 +21,7 @@ TAO_Notify_Constraint_Interpreter::~TAO_Notify_Constraint_Interpreter (void)
void
TAO_Notify_Constraint_Interpreter::build_tree (
- const char *constraints
- )
+ const char *constraints)
{
if (ETCL_Interpreter::is_empty_string (constraints))
{
@@ -41,27 +40,25 @@ TAO_Notify_Constraint_Interpreter::build_tree (
}
}
-
void
TAO_Notify_Constraint_Interpreter::build_tree (
- const CosNotifyFilter::ConstraintExp& exp
- )
+ const CosNotifyFilter::ConstraintExp& exp)
{
ACE_CString exp_str;
ACE_CString et_exp;
- CORBA::ULong len = exp.event_types.length ();
+ CORBA::ULong const len = exp.event_types.length ();
bool has_et_exp = false;
for (CORBA::ULong ii = 0; ii < len; ++ii)
{
TAO_Notify_EventType et;
- bool d = et.domain_is_wildcard (exp.event_types [ii].domain_name.in ());
- bool t = et.type_is_wildcard (exp.event_types [ii].type_name.in ());
+ bool const d = et.domain_is_wildcard (exp.event_types [ii].domain_name.in ());
+ bool const t = et.type_is_wildcard (exp.event_types [ii].type_name.in ());
if (d && t)
- {
+ {
exp_str = "";
break;
}
@@ -83,7 +80,7 @@ TAO_Notify_Constraint_Interpreter::build_tree (
{
if (!d)
et_exp += " and ";
-
+
et_exp += "$type_name=='";
et_exp += exp.event_types [ii].type_name.in ();
et_exp += "'";
@@ -92,13 +89,15 @@ TAO_Notify_Constraint_Interpreter::build_tree (
et_exp += ")";
}
- bool valid_constraint = ! ETCL_Interpreter::is_empty_string (exp.constraint_expr.in ());
+ bool const valid_constraint = !ETCL_Interpreter::is_empty_string (exp.constraint_expr.in ());
if (has_et_exp && valid_constraint)
{
- exp_str = "(";
+ exp_str = "((";
exp_str += et_exp;
- exp_str += ")";
+ exp_str += ") and (";
+ exp_str += exp.constraint_expr.in ();
+ exp_str += "))";
}
else if (has_et_exp)
exp_str = et_exp;
@@ -106,14 +105,13 @@ TAO_Notify_Constraint_Interpreter::build_tree (
exp_str = exp.constraint_expr.in ();
if (TAO_debug_level > 0)
- {
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)Constraint: %C \n"),
- exp_str.c_str ()));
- }
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t) Constraint: %C\n"),
+ exp_str.c_str ()));
+ }
this->build_tree (exp_str.c_str ());
}
-
CORBA::Boolean
TAO_Notify_Constraint_Interpreter::evaluate (TAO_Notify_Constraint_Visitor &evaluator)
{
diff --git a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp b/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp
index a52eca64945..4a4f21f3595 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp
+++ b/TAO/orbsvcs/orbsvcs/Notify/POA_Helper.cpp
@@ -109,7 +109,7 @@ TAO_Notify_POA_Helper::create_i (
if (DEBUG_LEVEL > 0)
{
CORBA::String_var the_name = this->poa_->the_name ();
- ACE_DEBUG ((LM_DEBUG, "Created POA : %s\n", the_name.in ()));
+ ACE_DEBUG ((LM_DEBUG, "Created POA : %C\n", the_name.in ()));
}
/*
@@ -240,7 +240,7 @@ TAO_Notify_POA_Helper::servant_to_reference (
void
TAO_Notify_POA_Helper::destroy (void)
{
- poa_->destroy (1,0);
+ poa_->destroy (true, false);
// The <wait_for_completion> flag = 0
}
diff --git a/TAO/orbsvcs/orbsvcs/Notify/Proxy.inl b/TAO/orbsvcs/orbsvcs/Notify/Proxy.inl
index 0f92ffdcb35..9746aa848cb 100644
--- a/TAO/orbsvcs/orbsvcs/Notify/Proxy.inl
+++ b/TAO/orbsvcs/orbsvcs/Notify/Proxy.inl
@@ -16,10 +16,10 @@ TAO_Notify_Proxy::check_filters (const TAO_Notify_Event* event
, CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator)
{
// check if it passes the parent filter.
- CORBA::Boolean parent_val =
+ CORBA::Boolean const parent_val =
parent_filter_admin.match (event);
- CORBA::Boolean val = 0;
+ CORBA::Boolean val = false;
if (filter_operator == CosNotifyChannelAdmin::AND_OP)
{
diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup.rc b/TAO/orbsvcs/orbsvcs/PortableGroup.rc
index a432c83a01c..0aff1ba619d 100644
--- a/TAO/orbsvcs/orbsvcs/PortableGroup.rc
+++ b/TAO/orbsvcs/orbsvcs/PortableGroup.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/RTEvent.rc b/TAO/orbsvcs/orbsvcs/RTEvent.rc
index 9bb0b0f9439..b0fa5167fef 100644
--- a/TAO/orbsvcs/orbsvcs/RTEvent.rc
+++ b/TAO/orbsvcs/orbsvcs/RTEvent.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/RTEvent_Serv.rc b/TAO/orbsvcs/orbsvcs/RTEvent_Serv.rc
index db8c3e96a2c..c0d674c114f 100644
--- a/TAO/orbsvcs/orbsvcs/RTEvent_Serv.rc
+++ b/TAO/orbsvcs/orbsvcs/RTEvent_Serv.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/RTEvent_Skel.rc b/TAO/orbsvcs/orbsvcs/RTEvent_Skel.rc
index 89f1ed77e4f..3187dbc77d2 100644
--- a/TAO/orbsvcs/orbsvcs/RTEvent_Skel.rc
+++ b/TAO/orbsvcs/orbsvcs/RTEvent_Skel.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/RTSched.rc b/TAO/orbsvcs/orbsvcs/RTSched.rc
index 88566f35e85..3ecf9760760 100644
--- a/TAO/orbsvcs/orbsvcs/RTSched.rc
+++ b/TAO/orbsvcs/orbsvcs/RTSched.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/RTSchedEvent.rc b/TAO/orbsvcs/orbsvcs/RTSchedEvent.rc
index 4962285f17b..a8db023c435 100644
--- a/TAO/orbsvcs/orbsvcs/RTSchedEvent.rc
+++ b/TAO/orbsvcs/orbsvcs/RTSchedEvent.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/RT_Notification.rc b/TAO/orbsvcs/orbsvcs/RT_Notification.rc
index f39d9fe9699..b7262c7fa0f 100644
--- a/TAO/orbsvcs/orbsvcs/RT_Notification.rc
+++ b/TAO/orbsvcs/orbsvcs/RT_Notification.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP.rc b/TAO/orbsvcs/orbsvcs/SSLIOP.rc
index 861b6bf944a..8fb24d904f8 100644
--- a/TAO/orbsvcs/orbsvcs/SSLIOP.rc
+++ b/TAO/orbsvcs/orbsvcs/SSLIOP.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.cpp b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.cpp
index 02551468ef6..e5724c76fc8 100644
--- a/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.cpp
+++ b/TAO/orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.cpp
@@ -162,7 +162,7 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
if (TAO_debug_level > 0)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("TAO (%P|%t) Unable to set the session id ")
- ACE_TEXT ("context to \'%s\'\n"), session_id_context_));
+ ACE_TEXT ("context to \'%C\'\n"), session_id_context_));
return -1;
}
@@ -350,10 +350,10 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
}
else
{
- if (TAO_debug_level > 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) Loaded ")
- ACE_TEXT ("more entropy from <%s>\n"), path));
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("TAO (%P|%t) Loaded ")
+ ACE_TEXT ("more entropy from <%s>\n"), path));
}
path = ACE_OS::strtok_r (0, TAO_PATH_SEPARATOR_STRING, &file_name);
@@ -426,7 +426,7 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) SSLIOP_Factory: ")
ACE_TEXT ("unable to set ")
- ACE_TEXT ("DH parameters <%s>\n"),
+ ACE_TEXT ("DH parameters <%C>\n"),
dhparams_path));
return -1;
}
@@ -436,7 +436,7 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
ACE_DEBUG ((LM_INFO,
ACE_TEXT ("(%P|%t) SSLIOP_Factory: ")
ACE_TEXT ("No DH parameters found in ")
- ACE_TEXT ("certificate <%s>; either none ")
+ ACE_TEXT ("certificate <%C>; either none ")
ACE_TEXT ("are needed (RSA) or problems ")
ACE_TEXT ("will ensue later.\n"),
dhparams_path));
@@ -448,7 +448,7 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
ACE_DEBUG ((LM_INFO,
ACE_TEXT ("(%P|%t) SSLIOP loaded ")
ACE_TEXT ("Diffie-Hellman params ")
- ACE_TEXT ("from %s\n"),
+ ACE_TEXT ("from %C\n"),
dhparams_path));
}
}
@@ -464,7 +464,7 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
{
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("TAO (%P|%t) Unable to set ")
- ACE_TEXT ("SSL certificate <%s> ")
+ ACE_TEXT ("SSL certificate <%C> ")
ACE_TEXT ("in SSLIOP factory.\n"),
certificate_path));
@@ -476,7 +476,7 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
ACE_DEBUG ((LM_INFO,
ACE_TEXT ("TAO (%P|%t) SSLIOP loaded ")
ACE_TEXT ("SSL certificate ")
- ACE_TEXT ("from %s\n"),
+ ACE_TEXT ("from %C\n"),
certificate_path));
}
}
@@ -489,7 +489,7 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("TAO (%P|%t) Unable to set ")
ACE_TEXT ("SSL private key ")
- ACE_TEXT ("<%s> in SSLIOP factory.\n"),
+ ACE_TEXT ("<%C> in SSLIOP factory.\n"),
private_key_path));
return -1;
@@ -500,7 +500,7 @@ TAO::SSLIOP::Protocol_Factory::init (int argc, ACE_TCHAR* argv[])
ACE_DEBUG ((LM_INFO,
ACE_TEXT ("TAO (%P|%t) SSLIOP loaded ")
ACE_TEXT ("Private Key ")
- ACE_TEXT ("from %s\n"),
+ ACE_TEXT ("from <%C>\n"),
private_key_path));
}
}
diff --git a/TAO/orbsvcs/orbsvcs/Security.rc b/TAO/orbsvcs/orbsvcs/Security.rc
index 9138ebe5f3b..380a55730be 100644
--- a/TAO/orbsvcs/orbsvcs/Security.rc
+++ b/TAO/orbsvcs/orbsvcs/Security.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/Security/SL2_SecurityManager.cpp b/TAO/orbsvcs/orbsvcs/Security/SL2_SecurityManager.cpp
index cebbb69ce62..b4a6777ca9e 100644
--- a/TAO/orbsvcs/orbsvcs/Security/SL2_SecurityManager.cpp
+++ b/TAO/orbsvcs/orbsvcs/Security/SL2_SecurityManager.cpp
@@ -251,7 +251,7 @@ TAO::Security::AccessDecision::add_object
"unexpectedly failed (errno=%d)\n",
hash.operator()(key),
allow_insecure_access,
- errno));
+ ACE_ERRNO_GET));
throw
CORBA::NO_MEMORY(CORBA::SystemException::_tao_minor_code (TAO::VMCID,
errno),
@@ -304,7 +304,7 @@ TAO::Security::AccessDecision::remove_object
"TAO (%P|%t): SL2_AccessDecision::remove_object(%x) "
" unexpected error during unbind from map (errno=%d\n)",
hash.operator()(key),
- errno));
+ ACE_ERRNO_GET));
throw CORBA::UNKNOWN (CORBA::SystemException::_tao_minor_code (TAO::VMCID,
errno),
diff --git a/TAO/orbsvcs/orbsvcs/Svc_Utils.rc b/TAO/orbsvcs/orbsvcs/Svc_Utils.rc
index b927f5f9703..b49af73a65f 100644
--- a/TAO/orbsvcs/orbsvcs/Svc_Utils.rc
+++ b/TAO/orbsvcs/orbsvcs/Svc_Utils.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/orbsvcs/orbsvcs/Trader/Constraint_l.cpp b/TAO/orbsvcs/orbsvcs/Trader/Constraint_l.cpp
index ac14dce7181..73c4980cb04 100644
--- a/TAO/orbsvcs/orbsvcs/Trader/Constraint_l.cpp
+++ b/TAO/orbsvcs/orbsvcs/Trader/Constraint_l.cpp
@@ -1437,7 +1437,7 @@ FILE *file;
#if YY_NEVER_INTERACTIVE
b->yy_is_interactive = 0;
#else
- b->yy_is_interactive = file ? (ACE_OS::isatty( fileno(file) ) > 0) : 0;
+ b->yy_is_interactive = file ? (ACE_OS::isatty( ACE_OS::fileno(file) ) > 0) : 0;
#endif
#endif
}
@@ -1818,7 +1818,7 @@ trader_strtoull(const char* s, unsigned int base)
result = (result * base) + (*s - 'A' + 10);
}
else
- {
+ {
break;
}
diff --git a/TAO/orbsvcs/orbsvcs/Trader/Trader.h b/TAO/orbsvcs/orbsvcs/Trader/Trader.h
index 69b6299895f..19a33bdfc02 100644
--- a/TAO/orbsvcs/orbsvcs/Trader/Trader.h
+++ b/TAO/orbsvcs/orbsvcs/Trader/Trader.h
@@ -124,7 +124,7 @@ private:
* Class used to remove the circular dependencies between the
* Attribute classes and the Trader class.
*/
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x610)
+#if defined (__BORLANDC__) && (__BORLANDC__ < 0x620)
// Work around Borland unresolved symbol errors concerning the
// out-of-line virtual destructor. The virtual destructor should
// not be inlined, nor should we have to export TAO_Lockable from the
@@ -132,7 +132,7 @@ private:
class TAO_Trading_Serv_Export TAO_Lockable
#else
class TAO_Lockable
-#endif /* __BORLANDC__ <= 0x610 */
+#endif /* __BORLANDC__ < 0x620 */
{
public:
virtual ~TAO_Lockable (void);
diff --git a/TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp b/TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp
index b01e0a770c4..da435eb281a 100644
--- a/TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp
+++ b/TAO/orbsvcs/performance-tests/RTEvent/Federated_Roundtrip/client.cpp
@@ -164,7 +164,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
ACE_DEBUG ((LM_DEBUG, "Finished peer configuration and activation\n"));
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Federated_Test::Control_var control =
Federated_Test::Control::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/AVStreams/Latency/control.cpp b/TAO/orbsvcs/tests/AVStreams/Latency/control.cpp
index 1f66f83bfb8..11e43114d84 100644
--- a/TAO/orbsvcs/tests/AVStreams/Latency/control.cpp
+++ b/TAO/orbsvcs/tests/AVStreams/Latency/control.cpp
@@ -127,11 +127,11 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
AVStreams::StreamCtrl_var stream_control =
stream_control_impl._this ();
- obj = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ping_ior));
+ obj = orb->string_to_object (ping_ior);
AVStreams::MMDevice_var ping_sender =
AVStreams::MMDevice::_narrow (obj.in ());
- obj = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (pong_ior));
+ obj = orb->string_to_object (pong_ior);
AVStreams::MMDevice_var pong_sender =
AVStreams::MMDevice::_narrow (obj.in ());
diff --git a/TAO/orbsvcs/tests/Bug_2247_Regression/Manager.cpp b/TAO/orbsvcs/tests/Bug_2247_Regression/Manager.cpp
index bdf3372d8d6..cd38accf129 100644
--- a/TAO/orbsvcs/tests/Bug_2247_Regression/Manager.cpp
+++ b/TAO/orbsvcs/tests/Bug_2247_Regression/Manager.cpp
@@ -152,13 +152,13 @@ Manager::make_merged_iors (void)
{
// First server
object_primary =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (first_ior));
+ this->orb_->string_to_object (first_ior);
if (merged_test)
{
//Second server
object_secondary =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (second_ior));
+ this->orb_->string_to_object (second_ior);
// Get an object reference for the ORBs IORManipultion object!
CORBA::Object_var IORM =
diff --git a/TAO/orbsvcs/tests/Bug_2248_Regression/client.cpp b/TAO/orbsvcs/tests/Bug_2248_Regression/client.cpp
index 01d25056a80..23a46495737 100644
--- a/TAO/orbsvcs/tests/Bug_2248_Regression/client.cpp
+++ b/TAO/orbsvcs/tests/Bug_2248_Regression/client.cpp
@@ -147,7 +147,7 @@ Manager::make_merged_iors (void)
if (CORBA::is_nil (iorm.in()))
return -1;
- CORBA::Object_var first = orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (first_ior));
+ CORBA::Object_var first = orb_->string_to_object (first_ior);
if (CORBA::is_nil (first.in()))
return -1;
@@ -172,13 +172,13 @@ Manager::make_merged_iors (void)
return -1;
}
- first = orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (first_ior));
+ first = orb_->string_to_object (first_ior);
if (CORBA::is_nil (first.in()))
{
return -1;
}
- CORBA::Object_var second = orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (second_ior));
+ CORBA::Object_var second = orb_->string_to_object (second_ior);
if (CORBA::is_nil (second.in()))
{
diff --git a/TAO/orbsvcs/tests/Bug_2800_Regression/NamingTask.cpp b/TAO/orbsvcs/tests/Bug_2800_Regression/NamingTask.cpp
index dad03af99f4..8b92aae35ac 100644
--- a/TAO/orbsvcs/tests/Bug_2800_Regression/NamingTask.cpp
+++ b/TAO/orbsvcs/tests/Bug_2800_Regression/NamingTask.cpp
@@ -19,6 +19,8 @@ NamingTask::NamingTask (const char* orbname, int argc, ACE_TCHAR **argv, unsigne
my_argv[my_argc++] = buf;
orb_ = CORBA::ORB_init (my_argc, my_argv, orbname);
+
+ delete [] my_argv;
}
void NamingTask::waitInit ()
@@ -64,7 +66,7 @@ int NamingTask::svc()
0) == 0)
{
ACE_DEBUG ((LM_DEBUG, "The Naming Service Task is ready.\n"));
- ior_ = CORBA::string_dup (naming.naming_service_ior ());
+ ior_ = naming.naming_service_ior ();
initialized_ = true;
// Accept requests
orb_->run();
diff --git a/TAO/orbsvcs/tests/Bug_3598b_Regression/client.cpp b/TAO/orbsvcs/tests/Bug_3598b_Regression/client.cpp
index 651abc13e44..f86033651b1 100644
--- a/TAO/orbsvcs/tests/Bug_3598b_Regression/client.cpp
+++ b/TAO/orbsvcs/tests/Bug_3598b_Regression/client.cpp
@@ -61,7 +61,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var tmp =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Test::Hello_var hello =
Test::Hello::_narrow(tmp.in () );
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/Bug_3673_Regression.mpc b/TAO/orbsvcs/tests/Bug_3673_Regression/Bug_3673_Regression.mpc
new file mode 100644
index 00000000000..0ac923d77b9
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/Bug_3673_Regression.mpc
@@ -0,0 +1,55 @@
+// -*- MPC -*-
+// $Id$
+
+project(*idl): taoidldefaults {
+ IDL_Files {
+ Test.idl
+ }
+ custom_only = 1
+}
+
+project(*NsMain): namingexe, naming_serv {
+ exename = nsmain
+ after += *idl
+ Source_Files {
+ Hello.cpp
+ NamingTask.cpp
+ nsmain.cpp
+ NsShutdown.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ TestS.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*Client): namingexe {
+ exename = client
+ after += *idl
+ Source_Files {
+ client.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*Server): namingexe, portableserver {
+ exename = server
+ after += *idl
+ Source_Files {
+ server.cpp
+ Hello.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ TestS.cpp
+ }
+ IDL_Files {
+ }
+}
+
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.cpp b/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.cpp
new file mode 100644
index 00000000000..df5dc90d3d9
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.cpp
@@ -0,0 +1,23 @@
+//
+// $Id$
+//
+#include "Hello.h"
+
+ACE_RCSID(Hello, Hello, "$Id$")
+
+Hello::Hello (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+char *
+Hello::get_string (void)
+{
+ return CORBA::string_dup ("Hello there!");
+}
+
+void
+Hello::shutdown (void)
+{
+ this->orb_->shutdown (0);
+}
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.h b/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.h
new file mode 100644
index 00000000000..f87205c3011
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/Hello.h
@@ -0,0 +1,31 @@
+//
+// $Id$
+//
+
+#ifndef HELLO_H
+#define HELLO_H
+#include /**/ "ace/pre.h"
+
+#include "TestS.h"
+
+/// Implement the Test::Hello interface
+class Hello
+ : public virtual POA_Test::Hello
+{
+public:
+ /// Constructor
+ Hello (CORBA::ORB_ptr orb);
+
+ // = The skeleton methods
+ virtual char * get_string (void);
+
+ virtual void shutdown (void);
+
+private:
+ /// Use an ORB reference to conver strings to objects and shutdown
+ /// the application.
+ CORBA::ORB_var orb_;
+};
+
+#include /**/ "ace/post.h"
+#endif /* HELLO_H */
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/NamingTask.cpp b/TAO/orbsvcs/tests/Bug_3673_Regression/NamingTask.cpp
new file mode 100644
index 00000000000..8b92aae35ac
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/NamingTask.cpp
@@ -0,0 +1,87 @@
+// $Id$
+
+#include "NamingTask.h"
+#include "orbsvcs/Naming/Naming_Server.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/Argv_Type_Converter.h"
+
+NamingTask::NamingTask (const char* orbname, int argc, ACE_TCHAR **argv, unsigned short port)
+ : initialized_(false)
+{
+ ACE_TCHAR **my_argv = new ACE_TCHAR *[argc + 2];
+ ACE_TCHAR buf[128];
+ int my_argc = 0;
+ for(; my_argc<argc ;++my_argc)
+ my_argv[my_argc] = argv[my_argc];
+ ACE_OS::sprintf (buf, ACE_TEXT ("iiop://localhost:%d"), port);
+ const ACE_TCHAR* epopt = ACE_TEXT ("-ORBEndpoint");
+ my_argv[my_argc++] = const_cast<ACE_TCHAR *> (epopt);
+ my_argv[my_argc++] = buf;
+
+ orb_ = CORBA::ORB_init (my_argc, my_argv, orbname);
+
+ delete [] my_argv;
+}
+
+void NamingTask::waitInit ()
+{
+ // Wait for Naming Service initialized.
+ while (! initialized_) {
+ ACE_OS::sleep(ACE_Time_Value(0, 100 * 1000));
+ }
+}
+
+void NamingTask::end()
+{
+ orb_->shutdown(0);
+ this->wait();
+}
+
+const char* NamingTask::ior()
+{
+ return ior_.in ();
+}
+
+int NamingTask::svc()
+{
+ try {
+ // Get reference to Root POA
+ CORBA::Object_var obj = orb_->resolve_initial_references("RootPOA");
+ PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
+
+ // Activate POA Manager
+ PortableServer::POAManager_var poaManager = poa->the_POAManager();
+ poaManager->activate();
+
+ // Initialize the naming service
+ // We are not going to look for other naming servers
+ TAO_Naming_Server naming;
+ if (naming.init(orb_.in(),
+ poa.in(),
+ ACE_DEFAULT_MAP_SIZE,
+ 0,
+ 0,
+ 0,
+ TAO_NAMING_BASE_ADDR,
+ 0) == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, "The Naming Service Task is ready.\n"));
+ ior_ = naming.naming_service_ior ();
+ initialized_ = true;
+ // Accept requests
+ orb_->run();
+ return 0;
+ }
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "Unable to initialize the Naming Service.\n"));
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("NamingTask::svc() CORBA::Exception: ");
+ }
+
+ return -1;
+}
+
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/NamingTask.h b/TAO/orbsvcs/tests/Bug_3673_Regression/NamingTask.h
new file mode 100644
index 00000000000..b82ec5dbf88
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/NamingTask.h
@@ -0,0 +1,27 @@
+// $Id$
+
+#ifndef NAMINGTASK_H
+#define NAMINGTASK_H
+
+#include "tao/CORBA_String.h"
+#include "tao/ORB.h"
+#include "ace/Task.h"
+#include "ace/Synch_Traits.h"
+
+class NamingTask : public ACE_Task_Base
+{
+public:
+ NamingTask (const char* orbname, int argc, ACE_TCHAR **argv, unsigned short port);
+ virtual int svc();
+ void waitInit ();
+ void end();
+
+ const char* ior ();
+
+private:
+ CORBA::ORB_var orb_;
+ bool initialized_;
+ CORBA::String_var ior_;
+};
+
+#endif
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.cpp b/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.cpp
new file mode 100644
index 00000000000..ae73a73eefd
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.cpp
@@ -0,0 +1,19 @@
+//
+// $Id$
+//
+#include "NsShutdown.h"
+
+ACE_RCSID(Hello,
+ NsShutdown,
+ "$Id$")
+
+NsShutdown::NsShutdown (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+void
+NsShutdown::shutdown (void)
+{
+ this->orb_->shutdown (0);
+}
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.h b/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.h
new file mode 100644
index 00000000000..c6cf90e02be
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/NsShutdown.h
@@ -0,0 +1,28 @@
+//
+// $Id$
+//
+
+#ifndef SHUTDOWN_H
+#define SHUTDOWN_H
+#include /**/ "ace/pre.h"
+
+#include "TestS.h"
+
+/// Implement the Test::Hello interface
+class NsShutdown
+ : public virtual POA_Test::NsShutdown
+{
+public:
+ /// Constructor
+ NsShutdown (CORBA::ORB_ptr orb);
+
+ virtual void shutdown (void);
+
+private:
+ /// Use an ORB reference to conver strings to objects and shutdown
+ /// the application.
+ CORBA::ORB_var orb_;
+};
+
+#include /**/ "ace/post.h"
+#endif /* HELLO_H */
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/Test.idl b/TAO/orbsvcs/tests/Bug_3673_Regression/Test.idl
new file mode 100644
index 00000000000..98ed1b2e3a3
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/Test.idl
@@ -0,0 +1,26 @@
+//
+// $Id$
+//
+
+/// Put the interfaces in a module, to avoid global namespace pollution
+module Test
+{
+ /// A very simple interface
+ interface Hello
+ {
+ /// Return a simple string
+ string get_string ();
+
+ /// A method to shutdown the ORB
+ /**
+ * This method is used to simplify the test shutdown process
+ */
+ oneway void shutdown ();
+ };
+
+ /// A very simple interface
+ interface NsShutdown
+ {
+ oneway void shutdown ();
+ };
+};
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/client.cpp b/TAO/orbsvcs/tests/Bug_3673_Regression/client.cpp
new file mode 100644
index 00000000000..35e3aba13be
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/client.cpp
@@ -0,0 +1,113 @@
+// $Id$
+
+#include "TestC.h"
+#include "orbsvcs/CosNamingC.h"
+#include "ace/Get_Opt.h"
+
+ACE_RCSID(Hello, client, "$Id$")
+
+const ACE_TCHAR *ior = ACE_TEXT("file://shutdown.ior");
+bool shutdown_nsmain = false;
+int test_count = 10;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ shutdown_nsmain = true;
+ break;
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var tmp =
+ orb->string_to_object("corbaloc:iiop:1.2@localhost:9931/NameService");
+
+ CosNaming::NamingContext_var root =
+ CosNaming::NamingContext::_narrow(tmp.in());
+
+ if (CORBA::is_nil (root.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "Nil NamingService reference\n"),
+ 1);
+ }
+
+ ACE_DEBUG ((LM_INFO, "**** Narrowed root NamingContext\n"));
+
+ CosNaming::Name name;
+ name.length(4);
+ name[0].id = CORBA::string_dup("This");
+ name[0].kind = CORBA::string_dup("");
+ name[1].id = CORBA::string_dup("eat");
+ name[1].kind = CORBA::string_dup("");
+ name[2].id = CORBA::string_dup("my");
+ name[2].kind = CORBA::string_dup("");
+ name[3].id = CORBA::string_dup("memory");
+ name[3].kind = CORBA::string_dup("");
+
+ for (int i = 0; i < test_count; i++)
+ {
+ try
+ {
+ tmp = root->resolve (name);
+ ACE_DEBUG ((LM_INFO, "**** Resolved #example/Hello\n"));
+
+ Test::Hello_var hello =
+ Test::Hello::_narrow(tmp.in ());
+
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "Nil Test::Hello reference\n"),
+ 1);
+ }
+ catch (const CosNaming::NamingContext::NotFound&)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Caught correct exception for iteration %d\n", i));
+ }
+ }
+
+ if (shutdown_nsmain)
+ {
+ CORBA::Object_var shutdowntmp = orb->string_to_object(ior);
+
+ Test::NsShutdown_var shutdown =
+ Test::NsShutdown::_narrow(shutdowntmp.in ());
+
+ ACE_DEBUG ((LM_DEBUG, "Shutdown nsmain\n"));
+ shutdown->shutdown ();
+ }
+
+ orb->shutdown ();
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/nsmain.cpp b/TAO/orbsvcs/tests/Bug_3673_Regression/nsmain.cpp
new file mode 100644
index 00000000000..b3433a21505
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/nsmain.cpp
@@ -0,0 +1,191 @@
+// $Id$
+
+#include "NamingTask.h"
+#include "Hello.h"
+#include "NsShutdown.h"
+#include "orbsvcs/CosNamingC.h"
+#include "ace/OS.h"
+#include "ace/Get_Opt.h"
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT("shutdown.ior");
+
+class TestTask : public ACE_Task_Base
+{
+public:
+ TestTask (int argc, ACE_TCHAR **argv);
+ virtual int svc ();
+
+ int parse_args (int argc, ACE_TCHAR **argv);
+
+ void end();
+private:
+ NamingTask namingServiceA_;
+ NamingTask namingServiceB_;
+ CORBA::ORB_var orb_;
+ CORBA::Boolean shutdown_ns_;
+};
+
+TestTask::TestTask (int argc, ACE_TCHAR **argv)
+ : namingServiceA_("NamingORBA", argc, argv, 9931),
+ namingServiceB_("NamingORBB", argc, argv, 9932)
+{
+ orb_ = CORBA::ORB_init (argc, argv, "ServerORB");
+ shutdown_ns_ = false;
+ parse_args (argc, argv);
+}
+
+void TestTask::end()
+{
+ orb_->shutdown(0);
+ this->wait();
+}
+
+int
+TestTask::parse_args (int argc, ACE_TCHAR **argv)
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("s"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 's':
+ shutdown_ns_ = true;
+ break;
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int TestTask::svc()
+{
+
+ try {
+ // Start the Naming Service tasks
+ namingServiceA_.activate();
+ // Wait for the Naming Service initialized.
+ namingServiceA_.waitInit();
+
+ namingServiceB_.activate();
+ // Wait for the Naming Service initialized.
+ namingServiceB_.waitInit();
+
+ FILE *output_file= ACE_OS::fopen ("ns.ior", "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: ns.ior\n"),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ACE_TEXT_CHAR_TO_TCHAR (namingServiceA_.ior ()));
+ ACE_OS::fclose (output_file);
+
+ // Get reference to Root POA
+ CORBA::Object_var obj = orb_->resolve_initial_references("RootPOA");
+ PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
+
+ // Activate POA Manager
+ PortableServer::POAManager_var mgr = poa->the_POAManager();
+ mgr->activate();
+
+ // Find the Naming Service
+ obj = orb_->string_to_object (namingServiceB_.ior ());
+ CosNaming::NamingContext_var root =
+ CosNaming::NamingContext::_narrow(obj.in());
+
+ if (CORBA::is_nil(root.in())) {
+ ACE_ERROR ((LM_ERROR, "Error, Nil Naming Context reference\n"));
+ return 1;
+ }
+ // Bind the example Naming Context, if necessary
+ CosNaming::NamingContext_var example_nc;
+ CosNaming::Name name;
+ name.length(1);
+ name[0].id = CORBA::string_dup("example");
+ try
+ {
+ obj = root->resolve(name);
+ example_nc = CosNaming::NamingContext::_narrow(obj.in());
+ }
+ catch (const CosNaming::NamingContext::NotFound&)
+ {
+ example_nc = root->bind_new_context(name);
+ }
+
+ // Bind the Test object
+ name.length(2);
+ name[1].id = CORBA::string_dup("Hello");
+
+ // Create an object
+ Hello servant(orb_.in ());
+ PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ obj = poa->id_to_reference(oid.in());
+ root->rebind(name, obj.in());
+
+ ACE_DEBUG ((LM_INFO, "Hello object bound in Naming Service B\n"));
+
+ name.length(1);
+ obj = orb_->string_to_object (namingServiceA_.ior ());
+ root = CosNaming::NamingContext::_narrow(obj.in());
+ root->bind_context (name, example_nc.in ());
+
+ ACE_DEBUG ((LM_INFO, "'example' context of NS B bound in Naming Service A\n"));
+
+ if (shutdown_ns_)
+ {
+ namingServiceB_.end();
+
+ ACE_DEBUG ((LM_INFO, "Naming Service B shut down\n"));
+ }
+
+ // Create shutdown server
+ NsShutdown shutdown_servant(orb_.in ());
+ PortableServer::ObjectId_var shutdown_oid = poa->activate_object(&shutdown_servant);
+ obj = poa->id_to_reference(shutdown_oid.in());
+ CORBA::String_var ior = orb_->object_to_string (obj.in ());
+
+ output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file %s for writing IOR: %C\n",
+ ior_output_file,
+ ior.in ()),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ // Normally we run the orb and the orb is shutdown by
+ // calling TestTask::end().
+ // Accept requests
+ orb_->run();
+ orb_->destroy();
+
+ // Shutdown the Naming Services.
+ namingServiceA_.end();
+ if (!shutdown_ns_)
+ {
+ namingServiceB_.end();
+ }
+
+ return 0;
+ }
+ catch (CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("CORBA exception: ");
+ }
+
+ return -1;
+}
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ // Start the Test task
+ TestTask test_ (argc, argv);
+ if (test_.activate() == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "Unable to start test task.\n"), -1);
+ }
+
+ // Wait tasks finish.
+ test_.thr_mgr ()->wait();
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/run_test.pl b/TAO/orbsvcs/tests/Bug_3673_Regression/run_test.pl
new file mode 100755
index 00000000000..8a707290834
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/run_test.pl
@@ -0,0 +1,59 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$debug_level = '0';
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+$iorfile = PerlACE::LocalFile ("ns.ior");
+$shutdownior = PerlACE::LocalFile ("shutdown.ior");
+unlink $iorfile;
+unlink $shutdownior;
+
+$SV = new PerlACE::Process ("nsmain", "-s -ORBDebuglevel $debug_level");
+$CL = new PerlACE::Process ("client", "-k");
+
+$server = $SV->Spawn ();
+
+if ($server != 0) {
+ print STDERR "ERROR: server returned $server\n";
+ exit 1;
+}
+
+if (PerlACE::waitforfile_timed ($iorfile,
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: cannot find file <$iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$client = $CL->SpawnWaitKill (60);
+
+if ($client != 0) {
+ print STDERR "ERROR: client returned $client\n";
+ $status = 1;
+}
+
+$server = $SV->WaitKill (20);
+
+if ($server != 0) {
+ print STDERR "ERROR: server returned $server\n";
+ $status = 1;
+}
+
+unlink $iorfile;
+unlink $shutdownior;
+
+exit $status;
diff --git a/TAO/orbsvcs/tests/Bug_3673_Regression/server.cpp b/TAO/orbsvcs/tests/Bug_3673_Regression/server.cpp
new file mode 100644
index 00000000000..9dd4570db86
--- /dev/null
+++ b/TAO/orbsvcs/tests/Bug_3673_Regression/server.cpp
@@ -0,0 +1,158 @@
+// $Id$
+
+#include "Hello.h"
+#include "orbsvcs/CosNamingC.h"
+#include "ace/Get_Opt.h"
+#include "ace/Task.h"
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT ("test.ior");
+
+class TestTask : public ACE_Task_Base
+{
+public:
+ TestTask (int argc, ACE_TCHAR **argv);
+ virtual int svc ();
+
+ int parse_args (int argc, ACE_TCHAR **argv);
+
+ void end();
+private:
+ CORBA::ORB_var orb_;
+ CORBA::Boolean shutdown_ns_;
+};
+
+TestTask::TestTask(int argc, ACE_TCHAR **argv)
+{
+ orb_ = CORBA::ORB_init (argc, argv, "ServerORB");
+ shutdown_ns_ = false;
+ parse_args (argc, argv);
+}
+
+void TestTask::end()
+{
+ orb_->shutdown(0);
+ this->wait();
+}
+
+int
+TestTask::parse_args (int argc, ACE_TCHAR **argv)
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:s"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 's':
+ shutdown_ns_ = true;
+ break;
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int TestTask::svc()
+{
+
+ try {
+ // Get reference to Root POA
+ CORBA::Object_var obj = orb_->resolve_initial_references("RootPOA");
+ PortableServer::POA_var poa = PortableServer::POA::_narrow(obj.in());
+
+ // Activate POA Manager
+ PortableServer::POAManager_var mgr = poa->the_POAManager();
+ mgr->activate();
+
+ // Find the Naming Service
+ obj = orb_->string_to_object ("corbaloc:iiop:1.2@localhost:9932/NameService");
+ CosNaming::NamingContext_var root =
+ CosNaming::NamingContext::_narrow(obj.in());
+
+ if (CORBA::is_nil(root.in())) {
+ ACE_ERROR ((LM_ERROR, "Error, Nil Naming Context reference\n"));
+ return 1;
+ }
+ // Bind the example Naming Context, if necessary
+ CosNaming::NamingContext_var example_nc;
+ CosNaming::Name name;
+ name.length(1);
+ name[0].id = CORBA::string_dup("example");
+ try
+ {
+ obj = root->resolve(name);
+ example_nc =
+ CosNaming::NamingContext::_narrow(obj.in());
+ }
+ catch (const CosNaming::NamingContext::NotFound&)
+ {
+ example_nc = root->bind_new_context(name);
+ }
+
+ // Bind the Test object
+ name.length(2);
+ name[1].id = CORBA::string_dup("Hello");
+
+ // Create an object
+ Hello servant(orb_.in ());
+ PortableServer::ObjectId_var oid = poa->activate_object(&servant);
+ obj = poa->id_to_reference(oid.in());
+ root->rebind(name, obj.in());
+
+ ACE_DEBUG ((LM_INFO, "Hello object bound in Naming Service B\n"));
+
+ name.length(1);
+ obj = orb_->string_to_object ("corbaloc:iiop:1.2@localhost:9931/NameService");
+ root = CosNaming::NamingContext::_narrow(obj.in());
+ root->bind_context (name, example_nc.in ());
+
+ ACE_DEBUG ((LM_INFO, "'example' context of NS B bound in Naming Service A\n"));
+
+ CORBA::String_var ior =
+ orb_->object_to_string (obj.in ());
+
+ // Output the IOR to the <ior_output_file>
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file %s for writing IOR: %C\n",
+ ior_output_file,
+ ior.in ()),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ ACE_DEBUG ((LM_INFO, "Wrote IOR file\n"));
+
+ // Normally we run the orb and the orb is shutdown by
+ // calling TestTask::end().
+ // Accept requests
+ orb_->run();
+ orb_->destroy();
+
+ return 0;
+ }
+ catch (CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("CORBA exception: ");
+ }
+
+ return -1;
+}
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ // Start the Test task
+ TestTask test_ (argc, argv);
+ if (test_.activate() == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "Unable to start test task.\n"), -1);
+ }
+
+ // Wait the tasks to finish.
+ test_.thr_mgr ()->wait();
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp b/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp
index 699d4144c5a..75d1ae02c5d 100644
--- a/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp
+++ b/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.cpp
@@ -416,7 +416,13 @@ ECM_Driver::parse_config_file (void)
int port;
if (this->skip_blanks (cfg, "reading federation port number"))
return -1;
- fscanf (cfg, "%d", &port);
+ s = fscanf (cfg, "%d", &port);
+ if (s == 0 || s == EOF)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "problem reading federation port number\n"), -1);
+ }
+
CORBA::UShort mcast_port = static_cast<CORBA::UShort> (port);
int ns, nc;
diff --git a/TAO/orbsvcs/tests/FT_App/FT_Client.cpp b/TAO/orbsvcs/tests/FT_App/FT_Client.cpp
index ee84b1fba22..d9c33457395 100644
--- a/TAO/orbsvcs/tests/FT_App/FT_Client.cpp
+++ b/TAO/orbsvcs/tests/FT_App/FT_Client.cpp
@@ -534,7 +534,7 @@ int FTClientMain::run (void)
{
ACE_OS::fprintf (stdout, "FT Client: Initial counter %ld\n", counter);
}
- if (ACE_OS::isatty(fileno(stdin)))
+ if (ACE_OS::isatty(ACE_OS::fileno(stdin)))
{
ACE_OS::fprintf (stdout, "FT Client: Commands(? for help):\n");
}
diff --git a/TAO/orbsvcs/tests/FaultTolerance/IOGR/Manager.cpp b/TAO/orbsvcs/tests/FaultTolerance/IOGR/Manager.cpp
index 7083f81daae..47fe59c26fc 100644
--- a/TAO/orbsvcs/tests/FaultTolerance/IOGR/Manager.cpp
+++ b/TAO/orbsvcs/tests/FaultTolerance/IOGR/Manager.cpp
@@ -119,11 +119,11 @@ Manager::make_merged_iors (void)
{
// First server
this->object_primary_ =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (first_ior));
+ this->orb_->string_to_object (first_ior);
//Second server
this->object_secondary_ =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (second_ior));
+ this->orb_->string_to_object (second_ior);
// Get an object reference for the ORBs IORManipultion object!
CORBA::Object_var IORM =
diff --git a/TAO/orbsvcs/tests/ImplRepo/Bug_689_Regression/client.cpp b/TAO/orbsvcs/tests/ImplRepo/Bug_689_Regression/client.cpp
index 0b6139b10d7..504f91cd53d 100644
--- a/TAO/orbsvcs/tests/ImplRepo/Bug_689_Regression/client.cpp
+++ b/TAO/orbsvcs/tests/ImplRepo/Bug_689_Regression/client.cpp
@@ -49,7 +49,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
if (parse_args (argc, argv) != 0)
return 1;
- CORBA::Object_var tmp = orb->string_to_object(ACE_TEXT_ALWAYS_CHAR (ior));
+ CORBA::Object_var tmp = orb->string_to_object (ior);
bug_689_regression_var servant = bug_689_regression::_narrow(tmp.in ());
diff --git a/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/ReconnectServer.mpc b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/ReconnectServer.mpc
new file mode 100755
index 00000000000..e5c946e4951
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/ReconnectServer.mpc
@@ -0,0 +1,49 @@
+// $Id$
+//
+// Really the server is the only one that needs to avoid minimum_corba and
+// the lot. But there's no sense in building anything if you can't build
+// the server.
+
+project(*idl): taoidldefaults, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro {
+ custom_only = 1
+ IDL_Files {
+ test.idl
+ }
+}
+
+project(*serverA): taoserver, imr_client, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro {
+ exename = serverA
+ after += *idl
+ IDL_Files {
+ }
+ Source_Files {
+ testC.cpp
+ testS.cpp
+ serverA.cpp
+ test_i.cpp
+ }
+}
+
+project(*serverB): taoserver, imr_client, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro {
+ exename = serverB
+ after += *idl
+ IDL_Files {
+ }
+ Source_Files {
+ testC.cpp
+ testS.cpp
+ serverB.cpp
+ test_i.cpp
+ }
+}
+
+project(*client): taoserver, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro {
+ exename = client
+ after += *idl
+ IDL_Files {
+ }
+ Source_Files {
+ testC.cpp
+ client.cpp
+ }
+}
diff --git a/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/client.cpp b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/client.cpp
new file mode 100755
index 00000000000..354032fa096
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/client.cpp
@@ -0,0 +1,164 @@
+// $Id$
+#include "testS.h"
+#include "tao/AnyTypeCode/Any.h"
+#include "ace/Get_Opt.h"
+#include <ace/Task.h>
+#include <ace/OS.h>
+
+
+const ACE_TCHAR *ior_input_file = ACE_TEXT ("file://serverA.ior");
+int test_duration_sec = 15;
+
+class Client_Task : public ACE_Task_Base
+{
+ public:
+ Client_Task (Test::Time_ptr obj)
+ : test_ (Test::Time::_duplicate (obj)),
+ communication_failed_ (false),
+ reconnected_ (false),
+ caught_object_not_exist_ (false)
+ {}
+
+ virtual int svc (void)
+ {
+ ACE_Time_Value start = ACE_OS::gettimeofday ();
+ ACE_Time_Value elapsed;
+ int i = 0;
+ while (elapsed < ACE_Time_Value (test_duration_sec))
+ {
+ try
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)Request %d\n"), i ));
+ test_->current_time();
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)Done request %d\n"), i ));
+ if (communication_failed_)
+ {
+ communication_failed_ = false;
+ reconnected_ = true;
+ }
+ ACE_OS::sleep (1);
+ }
+ catch (const CORBA::OBJECT_NOT_EXIST &)
+ {
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t)caught OBJECT_NOT_EXIST exception for request %d\n"), i ));
+ caught_object_not_exist_ = false;
+ ACE_OS::sleep (1);
+ break;
+ }
+ catch (const CORBA::Exception & /*ex*/)
+ {
+ //ex._tao_print_exception ("Exception caught:");
+ communication_failed_ = true;
+ ACE_OS::sleep (1);
+ }
+ ++i;
+ elapsed = ACE_OS::gettimeofday () - start;
+ }
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)Client thread exit \n")));
+ return 0;
+ }
+
+ bool test_passed () const
+ {
+ return ! communication_failed_ && reconnected_ && ! caught_object_not_exist_;
+ }
+
+ private:
+
+ Test::Time_var test_;
+ bool communication_failed_;
+ bool reconnected_;
+ bool caught_object_not_exist_;
+};
+
+
+int
+parse_args (int argc, ACE_TCHAR* argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "i:t:");
+ int c;
+
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ ior_input_file = get_opts.opt_arg ();
+ break;
+ case 't':
+ test_duration_sec = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-i <iorfile> -t <test_duration>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ {
+ return 1;
+ }
+
+ CORBA::Object_var object = orb->resolve_initial_references ("RootPOA");
+ PortableServer::POA_var rootPOA = PortableServer::POA::_narrow (object.in ());
+
+ PortableServer::POAManager_var poa_manager = rootPOA->the_POAManager ();
+ poa_manager->activate ();
+
+ object = orb->string_to_object(ior_input_file);
+
+ Test::Time_var test = Test::Time::_narrow(object.in ());
+
+ if (CORBA::is_nil(test.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%P|%t) Object reference is nil \n"),
+ 1);
+ }
+
+ Client_Task task (test.in ());
+ task.activate (THR_NEW_LWP | THR_JOINABLE, 1, 1);
+
+ ACE_Time_Value tv(test_duration_sec);
+ orb->run (&tv);
+
+ task.wait ();
+
+ // Destroy the POA, waiting until the destruction terminates
+ rootPOA->destroy (1, 1);
+ orb->destroy ();
+
+ if (task.test_passed ())
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%P|%t)Client test passed \n")));
+ }
+ else
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("(%P|%t)Client test failed.\n")), 1);
+ }
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ex._tao_print_exception ("Exception caught by client:");
+ return 1;
+ }
+
+ return 0;
+}
+
+
diff --git a/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl
new file mode 100755
index 00000000000..f3a2ac8c079
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/run_test.pl
@@ -0,0 +1,151 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+###############################################################################
+
+use strict;
+use Sys::Hostname;
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+my $imr_locator_ior = PerlACE::LocalFile ("imr_locator.ior");
+my $protocol = "iiop";
+my $host = hostname();
+my $port = PerlACE::uniqueid () + 10001;
+my $imr_endpoint = "-ORBEndpoint " . "$protocol" . "://:" . $port;
+my $imr_db = PerlACE::LocalFile ("imr.db");
+# -ORBDebugLevel 10 -ORBVerboseLogging 1 -ORBLogFile imr.log
+my $imr_locator_args = "$imr_endpoint -UnregisterIfAddressReused -d 1 -o $imr_locator_ior -p $imr_db";
+my $IMR_LOCATOR = new PerlACE::Process ("../../../ImplRepo_Service/ImplRepo_Service", $imr_locator_args);
+my $TAO_IMR = new PerlACE::Process("$ENV{ACE_ROOT}/bin/tao_imr");
+my $svr_port_base = PerlACE::uniqueid () + 9000;
+my $svr_a_id = "AAA";
+my $svr_b_id = "BBB";
+my $svr_a_ior = PerlACE::LocalFile ("A.ior");
+my $svr_b_ior = PerlACE::LocalFile ("B.ior");
+my $client_duration = 30;
+my $svr_endpoint = "-ORBEndpoint " . "$protocol" . "://:" . "$svr_port_base/portspan=20";
+my $imr_initref = "-ORBInitRef ImplRepoService=file://$imr_locator_ior";
+my $svr_a_args = "$svr_endpoint $imr_initref -ORBServerId $svr_a_id -ORBUseIMR 1 -o $svr_a_ior";
+my $svr_b_args = "$svr_endpoint $imr_initref -ORBServerId $svr_b_id -ORBUseIMR 1 -o $svr_b_ior";
+my $cli_args = "-ORBForwardInvocationOnObjectNotExist 1 -i file://$svr_a_ior -t $client_duration";
+
+my $SVR_A = new PerlACE::Process ("serverA", $svr_a_args);
+my $SVR_B = new PerlACE::Process ("serverB", $svr_b_args);
+my $CLI = new PerlACE::Process ("client", $cli_args);
+my $delay = 3;
+
+# Make sure the files are gone, so we can wait on them.
+unlink $svr_a_ior;
+unlink $svr_b_ior;
+unlink $imr_db;
+unlink $imr_locator_ior;
+
+my $status = 0;
+print STDERR $IMR_LOCATOR->CommandLine () . "\n";
+$IMR_LOCATOR->Spawn ();
+
+if (PerlACE::waitforfile_timed ($imr_locator_ior, 10) == -1) {
+ print STDERR "ERROR: cannot find $imr_locator_ior\n";
+ $IMR_LOCATOR->Kill ();
+ $status = 1;
+}
+
+sleep (2);
+print STDERR "=== start server A: " . $SVR_A->CommandLine () . "\n";
+$SVR_A->Spawn ();
+
+if (PerlACE::waitforfile_timed ($svr_a_ior, 10) == -1) {
+ print STDERR "ERROR: cannot find $svr_a_ior\n";
+ $IMR_LOCATOR->Kill ();
+ $SVR_A->Kill ();
+ $status = 1;
+}
+
+print STDERR "=== start server B: " . $SVR_B->CommandLine () . "\n";
+$SVR_B->Spawn ();
+
+if (PerlACE::waitforfile_timed ($svr_b_ior, 10) == -1) {
+ print STDERR "ERROR: cannot find $svr_b_ior\n";
+ $IMR_LOCATOR->Kill ();
+ $SVR_A->Kill ();
+ $SVR_B->Kill ();
+ $status = 1;
+}
+
+print STDERR "=== start client: " . $CLI->CommandLine () . "\n";
+my $client = $CLI->Spawn ();
+
+if ($client != 0) {
+ print STDERR "ERROR: client returned $client\n";
+ $IMR_LOCATOR->Kill ();
+ $SVR_A->Kill ();
+ $SVR_B->Kill ();
+ $status = 1;
+}
+
+sleep (5);
+
+print STDERR "=== kill server A\n";
+my $server = $SVR_A->TerminateWaitKill (5);
+
+if ($server != 0) {
+ print STDERR "ERROR: server A returned $server\n";
+ $status = 1;
+}
+
+print STDERR "=== kill server B\n";
+$server = $SVR_B->TerminateWaitKill (5);
+
+if ($server != 0) {
+ print STDERR "ERROR: server B returned $server\n";
+ $status = 1;
+}
+
+sleep (5);
+unlink $svr_a_ior;
+unlink $svr_b_ior;
+
+print STDERR "=== restart server B\n";
+$svr_b_args = $svr_b_args . " -l $delay";
+# Run -ORBDebugLevel 10 to see server raise OBJECT_NOT_EXIST exception.
+$SVR_B = new PerlACE::Process ("serverB", $svr_b_args);
+$SVR_B->Spawn ();
+if (PerlACE::waitforfile_timed ($svr_b_ior, 10) == -1) {
+ print STDERR "ERROR: cannot find $svr_b_ior\n";
+ $IMR_LOCATOR->Kill ();
+ $SVR_B->Kill ();
+ $CLI->Kill ();
+ $status = 1;
+}
+
+sleep ($delay * 2);
+
+print STDERR "=== restart server A\n";
+$SVR_A->Spawn ();
+if (PerlACE::waitforfile_timed ($svr_a_ior, 10) == -1) {
+ print STDERR "ERROR: cannot find $svr_a_ior\n";
+ $IMR_LOCATOR->Kill ();
+ $SVR_A->Kill ();
+ $SVR_B->Kill ();
+ $CLI->Kill ();
+ $status = 1;
+}
+
+$CLI->WaitKill ($client_duration);
+
+$IMR_LOCATOR->Kill();
+$SVR_A->Kill();
+$SVR_B->Kill();
+
+# Make sure the files are gone, so we can wait on them.
+unlink $svr_a_ior;
+unlink $svr_b_ior;
+unlink $imr_db;
+unlink $imr_locator_ior;
+
+exit $status;
diff --git a/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/serverA.cpp b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/serverA.cpp
new file mode 100755
index 00000000000..5ec4ae92f9b
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/serverA.cpp
@@ -0,0 +1,128 @@
+// $Id$
+#include "test_i.h"
+#include "tao/ImR_Client/ImR_Client.h"
+#include <ace/Task.h>
+#include <ace/Get_Opt.h>
+
+const ACE_TCHAR * ior_output_file = ACE_TEXT ("serverA.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "o:");
+ int c;
+
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ if (parse_args (argc, argv) != 0)
+ {
+ return 1;
+ }
+
+ CORBA::Object_var object =
+ orb->resolve_initial_references ("RootPOA");
+ PortableServer::POA_var rootPOA =
+ PortableServer::POA::_narrow (object.in ());
+ PortableServer::POAManager_var poa_manager =
+ rootPOA->the_POAManager ();
+
+ CORBA::PolicyList policies (5);
+ policies.length (5);
+
+ // Lifespan policy
+ policies[0] =
+ rootPOA->create_lifespan_policy (PortableServer::PERSISTENT);
+
+ // Servant Retention Policy
+ policies[1] =
+ rootPOA->create_servant_retention_policy (PortableServer::RETAIN );
+
+ // ID Assignment Policy
+ policies[2] =
+ rootPOA->create_id_assignment_policy (PortableServer::USER_ID );
+
+ // Request Processing Policy
+ policies[3] =
+ rootPOA->create_request_processing_policy (PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY );
+
+ // Threading policy
+ policies[4] =
+ rootPOA->create_thread_policy (PortableServer::ORB_CTRL_MODEL);
+
+ PortableServer::POA_var poa_a = rootPOA->create_POA ("poaA",
+ poa_manager.in (),
+ policies
+ );
+ PortableServer::POA_var poa_c = rootPOA->create_POA ("poaC",
+ poa_manager.in (),
+ policies
+ );
+
+ for (CORBA::ULong i = 0;
+ i < policies.length ();
+ ++i)
+ {
+ CORBA::Policy_ptr policy = policies[i];
+ policy->destroy ();
+ }
+
+ Test_Time_i* time = new Test_Time_i();
+
+ PortableServer::ObjectId_var oid =
+ PortableServer::string_to_ObjectId ("Server_A");
+ poa_a->activate_object_with_id (oid.in (), time);
+ CORBA::Object_var time_obj = poa_a->id_to_reference(oid.in());
+ CORBA::String_var ior =
+ orb->object_to_string (time_obj.in ());
+
+ poa_manager->activate ();
+
+ // Output the IOR to the <ior_output_file>
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: %s",
+ ior_output_file),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ orb->run ();
+
+ rootPOA->destroy (1, 1);
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ex._tao_print_exception ("Exception caught by serverA:");
+ return 1;
+ }
+
+ return 0;
+}
+
+
diff --git a/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp
new file mode 100755
index 00000000000..e8194fdaf64
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/serverB.cpp
@@ -0,0 +1,135 @@
+// $Id$
+#include "test_i.h"
+#include "tao/ImR_Client/ImR_Client.h"
+#include <ace/Task.h>
+#include <ace/Get_Opt.h>
+#include <ace/OS.h>
+
+const ACE_TCHAR * ior_output_file = ACE_TEXT ("serverB.ior");
+// server_notify_delay between resolving RootPOA init ref and create_POA.
+int server_notify_delay = 0;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "o:l:");
+ int c;
+
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+ case 'l':
+ server_notify_delay = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile> -l <server_notify_delay>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ if (parse_args (argc, argv) != 0)
+ {
+ return 1;
+ }
+
+ CORBA::Object_var object =
+ orb->resolve_initial_references ("RootPOA");
+ PortableServer::POA_var rootPOA =
+ PortableServer::POA::_narrow (object.in ());
+ PortableServer::POAManager_var poa_manager =
+ rootPOA->the_POAManager ();
+
+ CORBA::PolicyList policies (5);
+ policies.length (5);
+
+ // Lifespan policy
+ policies[0] =
+ rootPOA->create_lifespan_policy (PortableServer::PERSISTENT);
+
+ // Servant Retention Policy
+ policies[1] =
+ rootPOA->create_servant_retention_policy (PortableServer::RETAIN );
+
+ // ID Assignment Policy
+ policies[2] =
+ rootPOA->create_id_assignment_policy (PortableServer::USER_ID );
+
+ // Request Processing Policy
+ policies[3] =
+ rootPOA->create_request_processing_policy (PortableServer::USE_ACTIVE_OBJECT_MAP_ONLY );
+
+ // Threading policy
+ policies[4] =
+ rootPOA->create_thread_policy (PortableServer::ORB_CTRL_MODEL);
+
+ if (server_notify_delay > 0)
+ {
+ ACE_OS::sleep (server_notify_delay);
+ }
+
+ PortableServer::POA_var poa_a = rootPOA->create_POA ("poaB",
+ poa_manager.in (),
+ policies
+ );
+
+ for (CORBA::ULong i = 0;
+ i < policies.length ();
+ ++i)
+ {
+ CORBA::Policy_ptr policy = policies[i];
+ policy->destroy ();
+ }
+
+ Test_Dummy_i* dummy = new Test_Dummy_i();
+
+ PortableServer::ObjectId_var oid =
+ PortableServer::string_to_ObjectId ("Server_B");
+ poa_a->activate_object_with_id (oid.in (), dummy);
+ CORBA::Object_var dummy_obj = poa_a->id_to_reference(oid.in());
+ CORBA::String_var ior =
+ orb->object_to_string (dummy_obj.in ());
+
+ poa_manager->activate ();
+
+ // Output the IOR to the <ior_output_file>
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: %s",
+ ior_output_file),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ orb->run ();
+
+ rootPOA->destroy (1, 1);
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ ex._tao_print_exception ("Exception caught by serverB:");
+ return 1;
+ }
+
+ return 0;
+}
+
+
diff --git a/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test.idl b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test.idl
new file mode 100755
index 00000000000..3e16ed854f5
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test.idl
@@ -0,0 +1,15 @@
+// $Id$
+module Test
+{
+ interface Dummy
+ {
+ string getMessage();
+ };
+
+ interface Time
+ {
+ long current_time ();
+ oneway void shutdown ();
+ };
+
+};
diff --git a/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test_i.cpp b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test_i.cpp
new file mode 100755
index 00000000000..0487df28e12
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test_i.cpp
@@ -0,0 +1,51 @@
+// $Id$
+#include "test_i.h"
+#include "ace/OS_NS_time.h"
+
+
+// Implementation skeleton constructor
+Test_Dummy_i::Test_Dummy_i (void)
+{
+}
+
+// Implementation skeleton destructor
+Test_Dummy_i::~Test_Dummy_i (void)
+{
+}
+
+char * Test_Dummy_i::getMessage (
+ void
+ )
+{
+ // Add your implementation here
+ return CORBA::string_dup("Test::Dummy---->Hello World");
+}
+
+Test_Time_i::Test_Time_i (void)
+{
+}
+
+// Implementation skeleton destructor
+Test_Time_i::~Test_Time_i (void)
+{
+}
+
+::CORBA::Long Test_Time_i::current_time (
+ void
+ )
+{
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t)Test_Time_i::current_time called\n"));
+ return CORBA::Long (ACE_OS::time (0));
+}
+
+void Test_Time_i::shutdown (
+ void
+ )
+{
+ ACE_DEBUG ((LM_DEBUG,
+ "%s\n",
+ "Time_i is shutting down"));
+
+}
+
+
diff --git a/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test_i.h b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test_i.h
new file mode 100755
index 00000000000..ccb9c6c524c
--- /dev/null
+++ b/TAO/orbsvcs/tests/ImplRepo/ReconnectServer/test_i.h
@@ -0,0 +1,48 @@
+// $Id$
+#ifndef IMR_RECONNECTSERVER_H
+#define IMR_RECONNECTSERVER_H
+
+#include "testS.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+class Test_Dummy_i
+ : public virtual POA_Test::Dummy
+{
+public:
+ // Constructor
+ Test_Dummy_i (void);
+
+ // Destructor
+ virtual ~Test_Dummy_i (void);
+
+ virtual char * getMessage (void);
+};
+
+class Test_Time_i
+ : public virtual POA_Test::Time
+{
+public:
+ // Constructor
+ Test_Time_i (void);
+
+ // Destructor
+ virtual ~Test_Time_i (void);
+
+ virtual
+ ::CORBA::Long current_time (
+ void
+ );
+
+ virtual
+ void shutdown (
+ void
+ );
+};
+
+
+#endif /* IMR_RECONNECTSERVER_H */
+
diff --git a/TAO/orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/test_idl.cpp b/TAO/orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/test_idl.cpp
index a1a1980214a..851a4413e21 100644
--- a/TAO/orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/test_idl.cpp
+++ b/TAO/orbsvcs/tests/InterfaceRepo/Bug_3155_Regression/test_idl.cpp
@@ -68,7 +68,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// get IFR
CORBA::Object_var objref =
- the_orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ifr_ior_file));
+ the_orb->string_to_object (ifr_ior_file);
if (objref.in () == 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
diff --git a/TAO/orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/test_idl.cpp b/TAO/orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/test_idl.cpp
index f78c99d7aaa..f53a114a07d 100644
--- a/TAO/orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/test_idl.cpp
+++ b/TAO/orbsvcs/tests/InterfaceRepo/Bug_3174_Regression/test_idl.cpp
@@ -68,7 +68,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
ACE_DEBUG (( LM_DEBUG, "Get IFR\n" ));
CORBA::Object_var objref =
- the_orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ifr_ior_file));
+ the_orb->string_to_object (ifr_ior_file);
if (objref.in () == 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
diff --git a/TAO/orbsvcs/tests/Makefile.am b/TAO/orbsvcs/tests/Makefile.am
index a8de0bb54f1..5c41ef319fc 100644
--- a/TAO/orbsvcs/tests/Makefile.am
+++ b/TAO/orbsvcs/tests/Makefile.am
@@ -27,7 +27,6 @@ SUBDIRS = \
Bug_2709_Regression \
Bug_2800_Regression \
Bug_2925_Regression \
- Bug_2926_Regression \
Bug_3215_Regression \
Bug_3216_Regression \
COIOP_Naming_Test \
diff --git a/TAO/orbsvcs/tests/Notify/Blocking/Structured_Consumer.cpp b/TAO/orbsvcs/tests/Notify/Blocking/Structured_Consumer.cpp
index c858dfb4703..2b96ae1eb14 100644
--- a/TAO/orbsvcs/tests/Notify/Blocking/Structured_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Blocking/Structured_Consumer.cpp
@@ -120,7 +120,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/Bug_1385_Regression/Structured_Consumer.cpp b/TAO/orbsvcs/tests/Notify/Bug_1385_Regression/Structured_Consumer.cpp
index 6324c4ae295..cc1f4b56d33 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_1385_Regression/Structured_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_1385_Regression/Structured_Consumer.cpp
@@ -106,7 +106,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/Bug_1884_Regression/consumer.cpp b/TAO/orbsvcs/tests/Notify/Bug_1884_Regression/consumer.cpp
index e95740fec0d..ed839a353d0 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_1884_Regression/consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_1884_Regression/consumer.cpp
@@ -18,6 +18,7 @@ namespace CosNotifyCommImpl{
void push_structured_event(
const CosNotification::StructuredEvent &event)
{
+ received_ = true;
std::cout << "Received an event...," << std::endl;
std::cout << "event.header.fixed_header.event_type.domain_name = "
<< event.header.fixed_header.event_type.domain_name
diff --git a/TAO/orbsvcs/tests/Notify/Bug_2561_Regression/Consumer.cpp b/TAO/orbsvcs/tests/Notify/Bug_2561_Regression/Consumer.cpp
index c5c000dc712..5c468af3148 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_2561_Regression/Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_2561_Regression/Consumer.cpp
@@ -109,7 +109,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Bug_2926_Regression/Bug_2926_Regression.mpc b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/Bug_2926_Regression.mpc
index f546e2df51a..f546e2df51a 100644
--- a/TAO/orbsvcs/tests/Bug_2926_Regression/Bug_2926_Regression.mpc
+++ b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/Bug_2926_Regression.mpc
diff --git a/TAO/orbsvcs/tests/Bug_2926_Regression/DllORB.cpp b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/DllORB.cpp
index f432d67b0b1..c6eae95b721 100644
--- a/TAO/orbsvcs/tests/Bug_2926_Regression/DllORB.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/DllORB.cpp
@@ -15,13 +15,11 @@ DllORB::DllORB ()
{
}
-
DllORB::~DllORB ()
{
delete mp_barrier_;
}
-
int
DllORB::init (int argc, ACE_TCHAR *argv[])
{
@@ -90,8 +88,7 @@ DllORB::init (int argc, ACE_TCHAR *argv[])
}
// Initialize the ORB
- ACE_Argv_Type_Converter argcon (argc, argv);
- mv_orb_ = CORBA::ORB_init (argcon.get_argc (), argcon.get_TCHAR_argv ());
+ mv_orb_ = CORBA::ORB_init (argc, argv);
if (CORBA::is_nil (mv_orb_.in ()))
{
ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil ORB\n")));
diff --git a/TAO/orbsvcs/tests/Bug_2926_Regression/DllORB.h b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/DllORB.h
index d3ada78bcad..d3ada78bcad 100644
--- a/TAO/orbsvcs/tests/Bug_2926_Regression/DllORB.h
+++ b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/DllORB.h
diff --git a/TAO/orbsvcs/tests/Bug_2926_Regression/Makefile.am b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/Makefile.am
index 7ee7f0b5e7a..7ee7f0b5e7a 100644
--- a/TAO/orbsvcs/tests/Bug_2926_Regression/Makefile.am
+++ b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/Makefile.am
diff --git a/TAO/orbsvcs/tests/Bug_2926_Regression/bug2926_export.h b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/bug2926_export.h
index b99136d8a76..b99136d8a76 100644
--- a/TAO/orbsvcs/tests/Bug_2926_Regression/bug2926_export.h
+++ b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/bug2926_export.h
diff --git a/TAO/orbsvcs/tests/Bug_2926_Regression/run_test.pl b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/run_test.pl
index 0e7080fef23..0e7080fef23 100755
--- a/TAO/orbsvcs/tests/Bug_2926_Regression/run_test.pl
+++ b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/run_test.pl
diff --git a/TAO/orbsvcs/tests/Bug_2926_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp
index c4bdf91925c..c4bdf91925c 100644
--- a/TAO/orbsvcs/tests/Bug_2926_Regression/server.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_2926_Regression/server.cpp
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/DllOrb.cpp b/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/DllOrb.cpp
index d6843ed73b2..135271cae10 100644
--- a/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/DllOrb.cpp
+++ b/TAO/orbsvcs/tests/Notify/Bug_3252_Regression/DllOrb.cpp
@@ -44,8 +44,7 @@ DllOrb::init (int argc, ACE_TCHAR *argv[])
}
// Initialize the ORB
- ACE_Argv_Type_Converter argcon (argc, argv);
- mv_orb_ = CORBA::ORB_init (argcon.get_argc (), argcon.get_TCHAR_argv ());
+ mv_orb_ = CORBA::ORB_init (argc, argv);
if (CORBA::is_nil (mv_orb_.in ()))
{
ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil ORB\n")));
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/Bug_3646a_Regression.mpc b/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/Bug_3646a_Regression.mpc
new file mode 100644
index 00000000000..2c4b8f96405
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/Bug_3646a_Regression.mpc
@@ -0,0 +1,10 @@
+// -*- MPC -*-
+// $Id$
+
+project(*Ntf Cons): notifytest {
+ exename = Consumer
+
+ Source_Files {
+ Consumer.cpp
+ }
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/Consumer.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/Consumer.cpp
new file mode 100644
index 00000000000..061ee286b3a
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/Consumer.cpp
@@ -0,0 +1,48 @@
+// $Id$
+
+// ******************************************************************
+// Include Section
+// ******************************************************************
+
+#include "Notify_Test_Client.h"
+
+#include "ace/Get_Opt.h"
+#include "ace/Argv_Type_Converter.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR* argv[])
+{
+ int status = 0;
+ try
+ {
+ Notify_Test_Client client;
+ ACE_Argv_Type_Converter argcon (argc, argv);
+ status = client.init (argcon.get_argc (), argcon.get_TCHAR_argv ());
+
+ if (status == 0)
+ {
+ CosNaming::NamingContext_ptr naming = client.naming_context ();
+ if (CORBA::is_nil (naming))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Can't find naming service\n"),
+ 1);
+ }
+
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup ("Channel1");
+ CORBA::Object_var obj1 = naming->resolve (name);
+
+ name[0].id = CORBA::string_dup ("Channel2");
+ CORBA::Object_var obj2 = naming->resolve (name);
+ }
+ }
+ catch (const CORBA::Exception& e)
+ {
+ e._tao_print_exception ("Error: ");
+ status = 1;
+ }
+
+ return status;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/run_test.pl b/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/run_test.pl
new file mode 100755
index 00000000000..ea85277c793
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646a_Regression/run_test.pl
@@ -0,0 +1,63 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+PerlACE::add_lib_path ('../lib');
+
+use strict;
+
+my $status = 0;
+my $port = PerlACE::random_port();
+my $namingior = PerlACE::LocalFile("naming.ior");
+my $notifyior = PerlACE::LocalFile("notify.ior");
+
+my $NS = new PerlACE::Process("../../../Naming_Service/Naming_Service",
+ "-ORBEndpoint iiop://localhost:$port " .
+ "-o $namingior");
+my $TS = new PerlACE::Process("../../../Notify_Service/Notify_Service",
+ "-ORBInitRef NameService=iioploc://" .
+ "localhost:$port/NameService " .
+ "-IORoutput $notifyior " .
+ "-Channel -ChannelName Channel1 -ChannelName Channel2");
+my $STC1 = new PerlACE::Process("Consumer",
+ "-ORBInitRef NameService=iioploc://" .
+ "localhost:$port/NameService");
+
+unlink($notifyior, $namingior);
+
+$NS->Spawn();
+if (PerlACE::waitforfile_timed($namingior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: waiting for the naming service to start\n";
+ $NS->Kill();
+ exit(1);
+}
+
+$TS->Spawn();
+if (PerlACE::waitforfile_timed($notifyior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: waiting for the notify service to start\n";
+ $TS->Kill();
+ $NS->Kill();
+ exit(1);
+}
+
+$STC1->Spawn();
+
+sleep(2);
+
+my $client = $STC1->WaitKill(5);
+if ($client != 0) {
+ $status = 1;
+}
+
+$TS->Kill();
+$NS->Kill();
+
+unlink($notifyior, $namingior);
+
+exit($status);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/Bug_3646b_Regression.mpc b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/Bug_3646b_Regression.mpc
new file mode 100644
index 00000000000..74fb3b72ee2
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/Bug_3646b_Regression.mpc
@@ -0,0 +1,18 @@
+// $Id$
+
+project (*lib): taolib, portableserver, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ sharedname = bug3646b
+ dynamicflags += BUG3646b_BUILD_DLL
+
+ Source_Files {
+ DllORB.cpp
+ }
+}
+
+project (*Server): taoserver, tao_notify_service, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ libs += bug3646b
+ after += *lib
+ Source_Files {
+ server.cpp
+ }
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.cpp
new file mode 100644
index 00000000000..fd28cd1d69e
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.cpp
@@ -0,0 +1,228 @@
+// $Id$
+#include "DllORB.h"
+#include "ace/Barrier.h"
+#include "ace/Arg_Shifter.h"
+#include "ace/Argv_Type_Converter.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/TAO_Singleton_Manager.h"
+
+
+DllORB::DllORB ()
+ : failPrePostInit_ (3),
+ mp_barrier_ (0),
+ mv_orb_ (),
+ mv_rootPOA_ ()
+{
+}
+
+DllORB::~DllORB ()
+{
+ delete mp_barrier_;
+}
+
+int
+DllORB::init (int argc, ACE_TCHAR *argv[])
+{
+ int threadCnt = 1;
+
+ try
+ {
+ ACE_Arg_Shifter as (argc, argv);
+ const ACE_TCHAR *currentArg = 0;
+ while (as.is_anything_left ())
+ {
+ if ((currentArg = as.get_the_parameter (ACE_TEXT ("-NumThreads"))))
+ {
+ int num = ACE_OS::atoi (currentArg);
+ if (num >= 1)
+ threadCnt = num;
+ as.consume_arg ();
+ }
+ else
+ as.ignore_arg ();
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization ...\n")));
+ // -----------------------------------------------------------------
+ // Pre-ORB initialization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Make sure TAO's singleton manager is initialized, and set to not
+ // register itself with the ACE_Object_Manager since it is under the
+ // control of the Service Configurator. If we register with the
+ // ACE_Object_Manager, then the ACE_Object_Manager will still hold
+ // (dangling) references to instances of objects created by this
+ // module and destroyed by this object when it is dynamically
+ // unloaded.
+ int register_with_object_manager = 0;
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->init (register_with_object_manager);
+
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Pre-ORB initialization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization done.\n")));
+ }
+ }
+
+ // Initialize the ORB
+ mv_orb_ = CORBA::ORB_init (argc, argv);
+ if (CORBA::is_nil (mv_orb_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil ORB\n")));
+ return -1;
+ }
+
+ CORBA::Object_var v_poa =
+ mv_orb_->resolve_initial_references ("RootPOA");
+
+ mv_rootPOA_ = PortableServer::POA::_narrow (v_poa.in ());
+ if (CORBA::is_nil (mv_rootPOA_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil RootPOA\n")));
+ return -1;
+ }
+
+ mv_poaManager_ = mv_rootPOA_->the_POAManager ();
+ if (CORBA::is_nil (mv_poaManager_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil POAManager\n")));
+ return -1;
+ }
+
+ mv_poaManager_->activate ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ mp_barrier_ = new ACE_Thread_Barrier (threadCnt + 1);
+
+ this->activate (THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, threadCnt);
+ mp_barrier_->wait ();
+
+ return 0;
+}
+
+
+int
+DllORB::fini ()
+{
+ try
+ {
+ mv_poaManager_->deactivate (1, 1);
+ mv_poaManager_ = PortableServer::POAManager::_nil ();
+
+ // attempt to protect against sporadic BAD_INV_ORDER exceptions
+ ACE_OS::sleep (ACE_Time_Value (0, 500));
+
+ mv_orb_->shutdown (1);
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ // wait for our threads to finish
+ this->wait ();
+
+ delete mp_barrier_;
+ mp_barrier_ = 0;
+
+ try
+ {
+ mv_orb_->destroy ();
+ mv_orb_ = CORBA::ORB::_nil ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return -1;
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ // -----------------------------------------------------------------
+ // Post-ORB finalization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Explicitly clean up singletons created by TAO before
+ // unloading this module.
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->fini ();
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Post-ORB finalization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization done.\n")));
+ }
+ }
+
+ return 0;
+}
+
+
+int DllORB::svc ()
+{
+ mp_barrier_->wait ();
+
+ int result = 0;
+
+ try
+ {
+ mv_orb_->run ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ result = 1;
+ }
+
+ return result;
+}
+
+
+ACE_FACTORY_DEFINE (bug3646b, DllORB)
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.h b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.h
new file mode 100644
index 00000000000..d2f46db4466
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/DllORB.h
@@ -0,0 +1,42 @@
+// $Id$
+#ifndef DLLORB_H
+#define DLLORB_H
+
+#include "ace/Task.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "bug3646b_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+class ACE_Thread_Barrier;
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+class bug3646b_Export DllORB: public ACE_Task_Base
+{
+public:
+ DllORB ();
+ virtual ~DllORB ();
+
+ inline CORBA::ORB_ptr orb () const
+ {
+ return CORBA::ORB::_duplicate (mv_orb_.in ());
+ }
+
+ virtual int init (int argc, ACE_TCHAR *argv[]);
+
+ virtual int fini ();
+
+protected:
+ virtual int svc ();
+
+private:
+ unsigned int failPrePostInit_;
+ ACE_Thread_Barrier* mp_barrier_;
+ CORBA::ORB_var mv_orb_;
+ PortableServer::POA_var mv_rootPOA_;
+ PortableServer::POAManager_var mv_poaManager_;
+};
+
+ACE_FACTORY_DECLARE (bug3646b, DllORB)
+
+#endif /* DLLORB_H */
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/bug3646b_export.h b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/bug3646b_export.h
new file mode 100644
index 00000000000..cc4d2dc3fa3
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/bug3646b_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl bug3646b
+// ------------------------------
+#ifndef BUG3646b_EXPORT_H
+#define BUG3646b_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BUG3646b_HAS_DLL)
+# define BUG3646b_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BUG3646b_HAS_DLL */
+
+#if !defined (BUG3646b_HAS_DLL)
+# define BUG3646b_HAS_DLL 1
+#endif /* ! BUG3646b_HAS_DLL */
+
+#if defined (BUG3646b_HAS_DLL) && (BUG3646b_HAS_DLL == 1)
+# if defined (BUG3646b_BUILD_DLL)
+# define bug3646b_Export ACE_Proper_Export_Flag
+# define BUG3646b_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BUG3646b_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BUG3646b_BUILD_DLL */
+# define bug3646b_Export ACE_Proper_Import_Flag
+# define BUG3646b_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BUG3646b_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BUG3646b_BUILD_DLL */
+#else /* BUG3646b_HAS_DLL == 1 */
+# define bug3646b_Export
+# define BUG3646b_SINGLETON_DECLARATION(T)
+# define BUG3646b_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BUG3646b_HAS_DLL == 1 */
+
+// Set BUG3646b_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BUG3646b_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BUG3646b_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BUG3646b_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BUG3646b_NTRACE */
+
+#if (BUG3646b_NTRACE == 1)
+# define BUG3646b_TRACE(X)
+#else /* (BUG3646b_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BUG3646b_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BUG3646b_NTRACE == 1) */
+
+#endif /* BUG3646b_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/run_test.pl b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/run_test.pl
new file mode 100755
index 00000000000..0df7ee8c96a
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/run_test.pl
@@ -0,0 +1,36 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$file = PerlACE::LocalFile ("test.ior");
+
+unlink $file;
+
+if (PerlACE::is_vxworks_test()) {
+ $SV = new PerlACE::ProcessVX ("server", "");
+}
+else {
+ $SV = new PerlACE::Process ("server", "");
+}
+
+print STDERR "\n\n==== Running bug 3646b regression test\n";
+
+$SV->Spawn ();
+
+$collocated = $SV->WaitKill (15);
+
+if ($collocated != 0) {
+ print STDERR "ERROR: Bug_3646b_Regression returned $collocated\n";
+ $status = 1;
+}
+
+unlink $file;
+
+exit $status;
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
new file mode 100644
index 00000000000..33d43fe2910
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646b_Regression/server.cpp
@@ -0,0 +1,130 @@
+// $Id$
+
+#include "ace/Service_Config.h"
+#include "orbsvcs/Notify_Service/Notify_Service.h"
+#include "orbsvcs/CosNotifyChannelAdminC.h"
+#include "orbsvcs/CosNamingC.h"
+
+#include "DllORB.h"
+
+char const * const scpc_orbId = "testDllOrb";
+
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testDllOrb",
+ "bug3646b",
+ "_make_DllORB",
+ "testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1"
+);
+
+ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
+
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+ "TAO_Notify_Service",
+ "_make_TAO_Notify_Service_Driver",
+ "-NoNameSvc -RunThreads 0"
+);
+
+ACE_TCHAR const * const scpc_unloadNotifyService = ACE_REMOVE_SERVICE_DIRECTIVE("testNotifyService");
+
+void loadunloadcycle()
+{
+ int result = 0;
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading ORB done\n")
+ ));
+
+ DllORB * p_orb =
+ ACE_Dynamic_Service<DllORB>::instance("testDllOrb");
+
+ CORBA::ORB_var v_orb = p_orb->orb();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_orb OK\n")
+ ));
+
+ CORBA::Object_var v_poa =
+ v_orb->resolve_initial_references("RootPOA");
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_poa OK\n")
+ ));
+
+ PortableServer::POA_var v_rootPOA =
+ PortableServer::POA::_narrow(v_poa.in ());
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_rootPOA OK\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading NotifyService done\n")
+ ));
+
+ TAO_Notify_Service_Driver * p_notifyService =
+ ACE_Dynamic_Service<TAO_Notify_Service_Driver>::instance("testNotifyService");
+
+ ACE_UNUSED_ARG (p_notifyService);
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB done\n")
+ ));
+}
+int ACE_TMAIN (int , ACE_TCHAR **)
+{
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - entered\n")
+ ));
+
+ for (int cnt = 0, max = 2; cnt < max; ++cnt)
+ {
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle %d ...\n"), cnt
+ ));
+ loadunloadcycle();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle %d done\n"), cnt
+ ));
+ }
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - leaving\n")
+ ));
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/Bug_3646c_Regression.mpc b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/Bug_3646c_Regression.mpc
new file mode 100644
index 00000000000..124f44aef8a
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/Bug_3646c_Regression.mpc
@@ -0,0 +1,27 @@
+// -*- MPC -*-
+// $Id$
+
+project(*Ntf Cons): notifytest {
+ exename = Consumer
+
+ Source_Files {
+ Consumer.cpp
+ }
+}
+
+project (*lib): taolib, portableserver, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ sharedname = bug3646c
+ dynamicflags += BUG3646c_BUILD_DLL
+
+ Source_Files {
+ DllORB.cpp
+ }
+}
+
+project (*Server): taoserver, tao_notify_service, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ libs += bug3646c
+ after += *lib
+ Source_Files {
+ server.cpp
+ }
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/Consumer.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/Consumer.cpp
new file mode 100644
index 00000000000..efd2bf5bffc
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/Consumer.cpp
@@ -0,0 +1,52 @@
+// $Id$
+
+// ******************************************************************
+// Include Section
+// ******************************************************************
+
+#include "Notify_Test_Client.h"
+
+#include "ace/Get_Opt.h"
+#include "ace/Argv_Type_Converter.h"
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR* argv[])
+{
+ int status = 0;
+ try
+ {
+ Notify_Test_Client client;
+ ACE_Argv_Type_Converter argcon (argc, argv);
+ status = client.init (argcon.get_argc (), argcon.get_TCHAR_argv ());
+
+ if (status == 0)
+ {
+ CosNaming::NamingContext_ptr naming = client.naming_context ();
+ if (CORBA::is_nil (naming))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Can't find naming service\n"),
+ 1);
+ }
+
+ CosNaming::Name name (1);
+ name.length (1);
+ name[0].id = CORBA::string_dup ("Channel1");
+ CORBA::Object_var obj1 = naming->resolve (name);
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Successfully retrieved Challel1\n")));
+
+ name[0].id = CORBA::string_dup ("Channel2");
+ CORBA::Object_var obj2 = naming->resolve (name);
+
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Successfully retrieved Challel2\n")));
+ }
+ }
+ catch (const CORBA::Exception& e)
+ {
+ e._tao_print_exception ("Error: ");
+ status = 1;
+ }
+
+ return status;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/DllORB.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/DllORB.cpp
new file mode 100644
index 00000000000..270307d4192
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/DllORB.cpp
@@ -0,0 +1,228 @@
+// $Id$
+#include "DllORB.h"
+#include "ace/Barrier.h"
+#include "ace/Arg_Shifter.h"
+#include "ace/Argv_Type_Converter.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/TAO_Singleton_Manager.h"
+
+
+DllORB::DllORB ()
+ : failPrePostInit_ (3),
+ mp_barrier_ (0),
+ mv_orb_ (),
+ mv_rootPOA_ ()
+{
+}
+
+DllORB::~DllORB ()
+{
+ delete mp_barrier_;
+}
+
+int
+DllORB::init (int argc, ACE_TCHAR *argv[])
+{
+ int threadCnt = 1;
+
+ try
+ {
+ ACE_Arg_Shifter as (argc, argv);
+ const ACE_TCHAR *currentArg = 0;
+ while (as.is_anything_left ())
+ {
+ if ((currentArg = as.get_the_parameter (ACE_TEXT ("-NumThreads"))))
+ {
+ int num = ACE_OS::atoi (currentArg);
+ if (num >= 1)
+ threadCnt = num;
+ as.consume_arg ();
+ }
+ else
+ as.ignore_arg ();
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization ...\n")));
+ // -----------------------------------------------------------------
+ // Pre-ORB initialization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Make sure TAO's singleton manager is initialized, and set to not
+ // register itself with the ACE_Object_Manager since it is under the
+ // control of the Service Configurator. If we register with the
+ // ACE_Object_Manager, then the ACE_Object_Manager will still hold
+ // (dangling) references to instances of objects created by this
+ // module and destroyed by this object when it is dynamically
+ // unloaded.
+ int register_with_object_manager = 0;
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->init (register_with_object_manager);
+
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Pre-ORB initialization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization done.\n")));
+ }
+ }
+
+ // Initialize the ORB
+ mv_orb_ = CORBA::ORB_init (argc, argv);
+ if (CORBA::is_nil (mv_orb_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil ORB\n")));
+ return -1;
+ }
+
+ CORBA::Object_var v_poa =
+ mv_orb_->resolve_initial_references ("RootPOA");
+
+ mv_rootPOA_ = PortableServer::POA::_narrow (v_poa.in ());
+ if (CORBA::is_nil (mv_rootPOA_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil RootPOA\n")));
+ return -1;
+ }
+
+ mv_poaManager_ = mv_rootPOA_->the_POAManager ();
+ if (CORBA::is_nil (mv_poaManager_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil POAManager\n")));
+ return -1;
+ }
+
+ mv_poaManager_->activate ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ mp_barrier_ = new ACE_Thread_Barrier (threadCnt + 1);
+
+ this->activate (THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, threadCnt);
+ mp_barrier_->wait ();
+
+ return 0;
+}
+
+
+int
+DllORB::fini ()
+{
+ try
+ {
+ mv_poaManager_->deactivate (1, 1);
+ mv_poaManager_ = PortableServer::POAManager::_nil ();
+
+ // attempt to protect against sporadic BAD_INV_ORDER exceptions
+ ACE_OS::sleep (ACE_Time_Value (0, 500));
+
+ mv_orb_->shutdown (1);
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ // wait for our threads to finish
+ this->wait ();
+
+ delete mp_barrier_;
+ mp_barrier_ = 0;
+
+ try
+ {
+ mv_orb_->destroy ();
+ mv_orb_ = CORBA::ORB::_nil ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return -1;
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ // -----------------------------------------------------------------
+ // Post-ORB finalization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Explicitly clean up singletons created by TAO before
+ // unloading this module.
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->fini ();
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Post-ORB finalization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization done.\n")));
+ }
+ }
+
+ return 0;
+}
+
+
+int DllORB::svc ()
+{
+ mp_barrier_->wait ();
+
+ int result = 0;
+
+ try
+ {
+ mv_orb_->run ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ result = 1;
+ }
+
+ return result;
+}
+
+
+ACE_FACTORY_DEFINE (bug3646c, DllORB)
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/DllORB.h b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/DllORB.h
new file mode 100644
index 00000000000..501440fc990
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/DllORB.h
@@ -0,0 +1,42 @@
+// $Id$
+#ifndef DLLORB_H
+#define DLLORB_H
+
+#include "ace/Task.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "bug3646c_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+class ACE_Thread_Barrier;
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+class bug3646c_Export DllORB: public ACE_Task_Base
+{
+public:
+ DllORB ();
+ virtual ~DllORB ();
+
+ inline CORBA::ORB_ptr orb () const
+ {
+ return CORBA::ORB::_duplicate (mv_orb_.in ());
+ }
+
+ virtual int init (int argc, ACE_TCHAR *argv[]);
+
+ virtual int fini ();
+
+protected:
+ virtual int svc ();
+
+private:
+ unsigned int failPrePostInit_;
+ ACE_Thread_Barrier* mp_barrier_;
+ CORBA::ORB_var mv_orb_;
+ PortableServer::POA_var mv_rootPOA_;
+ PortableServer::POAManager_var mv_poaManager_;
+};
+
+ACE_FACTORY_DECLARE (bug3646c, DllORB)
+
+#endif /* DLLORB_H */
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/bug3646c_export.h b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/bug3646c_export.h
new file mode 100644
index 00000000000..77bd3473018
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/bug3646c_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl bug3646c
+// ------------------------------
+#ifndef BUG3646c_EXPORT_H
+#define BUG3646c_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BUG3646c_HAS_DLL)
+# define BUG3646c_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BUG3646c_HAS_DLL */
+
+#if !defined (BUG3646c_HAS_DLL)
+# define BUG3646c_HAS_DLL 1
+#endif /* ! BUG3646c_HAS_DLL */
+
+#if defined (BUG3646c_HAS_DLL) && (BUG3646c_HAS_DLL == 1)
+# if defined (BUG3646c_BUILD_DLL)
+# define bug3646c_Export ACE_Proper_Export_Flag
+# define BUG3646c_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BUG3646c_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BUG3646c_BUILD_DLL */
+# define bug3646c_Export ACE_Proper_Import_Flag
+# define BUG3646c_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BUG3646c_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BUG3646c_BUILD_DLL */
+#else /* BUG3646c_HAS_DLL == 1 */
+# define bug3646c_Export
+# define BUG3646c_SINGLETON_DECLARATION(T)
+# define BUG3646c_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BUG3646c_HAS_DLL == 1 */
+
+// Set BUG3646c_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BUG3646c_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BUG3646c_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BUG3646c_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BUG3646c_NTRACE */
+
+#if (BUG3646c_NTRACE == 1)
+# define BUG3646c_TRACE(X)
+#else /* (BUG3646c_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BUG3646c_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BUG3646c_NTRACE == 1) */
+
+#endif /* BUG3646c_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/run_test.pl b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/run_test.pl
new file mode 100755
index 00000000000..9f84ed86058
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/run_test.pl
@@ -0,0 +1,62 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+PerlACE::add_lib_path ('../lib');
+
+use strict;
+
+my $status = 0;
+my $port = 3000;
+my $namingior = PerlACE::LocalFile("naming.ior");
+my $notifyior = PerlACE::LocalFile("notify.ior");
+
+my $NS = new PerlACE::Process("../../../Naming_Service/Naming_Service",
+ "-ORBEndpoint iiop://localhost:$port " .
+ "-o $namingior");
+my $TS = new PerlACE::Process("server",
+ "-ORBInitRef NameService=iioploc://" .
+ "localhost:$port/NameService " .
+ "-IORoutput $notifyior");
+my $STC1 = new PerlACE::Process("Consumer",
+ "-ORBInitRef NameService=iioploc://" .
+ "localhost:$port/NameService");
+
+unlink($notifyior, $namingior);
+
+$NS->Spawn();
+if (PerlACE::waitforfile_timed($namingior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: waiting for the naming service to start\n";
+ $NS->Kill();
+ exit(1);
+}
+
+$TS->Spawn();
+if (PerlACE::waitforfile_timed($notifyior, $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: waiting for the notify service to start\n";
+ $TS->Kill();
+ $NS->Kill();
+ exit(1);
+}
+
+$STC1->Spawn();
+
+sleep(2);
+
+my $client = $STC1->WaitKill(5);
+if ($client != 0) {
+ $status = 1;
+}
+
+$TS->Kill();
+$NS->Kill();
+
+unlink($notifyior, $namingior);
+
+exit($status);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp
new file mode 100644
index 00000000000..f259b97eac9
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646c_Regression/server.cpp
@@ -0,0 +1,130 @@
+// $Id$
+
+#include "ace/Service_Config.h"
+#include "orbsvcs/Notify_Service/Notify_Service.h"
+#include "orbsvcs/CosNotifyChannelAdminC.h"
+#include "orbsvcs/CosNamingC.h"
+
+#include "DllORB.h"
+
+char const * const scpc_orbId = "testDllOrb";
+
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testDllOrb",
+ "bug3646c",
+ "_make_DllORB",
+ "testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1 -ORBInitRef NameService=iioploc://localhost:3000/NameService"
+);
+
+ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
+
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+ "TAO_Notify_Service",
+ "_make_TAO_Notify_Service_Driver",
+ "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 0 -ORBInitRef NameService=iioploc://localhost:3000/NameService -IORoutput notify.ior"
+);
+
+ACE_TCHAR const * const scpc_unloadNotifyService = ACE_REMOVE_SERVICE_DIRECTIVE("testNotifyService");
+
+void loadunloadcycle()
+{
+ int result = 0;
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading ORB done\n")
+ ));
+
+ DllORB * p_orb =
+ ACE_Dynamic_Service<DllORB>::instance("testDllOrb");
+
+ CORBA::ORB_var v_orb = p_orb->orb();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_orb OK\n")
+ ));
+
+ CORBA::Object_var v_poa =
+ v_orb->resolve_initial_references("RootPOA");
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_poa OK\n")
+ ));
+
+ PortableServer::POA_var v_rootPOA =
+ PortableServer::POA::_narrow(v_poa.in ());
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_rootPOA OK\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading NotifyService done\n")
+ ));
+
+ TAO_Notify_Service_Driver * p_notifyService =
+ ACE_Dynamic_Service<TAO_Notify_Service_Driver>::instance("testNotifyService");
+
+ p_notifyService->run ();
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB done\n")
+ ));
+}
+int ACE_TMAIN (int , ACE_TCHAR **)
+{
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - entered\n")
+ ));
+
+ for (int cnt = 0, max = 2; cnt < max; ++cnt)
+ {
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle %d ...\n"), cnt
+ ));
+ loadunloadcycle();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle %d done\n"), cnt
+ ));
+ }
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - leaving\n")
+ ));
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/Bug_3646d_Regression.mpc b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/Bug_3646d_Regression.mpc
new file mode 100644
index 00000000000..db468aba6ea
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/Bug_3646d_Regression.mpc
@@ -0,0 +1,19 @@
+// -*- MPC -*-
+// $Id$
+
+project (*lib): taolib, portableserver, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ sharedname = bug3646d
+ dynamicflags += BUG3646d_BUILD_DLL
+
+ Source_Files {
+ DllORB.cpp
+ }
+}
+
+project (*Server): taoserver, tao_notify_service, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ libs += bug3646d
+ after += *lib
+ Source_Files {
+ server.cpp
+ }
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/DllORB.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/DllORB.cpp
new file mode 100644
index 00000000000..a8f6848d55b
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/DllORB.cpp
@@ -0,0 +1,228 @@
+// $Id$
+#include "DllORB.h"
+#include "ace/Barrier.h"
+#include "ace/Arg_Shifter.h"
+#include "ace/Argv_Type_Converter.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/TAO_Singleton_Manager.h"
+
+
+DllORB::DllORB ()
+ : failPrePostInit_ (3),
+ mp_barrier_ (0),
+ mv_orb_ (),
+ mv_rootPOA_ ()
+{
+}
+
+DllORB::~DllORB ()
+{
+ delete mp_barrier_;
+}
+
+int
+DllORB::init (int argc, ACE_TCHAR *argv[])
+{
+ int threadCnt = 1;
+
+ try
+ {
+ ACE_Arg_Shifter as (argc, argv);
+ const ACE_TCHAR *currentArg = 0;
+ while (as.is_anything_left ())
+ {
+ if ((currentArg = as.get_the_parameter (ACE_TEXT ("-NumThreads"))))
+ {
+ int num = ACE_OS::atoi (currentArg);
+ if (num >= 1)
+ threadCnt = num;
+ as.consume_arg ();
+ }
+ else
+ as.ignore_arg ();
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization ...\n")));
+ // -----------------------------------------------------------------
+ // Pre-ORB initialization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Make sure TAO's singleton manager is initialized, and set to not
+ // register itself with the ACE_Object_Manager since it is under the
+ // control of the Service Configurator. If we register with the
+ // ACE_Object_Manager, then the ACE_Object_Manager will still hold
+ // (dangling) references to instances of objects created by this
+ // module and destroyed by this object when it is dynamically
+ // unloaded.
+ int register_with_object_manager = 0;
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->init (register_with_object_manager);
+
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Pre-ORB initialization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization done.\n")));
+ }
+ }
+
+ // Initialize the ORB
+ mv_orb_ = CORBA::ORB_init (argc, argv);
+ if (CORBA::is_nil (mv_orb_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil ORB\n")));
+ return -1;
+ }
+
+ CORBA::Object_var v_poa =
+ mv_orb_->resolve_initial_references ("RootPOA");
+
+ mv_rootPOA_ = PortableServer::POA::_narrow (v_poa.in ());
+ if (CORBA::is_nil (mv_rootPOA_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil RootPOA\n")));
+ return -1;
+ }
+
+ mv_poaManager_ = mv_rootPOA_->the_POAManager ();
+ if (CORBA::is_nil (mv_poaManager_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil POAManager\n")));
+ return -1;
+ }
+
+ mv_poaManager_->activate ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ mp_barrier_ = new ACE_Thread_Barrier (threadCnt + 1);
+
+ this->activate (THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, threadCnt);
+ mp_barrier_->wait ();
+
+ return 0;
+}
+
+
+int
+DllORB::fini ()
+{
+ try
+ {
+ mv_poaManager_->deactivate (1, 1);
+ mv_poaManager_ = PortableServer::POAManager::_nil ();
+
+ // attempt to protect against sporadic BAD_INV_ORDER exceptions
+ ACE_OS::sleep (ACE_Time_Value (0, 500));
+
+ mv_orb_->shutdown (1);
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ // wait for our threads to finish
+ this->wait ();
+
+ delete mp_barrier_;
+ mp_barrier_ = 0;
+
+ try
+ {
+ mv_orb_->destroy ();
+ mv_orb_ = CORBA::ORB::_nil ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return -1;
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ // -----------------------------------------------------------------
+ // Post-ORB finalization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Explicitly clean up singletons created by TAO before
+ // unloading this module.
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->fini ();
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Post-ORB finalization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization done.\n")));
+ }
+ }
+
+ return 0;
+}
+
+
+int DllORB::svc ()
+{
+ mp_barrier_->wait ();
+
+ int result = 0;
+
+ try
+ {
+ mv_orb_->run ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ result = 1;
+ }
+
+ return result;
+}
+
+
+ACE_FACTORY_DEFINE (bug3646d, DllORB)
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/DllORB.h b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/DllORB.h
new file mode 100644
index 00000000000..65e44829a85
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/DllORB.h
@@ -0,0 +1,42 @@
+// $Id$
+#ifndef DLLORB_H
+#define DLLORB_H
+
+#include "ace/Task.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "bug3646d_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+class ACE_Thread_Barrier;
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+class bug3646d_Export DllORB: public ACE_Task_Base
+{
+public:
+ DllORB ();
+ virtual ~DllORB ();
+
+ inline CORBA::ORB_ptr orb () const
+ {
+ return CORBA::ORB::_duplicate (mv_orb_.in ());
+ }
+
+ virtual int init (int argc, ACE_TCHAR *argv[]);
+
+ virtual int fini ();
+
+protected:
+ virtual int svc ();
+
+private:
+ unsigned int failPrePostInit_;
+ ACE_Thread_Barrier* mp_barrier_;
+ CORBA::ORB_var mv_orb_;
+ PortableServer::POA_var mv_rootPOA_;
+ PortableServer::POAManager_var mv_poaManager_;
+};
+
+ACE_FACTORY_DECLARE (bug3646d, DllORB)
+
+#endif /* DLLORB_H */
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/bug3646d_export.h b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/bug3646d_export.h
new file mode 100644
index 00000000000..1db5de2778f
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/bug3646d_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl bug3646d
+// ------------------------------
+#ifndef BUG3646d_EXPORT_H
+#define BUG3646d_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BUG3646d_HAS_DLL)
+# define BUG3646d_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BUG3646d_HAS_DLL */
+
+#if !defined (BUG3646d_HAS_DLL)
+# define BUG3646d_HAS_DLL 1
+#endif /* ! BUG3646d_HAS_DLL */
+
+#if defined (BUG3646d_HAS_DLL) && (BUG3646d_HAS_DLL == 1)
+# if defined (BUG3646d_BUILD_DLL)
+# define bug3646d_Export ACE_Proper_Export_Flag
+# define BUG3646d_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BUG3646d_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BUG3646d_BUILD_DLL */
+# define bug3646d_Export ACE_Proper_Import_Flag
+# define BUG3646d_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BUG3646d_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BUG3646d_BUILD_DLL */
+#else /* BUG3646d_HAS_DLL == 1 */
+# define bug3646d_Export
+# define BUG3646d_SINGLETON_DECLARATION(T)
+# define BUG3646d_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BUG3646d_HAS_DLL == 1 */
+
+// Set BUG3646d_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BUG3646d_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BUG3646d_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BUG3646d_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BUG3646d_NTRACE */
+
+#if (BUG3646d_NTRACE == 1)
+# define BUG3646d_TRACE(X)
+#else /* (BUG3646d_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BUG3646d_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BUG3646d_NTRACE == 1) */
+
+#endif /* BUG3646d_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/run_test.pl b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/run_test.pl
new file mode 100755
index 00000000000..8f44b2a8849
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/run_test.pl
@@ -0,0 +1,36 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$file = PerlACE::LocalFile ("test.ior");
+
+unlink $file;
+
+if (PerlACE::is_vxworks_test()) {
+ $SV = new PerlACE::ProcessVX ("server", "");
+}
+else {
+ $SV = new PerlACE::Process ("server", "");
+}
+
+print STDERR "\n\n==== Running bug 3646d regression test\n";
+
+$SV->Spawn ();
+
+$collocated = $SV->WaitKill (200);
+
+if ($collocated != 0) {
+ print STDERR "ERROR: Bug_3646d_Regression returned $collocated\n";
+ $status = 1;
+}
+
+unlink $file;
+
+exit $status;
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp
new file mode 100644
index 00000000000..cd124d8fed8
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3646d_Regression/server.cpp
@@ -0,0 +1,150 @@
+// $Id$
+
+#include "ace/Service_Config.h"
+#include "orbsvcs/Notify_Service/Notify_Service.h"
+#include "orbsvcs/CosNotifyChannelAdminC.h"
+#include "orbsvcs/CosNamingC.h"
+
+#include "DllORB.h"
+
+char const * const scpc_orbId = "testDllOrb";
+
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testDllOrb",
+ "bug3646d",
+ "_make_DllORB",
+ "testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1 -ORBInitRef NameService=file://naming.ior"
+);
+
+ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
+
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+ "TAO_Notify_Service",
+ "_make_TAO_Notify_Service_Driver",
+ "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 10 -ORBInitRef NameService=file://naming.ior -IORoutput notify.ior"
+);
+
+ACE_TCHAR const * const scpc_unloadNotifyService = ACE_REMOVE_SERVICE_DIRECTIVE("testNotifyService");
+
+ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNamingService",
+ "TAO_CosNaming_Serv",
+ "_make_TAO_Naming_Loader",
+ "testNameService testNameService -ORBId testDllOrb -m 0 -o naming.ior"
+);
+
+ACE_TCHAR const * const scpc_unloadNameService = ACE_REMOVE_SERVICE_DIRECTIVE("testNamingService");
+
+void loadunloadcycle()
+{
+ int result = 0;
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading ORB done\n")
+ ));
+
+ DllORB * p_orb =
+ ACE_Dynamic_Service<DllORB>::instance("testDllOrb");
+
+ CORBA::ORB_var v_orb = p_orb->orb();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_orb OK\n")
+ ));
+
+ CORBA::Object_var v_poa =
+ v_orb->resolve_initial_references("RootPOA");
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_poa OK\n")
+ ));
+
+ PortableServer::POA_var v_rootPOA =
+ PortableServer::POA::_narrow(v_poa.in ());
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_rootPOA OK\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadNameService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading NamingService done\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading NotifyService done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NameService ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadNameService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NameService done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB done\n")
+ ));
+}
+int ACE_TMAIN (int , ACE_TCHAR **)
+{
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - entered\n")
+ ));
+
+ for (int cnt = 0, max = 10; cnt < max; ++cnt)
+ {
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle %d ...\n"), cnt
+ ));
+ loadunloadcycle();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle %d done\n"), cnt
+ ));
+ }
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - leaving\n")
+ ));
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/Bug_3663_Regression.mpc b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/Bug_3663_Regression.mpc
new file mode 100644
index 00000000000..5e236565e37
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/Bug_3663_Regression.mpc
@@ -0,0 +1,18 @@
+// $Id$
+
+project (*lib): taolib, portableserver, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ sharedname = bug3663
+ dynamicflags += BUG3663_BUILD_DLL
+
+ Source_Files {
+ DllORB.cpp
+ }
+}
+
+project (*Server): taoserver, tao_notify_service, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ libs += bug3663
+ after += *lib
+ Source_Files {
+ server.cpp
+ }
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/DllORB.cpp b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/DllORB.cpp
new file mode 100644
index 00000000000..4eafe04a802
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/DllORB.cpp
@@ -0,0 +1,228 @@
+// $Id$
+#include "DllORB.h"
+#include "ace/Barrier.h"
+#include "ace/Arg_Shifter.h"
+#include "ace/Argv_Type_Converter.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/TAO_Singleton_Manager.h"
+
+
+DllORB::DllORB ()
+ : failPrePostInit_ (3),
+ mp_barrier_ (0),
+ mv_orb_ (),
+ mv_rootPOA_ ()
+{
+}
+
+DllORB::~DllORB ()
+{
+ delete mp_barrier_;
+}
+
+int
+DllORB::init (int argc, ACE_TCHAR *argv[])
+{
+ int threadCnt = 1;
+
+ try
+ {
+ ACE_Arg_Shifter as (argc, argv);
+ const ACE_TCHAR *currentArg = 0;
+ while (as.is_anything_left ())
+ {
+ if ((currentArg = as.get_the_parameter (ACE_TEXT ("-NumThreads"))))
+ {
+ int num = ACE_OS::atoi (currentArg);
+ if (num >= 1)
+ threadCnt = num;
+ as.consume_arg ();
+ }
+ else
+ as.ignore_arg ();
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization ...\n")));
+ // -----------------------------------------------------------------
+ // Pre-ORB initialization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Make sure TAO's singleton manager is initialized, and set to not
+ // register itself with the ACE_Object_Manager since it is under the
+ // control of the Service Configurator. If we register with the
+ // ACE_Object_Manager, then the ACE_Object_Manager will still hold
+ // (dangling) references to instances of objects created by this
+ // module and destroyed by this object when it is dynamically
+ // unloaded.
+ int register_with_object_manager = 0;
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->init (register_with_object_manager);
+
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Pre-ORB initialization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization done.\n")));
+ }
+ }
+
+ // Initialize the ORB
+ mv_orb_ = CORBA::ORB_init (argc, argv);
+ if (CORBA::is_nil (mv_orb_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil ORB\n")));
+ return -1;
+ }
+
+ CORBA::Object_var v_poa =
+ mv_orb_->resolve_initial_references ("RootPOA");
+
+ mv_rootPOA_ = PortableServer::POA::_narrow (v_poa.in ());
+ if (CORBA::is_nil (mv_rootPOA_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil RootPOA\n")));
+ return -1;
+ }
+
+ mv_poaManager_ = mv_rootPOA_->the_POAManager ();
+ if (CORBA::is_nil (mv_poaManager_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil POAManager\n")));
+ return -1;
+ }
+
+ mv_poaManager_->activate ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ mp_barrier_ = new ACE_Thread_Barrier (threadCnt + 1);
+
+ this->activate (THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, threadCnt);
+ mp_barrier_->wait ();
+
+ return 0;
+}
+
+
+int
+DllORB::fini ()
+{
+ try
+ {
+ mv_poaManager_->deactivate (1, 1);
+ mv_poaManager_ = PortableServer::POAManager::_nil ();
+
+ // attempt to protect against sporadic BAD_INV_ORDER exceptions
+ ACE_OS::sleep (ACE_Time_Value (0, 500));
+
+ mv_orb_->shutdown (1);
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ // wait for our threads to finish
+ this->wait ();
+
+ delete mp_barrier_;
+ mp_barrier_ = 0;
+
+ try
+ {
+ mv_orb_->destroy ();
+ mv_orb_ = CORBA::ORB::_nil ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return -1;
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ // -----------------------------------------------------------------
+ // Post-ORB finalization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Explicitly clean up singletons created by TAO before
+ // unloading this module.
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->fini ();
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Post-ORB finalization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization done.\n")));
+ }
+ }
+
+ return 0;
+}
+
+
+int DllORB::svc ()
+{
+ mp_barrier_->wait ();
+
+ int result = 0;
+
+ try
+ {
+ mv_orb_->run ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ result = 1;
+ }
+
+ return result;
+}
+
+
+ACE_FACTORY_DEFINE (bug3663, DllORB)
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/DllORB.h b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/DllORB.h
new file mode 100644
index 00000000000..16471c71b50
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/DllORB.h
@@ -0,0 +1,42 @@
+// $Id$
+#ifndef DLLORB_H
+#define DLLORB_H
+
+#include "ace/Task.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "bug3663_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+class ACE_Thread_Barrier;
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+class bug3663_Export DllORB: public ACE_Task_Base
+{
+public:
+ DllORB ();
+ virtual ~DllORB ();
+
+ inline CORBA::ORB_ptr orb () const
+ {
+ return CORBA::ORB::_duplicate (mv_orb_.in ());
+ }
+
+ virtual int init (int argc, ACE_TCHAR *argv[]);
+
+ virtual int fini ();
+
+protected:
+ virtual int svc ();
+
+private:
+ unsigned int failPrePostInit_;
+ ACE_Thread_Barrier* mp_barrier_;
+ CORBA::ORB_var mv_orb_;
+ PortableServer::POA_var mv_rootPOA_;
+ PortableServer::POAManager_var mv_poaManager_;
+};
+
+ACE_FACTORY_DECLARE (bug3663, DllORB)
+
+#endif /* DLLORB_H */
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/bug3663_export.h b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/bug3663_export.h
new file mode 100644
index 00000000000..a83678a7094
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/bug3663_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl bug3663
+// ------------------------------
+#ifndef BUG3663_EXPORT_H
+#define BUG3663_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BUG3663_HAS_DLL)
+# define BUG3663_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BUG3663_HAS_DLL */
+
+#if !defined (BUG3663_HAS_DLL)
+# define BUG3663_HAS_DLL 1
+#endif /* ! BUG3663_HAS_DLL */
+
+#if defined (BUG3663_HAS_DLL) && (BUG3663_HAS_DLL == 1)
+# if defined (BUG3663_BUILD_DLL)
+# define bug3663_Export ACE_Proper_Export_Flag
+# define BUG3663_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BUG3663_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BUG3663_BUILD_DLL */
+# define bug3663_Export ACE_Proper_Import_Flag
+# define BUG3663_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BUG3663_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BUG3663_BUILD_DLL */
+#else /* BUG3663_HAS_DLL == 1 */
+# define bug3663_Export
+# define BUG3663_SINGLETON_DECLARATION(T)
+# define BUG3663_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BUG3663_HAS_DLL == 1 */
+
+// Set BUG3663_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BUG3663_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BUG3663_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BUG3663_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BUG3663_NTRACE */
+
+#if (BUG3663_NTRACE == 1)
+# define BUG3663_TRACE(X)
+#else /* (BUG3663_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BUG3663_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BUG3663_NTRACE == 1) */
+
+#endif /* BUG3663_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/run_test.pl b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/run_test.pl
new file mode 100755
index 00000000000..546e160a846
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/run_test.pl
@@ -0,0 +1,36 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$file = PerlACE::LocalFile ("test.ior");
+
+unlink $file;
+
+if (PerlACE::is_vxworks_test()) {
+ $SV = new PerlACE::ProcessVX ("server", "");
+}
+else {
+ $SV = new PerlACE::Process ("server", "");
+}
+
+print STDERR "\n\n==== Running bug 3663 regression test\n";
+
+$SV->Spawn ();
+
+$collocated = $SV->WaitKill (15);
+
+if ($collocated != 0) {
+ print STDERR "ERROR: Bug_3663_Regression returned $collocated\n";
+ $status = 1;
+}
+
+unlink $file;
+
+exit $status;
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
new file mode 100644
index 00000000000..22b8f0329ef
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3663_Regression/server.cpp
@@ -0,0 +1,137 @@
+// $Id$
+
+#include "ace/Service_Config.h"
+#include "orbsvcs/Notify_Service/Notify_Service.h"
+#include "orbsvcs/CosNotifyChannelAdminC.h"
+#include "orbsvcs/CosNamingC.h"
+
+#include "DllORB.h"
+
+char const * const scpc_orbId = "testDllOrb";
+
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testDllOrb",
+ "bug3663",
+ "_make_DllORB",
+ "testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1"
+);
+
+ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
+
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+ "TAO_Notify_Service",
+ "_make_TAO_Notify_Service_Driver_INCORRECT",
+ "-NoNameSvc -RunThreads 0"
+);
+
+ACE_TCHAR const * const scpc_unloadNotifyService = ACE_REMOVE_SERVICE_DIRECTIVE("testNotifyService");
+
+void loadunloadcycle()
+{
+ int result = 0;
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading ORB done\n")
+ ));
+
+ DllORB * p_orb =
+ ACE_Dynamic_Service<DllORB>::instance("testDllOrb");
+
+ CORBA::ORB_var v_orb = p_orb->orb();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_orb OK\n")
+ ));
+
+ CORBA::Object_var v_poa =
+ v_orb->resolve_initial_references("RootPOA");
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_poa OK\n")
+ ));
+
+ PortableServer::POA_var v_rootPOA =
+ PortableServer::POA::_narrow(v_poa.in ());
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_rootPOA OK\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading NotifyService done\n")
+ ));
+
+ TAO_Notify_Service_Driver * p_notifyService =
+ ACE_Dynamic_Service<TAO_Notify_Service_Driver>::instance("testNotifyService");
+
+ ACE_UNUSED_ARG (p_notifyService);
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB done\n")
+ ));
+}
+int ACE_TMAIN (int , ACE_TCHAR **)
+{
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - entered\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle 1 ...\n")
+ ));
+ loadunloadcycle();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle 1 done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle 2 ...\n")
+ ));
+ loadunloadcycle();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle 2 done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - leaving\n")
+ ));
+
+ return 0;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/Bug_3688_Regression.mpc b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/Bug_3688_Regression.mpc
new file mode 100755
index 00000000000..ee94ec7adb8
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/Bug_3688_Regression.mpc
@@ -0,0 +1,19 @@
+// -*- MPC -*-
+// $Id$
+
+project(*Consumer) : orbsvcsexe, notification, notification_skel, naming {
+ exename = consumer
+ Source_Files {
+ consumer.cpp
+ }
+}
+
+
+project(*Supplier) : orbsvcsexe, notification, notification_skel, naming {
+ exename = supplier
+
+ Source_Files {
+ supplier.cpp
+ }
+}
+
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/common.h b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/common.h
new file mode 100755
index 00000000000..18df456f8d4
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/common.h
@@ -0,0 +1,83 @@
+// $Id$
+
+#include "orbsvcs/orbsvcs/CosNotifyChannelAdminC.h"
+#include "orbsvcs/orbsvcs/CosNotifyChannelAdminS.h"
+#include <iostream>
+const char *ior = "file://ecf.ior";
+
+CosNotifyChannelAdmin::EventChannel_var
+get_event_channel(CORBA::ORB_ptr orb)
+
+{
+ CosNotifyChannelAdmin::EventChannel_var ec;
+ CosNotifyChannelAdmin::ChannelID id;
+ CosNotification::QoSProperties init_qos(0);
+ CosNotification::AdminProperties init_admin(0);
+
+ std::cout << "Get CosNotifyChannelAdmin::EventChannelFactory" << std::endl;
+ std::cout << "IorEventChannelFactory=" << ior << std::endl;
+ CORBA::Object_var obj = orb->string_to_object(ior);
+
+ if (CORBA::is_nil(obj.in ()))
+ {
+ std::cerr << "Bad ec_fact.ior " << std::endl;
+ ACE_OS::exit (1);
+ }
+
+ CosNotifyChannelAdmin::EventChannelFactory_var factory =
+ CosNotifyChannelAdmin::EventChannelFactory::_narrow(obj.in ());
+ if (CORBA::is_nil(factory.in()))
+ {
+ std::cerr << "Could not _narrow object to type CosNotifyChannelAdmin::EventChannelFactory" << std::endl;
+ ACE_OS::exit(1);
+ }
+
+ //Get the first ec
+ CosNotifyChannelAdmin::ChannelIDSeq_var channelIdSeq;
+ try
+ {
+ channelIdSeq = factory->get_all_channels();
+ }
+ catch (CORBA::SystemException& se )
+ {
+ std::cerr << "System exception occurred during get_all_channels: "
+ << se << std::endl;
+ throw;
+ }
+
+ if( channelIdSeq->length() == 0 )
+ {
+ try
+ {
+ ec = factory->create_channel( init_qos, init_admin, id);
+ }
+ catch (CORBA::SystemException& se )
+ {
+ std::cerr << "System exception occurred during find_channel: "
+ << se << std::endl;
+ throw;
+ }
+ }
+ else {
+ try
+ {
+ ec = factory->get_event_channel(channelIdSeq[0]);
+ }
+ catch (CosNotifyChannelAdmin::ChannelNotFound& )
+ {
+ std::cerr << "ChannelNotFound: "
+ << channelIdSeq[0] << std::endl;
+ throw;
+ }
+
+ catch (CORBA::SystemException& se )
+ {
+ std::cerr << "System exception occurred during get_event_channel: "
+ << se << std::endl;
+ throw;
+ }
+ }
+
+ return ec._retn();
+}
+
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/consumer.cpp b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/consumer.cpp
new file mode 100755
index 00000000000..fd08aa2024c
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/consumer.cpp
@@ -0,0 +1,206 @@
+// $Id$
+
+#include "common.h"
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdlib.h"
+
+int runtime = 5; //sec
+
+
+namespace CosNotifyCommImpl{
+ class StructuredPushConsumer: public virtual POA_CosNotifyComm:: StructuredPushConsumer
+ {
+ public:
+ StructuredPushConsumer () : received_ (false) {};
+ virtual ~ StructuredPushConsumer () {};
+
+ void push_structured_event(
+ const CosNotification::StructuredEvent &event)
+ {
+ received_ = true;
+ std::cout << "Received an event...," << std::endl;
+ std::cout << "event.header.fixed_header.event_type.domain_name = "
+ << event.header.fixed_header.event_type.domain_name
+ << std::endl;
+ std::cout << "event.header.fixed_header.event_type.type_name = "
+ << event.header.fixed_header.event_type.type_name
+ << std::endl;
+ };
+
+ void disconnect_structured_push_consumer()
+ {};
+
+ void offer_change (
+ const CosNotification::EventTypeSeq &,
+ const CosNotification::EventTypeSeq &)
+ {};
+
+ bool received_events ()
+ {
+ return this->received_;
+ };
+
+ private:
+ bool received_;
+ };
+}
+
+int parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "t:");
+ int x;
+
+ while ((x = get_opts ()) != -1)
+ switch (x)
+ {
+ case 't':
+ runtime = ACE_OS::atoi (get_opts.optarg);
+ break;
+
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("usage: %s -t <runtime>\n"),
+ argv [0]),
+ -1);
+ }
+
+ return 0; // successful parse
+}
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ PortableServer::POAManager_var poa_manager;
+
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+
+ CORBA::Object_var poa_obj = orb->resolve_initial_references("RootPOA");
+ PortableServer::POA_var root_poa = PortableServer::POA::_narrow(poa_obj.in());
+
+ poa_manager = root_poa->the_POAManager();
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ poa_manager->activate();
+
+ /*Get event_channel*/
+ std::cout << "Get event_channel now" << std::endl;
+ CosNotifyChannelAdmin::EventChannel_var ec = get_event_channel(orb.in());
+
+ //Instanciating the Consumer
+ CosNotifyComm::StructuredPushConsumer_var spc =
+ CosNotifyComm::StructuredPushConsumer::_nil();
+
+ CosNotifyCommImpl::StructuredPushConsumer *pImpl_spc = new CosNotifyCommImpl::StructuredPushConsumer;
+ spc = pImpl_spc->_this();
+
+ //Obtain a Consumer Admin
+ CosNotifyChannelAdmin::AdminID adminid = 0;
+ CosNotifyChannelAdmin::ConsumerAdmin_var ca =
+ ec->new_for_consumers (CosNotifyChannelAdmin::AND_OP, adminid);
+
+ if( ca.in() == CosNotifyChannelAdmin::ConsumerAdmin::_nil() ){
+ std::cerr << "ca is nil!" << std::endl;
+ return 1;
+ }
+
+ //Obtain a Proxy Consumer
+ CosNotifyChannelAdmin::ProxyID proxy_id;
+ CosNotifyChannelAdmin::ClientType ctype = CosNotifyChannelAdmin::STRUCTURED_EVENT;
+
+ CosNotifyChannelAdmin::ProxySupplier_var proxySupplier_obj;
+ try
+ {
+ proxySupplier_obj = ca->obtain_notification_push_supplier(ctype, proxy_id);
+ }
+ catch(CosNotifyChannelAdmin::AdminLimitExceeded err)
+ {
+ std::cerr << "CosNotifyChannelAdmin::AdminLimitExceeded Exception!" << std::endl;
+ throw;
+ }
+
+ CosNotifyChannelAdmin::StructuredProxyPushSupplier_var pps =
+ CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow(proxySupplier_obj.in());
+
+
+ //Attaching a filter to pps
+ CosNotifyFilter::FilterFactory_var dff =
+ ec->default_filter_factory();
+
+ ACE_ASSERT(!CORBA::is_nil(dff.in()));
+
+ CosNotifyFilter::Filter_var filter = dff->create_filter("EXTENDED_TCL");
+
+ CosNotification::EventTypeSeq event_types(1);
+ event_types.length(2);
+
+ event_types[0].domain_name = CORBA::string_dup("Test_domain");
+ event_types[0].type_name = CORBA::string_dup("Test_type_name");
+ event_types[1].domain_name = CORBA::string_dup("DomainB");
+ event_types[1].type_name = CORBA::string_dup("TypeB");
+
+ CosNotifyFilter::ConstraintExpSeq constraints(1);
+ constraints.length(1);
+
+ constraints[0].event_types = event_types;
+ constraints[0].constraint_expr = CORBA::string_dup(
+ "$data == 1 or $data == 2 or $data == 4");
+
+ filter->add_constraints(constraints);
+
+ pps->add_filter(filter.in());
+
+ std::cout << "Attached a filter to ProxyPushSupplier" << std::endl;
+ std::cout << "The filter's event_types[0].domain_name = " << event_types[0].domain_name << std::endl;
+ std::cout << "The filter's event_types[0].type_name = " << event_types[0].type_name << std::endl;
+ std::cout << "The filter's event_types[1].domain_name = " << event_types[1].domain_name << std::endl;
+ std::cout << "The filter's event_types[1].type_name = " << event_types[1].type_name << std::endl;
+ std::cout << "The filter's constraint_expr=" << constraints[0].constraint_expr << std::endl;
+
+ //Connecting a Supplier to a Proxy Consumer
+ try
+ {
+ pps->connect_structured_push_consumer(spc.in());
+ }
+ catch (CosEventChannelAdmin::AlreadyConnected ac)
+ {
+ std::cerr << "CosEventChannelAdmin::AlreadyConnected" << std::endl;
+ throw;
+ }
+ catch (CORBA::SystemException& se)
+ {
+ std::cerr << "System exception occurred during connect: " <<
+ se << std::endl;
+ throw;
+ }
+
+
+ ACE_Time_Value tv (runtime);
+ orb->run (tv);
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Consumer done.\n")));
+
+ if (pImpl_spc->received_events ())
+ {
+ //Consumer should not receive any events as the user defined constraint takes
+ //effect.
+ std::cerr << "Test failed - should not receive test events." << std::endl;
+ return 1;
+ }
+ else
+ {
+ std::cout << "Test passed - did not receive test events as expected." << std::endl;
+ }
+ }
+ catch(...)
+ {
+ std::cerr << "Consumer: Some exceptions was caught!" << std::endl;
+ return 1;
+ }
+
+
+ return 0;
+}
+
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/run_test.pl b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/run_test.pl
new file mode 100755
index 00000000000..51a709049b4
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/run_test.pl
@@ -0,0 +1,76 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+use strict;
+
+my $persistent_test = 0;
+my $notifyior = PerlACE::LocalFile("ecf.ior");
+my $port = PerlACE::uniqueid () + 10005;
+my $nts_ref = "NotifyService=iioploc://localhost:$port/NotifyService";
+my $svcconf = "";
+my $consumer_runtime = 10;
+
+my $NTS = new PerlACE::Process("../../../Notify_Service/Notify_Service",
+ "-ORBDebugLevel 1 ".
+ "-NoNameSvc -IORoutput $notifyior $svcconf " .
+ "-ORBEndpoint iiop://localhost:$port");
+my $SUPPLIER = new PerlACE::Process("supplier", "$nts_ref -ORBDebugLevel 1");
+my $CONSUMER = new PerlACE::Process("consumer", "$nts_ref -t $consumer_runtime");
+
+unlink($notifyior);
+
+
+print "\n*********** Starting the Notify_Service ***********\n\n";
+print $NTS->CommandLine ()."\n";
+
+$NTS->Spawn();
+if (PerlACE::waitforfile_timed($notifyior, 20) == -1) {
+ print STDERR "ERROR: waiting for the notify service to start\n";
+ $NTS->Kill();
+ exit(1);
+}
+
+print "\n*********** Starting the notification Consumer ***********\n\n";
+print STDERR $CONSUMER->CommandLine (). "\n";
+
+my $client = $CONSUMER->Spawn();
+if ($client != 0) {
+ $NTS->Kill();
+ exit(1);
+}
+
+sleep(5);
+
+print "\n*********** Starting the notification Supplier ***********\n\n";
+print STDERR $SUPPLIER->CommandLine (). "\n";
+
+my $server = $SUPPLIER->Spawn();
+if ($server != 0) {
+ $NTS->Kill();
+ $CONSUMER->Kill();
+ exit(1);
+}
+
+$server = $SUPPLIER->WaitKill(10);
+if ($server != 0) {
+ $NTS->Kill();
+ $CONSUMER->Kill();
+ exit(1);
+}
+
+$client = $CONSUMER->WaitKill(10);
+if ($client != 0) {
+ $NTS->Kill();
+ exit(1);
+}
+
+$NTS->Kill();
+
+unlink($notifyior);
+exit(0);
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/supplier.cpp b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/supplier.cpp
new file mode 100755
index 00000000000..5ee3773c559
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688_Regression/supplier.cpp
@@ -0,0 +1,156 @@
+// $Id$
+
+#include "common.h"
+#include "ace/OS.h"
+
+
+namespace CosNotifyCommImpl{
+ class StructuredPushSupplier: public virtual POA_CosNotifyComm:: StructuredPushSupplier
+ {
+ public:
+ void disconnect_structured_push_supplier()
+ {
+ };
+ void subscription_change( const CosNotification::EventTypeSeq&,
+ const CosNotification::EventTypeSeq&)
+ {};
+
+ };
+}
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ PortableServer::POAManager_var poa_manager;
+
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);
+
+ CORBA::Object_var poa_obj = orb->resolve_initial_references("RootPOA");
+ PortableServer::POA_var root_poa = PortableServer::POA::_narrow(poa_obj.in());
+
+ poa_manager = root_poa->the_POAManager();
+
+ poa_manager->activate();
+
+ /*Get event_channel*/
+ std::cout << "Create event_channel now" << std::endl;
+ CosNotifyChannelAdmin::EventChannel_var ec = get_event_channel(orb.in());
+
+ //Instanciating the Supplier
+ CosNotifyComm::StructuredPushSupplier_var sps =
+ CosNotifyComm::StructuredPushSupplier::_nil();
+
+
+ CosNotifyCommImpl::StructuredPushSupplier *pImpl_sps = new CosNotifyCommImpl::StructuredPushSupplier;
+ sps = pImpl_sps->_this();
+
+ //Obtain a Supplier Admin
+ CosNotifyChannelAdmin::SupplierAdmin_var sa = ec->default_supplier_admin();
+ if( sa.in() == CosNotifyChannelAdmin::SupplierAdmin::_nil() ){
+ std::cerr << "sa is nil!" << std::endl;
+ return 1;
+ }
+
+ //Obtain a Proxy Consumer
+ CosNotifyChannelAdmin::ProxyID proxy_id;
+ CosNotifyChannelAdmin::ClientType ctype = CosNotifyChannelAdmin::STRUCTURED_EVENT;
+
+ CosNotifyChannelAdmin::ProxyConsumer_var proxyCon_obj;
+ try
+ {
+ proxyCon_obj = sa->obtain_notification_push_consumer(ctype, proxy_id);
+ }
+ catch(CosNotifyChannelAdmin::AdminLimitExceeded err)
+ {
+ std::cerr << "CosNotifyChannelAdmin::AdminLimitExceeded Exception!" << std::endl;
+ throw;
+ }
+
+ CosNotifyChannelAdmin::StructuredProxyPushConsumer_var ppc =
+ CosNotifyChannelAdmin::StructuredProxyPushConsumer::_narrow(proxyCon_obj.in());
+
+ //Connecting a Supplier to a Proxy Consumer
+ try
+ {
+ ppc->connect_structured_push_supplier(sps.in());
+ }
+ catch (CosEventChannelAdmin::AlreadyConnected ac)
+ {
+ std::cerr << "CosEventChannelAdmin::AlreadyConnected" << std::endl;
+ throw;
+ }
+ catch (CORBA::SystemException& se)
+ {
+ std::cerr << "System exception occurred during connect: " <<
+ se << std::endl;
+ throw;
+ }
+
+
+ //Demo::demo_send_heart_beat(ppc);
+ //Send a Demo Notification
+
+ CosNotification::StructuredEvent event;
+
+ event.header.fixed_header.event_type.domain_name =
+ CORBA::string_dup("Test_domain");
+ event.header.fixed_header.event_type.type_name =
+ CORBA::string_dup("Test_type_name");
+ event.header.variable_header.length(0);
+
+ int data = 5;
+ event.filterable_data.length(1);
+ event.filterable_data[0].name = CORBA::string_dup ("data");
+ event.filterable_data[0].value <<= data;
+ event.remainder_of_body <<= data;
+
+ std::cout << "Sending a demo event...," << std::endl;
+ std::cout << "event.header.fixed_header.event_type.domain_name = "
+ << event.header.fixed_header.event_type.domain_name
+ << std::endl;
+ std::cout << "event.header.fixed_header.event_type.type_name = "
+ << event.header.fixed_header.event_type.type_name
+ << std::endl;
+ std::cout << "event.filterable_data: data=" << data << std::endl;
+
+
+ try{
+ ppc->push_structured_event(event);
+ }
+ catch (CORBA::SystemException& se)
+ {
+ std::cerr << "System exception occurred during push: "
+ << se << std::endl;
+ throw;
+ }
+ catch (CORBA::Exception&)
+ {
+ std::cerr << "Unknown exception occurred during push" << std::endl;
+ throw;
+ }
+
+ ACE_OS::sleep (5);
+
+ try{
+ ppc->disconnect_structured_push_consumer();
+ }
+ catch(CORBA::Exception&)
+ {
+ std::cerr << "Disconnect fail!" << std::endl;
+ }
+
+ orb->shutdown();
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Supplier done.\n")));
+ }
+ catch(...)
+ {
+ std::cerr << "Supplier: Some exceptions was caught!" << std::endl;
+ return 1;
+ }
+
+
+ return 0;
+}
+
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/Bug_3688b.mpc b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/Bug_3688b.mpc
new file mode 100644
index 00000000000..5d1188492dd
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/Bug_3688b.mpc
@@ -0,0 +1,21 @@
+// -*- MPC -*-
+// $Id$
+
+project (*lib): tao_notify_service, notify, taolib, portableserver, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ sharedname = bug3688
+ dynamicflags += BUG3688_BUILD_DLL
+
+ Source_Files {
+ DllORB.cpp
+ TestListener.cpp
+ TestBroadcaster.cpp
+ }
+}
+
+project (*Server): notify, taoserver, tao_notify_service, threads, avoids_corba_e_micro, avoids_corba_e_compact, avoids_minimum_corba {
+ libs += bug3688
+ after += *lib
+ Source_Files {
+ server.cpp
+ }
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/DllORB.cpp b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/DllORB.cpp
new file mode 100644
index 00000000000..ed3197a9021
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/DllORB.cpp
@@ -0,0 +1,228 @@
+// $Id$
+#include "DllORB.h"
+#include "ace/Barrier.h"
+#include "ace/Arg_Shifter.h"
+#include "ace/Argv_Type_Converter.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/TAO_Singleton_Manager.h"
+
+
+DllORB::DllORB ()
+ : failPrePostInit_ (3),
+ mp_barrier_ (0),
+ mv_orb_ (),
+ mv_rootPOA_ ()
+{
+}
+
+DllORB::~DllORB ()
+{
+ delete mp_barrier_;
+}
+
+int
+DllORB::init (int argc, ACE_TCHAR *argv[])
+{
+ int threadCnt = 1;
+
+ try
+ {
+ ACE_Arg_Shifter as (argc, argv);
+ const ACE_TCHAR *currentArg = 0;
+ while (as.is_anything_left ())
+ {
+ if ((currentArg = as.get_the_parameter (ACE_TEXT ("-NumThreads"))))
+ {
+ int num = ACE_OS::atoi (currentArg);
+ if (num >= 1)
+ threadCnt = num;
+ as.consume_arg ();
+ }
+ else
+ as.ignore_arg ();
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization ...\n")));
+ // -----------------------------------------------------------------
+ // Pre-ORB initialization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Make sure TAO's singleton manager is initialized, and set to not
+ // register itself with the ACE_Object_Manager since it is under the
+ // control of the Service Configurator. If we register with the
+ // ACE_Object_Manager, then the ACE_Object_Manager will still hold
+ // (dangling) references to instances of objects created by this
+ // module and destroyed by this object when it is dynamically
+ // unloaded.
+ int register_with_object_manager = 0;
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->init (register_with_object_manager);
+
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Pre-ORB initialization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Pre-ORB initialization done.\n")));
+ }
+ }
+
+ // Initialize the ORB
+ mv_orb_ = CORBA::ORB_init (argc, argv);
+ if (CORBA::is_nil (mv_orb_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil ORB\n")));
+ return -1;
+ }
+
+ CORBA::Object_var v_poa =
+ mv_orb_->resolve_initial_references ("RootPOA");
+
+ mv_rootPOA_ = PortableServer::POA::_narrow (v_poa.in ());
+ if (CORBA::is_nil (mv_rootPOA_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil RootPOA\n")));
+ return -1;
+ }
+
+ mv_poaManager_ = mv_rootPOA_->the_POAManager ();
+ if (CORBA::is_nil (mv_poaManager_.in ()))
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("nil POAManager\n")));
+ return -1;
+ }
+
+ mv_poaManager_->activate ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ mp_barrier_ = new ACE_Thread_Barrier (threadCnt + 1);
+
+ this->activate (THR_NEW_LWP|THR_JOINABLE|THR_INHERIT_SCHED, threadCnt);
+ mp_barrier_->wait ();
+
+ return 0;
+}
+
+
+int
+DllORB::fini ()
+{
+ try
+ {
+ mv_poaManager_->deactivate (1, 1);
+ mv_poaManager_ = PortableServer::POAManager::_nil ();
+
+ // attempt to protect against sporadic BAD_INV_ORDER exceptions
+ ACE_OS::sleep (ACE_Time_Value (0, 500));
+
+ mv_orb_->shutdown (1);
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ return -1;
+ }
+
+ // wait for our threads to finish
+ this->wait ();
+
+ delete mp_barrier_;
+ mp_barrier_ = 0;
+
+ try
+ {
+ mv_orb_->destroy ();
+ mv_orb_ = CORBA::ORB::_nil ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return -1;
+ }
+
+ if (failPrePostInit_ < 3)
+ {
+ // -----------------------------------------------------------------
+ // Post-ORB finalization steps necessary for proper DLL ORB
+ // support.
+ // -----------------------------------------------------------------
+ // Explicitly clean up singletons created by TAO before
+ // unloading this module.
+ TAO_Singleton_Manager * p_tsm = TAO_Singleton_Manager::instance ();
+ int result = p_tsm->fini ();
+ if (result == -1)
+ {
+ if (failPrePostInit_ == 0)
+ {
+ ACE_DEBUG ((LM_ERROR,
+ ACE_TEXT ("Post-ORB finalization failed.\n")));
+ return -1;
+ }
+ else if (failPrePostInit_ < 2)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization failed (ignored due to FailPrePostInit setting).\n")));
+ }
+ }
+ else
+ {
+ ACE_DEBUG ((LM_INFO,
+ ACE_TEXT ("Post-ORB finalization done.\n")));
+ }
+ }
+
+ return 0;
+}
+
+
+int DllORB::svc ()
+{
+ mp_barrier_->wait ();
+
+ int result = 0;
+
+ try
+ {
+ mv_orb_->run ();
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("ERROR: exception\n")));
+ result = 1;
+ }
+
+ return result;
+}
+
+
+ACE_FACTORY_DEFINE (bug3688, DllORB)
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/DllORB.h b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/DllORB.h
new file mode 100644
index 00000000000..4d9a562f20f
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/DllORB.h
@@ -0,0 +1,42 @@
+// $Id$
+#ifndef DLLORB_H
+#define DLLORB_H
+
+#include "ace/Task.h"
+#include "tao/ORB.h"
+#include "tao/PortableServer/PortableServer.h"
+#include "bug3688_export.h"
+
+ACE_BEGIN_VERSIONED_NAMESPACE_DECL
+class ACE_Thread_Barrier;
+ACE_END_VERSIONED_NAMESPACE_DECL
+
+class bug3688_Export DllORB: public ACE_Task_Base
+{
+public:
+ DllORB ();
+ virtual ~DllORB ();
+
+ inline CORBA::ORB_ptr orb () const
+ {
+ return CORBA::ORB::_duplicate (mv_orb_.in ());
+ }
+
+ virtual int init (int argc, ACE_TCHAR *argv[]);
+
+ virtual int fini ();
+
+protected:
+ virtual int svc ();
+
+private:
+ unsigned int failPrePostInit_;
+ ACE_Thread_Barrier* mp_barrier_;
+ CORBA::ORB_var mv_orb_;
+ PortableServer::POA_var mv_rootPOA_;
+ PortableServer::POAManager_var mv_poaManager_;
+};
+
+ACE_FACTORY_DECLARE (bug3688, DllORB)
+
+#endif /* DLLORB_H */
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.cpp b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.cpp
new file mode 100644
index 00000000000..f65a42384d2
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.cpp
@@ -0,0 +1,125 @@
+// $Id$
+#include "TestBroadcaster.h"
+
+
+TestBroadcaster::TestBroadcaster()
+{
+} /* end of TestBroadcaster::TestBroadcaster */
+
+
+TestBroadcaster::~TestBroadcaster()
+ throw()
+{
+ // ensure nothrow guarantee
+ try
+ {
+ disconnect();
+ } /* end of try */
+ catch(...)
+ {
+ }
+} /* end of TestBroadcaster::~TestBroadcaster */
+
+
+bool TestBroadcaster::connect(
+ CORBA::ORB_ptr p_orb,
+ std::string const & rc_channelIor
+)
+{
+ try
+ {
+ CosNotifyChannelAdmin::EventChannel_var v_eventChannel;
+ CosNotifyChannelAdmin::SupplierAdmin_var v_supplierAdmin;
+ CosNotifyChannelAdmin::ProxyConsumer_var v_proxyConsumer;
+ CosNotifyChannelAdmin::AdminID supplierAdminId;
+ CosNotifyChannelAdmin::ProxyID proxyConsumerId;
+
+ CORBA::Object_var v_obj = p_orb->string_to_object(rc_channelIor.c_str());
+
+ v_eventChannel = CosNotifyChannelAdmin::EventChannel::_narrow(v_obj.in());
+
+ v_supplierAdmin =
+ v_eventChannel->new_for_suppliers (
+ CosNotifyChannelAdmin::OR_OP,
+ supplierAdminId
+ );
+
+ v_proxyConsumer = v_supplierAdmin->obtain_notification_push_consumer(
+ CosNotifyChannelAdmin::SEQUENCE_EVENT,
+ proxyConsumerId
+ );
+
+ mv_sequenceProxyPushConsumer =
+ CosNotifyChannelAdmin::SequenceProxyPushConsumer::_narrow(
+ v_proxyConsumer.in()
+ );
+
+ mv_sequenceProxyPushConsumer->connect_sequence_push_supplier(
+ CosNotifyComm::SequencePushSupplier::_nil()
+ );
+ }
+ catch(...)
+ {
+ return false;
+ }
+
+ return true;
+} /* end of TestBroadcaster::connect */
+
+
+bool TestBroadcaster::disconnect()
+{
+ try
+ {
+ if(isConnected())
+ {
+ mv_sequenceProxyPushConsumer->disconnect_sequence_push_consumer();
+ mv_sequenceProxyPushConsumer = CosNotifyChannelAdmin::SequenceProxyPushConsumer_var();
+ }
+ } /* end of try */
+ catch(...)
+ {
+ return false;
+ }
+
+ return true;
+} /* end of TestBroadcaster::disconnect */
+
+
+bool TestBroadcaster::sendData( )
+{
+ try
+ {
+ CosNotification::EventBatch events;
+ events.length(5);
+
+ for (CORBA::ULong idx = 0, max = events.length(); idx < max; ++idx)
+ {
+ events[idx].header.fixed_header.event_type.domain_name = "Test";
+ events[idx].header.fixed_header.event_type.type_name = "Data";
+ events[idx].header.fixed_header.event_name = "Info";
+ events[idx].header.variable_header.length(0);
+
+ // provide filter criteria
+ events[idx].filterable_data.length(1);
+ events[idx].filterable_data[0].name = "data";
+ events[idx].filterable_data[0].value <<= idx;
+
+ events[idx].remainder_of_body <<= idx;
+ } /* end of for */
+
+ mv_sequenceProxyPushConsumer->push_structured_events(events);
+ }
+ catch(...)
+ {
+ return false;
+ }
+
+ return true;
+} /* end of TestBroadcaster::sendData */
+
+
+bool TestBroadcaster::isConnected() const
+{
+ return !CORBA::is_nil(mv_sequenceProxyPushConsumer.in());
+} /* end of TestBroadcaster::isConnected */
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.h b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.h
new file mode 100644
index 00000000000..a75caa09996
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestBroadcaster.h
@@ -0,0 +1,43 @@
+// $Id$
+#ifndef testBroadcaster_h
+#define testBroadcaster_h
+
+#include "bug3688_export.h"
+
+#include "orbsvcs/CosNotifyChannelAdminC.h"
+
+#include <string>
+
+class bug3688_Export TestBroadcaster
+{
+ // public types and methods
+ public:
+ /// Default constructor.
+ TestBroadcaster ( );
+
+ /// Destructor.
+ ~TestBroadcaster ( )
+ throw ();
+
+ bool connect(
+ CORBA::ORB_ptr p_orb,
+ std::string const & rc_channelIor
+ );
+
+ bool disconnect( );
+
+ bool isConnected( ) const;
+
+ bool sendData( );
+
+ // protected types and methods
+ protected:
+
+ // private methods and instance variables
+ private:
+ CosNotifyChannelAdmin::SequenceProxyPushConsumer_var mv_sequenceProxyPushConsumer;
+
+}; /* end of TestBroadcaster */
+
+
+#endif /* testBroadcaster_h */
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.cpp b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.cpp
new file mode 100644
index 00000000000..ef196c28fe9
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.cpp
@@ -0,0 +1,107 @@
+// $Id$
+#include "TestListener.h"
+
+TestListener::TestListener(
+ CORBA::ORB * p_orb,
+ std::string const & rc_channelIor,
+ std::string const & rc_filterExpression
+)
+{
+ CORBA::Object_var v_poa =
+ p_orb->resolve_initial_references("RootPOA");
+
+ mv_rootPOA = PortableServer::POA::_narrow (v_poa.in ());
+
+ PortableServer::ServantBase * p_servant = this;
+ mv_oid = mv_rootPOA->activate_object(p_servant);
+
+ mv_this = mv_rootPOA->id_to_reference(mv_oid.in());
+
+ CORBA::Object_var v_obj = p_orb->string_to_object(rc_channelIor.c_str());
+
+ mv_eventChannel = CosNotifyChannelAdmin::EventChannel::_narrow(v_obj.in());
+
+ mv_consumerAdmin = mv_eventChannel->new_for_consumers(
+ CosNotifyChannelAdmin::AND_OP,
+ m_consumerAdminId
+ );
+
+ CosNotifyFilter::FilterFactory_var v_filterFactory =
+ mv_eventChannel->default_filter_factory();
+
+ // setup a filter at the consumer admin
+ CosNotifyFilter::Filter_var v_filter =
+// v_filterFactory->create_filter("ETCL");
+ v_filterFactory->create_filter("EXTENDED_TCL");
+// v_filterFactory->create_filter("TCL");
+
+ CosNotifyFilter::ConstraintExpSeq constraintSeq(1);
+ constraintSeq.length(1);
+
+ // Set up constraint expression for new filter
+ constraintSeq[0].event_types.length(1);
+ constraintSeq[0].event_types[0].domain_name = "Test";
+ constraintSeq[0].event_types[0].type_name = "Data";
+ constraintSeq[0].constraint_expr = rc_filterExpression.c_str();
+
+ v_filter->add_constraints (constraintSeq);
+
+ mv_consumerAdmin->add_filter(v_filter.in());
+
+ v_obj = mv_rootPOA->id_to_reference(mv_oid.in());
+ mv_structuredPushConsumer = CosNotifyComm::StructuredPushConsumer::_narrow(v_obj.in());
+
+ CosNotifyChannelAdmin::ProxySupplier_var v_proxySupplier =
+ mv_consumerAdmin->obtain_notification_push_supplier(
+ CosNotifyChannelAdmin::STRUCTURED_EVENT,
+ m_proxySupplierId
+ );
+
+ mv_proxySupplier =
+ CosNotifyChannelAdmin::StructuredProxyPushSupplier::_narrow(
+ v_proxySupplier.in()
+ );
+
+ mv_proxySupplier->connect_structured_push_consumer(mv_structuredPushConsumer.in());
+}
+
+
+TestListener::~TestListener()
+{
+ if(!CORBA::is_nil(mv_proxySupplier.in()))
+ {
+ // calls to disconnect_structured_push_supplier implicitely destroy
+ // the proxy, so we must set the proxy reference as nil.
+ mv_proxySupplier->disconnect_structured_push_supplier();
+ mv_proxySupplier = CosNotifyChannelAdmin::StructuredProxyPushSupplier_var();
+ }
+
+ if(!CORBA::is_nil(mv_structuredPushConsumer.in()) && !CORBA::is_nil(mv_rootPOA.in()))
+ {
+ mv_rootPOA->deactivate_object(mv_oid.in());
+ }
+}
+
+
+void TestListener::push_structured_event (
+ const CosNotification::StructuredEvent & notification
+)
+{
+ CORBA::Long data;
+ notification.remainder_of_body >>= data;
+
+ m_receivedData.push_back(data);
+}
+
+
+void TestListener::disconnect_structured_push_consumer ( )
+{
+}
+
+
+void TestListener::offer_change(
+ const CosNotification::EventTypeSeq & ,
+ const CosNotification::EventTypeSeq &
+)
+{
+}
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.h b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.h
new file mode 100644
index 00000000000..90a5b3f2f88
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/TestListener.h
@@ -0,0 +1,51 @@
+// $Id$
+#ifndef testListener_h
+#define testListener_h
+
+#include "bug3688_export.h"
+
+#include <string>
+#include <vector>
+
+#include "orbsvcs/CosNotifyChannelAdminS.h"
+#include "orbsvcs/CosNotifyCommC.h"
+
+
+struct bug3688_Export TestListener
+:
+ public POA_CosNotifyComm::StructuredPushConsumer
+{
+ TestListener(
+ CORBA::ORB * p_orb,
+ std::string const & rc_channelIor,
+ std::string const & rc_filterExpression = ""
+ );
+
+ ~TestListener();
+
+ virtual void push_structured_event (
+ const CosNotification::StructuredEvent & notification
+ );
+
+ virtual void disconnect_structured_push_consumer ( );
+
+ virtual void offer_change(
+ const CosNotification::EventTypeSeq & added,
+ const CosNotification::EventTypeSeq & removed
+ );
+
+ PortableServer::POA_var mv_rootPOA;
+ PortableServer::ObjectId_var mv_oid;
+ CORBA::Object_var mv_this;
+ CosNotifyChannelAdmin::EventChannel_var mv_eventChannel;
+ CosNotifyChannelAdmin::ConsumerAdmin_var mv_consumerAdmin;
+ CosNotifyComm::StructuredPushConsumer_var mv_structuredPushConsumer;
+ CosNotifyChannelAdmin::StructuredProxyPushSupplier_var mv_proxySupplier;
+ CosNotifyChannelAdmin::ProxyID m_proxySupplierId;
+ CosNotifyChannelAdmin::AdminID m_consumerAdminId;
+
+ std::vector<CORBA::Long> m_receivedData;
+};
+
+
+#endif /* testListener_h */
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/bug3688_export.h b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/bug3688_export.h
new file mode 100644
index 00000000000..e21f515af82
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/bug3688_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl bug3688
+// ------------------------------
+#ifndef BUG3688_EXPORT_H
+#define BUG3688_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BUG3688_HAS_DLL)
+# define BUG3688_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BUG3688_HAS_DLL */
+
+#if !defined (BUG3688_HAS_DLL)
+# define BUG3688_HAS_DLL 1
+#endif /* ! BUG3688_HAS_DLL */
+
+#if defined (BUG3688_HAS_DLL) && (BUG3688_HAS_DLL == 1)
+# if defined (BUG3688_BUILD_DLL)
+# define bug3688_Export ACE_Proper_Export_Flag
+# define BUG3688_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BUG3688_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BUG3688_BUILD_DLL */
+# define bug3688_Export ACE_Proper_Import_Flag
+# define BUG3688_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BUG3688_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BUG3688_BUILD_DLL */
+#else /* BUG3688_HAS_DLL == 1 */
+# define bug3688_Export
+# define BUG3688_SINGLETON_DECLARATION(T)
+# define BUG3688_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BUG3688_HAS_DLL == 1 */
+
+// Set BUG3688_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BUG3688_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BUG3688_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BUG3688_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BUG3688_NTRACE */
+
+#if (BUG3688_NTRACE == 1)
+# define BUG3688_TRACE(X)
+#else /* (BUG3688_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BUG3688_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BUG3688_NTRACE == 1) */
+
+#endif /* BUG3688_EXPORT_H */
+
+// End of auto generated file.
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/run_test.pl b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/run_test.pl
new file mode 100755
index 00000000000..6bc1e008eb0
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/run_test.pl
@@ -0,0 +1,36 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+$file = PerlACE::LocalFile ("test.ior");
+
+unlink $file;
+
+if (PerlACE::is_vxworks_test()) {
+ $SV = new PerlACE::ProcessVX ("server", "");
+}
+else {
+ $SV = new PerlACE::Process ("server", "");
+}
+
+print STDERR "\n\n==== Running bug 3688b regression test\n";
+
+$SV->Spawn ();
+
+$collocated = $SV->WaitKill (15);
+
+if ($collocated != 0) {
+ print STDERR "ERROR: Bug_3688b_Regression returned $collocated\n";
+ $status = 1;
+}
+
+unlink $file;
+
+exit $status;
diff --git a/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp
new file mode 100644
index 00000000000..948e64a01fe
--- /dev/null
+++ b/TAO/orbsvcs/tests/Notify/Bug_3688b_Regression/server.cpp
@@ -0,0 +1,209 @@
+// $Id$
+
+#include "ace/Service_Config.h"
+#include "orbsvcs/Notify_Service/Notify_Service.h"
+#include "orbsvcs/CosNotifyChannelAdminC.h"
+#include "orbsvcs/CosNamingC.h"
+
+
+#include "DllORB.h"
+#include "TestListener.h"
+#include "TestBroadcaster.h"
+
+
+char const * const scpc_orbId = "testDllOrb";
+
+ACE_TCHAR const * const scpc_loadOrb = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testDllOrb",
+ "bug3688",
+ "_make_DllORB",
+ "testDllOrb -ORBDebugLevel 0 -ORBId testDllOrb -ORBDottedDecimalAddresses 1 -ORBInitRef NameService=file://naming.ior"
+);
+
+ACE_TCHAR const * const scpc_unloadOrb = ACE_REMOVE_SERVICE_DIRECTIVE("testDllOrb");
+
+ACE_TCHAR const * const scpc_loadNameService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNamingService",
+ "TAO_CosNaming_Serv",
+ "_make_TAO_Naming_Loader",
+ "testNameService testNameService -ORBId testDllOrb -m 0 -o naming.ior"
+);
+
+ACE_TCHAR const * const scpc_unloadNameService = ACE_REMOVE_SERVICE_DIRECTIVE("testNamingService");
+
+
+ACE_TCHAR const * const scpc_loadNotifyService = ACE_DYNAMIC_SERVICE_DIRECTIVE(
+ "testNotifyService",
+ "TAO_Notify_Service",
+ "_make_TAO_Notify_Service_Driver",
+ "-Channel -ChannelName Channel1 -ChannelName Channel2 -RunThreads 1 -ORBInitRef NameService=file://naming.ior -IORoutput notify.ior"
+);
+
+ACE_TCHAR const * const scpc_unloadNotifyService = ACE_REMOVE_SERVICE_DIRECTIVE("testNotifyService");
+
+
+
+int publish()
+{
+ int result = 0;
+
+ ACE_DEBUG((
+ LM_INFO,
+ ACE_TEXT ("(%P|%t) publish ...\n")
+ ));
+
+ DllORB * p_orb = ACE_Dynamic_Service<DllORB>::instance ("testDllOrb");
+ CORBA::ORB_var v_orb = p_orb->orb();
+
+
+ TestBroadcaster testBroadcaster;
+
+ testBroadcaster.connect(
+ v_orb.in(),
+ "corbaname:rir:#Channel1"
+ );
+
+ TestListener testListener(
+ v_orb.in(),
+ "corbaname:rir:#Channel1",
+ "$data == 1 or "
+ "$data == 2 or "
+ "$data == 4"
+ );
+
+ testBroadcaster.sendData();
+
+
+ ACE_DEBUG((
+ LM_INFO,
+ ACE_TEXT ("(%P|%t) testListener.m_receivedData.size()=%d\n"),
+ testListener.m_receivedData.size()
+ ));
+
+ result = testListener.m_receivedData.size() == 3 ? 0 : testListener.m_receivedData.size();
+
+ ACE_DEBUG((
+ LM_INFO,
+ ACE_TEXT ("(%P|%t) publish done\n")
+ ));
+
+ return result;
+}
+
+int loadunloadcycle()
+{
+ int result = 0;
+ int publish_result = 0;
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading ORB done\n")
+ ));
+
+ DllORB * p_orb =
+ ACE_Dynamic_Service<DllORB>::instance("testDllOrb");
+
+ CORBA::ORB_var v_orb = p_orb->orb();
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_orb OK\n")
+ ));
+
+ CORBA::Object_var v_poa =
+ v_orb->resolve_initial_references("RootPOA");
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_poa OK\n")
+ ));
+
+ PortableServer::POA_var v_rootPOA =
+ PortableServer::POA::_narrow(v_poa.in ());
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - v_rootPOA OK\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadNameService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading NamingService done\n")
+ ));
+
+ result = ACE_Service_Config::process_directive(scpc_loadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - loading NotifyService done\n")
+ ));
+
+ publish_result = publish();
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadNotifyService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NotifyService done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NameService ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadNameService);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading NameService done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB ...\n")
+ ));
+ result = ACE_Service_Config::process_directive(scpc_unloadOrb);
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) loadunloadcycle - unloading ORB done\n")
+ ));
+
+ return publish_result;
+}
+
+int ACE_TMAIN (int , ACE_TCHAR **)
+{
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - entered\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle ...\n")
+ ));
+
+ int result = loadunloadcycle();
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - cycle done\n")
+ ));
+
+ ACE_DEBUG((
+ LM_DEBUG,
+ ACE_TEXT ("(%P|%t) main - leaving\n")
+ ));
+
+ return result;
+}
diff --git a/TAO/orbsvcs/tests/Notify/Discarding/Sequence_Consumer.cpp b/TAO/orbsvcs/tests/Notify/Discarding/Sequence_Consumer.cpp
index 548b7cc248d..28740cd1d36 100644
--- a/TAO/orbsvcs/tests/Notify/Discarding/Sequence_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Discarding/Sequence_Consumer.cpp
@@ -143,7 +143,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
ACE_ASSERT(! CORBA::is_nil (sig.in ()));
diff --git a/TAO/orbsvcs/tests/Notify/Discarding/Structured_Consumer.cpp b/TAO/orbsvcs/tests/Notify/Discarding/Structured_Consumer.cpp
index 0932797a96c..e0993c96011 100644
--- a/TAO/orbsvcs/tests/Notify/Discarding/Structured_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Discarding/Structured_Consumer.cpp
@@ -137,7 +137,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/MC/Structured_Consumer.cpp b/TAO/orbsvcs/tests/Notify/MC/Structured_Consumer.cpp
index e92491f132f..1df0032fdbb 100644
--- a/TAO/orbsvcs/tests/Notify/MC/Structured_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/MC/Structured_Consumer.cpp
@@ -110,7 +110,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
MonitorTestInterface_var sig =
MonitorTestInterface::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/MC/test_monitor.cpp b/TAO/orbsvcs/tests/Notify/MC/test_monitor.cpp
index b2881392410..c01916d604d 100644
--- a/TAO/orbsvcs/tests/Notify/MC/test_monitor.cpp
+++ b/TAO/orbsvcs/tests/Notify/MC/test_monitor.cpp
@@ -273,7 +273,7 @@ ACE_TMAIN (int argc, ACE_TCHAR* argv[])
}
CORBA::Object_var obj =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (monitor_ior));
+ orb->string_to_object (monitor_ior);
CosNotification::NotificationServiceMonitorControl_var nsm =
CosNotification::NotificationServiceMonitorControl::_narrow (obj.in ());
diff --git a/TAO/orbsvcs/tests/Notify/MT_Dispatching/Structured_Consumer.cpp b/TAO/orbsvcs/tests/Notify/MT_Dispatching/Structured_Consumer.cpp
index 51d5e79fbd4..facf5ed49d5 100644
--- a/TAO/orbsvcs/tests/Notify/MT_Dispatching/Structured_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/MT_Dispatching/Structured_Consumer.cpp
@@ -133,7 +133,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
client.create_event_channel ("MyEventChannel", 1);
CORBA::Object_var object =
- client.orb ()->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ client.orb ()->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/Ordering/Sequence_Consumer.cpp b/TAO/orbsvcs/tests/Notify/Ordering/Sequence_Consumer.cpp
index 4e5ad4a400b..16015d954ac 100644
--- a/TAO/orbsvcs/tests/Notify/Ordering/Sequence_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Ordering/Sequence_Consumer.cpp
@@ -136,7 +136,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/Ordering/Structured_Consumer.cpp b/TAO/orbsvcs/tests/Notify/Ordering/Structured_Consumer.cpp
index b3e7984489b..ecf6941a992 100644
--- a/TAO/orbsvcs/tests/Notify/Ordering/Structured_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Ordering/Structured_Consumer.cpp
@@ -131,7 +131,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Sequence_Consumer.cpp b/TAO/orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Sequence_Consumer.cpp
index 078b3512fce..b28b7d70b8c 100644
--- a/TAO/orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Sequence_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Sequence_Multi_ETCL_Filter/Sequence_Consumer.cpp
@@ -145,7 +145,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/Sequence_Multi_Filter/Sequence_Consumer.cpp b/TAO/orbsvcs/tests/Notify/Sequence_Multi_Filter/Sequence_Consumer.cpp
index ae1eb6f7f2f..d88b6646b70 100644
--- a/TAO/orbsvcs/tests/Notify/Sequence_Multi_Filter/Sequence_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/Sequence_Multi_Filter/Sequence_Consumer.cpp
@@ -123,7 +123,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.cpp b/TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.cpp
index 91faa38d6bb..fb95de7463a 100644
--- a/TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.cpp
+++ b/TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.cpp
@@ -108,9 +108,7 @@ Notify_Test_Client::resolve_Notify_factory (void)
this->naming_context_->resolve (name);
this->notify_factory_ =
- CosNotifyChannelAdmin::EventChannelFactory::_narrow (
- obj.in ()
- );
+ CosNotifyChannelAdmin::EventChannelFactory::_narrow (obj.in ());
}
int
@@ -177,24 +175,20 @@ Notify_Test_Client::root_poa (void)
return this->root_poa_.in ();
}
-
CosNaming::NamingContext_ptr
Notify_Test_Client::naming_context (void)
{
return this->naming_context_.in ();
}
-
CosNotifyChannelAdmin::EventChannelFactory_ptr
Notify_Test_Client::notify_factory (void)
{
return this->notify_factory_.in ();
}
-
CosNotifyChannelAdmin::EventChannel_ptr
-Notify_Test_Client::create_event_channel (const char* cname,
- int resolve)
+Notify_Test_Client::create_event_channel (const char* cname, bool resolve)
{
CosNotifyChannelAdmin::EventChannel_var ec;
CosNaming::Name name (1);
@@ -221,7 +215,6 @@ Notify_Test_Client::create_event_channel (const char* cname,
initial_admin,
id);
-
naming_context_->rebind(name, ec.in());
}
diff --git a/TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.h b/TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.h
index f27c82a0dfd..8df3e0f673f 100644
--- a/TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.h
+++ b/TAO/orbsvcs/tests/Notify/lib/Notify_Test_Client.h
@@ -70,7 +70,7 @@ public:
CosNotifyChannelAdmin::EventChannel_ptr create_event_channel (
const char* name,
- int resolve
+ bool resolve
);
// Create an Event Channel. Ownership is passed to the caller.
diff --git a/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Sequence_Consumer.cpp b/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Sequence_Consumer.cpp
index 8d2e6657bc4..cac550ca29e 100644
--- a/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Sequence_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Sequence_Consumer.cpp
@@ -164,7 +164,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Structured_Consumer.cpp b/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Structured_Consumer.cpp
index 7d39cac8653..850a9061f4a 100644
--- a/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Structured_Consumer.cpp
+++ b/TAO/orbsvcs/tests/Notify/performance-tests/Filter/Structured_Consumer.cpp
@@ -163,7 +163,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
CORBA::ORB_ptr orb = client.orb ();
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
sig_var sig = sig::_narrow (object.in ());
diff --git a/TAO/orbsvcs/tests/Security/MT_SSLIOP/run_test_heavy.pl b/TAO/orbsvcs/tests/Security/MT_SSLIOP/run_test_heavy.pl
index f906696e1b5..f906696e1b5 100644..100755
--- a/TAO/orbsvcs/tests/Security/MT_SSLIOP/run_test_heavy.pl
+++ b/TAO/orbsvcs/tests/Security/MT_SSLIOP/run_test_heavy.pl
diff --git a/TAO/orbsvcs/tests/ior_corbaname/ior_corbaname_client_i.cpp b/TAO/orbsvcs/tests/ior_corbaname/ior_corbaname_client_i.cpp
index 7161b22f6aa..901bed185e4 100644
--- a/TAO/orbsvcs/tests/ior_corbaname/ior_corbaname_client_i.cpp
+++ b/TAO/orbsvcs/tests/ior_corbaname/ior_corbaname_client_i.cpp
@@ -78,8 +78,7 @@ IOR_corbaname_Client_i::run (void)
}
// Invoke a request on the server
- CORBA::Boolean ret_value =
- factory->print_status ();
+ CORBA::Boolean const ret_value = factory->print_status ();
if (!ret_value)
{
diff --git a/TAO/orbsvcs/tests/start_services b/TAO/orbsvcs/tests/start_services
deleted file mode 100755
index 5e01e8b85cd..00000000000
--- a/TAO/orbsvcs/tests/start_services
+++ /dev/null
@@ -1,112 +0,0 @@
-#! /bin/sh
-# $Id$
-
-# = TITLE
-# Restart script
-#
-# = AUTHOR
-# Michael Kircher (mk1@cs.wustl.edu)
-#
-# = DESCRIPTION
-# This script restarts the Naming, Scheduling and Event Service,
-# if "clean" is specified as a parameter, then the old
-# services are only killed and not restarted.
-
-usage="Usage: $0 [-s, to start Scheduling Service] | [clean]"
-
-#### ps options are platform-specific.
-if [ `uname -s` = 'SunOS' ]; then
- ps_opts=-ef
-else
- ps_opts=auxw
-fi
-
-#### Get the user name
-if [ "$LOGNAME" ]; then
- #### LOGNAME is preserved across su
- login=$LOGNAME
-else
- #### whoami returns the users login, which changes across su
- login=`whoami`
-fi
-
-#### Set TAO_ROOT, if it wasn't set.
-if [ ! "$TAO_ROOT" ]; then
- if [ "$ACE_ROOT" ]; then
- TAO_ROOT=$ACE_ROOT/TAO
- else
- echo $0: you must set ACE_ROOT or TAO_ROOT!
- exit 1
- fi
-fi
-
-#### Set up a signal handler.
-trap "/bin/rm -f /tmp/pids$login" 0 1 2 3 15
-
-if [ -s /tmp/nameservicepid_$login ]; then
- echo // Killing the old services
- kill `cat /tmp/nameservicepid_$login`
- /bin/rm /tmp/nameserviceior_$login /tmp/nameservicepid_$login
-fi
-
-ps $ps_opts | grep Service | grep $login | grep -v grep | cut -c10-17 > /tmp/pids$login
-
-if [ -s /tmp/pids$login ]; then
- pids=`cat /tmp/pids$login`
- kill $pids
-fi
-
-start_scheduling_service=0
-if [ "$1" ]; then
- #### Stop here if "start_services clean" was called
-
- case $1 in
- '-?' ) echo $usage; exit 0 ;;
- clean ) exit 0 ;;
- -s ) start_scheduling_service=1 ;;
- esac
-fi
-
-echo // Initializing the log file
-
-echo // Logfile for the script which startes Name and Event Service > /tmp/logfile_$login
-
-cd $TAO_ROOT/orbsvcs/Naming_Service
-echo $ ./Naming_Service \
- -o /tmp/nameserviceior_$login \
- -p /tmp/nameservicepid_$login >> /tmp/logfile_$login
-./Naming_Service \
- -o /tmp/nameserviceior_$login \
- -p /tmp/nameservicepid_$login > /tmp/logfile_Naming_Service_$login 2>&1 &
-
-sleep 8
-
-IOR=`cat /tmp/nameserviceior_$login`
-
-echo // The IOR of the Naming Service: $IOR
-
-echo // Started Naming Service on port $nameserviceport
-
-if [ $start_scheduling_service -eq 1 ]; then
- cd $TAO_ROOT/orbsvcs/Scheduling_Service
- echo $ ./Scheduling_Service -ORBInitRef NameService=$IOR >> /tmp/logfile_$login
- ./Scheduling_Service -ORBInitRef NameService=$IOR > /tmp/logfile_Scheduling_Service_$login 2>&1 &
- sleep 5
-
- echo // Started Scheduling Service on port $schedulerserviceport
-fi
-
-cd $TAO_ROOT/orbsvcs/Event_Service
-echo $ ./Event_Service -ORBInitRef NameService=$IOR >> /tmp/logfile_$login
-./Event_Service -ORBInitRef NameService=$IOR > /tmp/logfile_Event_Service_$login 2>&1 &
-
-echo // Started Event Service on port $eventserviceport
-
-echo "// Enjoy the use ;-)"
-ps $ps_opts | grep Service | grep -v grep
-
-echo
-echo Note: if you will be running an application that uses the Naming Service,
-echo you might want to set the NameService environment variable, like this:
-echo 't/csh: % setenv NameServiceIOR `cat /tmp/nameserviceior_'$login'`'
-echo 'bash: $ export NameServiceIOR=`cat /tmp/nameserviceior_'$login'`'
diff --git a/TAO/orbsvcs/tests/tests_svc_loader/tests_svc_loader.cpp b/TAO/orbsvcs/tests/tests_svc_loader/tests_svc_loader.cpp
index c346ecb4c22..75926732c39 100644
--- a/TAO/orbsvcs/tests/tests_svc_loader/tests_svc_loader.cpp
+++ b/TAO/orbsvcs/tests/tests_svc_loader/tests_svc_loader.cpp
@@ -55,7 +55,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv [])
// Use the first argument to create the object reference.
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (argv[1]));
+ orb->string_to_object (argv[1]);
// Check if this object reference is a valid one..
CORBA::Boolean not_exists =
diff --git a/TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp b/TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp
index 0c73afcacba..ea17e3cba50 100644
--- a/TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp
+++ b/TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.cpp
@@ -17,7 +17,7 @@ ACE_RCSID (AnyTypeCode,
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
-TAO::Unknown_IDL_Type::LOCK
+TAO::Unknown_IDL_Type::LOCK const
TAO::Unknown_IDL_Type::lock_i (void)
{
static LOCK base_lock_ (new ACE_Lock_Adapter<TAO_SYNCH_MUTEX>());
diff --git a/TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.h b/TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.h
index 27072edfb2b..058e25f707b 100644
--- a/TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.h
+++ b/TAO/tao/AnyTypeCode/Any_Unknown_IDL_Type.h
@@ -54,8 +54,7 @@ namespace TAO
virtual TAO_InputCDR &_tao_get_cdr (void);
virtual int _tao_byte_order (void) const;
- virtual void _tao_decode (TAO_InputCDR &
- );
+ virtual void _tao_decode (TAO_InputCDR &);
virtual CORBA::Boolean to_object (CORBA::Object_ptr &) const;
virtual CORBA::Boolean to_value (CORBA::ValueBase *&) const;
@@ -82,7 +81,7 @@ namespace TAO
typedef ACE_Refcounted_Auto_Ptr<ACE_Lock,
ACE_Lock_Adapter<TAO_SYNCH_MUTEX> >
LOCK;
- static LOCK lock_i (void);
+ static LOCK const lock_i (void);
LOCK const lock_;
mutable TAO_InputCDR cdr_;
};
diff --git a/TAO/tao/AnyTypeCode/Enum_TypeCode.cpp b/TAO/tao/AnyTypeCode/Enum_TypeCode.cpp
index 00bbd2c3474..503ab2b5c47 100644
--- a/TAO/tao/AnyTypeCode/Enum_TypeCode.cpp
+++ b/TAO/tao/AnyTypeCode/Enum_TypeCode.cpp
@@ -100,8 +100,7 @@ TAO::TypeCode::Enum<StringType,
char const * const lhs_name =
Traits<StringType>::get_string (lhs_enumerator);
- char const * const rhs_name = tc->member_name (i
- );
+ char const * const rhs_name = tc->member_name (i);
if (ACE_OS::strcmp (lhs_name, rhs_name) != 0)
return false;
diff --git a/TAO/tao/AnyTypeCode/Enum_TypeCode_Static.cpp b/TAO/tao/AnyTypeCode/Enum_TypeCode_Static.cpp
index 005de662c30..01fb53a3c4c 100644
--- a/TAO/tao/AnyTypeCode/Enum_TypeCode_Static.cpp
+++ b/TAO/tao/AnyTypeCode/Enum_TypeCode_Static.cpp
@@ -98,8 +98,7 @@ TAO::TypeCode::Enum<char const *,
char const * const lhs_name =
Traits<char const *>::get_string (lhs_enumerator);
- char const * const rhs_name = tc->member_name (i
- );
+ char const * const rhs_name = tc->member_name (i);
if (ACE_OS::strcmp (lhs_name, rhs_name) != 0)
return false;
diff --git a/TAO/tao/Asynch_Queued_Message.cpp b/TAO/tao/Asynch_Queued_Message.cpp
index 78ab196da73..9ee9a6e8739 100644
--- a/TAO/tao/Asynch_Queued_Message.cpp
+++ b/TAO/tao/Asynch_Queued_Message.cpp
@@ -28,7 +28,9 @@ TAO_Asynch_Queued_Message::TAO_Asynch_Queued_Message (
, abs_timeout_ (ACE_Time_Value::zero)
{
if (timeout != 0)// && *timeout != ACE_Time_Value::zero)
- this->abs_timeout_ = ACE_High_Res_Timer::gettimeofday_hr () + *timeout;
+ {
+ this->abs_timeout_ = ACE_High_Res_Timer::gettimeofday_hr () + *timeout;
+ }
// @@ Use a pool for these guys!!
ACE_NEW (this->buffer_, char[this->size_]);
diff --git a/TAO/tao/BiDir_GIOP/TAO_BiDir_GIOP.rc b/TAO/tao/BiDir_GIOP/TAO_BiDir_GIOP.rc
index 13c255b63ad..8b84d57f987 100644
--- a/TAO/tao/BiDir_GIOP/TAO_BiDir_GIOP.rc
+++ b/TAO/tao/BiDir_GIOP/TAO_BiDir_GIOP.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Block_Flushing_Strategy.cpp b/TAO/tao/Block_Flushing_Strategy.cpp
index f6ef164b948..397e4717006 100644
--- a/TAO/tao/Block_Flushing_Strategy.cpp
+++ b/TAO/tao/Block_Flushing_Strategy.cpp
@@ -27,19 +27,23 @@ TAO_Block_Flushing_Strategy::flush_message (TAO_Transport *transport,
{
while (!msg->all_data_sent ())
{
- if (transport->handle_output (max_wait_time) == -1)
+ TAO::Transport::Drain_Constraints dc(
+ max_wait_time, true);
+ if (transport->handle_output (dc) == -1)
return -1;
}
return 0;
}
int
-TAO_Block_Flushing_Strategy::flush_transport (TAO_Transport *transport
- , ACE_Time_Value *max_wait_time)
+TAO_Block_Flushing_Strategy::flush_transport (TAO_Transport *transport,
+ ACE_Time_Value *max_wait_time)
{
while (!transport->queue_is_empty ())
{
- if (transport->handle_output (max_wait_time) == -1)
+ TAO::Transport::Drain_Constraints dc(
+ max_wait_time, true);
+ if (transport->handle_output (dc) == -1)
return -1;
}
return 0;
diff --git a/TAO/tao/Bounded_Array_Sequence_T.h b/TAO/tao/Bounded_Array_Sequence_T.h
index 1702cd41dfe..f5e22bbf93d 100644
--- a/TAO/tao/Bounded_Array_Sequence_T.h
+++ b/TAO/tao/Bounded_Array_Sequence_T.h
@@ -53,7 +53,10 @@ public:
return impl_.length();
}
inline void length(CORBA::ULong length) {
- impl_.length(length);
+ if (MAX >= length)
+ {
+ impl_.length(length);
+ }
}
inline value_type const & operator[](CORBA::ULong i) const {
return impl_[i];
diff --git a/TAO/tao/Bounded_Basic_String_Sequence_T.h b/TAO/tao/Bounded_Basic_String_Sequence_T.h
index 14ca643f6e3..c36dcb19587 100644
--- a/TAO/tao/Bounded_Basic_String_Sequence_T.h
+++ b/TAO/tao/Bounded_Basic_String_Sequence_T.h
@@ -65,7 +65,10 @@ public:
/// @copydoc details::generic_sequence::length
inline void length(CORBA::ULong length) {
implementation_type::range::check_length(length, MAX);
- impl_.length(length);
+ if (MAX >= length)
+ {
+ impl_.length(length);
+ }
}
/// @copydoc details::generic_sequence::operator[]
inline const_element_type operator[](CORBA::ULong i) const {
diff --git a/TAO/tao/Bounded_Object_Reference_Sequence_T.h b/TAO/tao/Bounded_Object_Reference_Sequence_T.h
index 1a7860d0efa..77f266f727d 100644
--- a/TAO/tao/Bounded_Object_Reference_Sequence_T.h
+++ b/TAO/tao/Bounded_Object_Reference_Sequence_T.h
@@ -67,7 +67,10 @@ public:
/// @copydoc details::generic_sequence::length
inline void length(CORBA::ULong length) {
implementation_type::range::check_length(length, MAX);
- impl_.length(length);
+ if (MAX >= length)
+ {
+ impl_.length(length);
+ }
}
/// @copydoc details::generic_sequence::operator[]
inline const_element_type operator[](CORBA::ULong i) const {
diff --git a/TAO/tao/Bounded_Value_Sequence_T.h b/TAO/tao/Bounded_Value_Sequence_T.h
index 991b282a2e0..8d9c1a8d8fd 100644
--- a/TAO/tao/Bounded_Value_Sequence_T.h
+++ b/TAO/tao/Bounded_Value_Sequence_T.h
@@ -60,7 +60,10 @@ public:
/// @copydoc details::generic_sequence::length
inline void length(CORBA::ULong length) {
implementation_type::range::check_length(length, MAX);
- impl_.length(length);
+ if (MAX >= length)
+ {
+ impl_.length(length);
+ }
}
/// @copydoc details::generic_sequence::operator[]
inline value_type const & operator[](CORBA::ULong i) const {
diff --git a/TAO/tao/CORBALOC_Parser.cpp b/TAO/tao/CORBALOC_Parser.cpp
index ef74e74768d..901cd0159b3 100644
--- a/TAO/tao/CORBALOC_Parser.cpp
+++ b/TAO/tao/CORBALOC_Parser.cpp
@@ -51,9 +51,7 @@ TAO_CORBALOC_Parser::make_stub_from_mprofile (CORBA::ORB_ptr orb,
TAO_MProfile &mprofile)
{
// Create a TAO_Stub.
- TAO_Stub *data = orb->orb_core ()->create_stub ((const char *) 0,
- mprofile
- );
+ TAO_Stub *data = orb->orb_core ()->create_stub ((const char *) 0, mprofile);
TAO_Stub_Auto_Ptr safe_data (data);
diff --git a/TAO/tao/ClientRequestInterceptor_Adapter.h b/TAO/tao/ClientRequestInterceptor_Adapter.h
index 20b07e45377..446e5ef78e5 100644
--- a/TAO/tao/ClientRequestInterceptor_Adapter.h
+++ b/TAO/tao/ClientRequestInterceptor_Adapter.h
@@ -21,6 +21,7 @@
#include /**/ "ace/pre.h"
#include /**/ "tao/TAO_Export.h"
+#include "tao/RequestInterceptor_Adapter.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -61,6 +62,7 @@ namespace TAO
* specification/chapter.
*/
class TAO_Export ClientRequestInterceptor_Adapter
+ : public RequestInterceptor_Adapter
{
public:
virtual ~ClientRequestInterceptor_Adapter (void);
@@ -99,13 +101,10 @@ namespace TAO
PortableInterceptor::ClientRequestInterceptor_ptr interceptor,
const CORBA::PolicyList& policies) = 0;
- virtual void destroy_interceptors (void) = 0;
-
/// Convert TAO Invocation status to a PI status
virtual PortableInterceptor::ReplyStatus pi_reply_status (
TAO::Invocation_Base const &invocation_base) = 0;
};
-
}
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/CodecFactory/TAO_CodecFactory.rc b/TAO/tao/CodecFactory/TAO_CodecFactory.rc
index a234c757563..c3c3a5fc1d0 100644
--- a/TAO/tao/CodecFactory/TAO_CodecFactory.rc
+++ b/TAO/tao/CodecFactory/TAO_CodecFactory.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Compression/Base_Compressor.cpp b/TAO/tao/Compression/Base_Compressor.cpp
index d949a3c9b49..47ea5b3a1df 100644
--- a/TAO/tao/Compression/Base_Compressor.cpp
+++ b/TAO/tao/Compression/Base_Compressor.cpp
@@ -63,10 +63,10 @@ namespace TAO
ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->mutex_, 0);
if (this->uncompressed_bytes_ > 0)
{
- return_value =
- static_cast < ::Compression::CompressionRatio>(100 -
- (((CORBA::Double)this->uncompressed_bytes_ / this->compressed_bytes_) *
- (CORBA::Double)100));
+
+ return_value =
+ static_cast< ::Compression::CompressionRatio>
+ ((::Compression::CompressionRatio) this->compressed_bytes_ / this->uncompressed_bytes_);
}
}
return return_value;
diff --git a/TAO/tao/Compression/Compression.pidl b/TAO/tao/Compression/Compression.pidl
index 0fed028ce7c..3608abfea37 100644
--- a/TAO/tao/Compression/Compression.pidl
+++ b/TAO/tao/Compression/Compression.pidl
@@ -21,7 +21,7 @@ module Compression
*/
exception CompressionException
{
- unsigned long reason;
+ long reason;
string description;
};
@@ -63,7 +63,7 @@ module Compression
/**
* CompressionRatio type.
*/
- typedef long CompressionRatio;
+ typedef float CompressionRatio;
/**
* CompressionLevelId struc.
diff --git a/TAO/tao/Compression/TAO_Compression.rc b/TAO/tao/Compression/TAO_Compression.rc
index bcf4630f6a3..64faf0f88da 100644
--- a/TAO/tao/Compression/TAO_Compression.rc
+++ b/TAO/tao/Compression/TAO_Compression.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Compression/bzip2/TAO_Bzip2Compressor.rc b/TAO/tao/Compression/bzip2/TAO_Bzip2Compressor.rc
index 9b8c03bec79..a33d29f96ad 100644
--- a/TAO/tao/Compression/bzip2/TAO_Bzip2Compressor.rc
+++ b/TAO/tao/Compression/bzip2/TAO_Bzip2Compressor.rc
@@ -1,4 +1,4 @@
-#include "..\..\Version.h"
+#include "../../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Compression/lzo/TAO_LzoCompressor.rc b/TAO/tao/Compression/lzo/TAO_LzoCompressor.rc
index 9b8c03bec79..a33d29f96ad 100644
--- a/TAO/tao/Compression/lzo/TAO_LzoCompressor.rc
+++ b/TAO/tao/Compression/lzo/TAO_LzoCompressor.rc
@@ -1,4 +1,4 @@
-#include "..\..\Version.h"
+#include "../../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Compression/zlib/TAO_ZlibCompressor.rc b/TAO/tao/Compression/zlib/TAO_ZlibCompressor.rc
index 7b477f04351..90fcc9d0526 100644
--- a/TAO/tao/Compression/zlib/TAO_ZlibCompressor.rc
+++ b/TAO/tao/Compression/zlib/TAO_ZlibCompressor.rc
@@ -1,4 +1,4 @@
-#include "..\..\Version.h"
+#include "../../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Connection_Handler.cpp b/TAO/tao/Connection_Handler.cpp
index 852e8557e5b..269ffd38024 100644
--- a/TAO/tao/Connection_Handler.cpp
+++ b/TAO/tao/Connection_Handler.cpp
@@ -206,7 +206,9 @@ TAO_Connection_Handler::handle_output_eh (
return return_value;
}
- return_value = this->transport ()->handle_output (0);
+ // The default constraints are to never block.
+ TAO::Transport::Drain_Constraints dc;
+ return_value = this->transport ()->handle_output (dc);
this->pos_io_hook (return_value);
diff --git a/TAO/tao/DynamicAny/TAO_DynamicAny.rc b/TAO/tao/DynamicAny/TAO_DynamicAny.rc
index f8f1131c54d..cbae2d05f08 100644
--- a/TAO/tao/DynamicAny/TAO_DynamicAny.rc
+++ b/TAO/tao/DynamicAny/TAO_DynamicAny.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp b/TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp
index c66188f0f49..5cc472a9cf9 100644
--- a/TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp
+++ b/TAO/tao/DynamicInterface/AMH_DSI_Response_Handler.cpp
@@ -253,8 +253,7 @@ TAO_AMH_DSI_Exception_Holder::_tao_any_destructor (void *_tao_void_pointer)
CORBA::Boolean
TAO_AMH_DSI_Exception_Holder::_tao_unmarshal (
TAO_InputCDR &strm,
- TAO_AMH_DSI_Exception_Holder *&new_object
- )
+ TAO_AMH_DSI_Exception_Holder *&new_object)
{
CORBA::ValueBase *base = 0;
CORBA::ValueFactory_var factory;
@@ -265,7 +264,7 @@ TAO_AMH_DSI_Exception_Holder::_tao_unmarshal (
TAO_AMH_DSI_Exception_Holder::_tao_obv_static_repository_id ()
);
- if (retval == 0)
+ if (!retval)
{
return false;
}
diff --git a/TAO/tao/DynamicInterface/TAO_DynamicInterface.rc b/TAO/tao/DynamicInterface/TAO_DynamicInterface.rc
index 5cca9fe43d2..b958cb64868 100644
--- a/TAO/tao/DynamicInterface/TAO_DynamicInterface.rc
+++ b/TAO/tao/DynamicInterface/TAO_DynamicInterface.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/GIOP_Message_Base.cpp b/TAO/tao/GIOP_Message_Base.cpp
index 6e3d3fbf3bc..c93f6d9f35b 100644
--- a/TAO/tao/GIOP_Message_Base.cpp
+++ b/TAO/tao/GIOP_Message_Base.cpp
@@ -264,7 +264,7 @@ int
TAO_GIOP_Message_Base::format_message (TAO_OutputCDR &stream, TAO_Stub* stub)
{
this->set_giop_flags (stream);
-
+
bool log_msg = TAO_debug_level > 9;
#if defined (TAO_HAS_ZIOP) && TAO_HAS_ZIOP ==1
@@ -1437,25 +1437,6 @@ TAO_GIOP_Message_Base::
TAO_GIOP_MESSAGE_HEADER_LEN);
}
-#if 0
- // @@CJC I don't think we need this check b/c the transport's send()
- // will simply return -1. However, I guess we could create something
- // like TAO_Tranport::is_closed() that returns whether the connection
- // is already closed. The problem with that, however, is that it's
- // entirely possible that is_closed() could return TRUE, and then the
- // transport could get closed down btw. the time it gets called and the
- // time that the send actually occurs.
- ACE_HANDLE which = transport->handle ();
- if (which == ACE_INVALID_HANDLE)
- {
- if (TAO_debug_level > 0)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) TAO_GIOP_Message_Base::send_close_connection -")
- ACE_TEXT (" connection already closed\n")));
- return;
- }
-#endif
-
ACE_Data_Block data_block (TAO_GIOP_MESSAGE_HEADER_LEN,
ACE_Message_Block::MB_DATA,
close_message,
@@ -1473,7 +1454,7 @@ TAO_GIOP_Message_Base::
if (TAO_debug_level > 0)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("(%P|%t) error closing connection %u, errno = %d\n"),
- transport->id (), errno));
+ transport->id (), ACE_ERRNO_GET));
}
transport->close_connection ();
diff --git a/TAO/tao/IFR_Client/TAO_IFR_Client.rc b/TAO/tao/IFR_Client/TAO_IFR_Client.rc
index c981fee5b26..4cef05b72a6 100644
--- a/TAO/tao/IFR_Client/TAO_IFR_Client.rc
+++ b/TAO/tao/IFR_Client/TAO_IFR_Client.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/IIOP_Acceptor.cpp b/TAO/tao/IIOP_Acceptor.cpp
index d831ae84399..6e007a4e283 100644
--- a/TAO/tao/IIOP_Acceptor.cpp
+++ b/TAO/tao/IIOP_Acceptor.cpp
@@ -473,8 +473,8 @@ TAO_IIOP_Acceptor::open_i (const ACE_INET_Addr& addr,
if (TAO_debug_level > 0)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("TAO (%P|%t) - IIOP_Acceptor::open_i, ")
- ACE_TEXT ("%p, "),
- ACE_TEXT ("cannot open acceptor\n")));
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("cannot open acceptor")));
return -1;
}
}
@@ -559,8 +559,8 @@ TAO_IIOP_Acceptor::open_i (const ACE_INET_Addr& addr,
if (TAO_debug_level > 0)
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("TAO (%P|%t) - IIOP_Acceptor::open_i, ")
- ACE_TEXT ("%p"),
- ACE_TEXT ("cannot get local addr\n")));
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("cannot get local addr")));
return -1;
}
@@ -831,8 +831,8 @@ TAO_IIOP_Acceptor::dotted_decimal_address (const ACE_INET_Addr &addr,
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("TAO (%P|%t) - ")
ACE_TEXT ("IIOP_Acceptor::dotted_decimal_address, ")
- ACE_TEXT ("- %p, "),
- ACE_TEXT ("cannot determine hostname\n")));
+ ACE_TEXT ("- %p\n"),
+ ACE_TEXT ("cannot determine hostname")));
return -1;
}
diff --git a/TAO/tao/IIOP_Connection_Handler.cpp b/TAO/tao/IIOP_Connection_Handler.cpp
index 30e21eb609c..78c638a8aa7 100644
--- a/TAO/tao/IIOP_Connection_Handler.cpp
+++ b/TAO/tao/IIOP_Connection_Handler.cpp
@@ -515,8 +515,13 @@ TAO_IIOP_Connection_Handler::process_listen_point_list (
for (CORBA::ULong i = 0; i < len; ++i)
{
IIOP::ListenPoint listen_point = listen_list[i];
- ACE_INET_Addr addr (listen_point.port,
- listen_point.host.in ());
+
+ // since the supplied host/port could be unresolvable, the assigning
+ // constructor of the INET addr should not be as it will emit an error
+ // if the underlying set fails. An unresolvable address in this case
+ // is OK, as it will only be used to find an already cached transport.
+ ACE_INET_Addr addr;
+ (void)addr.set(listen_point.port, listen_point.host.in ());
if (TAO_debug_level > 0)
{
diff --git a/TAO/tao/IIOP_Endpoint.cpp b/TAO/tao/IIOP_Endpoint.cpp
index dca3bace0b9..5bb46b20d8d 100644
--- a/TAO/tao/IIOP_Endpoint.cpp
+++ b/TAO/tao/IIOP_Endpoint.cpp
@@ -11,6 +11,7 @@
#include "tao/IOPC.h"
#include "tao/debug.h"
#include "tao/ORB_Core.h"
+#include "tao/IIOP_Profile.h"
#include "ace/Log_Msg.h"
#include "ace/Guard_T.h"
@@ -411,14 +412,16 @@ static ACE_CString find_local(const ACE_Vector<ACE_CString>& local_ips,
return "";
}
-TAO_IIOP_Endpoint*
-TAO_IIOP_Endpoint::add_local_endpoint(TAO_IIOP_Endpoint* ep, const char* local)
+TAO_IIOP_Endpoint *
+TAO_IIOP_Endpoint::add_local_endpoint (TAO_IIOP_Endpoint *ep,
+ const char *local,
+ TAO_IIOP_Profile &profile)
{
- TAO_Endpoint* tmp = ep->duplicate();
- ep->next_ = static_cast<TAO_IIOP_Endpoint*>(tmp);
- ep->next_->is_encodable_ = true;
- ep->next_->preferred_path_.host = CORBA::string_dup(local);
- return ep->next_;
+ TAO_IIOP_Endpoint *tmp = static_cast<TAO_IIOP_Endpoint *> (ep->duplicate ());
+ tmp->is_encodable_ = true;
+ tmp->preferred_path_.host = local;
+ profile.add_endpoint (tmp);
+ return tmp;
}
static void
@@ -519,7 +522,9 @@ static void find_preferred_interfaces (const ACE_CString& host,
}
CORBA::ULong
-TAO_IIOP_Endpoint::preferred_interfaces (const char* csv, bool enforce)
+TAO_IIOP_Endpoint::preferred_interfaces (const char *csv,
+ bool enforce,
+ TAO_IIOP_Profile &profile)
{
ACE_Vector<ACE_CString> preferred;
find_preferred_interfaces(this->host_.in(), csv, preferred);
@@ -531,14 +536,14 @@ TAO_IIOP_Endpoint::preferred_interfaces (const char* csv, bool enforce)
TAO_IIOP_Endpoint* ep = this;
for (size_t i = 1; i < count; ++i)
{
- ep = add_local_endpoint(ep, preferred[i].c_str());
+ ep = add_local_endpoint (ep, preferred[i].c_str(), profile);
}
// If we're not enforcing the preferred interfaces, then we can just add
// a new non-preferred endpoint to the end with a default local addr.
if (! enforce)
{
- ep = add_local_endpoint(ep, "");
+ ep = add_local_endpoint (ep, "", profile);
}
else
{
diff --git a/TAO/tao/IIOP_Endpoint.h b/TAO/tao/IIOP_Endpoint.h
index 147b5f80a25..155796a60c8 100644
--- a/TAO/tao/IIOP_Endpoint.h
+++ b/TAO/tao/IIOP_Endpoint.h
@@ -34,6 +34,7 @@
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
class TAO_IIOP_Connection_Handler;
+class TAO_IIOP_Profile;
/**
* @class TAO_IIOP_Endpoint
@@ -175,16 +176,20 @@ private:
/// Generate preferred interfaces from the options passed in by the
/// user.
- CORBA::ULong preferred_interfaces (const char* csvPreferred, bool enforce);
+ CORBA::ULong preferred_interfaces (const char *csvPreferred,
+ bool enforce,
+ TAO_IIOP_Profile &profile);
/// Chain a new duplicate of ourself with the specified
/// local preferred interface.
- TAO_IIOP_Endpoint* add_local_endpoint(TAO_IIOP_Endpoint* ep, const char* local);
+ TAO_IIOP_Endpoint *add_local_endpoint (TAO_IIOP_Endpoint *ep,
+ const char *local,
+ TAO_IIOP_Profile &profile);
/// Canonical copy constructor
/**
* In private section to prevent clients from invoking this
- * accidentally. Clients should only use duplicate () to make a depp
+ * accidentally. Clients should only use duplicate () to make a deep
* copy
*/
TAO_IIOP_Endpoint (const TAO_IIOP_Endpoint &);
diff --git a/TAO/tao/IIOP_Profile.cpp b/TAO/tao/IIOP_Profile.cpp
index 1d096a191fb..e5bb5e7594d 100644
--- a/TAO/tao/IIOP_Profile.cpp
+++ b/TAO/tao/IIOP_Profile.cpp
@@ -58,6 +58,7 @@ TAO_IIOP_Profile::TAO_IIOP_Profile (const ACE_INET_Addr &addr,
version),
endpoint_ (addr,
orb_core->orb_params ()->use_dotted_decimal_addresses ()),
+ last_endpoint_ (&this->endpoint_),
count_ (1)
{
}
@@ -73,6 +74,7 @@ TAO_IIOP_Profile::TAO_IIOP_Profile (const char* host,
object_key,
version),
endpoint_ (host, port, addr),
+ last_endpoint_ (&this->endpoint_),
count_ (1)
{
}
@@ -83,6 +85,7 @@ TAO_IIOP_Profile::TAO_IIOP_Profile (TAO_ORB_Core *orb_core)
TAO_GIOP_Message_Version (TAO_DEF_GIOP_MAJOR,
TAO_DEF_GIOP_MINOR)),
endpoint_ (),
+ last_endpoint_ (&this->endpoint_),
count_ (1)
{
}
@@ -118,7 +121,7 @@ TAO_IIOP_Profile::decode_profile (TAO_InputCDR& cdr)
const char* csv = this->orb_core()->orb_params()->preferred_interfaces();
bool const enforce =
this->orb_core()->orb_params()->enforce_pref_interfaces();
- this->count_ += this->endpoint_.preferred_interfaces(csv, enforce);
+ this->count_ += this->endpoint_.preferred_interfaces(csv, enforce, *this);
return 1;
}
@@ -394,8 +397,8 @@ TAO_IIOP_Profile::endpoint_count (void) const
void
TAO_IIOP_Profile::add_endpoint (TAO_IIOP_Endpoint *endp)
{
- endp->next_ = this->endpoint_.next_;
- this->endpoint_.next_ = endp;
+ this->last_endpoint_->next_ = endp;
+ this->last_endpoint_ = endp;
++this->count_;
}
@@ -416,27 +419,35 @@ TAO_IIOP_Profile::remove_endpoint (TAO_IIOP_Endpoint *endp)
// since the assignment operator does not copy the next_
// pointer, we must do it by hand
this->endpoint_.next_ = n->next_;
+ if (this->last_endpoint_ == n)
+ {
+ this->last_endpoint_ = &this->endpoint_;
+ }
delete n;
}
return;
}
- TAO_IIOP_Endpoint* last = &this->endpoint_;
+ TAO_IIOP_Endpoint* prev = &this->endpoint_;
TAO_IIOP_Endpoint* cur = this->endpoint_.next_;
while (cur != 0)
{
if (cur == endp)
break;
- last = cur;
+ prev = cur;
cur = cur->next_;
}
if (cur != 0)
{
- last->next_ = cur->next_;
+ prev->next_ = cur->next_;
cur->next_ = 0;
--this->count_;
+ if (this->last_endpoint_ == cur)
+ {
+ this->last_endpoint_ = prev;
+ }
delete cur;
}
}
diff --git a/TAO/tao/IIOP_Profile.h b/TAO/tao/IIOP_Profile.h
index e085c48ff75..ebb886e9958 100644
--- a/TAO/tao/IIOP_Profile.h
+++ b/TAO/tao/IIOP_Profile.h
@@ -72,7 +72,7 @@ public:
/**
* Add @a endp to this profile's list of endpoints (it is inserted
- * next to the head of the list). This profiles takes ownership of
+ * at the end of the list). This profiles takes ownership of
* @a endp.
*/
void add_endpoint (TAO_IIOP_Endpoint *endp);
@@ -184,6 +184,9 @@ protected:
TAO_IIOP_Endpoint endpoint_;
+ /// For efficient insertion at the end of the list
+ TAO_IIOP_Endpoint *last_endpoint_;
+
/// Number of endpoints in the list headed by <endpoint_>.
CORBA::ULong count_;
diff --git a/TAO/tao/IIOP_Transport.cpp b/TAO/tao/IIOP_Transport.cpp
index 79f184cf52b..9683b4292e2 100644
--- a/TAO/tao/IIOP_Transport.cpp
+++ b/TAO/tao/IIOP_Transport.cpp
@@ -75,7 +75,7 @@ TAO_IIOP_Transport::send (iovec *iov, int iovcnt,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("TAO (%P|%t) - IIOP_Transport[%d]::send, ")
ACE_TEXT ("send failure (errno: %d) - %m\n"),
- this->id (), errno));
+ this->id (), ACE_ERRNO_GET));
}
}
@@ -88,7 +88,7 @@ TAO_IIOP_Transport::sendfile (TAO_MMAP_Allocator * allocator,
iovec * iov,
int iovcnt,
size_t &bytes_transferred,
- ACE_Time_Value const * timeout)
+ TAO::Transport::Drain_Constraints const & dc)
{
// @@ We should probably set the TCP_CORK socket option to minimize
// network operations. It may also be useful to adjust the
@@ -97,7 +97,7 @@ TAO_IIOP_Transport::sendfile (TAO_MMAP_Allocator * allocator,
// If we don't have an allocator, fallback to the regular way of sending
// data
if (allocator == 0)
- return this->send (iov, iovcnt, bytes_transferred, timeout);
+ return this->send (iov, iovcnt, bytes_transferred, this->io_timeout(dc));
// We can only use sendfile when all data is coming from the mmap allocator,
// if not, we just fallback to to the regular way of sending data
@@ -106,7 +106,8 @@ TAO_IIOP_Transport::sendfile (TAO_MMAP_Allocator * allocator,
for (iovec * index = off_check_begin; index != off_check_end; ++index)
{
if (-1 == allocator->offset (index->iov_base))
- return this->send (iov, iovcnt, bytes_transferred, timeout);
+ return this->send (iov, iovcnt, bytes_transferred,
+ this->io_timeout(dc));
}
ssize_t retval = -1;
@@ -125,17 +126,17 @@ TAO_IIOP_Transport::sendfile (TAO_MMAP_Allocator * allocator,
{
off_t offset = allocator->offset (i->iov_base);
- if (timeout)
+ if (this->io_timeout(dc))
{
int val = 0;
- if (ACE::enter_send_timedwait (out_fd, timeout, val) == -1)
+ if (ACE::enter_send_timedwait (out_fd,
+ this->io_timeout(dc), val) == -1)
return retval;
else
{
retval =
ACE_OS::sendfile (out_fd, in_fd, &offset, i->iov_len);
ACE::restore_non_blocking_mode (out_fd, val);
-
}
}
else
@@ -155,7 +156,7 @@ TAO_IIOP_Transport::sendfile (TAO_MMAP_Allocator * allocator,
ACE_TEXT ("TAO (%P|%t) - IIOP_Transport[%d]::sendfile, ")
ACE_TEXT ("sendfile failure - %m (errno: %d)\n"),
this->id (),
- errno));
+ ACE_ERRNO_GET));
}
return retval;
@@ -179,7 +180,7 @@ TAO_IIOP_Transport::recv (char *buf,
ACE_TEXT ("TAO (%P|%t) - IIOP_Transport[%d]::recv, ")
ACE_TEXT ("read failure - %m errno %d\n"),
this->id (),
- errno));
+ ACE_ERRNO_GET));
}
// Error handling
diff --git a/TAO/tao/IIOP_Transport.h b/TAO/tao/IIOP_Transport.h
index 65147cc9557..a908ed36d87 100644
--- a/TAO/tao/IIOP_Transport.h
+++ b/TAO/tao/IIOP_Transport.h
@@ -84,7 +84,7 @@ protected:
iovec * iov,
int iovcnt,
size_t &bytes_transferred,
- ACE_Time_Value const * timeout = 0);
+ TAO::Transport::Drain_Constraints const & dc);
#endif /* TAO_HAS_SENDFILE==1 */
diff --git a/TAO/tao/IORInterceptor/TAO_IORInterceptor.rc b/TAO/tao/IORInterceptor/TAO_IORInterceptor.rc
index 6ce65995cb2..2e3093c06a3 100644
--- a/TAO/tao/IORInterceptor/TAO_IORInterceptor.rc
+++ b/TAO/tao/IORInterceptor/TAO_IORInterceptor.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/IORManipulation/TAO_IORManip.rc b/TAO/tao/IORManipulation/TAO_IORManip.rc
index 9874dd6f19e..be205c8bb67 100644
--- a/TAO/tao/IORManipulation/TAO_IORManip.rc
+++ b/TAO/tao/IORManipulation/TAO_IORManip.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/IORTable/TAO_IORTable.rc b/TAO/tao/IORTable/TAO_IORTable.rc
index eb75c022a62..f80122bd7e4 100644
--- a/TAO/tao/IORTable/TAO_IORTable.rc
+++ b/TAO/tao/IORTable/TAO_IORTable.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/ImR_Client/ImR_Client.cpp b/TAO/tao/ImR_Client/ImR_Client.cpp
index 084e493427e..0d1335792ff 100644
--- a/TAO/tao/ImR_Client/ImR_Client.cpp
+++ b/TAO/tao/ImR_Client/ImR_Client.cpp
@@ -122,7 +122,18 @@ namespace TAO
TAO::Portable_Server::Non_Servant_Upcall non_servant_upcall (*poa);
ACE_UNUSED_ARG (non_servant_upcall);
- imr_locator->server_is_running (poa->name().c_str (),
+ ACE_CString serverId = poa->orb_core ().server_id ();
+ ACE_CString name;
+ if (serverId.empty ())
+ {
+ name = poa->name();
+ }
+ else
+ {
+ name = serverId + ":" + poa->name();
+ }
+
+ imr_locator->server_is_running (name.c_str (),
partial_ior.c_str(),
svr.in());
}
diff --git a/TAO/tao/ImR_Client/TAO_IMR_Client.rc b/TAO/tao/ImR_Client/TAO_IMR_Client.rc
index 64272160de5..64932985c91 100644
--- a/TAO/tao/ImR_Client/TAO_IMR_Client.rc
+++ b/TAO/tao/ImR_Client/TAO_IMR_Client.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Incoming_Message_Stack.h b/TAO/tao/Incoming_Message_Stack.h
index bb361c18e5e..07c35a6c660 100644
--- a/TAO/tao/Incoming_Message_Stack.h
+++ b/TAO/tao/Incoming_Message_Stack.h
@@ -21,7 +21,7 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x610)
+#if defined (__BORLANDC__) && (__BORLANDC__ < 0x620)
#include /**/ "tao/TAO_Export.h"
#endif
@@ -41,7 +41,7 @@ namespace TAO
* Internal class, providing stack functionality for TAO_Queued_Data
* objects. Stack operations don't require memory allocation.
*/
-#if defined (__BORLANDC__) && (__BORLANDC__ <= 0x610)
+#if defined (__BORLANDC__) && (__BORLANDC__ < 0x620)
class TAO_Export Incoming_Message_Stack
#else
class Incoming_Message_Stack
diff --git a/TAO/tao/Intrusive_Ref_Count_Handle_T.h b/TAO/tao/Intrusive_Ref_Count_Handle_T.h
index 0bf263cedce..c936b9e039d 100644
--- a/TAO/tao/Intrusive_Ref_Count_Handle_T.h
+++ b/TAO/tao/Intrusive_Ref_Count_Handle_T.h
@@ -117,7 +117,6 @@ public:
/// Always leaves the smart pointer in the "nil" state upon return.
T* _retn (void);
-
private:
/// Claim a "copy" of the reference-counted object by adding
@@ -132,7 +131,6 @@ private:
/// in the "nil" state upon its return.
void drop (void);
-
/// The underlying pointer to the (intrusively) reference-counted object.
/// Set to 0 when this smart pointer is in the "nil" state. Otherwise,
/// this smart pointer always owns a (reference-counted) "copy" of the
diff --git a/TAO/tao/Invocation_Adapter.cpp b/TAO/tao/Invocation_Adapter.cpp
index 0100e76592a..cb79b83a2d9 100644
--- a/TAO/tao/Invocation_Adapter.cpp
+++ b/TAO/tao/Invocation_Adapter.cpp
@@ -112,8 +112,8 @@ namespace TAO
if (TAO_debug_level > 2)
{
ACE_DEBUG ((LM_DEBUG,
- "TAO (%P|%t) - Invocation_Adapter::invoke_i, "
- "handling forwarded locations\n"));
+ ACE_TEXT("TAO (%P|%t) - Invocation_Adapter::invoke_i, ")
+ ACE_TEXT("handling forwarded locations\n")));
}
}
}
diff --git a/TAO/tao/Invocation_Base.cpp b/TAO/tao/Invocation_Base.cpp
index 916a1247e79..2a82fefcdff 100644
--- a/TAO/tao/Invocation_Base.cpp
+++ b/TAO/tao/Invocation_Base.cpp
@@ -9,19 +9,16 @@
#if TAO_HAS_INTERCEPTORS == 1
# include "tao/PortableInterceptorC.h"
-# include "tao/ClientRequestInterceptor_Adapter_Factory.h"
#endif /* TAO_HAS_INTERCEPTORS == 1 */
#if !defined (__ACE_INLINE__)
# include "tao/Invocation_Base.inl"
#endif /* __ACE_INLINE__ */
-
ACE_RCSID (tao,
Invocation_Base,
"$Id$")
-
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
namespace
@@ -47,7 +44,8 @@ namespace TAO
, target_ (t)
, stub_ (stub)
#if TAO_HAS_INTERCEPTORS == 1
- , adapter_ (stub->orb_core ()->clientrequestinterceptor_adapter ())
+ , cri_adapter_ (stub_->orb_core ()->clientrequestinterceptor_adapter ())
+ , sri_adapter_ (stub_->orb_core ()->serverrequestinterceptor_adapter ())
, stack_size_ (0)
, invoke_status_ (TAO_INVOKE_START)
, caught_exception_ (0)
@@ -58,7 +56,8 @@ namespace TAO
Invocation_Base::~Invocation_Base (void)
{
- TAO_INTERCEPTOR (adapter_ = 0);
+ TAO_INTERCEPTOR (cri_adapter_= 0);
+ TAO_INTERCEPTOR (sri_adapter_= 0);
}
TAO_Service_Context &
@@ -74,16 +73,15 @@ namespace TAO
}
#if TAO_HAS_INTERCEPTORS == 1
-
Invocation_Status
Invocation_Base::send_request_interception (void)
{
- if (adapter_ != 0)
+ if (cri_adapter_)
{
try
{
// This is a begin interception point
- this->adapter_->send_request (*this);
+ this->cri_adapter_->send_request (*this);
}
catch ( ::CORBA::Exception& ex)
{
@@ -98,6 +96,12 @@ namespace TAO
if (this->reply_status_ == GIOP::LOCATION_FORWARD)
return TAO_INVOKE_RESTART;
+
+ this->cri_adapter_->pushTSC (this->stub_->orb_core ());
+ }
+ else if (sri_adapter_)
+ {
+ this->sri_adapter_->pushTSC (this->stub_->orb_core ());
}
// What are the other cases??
@@ -107,11 +111,12 @@ namespace TAO
Invocation_Status
Invocation_Base::receive_reply_interception (void)
{
- if (adapter_ != 0)
+ if (cri_adapter_)
{
try
{
- this->adapter_->receive_reply (*this);
+ this->cri_adapter_->popTSC (this->stub_->orb_core ());
+ this->cri_adapter_->receive_reply (*this);
}
catch ( ::CORBA::Exception& ex)
{
@@ -127,6 +132,10 @@ namespace TAO
if (this->reply_status_ == GIOP::LOCATION_FORWARD)
return TAO_INVOKE_RESTART;
}
+ else if (sri_adapter_)
+ {
+ this->sri_adapter_->popTSC (this->stub_->orb_core ());
+ }
return TAO_INVOKE_SUCCESS;
}
@@ -134,11 +143,12 @@ namespace TAO
Invocation_Status
Invocation_Base::receive_other_interception (void)
{
- if (adapter_ != 0)
+ if (cri_adapter_)
{
try
{
- this->adapter_->receive_other (*this);
+ this->cri_adapter_->popTSC (this->stub_->orb_core ());
+ this->cri_adapter_->receive_other (*this);
}
catch ( ::CORBA::Exception& ex)
{
@@ -154,6 +164,10 @@ namespace TAO
if (this->reply_status_ == GIOP::LOCATION_FORWARD)
return TAO_INVOKE_RESTART;
}
+ else if (sri_adapter_)
+ {
+ this->sri_adapter_->popTSC (this->stub_->orb_core ());
+ }
return TAO_INVOKE_SUCCESS;
}
@@ -166,9 +180,10 @@ namespace TAO
PortableInterceptor::ReplyStatus status =
PortableInterceptor::SYSTEM_EXCEPTION;
- if (adapter_ != 0)
+ if (cri_adapter_)
{
- this->adapter_->receive_exception (*this);
+ this->cri_adapter_->popTSC (this->stub_->orb_core ());
+ this->cri_adapter_->receive_exception (*this);
if (this->reply_status_ == GIOP::LOCATION_FORWARD)
{
@@ -176,9 +191,13 @@ namespace TAO
}
else
{
- status = this->adapter_->pi_reply_status (*this);
+ status = this->cri_adapter_->pi_reply_status (*this);
}
}
+ else if (sri_adapter_)
+ {
+ this->sri_adapter_->popTSC (this->stub_->orb_core ());
+ }
return status;
}
@@ -191,11 +210,16 @@ namespace TAO
PortableInterceptor::ReplyStatus status =
PortableInterceptor::SYSTEM_EXCEPTION;
- if (adapter_ != 0)
+ if (cri_adapter_)
{
- this->adapter_->receive_exception (*this);
+ this->cri_adapter_->popTSC (this->stub_->orb_core ());
+ this->cri_adapter_->receive_exception (*this);
- status = this->adapter_->pi_reply_status (*this);
+ status = this->cri_adapter_->pi_reply_status (*this);
+ }
+ else if (sri_adapter_)
+ {
+ this->sri_adapter_->popTSC (this->stub_->orb_core ());
}
return status;
@@ -217,9 +241,9 @@ namespace TAO
PortableInterceptor::ReplyStatus
Invocation_Base::pi_reply_status (void) const
{
- if (adapter_ != 0)
+ if (cri_adapter_)
{
- return this->adapter_->pi_reply_status (*this);
+ return this->cri_adapter_->pi_reply_status (*this);
}
else
{
diff --git a/TAO/tao/Invocation_Base.h b/TAO/tao/Invocation_Base.h
index c3bc74eca7f..30994abd0ee 100644
--- a/TAO/tao/Invocation_Base.h
+++ b/TAO/tao/Invocation_Base.h
@@ -29,6 +29,7 @@
#include "tao/Exception.h"
#include "tao/PI_ForwardC.h"
#include "tao/ClientRequestInterceptor_Adapter.h"
+#include "tao/ServerRequestInterceptor_Adapter.h"
#endif /* TAO_HAS_INTERCEPTORS == 1 */
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -55,7 +56,6 @@ namespace TAO
* are required for PortableInterceptors to function
* correctly. Further this class also provides some helper and
* accessor methods that are used by clients.
- *
*/
class TAO_Export Invocation_Base
{
@@ -144,7 +144,6 @@ namespace TAO
GIOP::ReplyStatusType reply_status_;
private:
-
Invocation_Base (const Invocation_Base&);
Invocation_Base & operator= (const Invocation_Base &);
@@ -219,7 +218,8 @@ namespace TAO
protected:
/// The client requestor adapter
- ClientRequestInterceptor_Adapter *adapter_;
+ ClientRequestInterceptor_Adapter *cri_adapter_;
+ ServerRequestInterceptor_Adapter *sri_adapter_;
size_t stack_size_;
diff --git a/TAO/tao/Leader_Follower.cpp b/TAO/tao/Leader_Follower.cpp
index 6f973fc9747..7524068d223 100644
--- a/TAO/tao/Leader_Follower.cpp
+++ b/TAO/tao/Leader_Follower.cpp
@@ -28,8 +28,7 @@ TAO_Leader_Follower::~TAO_Leader_Follower (void)
{
while (!this->follower_free_list_.empty ())
{
- TAO_LF_Follower *follower =
- this->follower_free_list_.pop_front ();
+ TAO_LF_Follower *follower = this->follower_free_list_.pop_front ();
delete follower;
}
// Hand the reactor back to the resource factory.
@@ -64,8 +63,7 @@ TAO_Leader_Follower::release_follower (TAO_LF_Follower *follower)
int
TAO_Leader_Follower::elect_new_leader_i (void)
{
- TAO_LF_Follower* const follower =
- this->follower_set_.head ();
+ TAO_LF_Follower* const follower = this->follower_set_.head ();
#if defined (TAO_DEBUG_LEADER_FOLLOWER)
ACE_DEBUG ((LM_DEBUG,
@@ -93,7 +91,8 @@ TAO_Leader_Follower::wait_for_client_leader_to_complete (ACE_Time_Value *max_wai
if (this->event_loop_threads_condition_.wait () == -1)
{
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("TAO (%P|%t): TAO_Leader_Follower::wait_for_client_leader_to_complete - ")
+ ACE_TEXT ("TAO (%P|%t): TAO_Leader_Follower::")
+ ACE_TEXT ("wait_for_client_leader_to_complete - ")
ACE_TEXT ("Condition variable wait failed\n")));
result = -1;
@@ -108,7 +107,8 @@ TAO_Leader_Follower::wait_for_client_leader_to_complete (ACE_Time_Value *max_wai
{
if (errno != ETIME)
ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("TAO (%P|%t): TAO_Leader_Follower::wait_for_client_leader_to_complete - ")
+ ACE_TEXT ("TAO (%P|%t): TAO_Leader_Follower::")
+ ACE_TEXT ("wait_for_client_leader_to_complete - ")
ACE_TEXT ("Condition variable wait failed\n")));
result = -1;
diff --git a/TAO/tao/LocalObject.h b/TAO/tao/LocalObject.h
index 9d81a143ce8..35da4735bcb 100644
--- a/TAO/tao/LocalObject.h
+++ b/TAO/tao/LocalObject.h
@@ -174,6 +174,9 @@ namespace CORBA
};
} // End CORBA namespace
+
+//FUZZ: disable check_for_TAO_Local_RefCounted_Object
+
#if !defined (ACE_LACKS_DEPRECATED_MACROS)
/**
* @brief This class is there to keep backwards compatibility to the
@@ -202,6 +205,8 @@ class TAO_Export TAO_Local_RefCounted_Object
};
#endif
+//FUZZ: enable check_for_TAO_Local_RefCounted_Object
+
TAO_END_VERSIONED_NAMESPACE_DECL
#if defined (__ACE_INLINE__)
diff --git a/TAO/tao/LocalObject.inl b/TAO/tao/LocalObject.inl
index 6f04ad71ab6..190daa55590 100644
--- a/TAO/tao/LocalObject.inl
+++ b/TAO/tao/LocalObject.inl
@@ -42,6 +42,8 @@ CORBA::LocalObject::LocalObject (void)
{
}
+//FUZZ: disable check_for_TAO_Local_RefCounted_Object
+
#if !defined (ACE_LACKS_DEPRECATED_MACROS)
ACE_INLINE
TAO_Local_RefCounted_Object::TAO_Local_RefCounted_Object (void)
@@ -49,4 +51,6 @@ TAO_Local_RefCounted_Object::TAO_Local_RefCounted_Object (void)
}
#endif
+//FUZZ: enable check_for_TAO_Local_RefCounted_Object
+
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/LocateRequest_Invocation.cpp b/TAO/tao/LocateRequest_Invocation.cpp
index e64ab434271..3d97edf6d61 100644
--- a/TAO/tao/LocateRequest_Invocation.cpp
+++ b/TAO/tao/LocateRequest_Invocation.cpp
@@ -21,6 +21,43 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
namespace TAO
{
+ /**
+ * @class First_Request_Guard
+ *
+ * @brief Auto pointer like class for first_request flag in transport.
+ *
+ * Since codeset service context is only sent in the first request it might
+ * happen that after LocateRequest (which doesn't include service context)
+ * no codeset negotiation happens in subsequent calls. In this respect
+ * LocateRequest is not the first request and thus First_Request_Guard
+ * restores first_request in transport to its original state.
+ */
+ class First_Request_Guard
+ {
+ public:
+ First_Request_Guard (TAO_Transport &transport);
+
+ ~First_Request_Guard (void);
+
+ private:
+ /// The transport that we guard.
+ TAO_Transport &transport_;
+
+ /// Original value of first_request from transport.
+ bool is_first_;
+ };
+
+ First_Request_Guard::First_Request_Guard (TAO_Transport &transport)
+ : transport_ (transport)
+ {
+ this->is_first_ = this->transport_.first_request ();
+ }
+
+ First_Request_Guard::~First_Request_Guard (void)
+ {
+ this->transport_.first_request_sent (this->is_first_);
+ }
+
LocateRequest_Invocation::LocateRequest_Invocation (
CORBA::Object_ptr otarget,
Profile_Transport_Resolver &resolver,
@@ -70,6 +107,9 @@ namespace TAO
transport->output_cdr_lock (), TAO_INVOKE_FAILURE);
TAO_OutputCDR &cdr = transport->out_stream ();
+ // This must restore first_request flag after message is sent.
+ First_Request_Guard fr_quard (*transport);
+
TAO_Target_Specification tspec;
this->init_target_spec (tspec, cdr);
diff --git a/TAO/tao/LocateRequest_Invocation_Adapter.cpp b/TAO/tao/LocateRequest_Invocation_Adapter.cpp
index 0c7fb2c8a75..b40480266dc 100644
--- a/TAO/tao/LocateRequest_Invocation_Adapter.cpp
+++ b/TAO/tao/LocateRequest_Invocation_Adapter.cpp
@@ -55,8 +55,7 @@ namespace TAO
Invocation_Status s = TAO_INVOKE_START;
- while (s == TAO_INVOKE_START ||
- s == TAO_INVOKE_RESTART)
+ while (s == TAO_INVOKE_START || s == TAO_INVOKE_RESTART)
{
Profile_Transport_Resolver resolver (effective_target.in (), stub, true);
diff --git a/TAO/tao/Makefile.am b/TAO/tao/Makefile.am
index 2b3c526cee3..bd1ae44a9e9 100644
--- a/TAO/tao/Makefile.am
+++ b/TAO/tao/Makefile.am
@@ -913,6 +913,7 @@ libTAO_la_SOURCES = \
Remote_Object_Proxy_Broker.cpp \
Reply_Dispatcher.cpp \
Request_Dispatcher.cpp \
+ RequestInterceptor_Adapter.cpp \
Resource_Factory.cpp \
Resume_Handle.cpp \
ServerRequestInterceptor_Adapter.cpp \
@@ -1228,6 +1229,7 @@ nobase_include_HEADERS = \
LongSeqS.h \
MCAST_Parser.h \
MCAST_Parser.inl \
+ Message_Semantics.h \
MMAP_Allocator.h \
MM_Sequence_Iterator_T.h \
MProfile.h \
@@ -1352,6 +1354,7 @@ nobase_include_HEADERS = \
Reply_Dispatcher.h \
Reply_Dispatcher.inl \
Request_Dispatcher.h \
+ RequestInterceptor_Adapter.h \
Resource_Factory.h \
Resume_Handle.h \
Resume_Handle.inl \
@@ -1452,6 +1455,8 @@ nobase_include_HEADERS = \
UB_String_Argument_T.h \
UB_String_Argument_T.inl \
UB_String_Arguments.h \
+ Unbounded_BD_String_Sequence_T.h \
+ Bounded_BD_String_Sequence_T.h \
ULongLongSeq.pidl \
ULongLongSeq.pidl \
ULongLongSeqC.h \
@@ -2383,7 +2388,8 @@ libTAO_PI_la_SOURCES = \
PI/ProcessingModePolicyC.cpp \
PI/RequestInfoA.cpp \
PI/RequestInfoC.cpp \
- PI/RequestInfo_Util.cpp
+ PI/RequestInfo_Util.cpp \
+ PI/RequestInterceptor_Adapter_Impl.cpp
libTAO_PI_la_LDFLAGS = \
-version-number @TAO_MAJOR@:@TAO_MINOR@:@TAO_BETA@
@@ -2478,6 +2484,7 @@ nobase_include_HEADERS += \
PI/RequestInfoC.h \
PI/RequestInfoS.h \
PI/RequestInfo_Util.h \
+ PI/RequestInterceptor_Adapter_Impl.h \
PI/pi_export.h
pkgconfig_DATA += \
diff --git a/TAO/tao/Messaging/Messaging_Queueing_Strategies.cpp b/TAO/tao/Messaging/Messaging_Queueing_Strategies.cpp
index bdb72ef54fc..daf835d2cf7 100644
--- a/TAO/tao/Messaging/Messaging_Queueing_Strategies.cpp
+++ b/TAO/tao/Messaging/Messaging_Queueing_Strategies.cpp
@@ -113,7 +113,7 @@ namespace TAO
}
// Compute the next deadline...
- ACE_Time_Value now = ACE_OS::gettimeofday ();
+ ACE_Time_Value const now = ACE_OS::gettimeofday ();
ACE_Time_Value timeout =
this->time_conversion (buffering_constraint.timeout);
new_deadline = now + timeout;
diff --git a/TAO/tao/Messaging/TAO_Messaging.rc b/TAO/tao/Messaging/TAO_Messaging.rc
index 033271a4631..27cf97078dd 100644
--- a/TAO/tao/Messaging/TAO_Messaging.rc
+++ b/TAO/tao/Messaging/TAO_Messaging.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/ORB.cpp b/TAO/tao/ORB.cpp
index 6975aba2fad..7dca097ea4e 100644
--- a/TAO/tao/ORB.cpp
+++ b/TAO/tao/ORB.cpp
@@ -949,12 +949,15 @@ CORBA::ORB::resolve_initial_references (const char *name,
// Look for an environment variable called "<name>IOR".
//
+ static const char ior_string[] = "IOR";
+
CORBA::String_var ior_env_var_name =
- CORBA::string_alloc (static_cast<CORBA::ULong> (ACE_OS::strlen (name) + 3));
+ CORBA::string_alloc (
+ static_cast<CORBA::ULong> (ACE_OS::strlen (name) + sizeof (ior_string)));
ACE_OS::strcpy (ior_env_var_name.inout (), name);
- ACE_OS::strcat (ior_env_var_name.inout (), "IOR");
+ ACE_OS::strcat (ior_env_var_name.inout (), ior_string);
ACE_CString service_ior = ACE_OS::getenv (ior_env_var_name.in ());
diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp
index 3b7089d28aa..658135a32b8 100644
--- a/TAO/tao/ORB_Core.cpp
+++ b/TAO/tao/ORB_Core.cpp
@@ -1072,7 +1072,17 @@ TAO_ORB_Core::init (int &argc, char *argv[] )
arg_shifter.consume_arg ();
}
+ else if (0 != (current_arg = arg_shifter.get_the_parameter
+ (ACE_TEXT("-ORBForwardInvocationOnObjectNotExist"))))
+ {
+ int forward = ACE_OS::atoi (current_arg);
+ if (forward)
+ this->orb_params_.forward_invocation_on_object_not_exist (true);
+ else
+ this->orb_params_.forward_invocation_on_object_not_exist (false);
+ arg_shifter.consume_arg ();
+ }
////////////////////////////////////////////////////////////////
// catch any unknown -ORB args //
////////////////////////////////////////////////////////////////
@@ -1121,7 +1131,7 @@ TAO_ORB_Core::init (int &argc, char *argv[] )
ACE_ERROR ((LM_ERROR,
ACE_TEXT ("ERROR: Environment variable ")
ACE_TEXT ("TAO_ORBENDPOINT set to invalid value ")
- ACE_TEXT ("<%s>.\n"),
+ ACE_TEXT ("<%C>.\n"),
env_endpoint));
}
diff --git a/TAO/tao/ObjRefTemplate/TAO_ObjRefTemplate.rc b/TAO/tao/ObjRefTemplate/TAO_ObjRefTemplate.rc
index 7a2e46e5c0c..6a3a75062d5 100644
--- a/TAO/tao/ObjRefTemplate/TAO_ObjRefTemplate.rc
+++ b/TAO/tao/ObjRefTemplate/TAO_ObjRefTemplate.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h b/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h
index f63e902779a..49c03aeee71 100644
--- a/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h
+++ b/TAO/tao/PI/ClientRequestInterceptor_Adapter_Impl.h
@@ -33,6 +33,7 @@
#include "tao/PI/Interceptor_List_T.h"
#include "tao/PI/PI_includeC.h"
#include "tao/PI/ClientRequestDetails.h"
+#include "tao/PI/RequestInterceptor_Adapter_Impl.h"
#include "tao/ClientRequestInterceptor_Adapter.h"
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
@@ -62,9 +63,9 @@ namespace TAO
*/
class ClientRequestInterceptor_Adapter_Impl
: public ClientRequestInterceptor_Adapter
+ , public TAO_RequestInterceptor_Adapter_Impl
{
public:
-
ClientRequestInterceptor_Adapter_Impl (void);
/**
@@ -107,8 +108,12 @@ namespace TAO
virtual PortableInterceptor::ReplyStatus pi_reply_status (
TAO::Invocation_Base const &invocation_base);
- protected:
+ void popTSC (TAO_ORB_Core *orb_core)
+ {TAO_RequestInterceptor_Adapter_Impl::popTSC (orb_core);}
+ void pushTSC (TAO_ORB_Core *orb_core)
+ {TAO_RequestInterceptor_Adapter_Impl::pushTSC (orb_core);}
+ protected:
/// Process the given PortableInterceptor::ForwardRequest exception,
/// i.e. invoke the receive_other() interception point, in addition
/// to notifying the Invocation object of the LOCATION_FORWARD.
@@ -116,7 +121,6 @@ namespace TAO
const PortableInterceptor::ForwardRequest &exc);
private:
-
/// List of registered interceptors.
ClientRequestInterceptor_List interceptor_list_;
};
diff --git a/TAO/tao/PI/PICurrent.cpp b/TAO/tao/PI/PICurrent.cpp
index 77056497fcd..3d1793e9075 100644
--- a/TAO/tao/PI/PICurrent.cpp
+++ b/TAO/tao/PI/PICurrent.cpp
@@ -11,9 +11,7 @@ ACE_RCSID (tao,
#endif /* __ACE_INLINE__ */
#include "tao/PI/PICurrent_Impl.h"
-
#include "tao/ORB_Core.h"
-#include "tao/ORB_Core_TSS_Resources.h"
#include "tao/TAO_Server_Request.h"
#include "ace/CORBA_macros.h"
@@ -66,7 +64,7 @@ TAO::PICurrent::tsc (void)
if (0 == impl)
{
ACE_NEW_THROW_EX (impl,
- TAO::PICurrent_Impl,
+ TAO::PICurrent_Impl (&this->orb_core_, this->tss_slot_),
CORBA::NO_MEMORY (
CORBA::SystemException::_tao_minor_code (
TAO::VMCID,
diff --git a/TAO/tao/PI/PICurrent_Impl.cpp b/TAO/tao/PI/PICurrent_Impl.cpp
index b8a773317cd..7a78b7eeec6 100644
--- a/TAO/tao/PI/PICurrent_Impl.cpp
+++ b/TAO/tao/PI/PICurrent_Impl.cpp
@@ -6,6 +6,7 @@ ACE_RCSID (tao,
PICurrent,
"$Id$")
+#include "tao/ORB_Core.h"
#if !defined (__ACE_INLINE__)
# include "tao/PI/PICurrent_Impl.inl"
@@ -128,6 +129,94 @@ TAO::PICurrent_Impl::take_lazy_copy (
}
}
+TAO::PICurrent_Impl::~PICurrent_Impl ()
+{
+ if (this->push_)
+ {
+ // We have YOUNGER stack members to REMOVE as well. HOWEVER we
+ // don't want the entry above us coming back down and trying
+ // to delete us again. (As we are currently doing just that.)
+ this->push_->pop_= 0;
+
+ delete this->push_;
+ }
+ else if (this->orb_core_)
+ {
+ // Since there are no entries above us, we must be the top of
+ // the stack and since all are being deleted, the stack will
+ // be empty.
+ this->orb_core_->set_tss_resource (this->tss_slot_, 0);
+ }
+
+ // Break any existing ties that another PICurrent has with our table
+ // since our table will no longer exists once this destructor completes.
+ if (0 != this->impending_change_callback_)
+ this->impending_change_callback_->convert_from_lazy_to_real_copy ();
+
+ // If we have logically copied another table, ensure it is told about our
+ // demise so that it will not call our non-existant
+ // convert_from_lazy_to_real_copy() when it changes/destructs.
+ if (0 != this->lazy_copy_)
+ this->lazy_copy_->set_callback_for_impending_change (0);
+
+ if (this->pop_)
+ {
+ // We have OLDER stack members to REMOVE as well. HOWEVER we
+ // don't want multiple adjustments of the stack head pointer from
+ // every older entry as they delete, as this requires multiple
+ // set_tss_resource updates which would be slow and unnecessary.
+ this->pop_->orb_core_= 0;
+
+ // We also don't want double deletions of what used to be above these
+ // since we have just completed the deletion of these ourselves.
+ this->pop_->push_= 0;
+ delete this->pop_;
+ }
+}
+
+void
+TAO::PICurrent_Impl::push (void)
+{
+ if (this->orb_core_) // We have a stack to adjust
+ {
+ TAO::PICurrent_Impl *const currentHead =
+ static_cast<TAO::PICurrent_Impl *> (
+ this->orb_core_->get_tss_resource (this->tss_slot_));
+ if (!currentHead->push_)
+ {
+ // Since there is nothing younger above us, we need to create
+ // a new entry.
+ ACE_NEW_THROW_EX (currentHead->push_,
+ PICurrent_Impl (this->orb_core_, this->tss_slot_, currentHead),
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ 0,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ }
+ this->orb_core_->set_tss_resource (this->tss_slot_, currentHead->push_);
+ }
+ else
+ throw ::CORBA::INTERNAL (); // Should only call push if we have a stack
+}
+
+void
+TAO::PICurrent_Impl::pop (void)
+{
+ if (this->orb_core_) // We have a stack to adjust
+ {
+ TAO::PICurrent_Impl *const currentHead =
+ static_cast<TAO::PICurrent_Impl *> (
+ this->orb_core_->get_tss_resource (this->tss_slot_));
+ if (currentHead->pop_)
+ orb_core_->set_tss_resource (tss_slot_, currentHead->pop_);
+ else
+ throw ::CORBA::INTERNAL (); // Too many pop's
+ }
+ else
+ throw ::CORBA::INTERNAL (); // Should only call push if we have a stack
+}
+
TAO_END_VERSIONED_NAMESPACE_DECL
#endif /* TAO_HAS_INTERCEPTORS == 1 */
diff --git a/TAO/tao/PI/PICurrent_Impl.h b/TAO/tao/PI/PICurrent_Impl.h
index ce83b786ecc..8b8ce8282f3 100644
--- a/TAO/tao/PI/PICurrent_Impl.h
+++ b/TAO/tao/PI/PICurrent_Impl.h
@@ -29,7 +29,6 @@
#include "tao/AnyTypeCode/Any.h"
#include "ace/Array_Base.h"
-
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
/// Forward declarations.
@@ -51,8 +50,9 @@ namespace TAO
{
public:
/// Constructor.
- PICurrent_Impl (void);
-
+ PICurrent_Impl (TAO_ORB_Core *orb_core= 0,
+ size_t tss_slot= 0,
+ PICurrent_Impl *pop= 0);
/// Destructor.
~PICurrent_Impl (void);
@@ -67,6 +67,12 @@ namespace TAO
/// Logically/Lazy (shallow) copy the given object's slot table.
void take_lazy_copy (PICurrent_Impl *p);
+ /// Push a new PICurrent_Impl on stack
+ void push (void);
+
+ /// Pop old PICurrent_Impl from stack
+ void pop (void);
+
private:
/// Force this object to convert from a logical (referenced)
/// copy, to a physical (or deep, actual) copy.
@@ -98,6 +104,12 @@ namespace TAO
//@}
private:
+ /// Allow for stack of PICurrent_Impl as required.
+ TAO_ORB_Core *orb_core_;
+ size_t tss_slot_;
+ PICurrent_Impl *pop_;
+ PICurrent_Impl *push_;
+
/// Array of CORBA::Anys that is the underlying "slot table."
Table slot_table_;
diff --git a/TAO/tao/PI/PICurrent_Impl.inl b/TAO/tao/PI/PICurrent_Impl.inl
index eaedb899d20..d35163df7e7 100644
--- a/TAO/tao/PI/PICurrent_Impl.inl
+++ b/TAO/tao/PI/PICurrent_Impl.inl
@@ -5,28 +5,20 @@
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE
-TAO::PICurrent_Impl::PICurrent_Impl ()
- : slot_table_ (),
+TAO::PICurrent_Impl::PICurrent_Impl (
+ TAO_ORB_Core *orb_core,
+ size_t tss_slot,
+ PICurrent_Impl *pop)
+ : orb_core_ (orb_core),
+ tss_slot_ (tss_slot),
+ pop_ (pop),
+ push_ (0),
+ slot_table_ (),
lazy_copy_ (0),
impending_change_callback_ (0)
{
}
-ACE_INLINE
-TAO::PICurrent_Impl::~PICurrent_Impl ()
-{
- // Break any existing ties that another PICurrent has with our table
- // since our table will no longer exist once this destructor completes.
- if (0 != this->impending_change_callback_)
- this->impending_change_callback_->convert_from_lazy_to_real_copy ();
-
- // If we have logically copied another table, ensure it is told about our
- // demise so that it will not call our non-existant
- // convert_from_lazy_to_real_copy() when it changes/destructs.
- if (0 != this->lazy_copy_)
- this->lazy_copy_->set_callback_for_impending_change (0);
-}
-
ACE_INLINE void
TAO::PICurrent_Impl::convert_from_lazy_to_real_copy ()
{
diff --git a/TAO/tao/PI/RequestInterceptor_Adapter_Impl.cpp b/TAO/tao/PI/RequestInterceptor_Adapter_Impl.cpp
new file mode 100644
index 00000000000..7e5df08de77
--- /dev/null
+++ b/TAO/tao/PI/RequestInterceptor_Adapter_Impl.cpp
@@ -0,0 +1,69 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file RequestInterceptor_Adapter_Impl.cpp
+ *
+ * $Id$
+ *
+ * This file an adapter class to simplify the support of
+ * interceptors.
+ */
+//=============================================================================
+
+#include "tao/PI/RequestInterceptor_Adapter_Impl.h"
+
+#if TAO_HAS_INTERCEPTORS == 1
+
+#include "tao/ORB_Core.h"
+#include "tao/PI/RequestInterceptor_Adapter_Impl.h"
+#include "tao/PI/PICurrent.h"
+#include "tao/PI/PICurrent_Impl.h"
+
+ACE_RCSID (tao,
+ TAO_RequestInterceptorAdapter_Impl,
+ "$Id$")
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+TAO_RequestInterceptor_Adapter_Impl::~TAO_RequestInterceptor_Adapter_Impl (void)
+{
+}
+
+void
+TAO_RequestInterceptor_Adapter_Impl::popTSC (
+ TAO_ORB_Core *orb_core)
+{
+ // Retrieve the thread scope current (no TSS access incurred yet).
+ TAO::PICurrent
+ *pi_current= dynamic_cast <TAO::PICurrent *> (
+ orb_core->pi_current ());
+
+ // If the slot count is zero, there is nothing to copy. Prevent any
+ // copying (and hence TSS accesses) from occurring.
+ if (pi_current && pi_current->slot_count ())
+ {
+ pi_current->tsc ()->pop ();
+ }
+}
+
+void
+TAO_RequestInterceptor_Adapter_Impl::pushTSC (
+ TAO_ORB_Core *orb_core)
+{
+ // Retrieve the thread scope current (no TSS access incurred yet).
+ TAO::PICurrent
+ *pi_current= dynamic_cast <TAO::PICurrent *> (
+ orb_core->pi_current ());
+
+ // If the slot count is zero, there is nothing to copy. Prevent any
+ // copying (and hence TSS accesses) from occurring.
+ if (pi_current && pi_current->slot_count ())
+ {
+ pi_current->tsc ()->push ();
+ }
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* TAO_HAS_INTERCEPTORS == 1 */
diff --git a/TAO/tao/PI/RequestInterceptor_Adapter_Impl.h b/TAO/tao/PI/RequestInterceptor_Adapter_Impl.h
new file mode 100644
index 00000000000..43908344d8a
--- /dev/null
+++ b/TAO/tao/PI/RequestInterceptor_Adapter_Impl.h
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file RequestInterceptor_Adapter_Impl.h
+ *
+ * $Id$
+ *
+ */
+//=============================================================================
+
+#ifndef TAO_REQUEST_INTERCEPTOR_ADAPTER_IMPL_H
+#define TAO_REQUEST_INTERCEPTOR_ADAPTER_IMPL_H
+
+#include /**/ "ace/pre.h"
+
+#include "tao/orbconf.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#if TAO_HAS_INTERCEPTORS == 1
+
+#include "tao/PI/pi_export.h"
+#include "tao/PI/Interceptor_List_T.h"
+#include "tao/PI/ClientRequestInterceptorC.h"
+#include "tao/PI/ClientRequestDetails.h"
+#include "tao/RequestInterceptor_Adapter.h"
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class Invocation_Base;
+
+/**
+ * @class TAO_RequestInterceptor_Adapter_Impl
+ *
+ * @brief A convenient helper class to invoke registered client request
+ * interceptors
+ *
+ * This class invokes all registered interceptors at interception
+ * point, and enforces flow rules dictated by the Portable Interceptor
+ * specification/chapter.
+ */
+class TAO_PI_Export TAO_RequestInterceptor_Adapter_Impl
+ : public TAO::RequestInterceptor_Adapter
+{
+public:
+ ~TAO_RequestInterceptor_Adapter_Impl (void);
+
+ void popTSC (TAO_ORB_Core *orb_core);
+ void pushTSC (TAO_ORB_Core *orb_core);
+};
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#endif /* TAO_HAS_INTERCEPTORS == 1 */
+
+#include /**/ "ace/post.h"
+
+#endif /* TAO_REQUEST_INTERCEPTOR_ADAPTER_IMPL_H */
diff --git a/TAO/tao/PI_Server/ServerInterceptorAdapter.h b/TAO/tao/PI_Server/ServerInterceptorAdapter.h
index 2155e188ce9..ad9893d4ba5 100644
--- a/TAO/tao/PI_Server/ServerInterceptorAdapter.h
+++ b/TAO/tao/PI_Server/ServerInterceptorAdapter.h
@@ -26,17 +26,16 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-
#if TAO_HAS_INTERCEPTORS == 1
#include "tao/PI_Server/PI_Server_includeC.h"
#include "tao/PI/Interceptor_List_T.h"
#include "tao/ServerRequestInterceptor_Adapter.h"
+#include "tao/PI/RequestInterceptor_Adapter_Impl.h"
#include "tao/Basic_Types.h"
#include "tao/PI_Server/ServerRequestDetails.h"
-
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
namespace TAO
@@ -67,9 +66,9 @@ namespace TAO
*/
class ServerRequestInterceptor_Adapter_Impl
: public ServerRequestInterceptor_Adapter
+ , public TAO_RequestInterceptor_Adapter_Impl
{
public:
-
/// Constructor.
ServerRequestInterceptor_Adapter_Impl (void);
@@ -168,12 +167,15 @@ namespace TAO
TAO_ServerRequest &server_request,
TAO::Upcall_Command &command);
- private:
+ void popTSC (TAO_ORB_Core *orb_core)
+ {TAO_RequestInterceptor_Adapter_Impl::popTSC (orb_core);}
+ void pushTSC (TAO_ORB_Core *orb_core)
+ {TAO_RequestInterceptor_Adapter_Impl::pushTSC (orb_core);}
+ private:
/// List of registered interceptors.
ServerRequestInterceptor_List interceptor_list_;
};
-
} // End namespace TAO
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/PortableServer/Root_POA.cpp b/TAO/tao/PortableServer/Root_POA.cpp
index 82f87ee3ca1..313ffe574d0 100644
--- a/TAO/tao/PortableServer/Root_POA.cpp
+++ b/TAO/tao/PortableServer/Root_POA.cpp
@@ -1275,7 +1275,6 @@ TAO_Root_POA::deactivate_object (const PortableServer::ObjectId &oid)
this->deactivate_object_i (oid);
}
-
void
TAO_Root_POA::deactivate_object_i (const PortableServer::ObjectId &id)
{
@@ -2225,7 +2224,7 @@ TAO_Root_POA::create_stub_object (const TAO::ObjectKey &object_key,
for (CORBA::ULong i = 0; i != len; ++i)
{
this->add_ior_component (mprofile, this->tagged_component_[i]);
- }
+ }
len = this->tagged_component_id_.length ();
diff --git a/TAO/tao/PortableServer/Root_POA.h b/TAO/tao/PortableServer/Root_POA.h
index 4065e5d90fb..e4605cc6444 100644
--- a/TAO/tao/PortableServer/Root_POA.h
+++ b/TAO/tao/PortableServer/Root_POA.h
@@ -418,8 +418,7 @@ public:
void cleanup_servant (
PortableServer::Servant servant,
- const PortableServer::ObjectId &user_id
- );
+ const PortableServer::ObjectId &user_id);
void post_invoke_servant_cleanup(
const PortableServer::ObjectId &system_id,
@@ -432,9 +431,7 @@ public:
PortableServer::ObjectId *activate_object_i (
PortableServer::Servant p_servant,
CORBA::Short priority,
- bool &wait_occurred_restart_call
-
- );
+ bool &wait_occurred_restart_call);
CORBA::Object_ptr id_to_reference_i (const PortableServer::ObjectId &oid,
bool indirect);
diff --git a/TAO/tao/PortableServer/TAO_PortableServer.rc b/TAO/tao/PortableServer/TAO_PortableServer.rc
index f16419968f5..5ecad1717ea 100644
--- a/TAO/tao/PortableServer/TAO_PortableServer.rc
+++ b/TAO/tao/PortableServer/TAO_PortableServer.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp b/TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp
index 886b839e784..5f66cc836d3 100644
--- a/TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp
+++ b/TAO/tao/RTCORBA/RT_Protocols_Hooks.cpp
@@ -630,7 +630,7 @@ TAO_RT_Protocols_Hooks::set_thread_native_priority (
ACE_TEXT ("(%N,%l) Error setting thread ")
ACE_TEXT ("priority to %d, errno %d %m\n"),
native_priority,
- errno ),
+ ACE_ERRNO_GET),
-1);
}
diff --git a/TAO/tao/RTCORBA/TAO_RTCORBA.rc b/TAO/tao/RTCORBA/TAO_RTCORBA.rc
index c4c1b19b422..9ebc99bd6da 100644
--- a/TAO/tao/RTCORBA/TAO_RTCORBA.rc
+++ b/TAO/tao/RTCORBA/TAO_RTCORBA.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/RTPortableServer/TAO_RTPortableServer.rc b/TAO/tao/RTPortableServer/TAO_RTPortableServer.rc
index b0eb456a209..4efa00f35ae 100644
--- a/TAO/tao/RTPortableServer/TAO_RTPortableServer.rc
+++ b/TAO/tao/RTPortableServer/TAO_RTPortableServer.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/RTScheduling/TAO_RTScheduler.rc b/TAO/tao/RTScheduling/TAO_RTScheduler.rc
index ab00b88e7fd..27f592a9a47 100644
--- a/TAO/tao/RTScheduling/TAO_RTScheduler.rc
+++ b/TAO/tao/RTScheduling/TAO_RTScheduler.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/RequestInterceptor_Adapter.cpp b/TAO/tao/RequestInterceptor_Adapter.cpp
new file mode 100644
index 00000000000..c0657ad21cd
--- /dev/null
+++ b/TAO/tao/RequestInterceptor_Adapter.cpp
@@ -0,0 +1,26 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file RequestInterceptor_Adapter.cpp
+ *
+ * $Id$
+ *
+ * This file an adapter class to simplify the support of
+ * interceptors.
+ */
+//=============================================================================
+
+#include "tao/RequestInterceptor_Adapter.h"
+
+ACE_RCSID (tao,
+ RequestInterceptor_Adapter,
+ "$Id$")
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+TAO::RequestInterceptor_Adapter::~RequestInterceptor_Adapter (void)
+{
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/RequestInterceptor_Adapter.h b/TAO/tao/RequestInterceptor_Adapter.h
new file mode 100644
index 00000000000..5189ab24470
--- /dev/null
+++ b/TAO/tao/RequestInterceptor_Adapter.h
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file RequestInterceptor_Adapter.h
+ *
+ * $Id$
+ *
+ */
+//=============================================================================
+
+#ifndef TAO_REQUEST_INTERCEPTOR_ADAPTER_H
+#define TAO_REQUEST_INTERCEPTOR_ADAPTER_H
+
+#include /**/ "ace/pre.h"
+
+#include /**/ "tao/TAO_Export.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ace/CORBA_macros.h"
+#include "tao/SystemException.h"
+
+TAO_BEGIN_VERSIONED_NAMESPACE_DECL
+
+class TAO_ORB_Core;
+
+namespace TAO
+{
+ /**
+ * @class RequestInterceptor_Adapter
+ *
+ * @brief A base helper class to invoke registered request
+ * interceptors
+ */
+ class TAO_Export RequestInterceptor_Adapter
+ {
+ public:
+ virtual ~RequestInterceptor_Adapter (void);
+
+ virtual void destroy_interceptors (void) = 0;
+
+ virtual void popTSC (TAO_ORB_Core *orb_core_) = 0;
+ virtual void pushTSC (TAO_ORB_Core *orb_core_) = 0;
+ };
+}
+
+TAO_END_VERSIONED_NAMESPACE_DECL
+
+#include /**/ "ace/post.h"
+
+#endif /* TAO_REQUEST_INTERCEPTOR_ADAPTER_H */
diff --git a/TAO/tao/ServerRequestInterceptor_Adapter.h b/TAO/tao/ServerRequestInterceptor_Adapter.h
index d218b8e6c0c..5a3f55db4bb 100644
--- a/TAO/tao/ServerRequestInterceptor_Adapter.h
+++ b/TAO/tao/ServerRequestInterceptor_Adapter.h
@@ -19,6 +19,7 @@
#include /**/ "ace/pre.h"
#include /**/ "tao/TAO_Export.h"
+#include "tao/RequestInterceptor_Adapter.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
@@ -59,6 +60,7 @@ namespace TAO
* @class ServerRequestInterceptor_Adapter
*/
class TAO_Export ServerRequestInterceptor_Adapter
+ : public RequestInterceptor_Adapter
{
public:
virtual ~ServerRequestInterceptor_Adapter (void);
@@ -149,8 +151,6 @@ namespace TAO
const CORBA::PolicyList& policies
) = 0;
- virtual void destroy_interceptors (void) = 0;
-
virtual TAO::PICurrent_Impl *allocate_pi_current (void) = 0;
virtual void deallocate_pi_current (TAO::PICurrent_Impl *picurrent) = 0;
diff --git a/TAO/tao/SmartProxies/SmartProxies.rc b/TAO/tao/SmartProxies/SmartProxies.rc
index 2c2665118ef..0ede89159d9 100644
--- a/TAO/tao/SmartProxies/SmartProxies.rc
+++ b/TAO/tao/SmartProxies/SmartProxies.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Strategies/DIOP_Acceptor.cpp b/TAO/tao/Strategies/DIOP_Acceptor.cpp
index a979517c7bd..1756e7f01b3 100644
--- a/TAO/tao/Strategies/DIOP_Acceptor.cpp
+++ b/TAO/tao/Strategies/DIOP_Acceptor.cpp
@@ -140,13 +140,12 @@ TAO_DIOP_Acceptor::create_shared_profile (const TAO::ObjectKey &object_key,
CORBA::Short priority)
{
CORBA::ULong index = 0;
- TAO_Profile *pfile = 0;
TAO_DIOP_Profile *diop_profile = 0;
// First see if <mprofile> already contains a DIOP profile.
for (TAO_PHandle i = 0; i != mprofile.profile_count (); ++i)
{
- pfile = mprofile.get_profile (i);
+ TAO_Profile *pfile = mprofile.get_profile (i);
if (pfile->tag () == TAO_TAG_DIOP_PROFILE)
{
diop_profile = dynamic_cast<TAO_DIOP_Profile *> (pfile);
@@ -181,7 +180,7 @@ TAO_DIOP_Acceptor::create_shared_profile (const TAO::ObjectKey &object_key,
diop_profile->tagged_components ().set_orb_type (TAO_ORB_TYPE);
TAO_Codeset_Manager *csm = this->orb_core_->codeset_manager ();
if (csm)
- csm->set_codeset (pfile->tagged_components ());
+ csm->set_codeset (diop_profile->tagged_components ());
}
index = 1;
diff --git a/TAO/tao/Strategies/DIOP_Transport.cpp b/TAO/tao/Strategies/DIOP_Transport.cpp
index 87cc1030ba3..2af168556aa 100644
--- a/TAO/tao/Strategies/DIOP_Transport.cpp
+++ b/TAO/tao/Strategies/DIOP_Transport.cpp
@@ -86,7 +86,7 @@ TAO_DIOP_Transport::recv (char *buf,
n,
from_addr.get_host_name (),
from_addr.get_port_number (),
- errno));
+ ACE_ERRNO_GET));
}
// Most of the errors handling is common for
diff --git a/TAO/tao/Strategies/TAO_Strategies.rc b/TAO/tao/Strategies/TAO_Strategies.rc
index d0646d177f1..2d4bc93ddfd 100644
--- a/TAO/tao/Strategies/TAO_Strategies.rc
+++ b/TAO/tao/Strategies/TAO_Strategies.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Synch_Invocation.cpp b/TAO/tao/Synch_Invocation.cpp
index e0ad08a0a55..5f5013a1003 100644
--- a/TAO/tao/Synch_Invocation.cpp
+++ b/TAO/tao/Synch_Invocation.cpp
@@ -541,31 +541,32 @@ namespace TAO
// Special handling for non-fatal system exceptions.
//
// Note that we are careful to retain "at most once" semantics.
- if ((ACE_OS_String::strcmp (type_id.in (),
+ if ((CORBA::CompletionStatus) completion != CORBA::COMPLETED_YES &&
+ (ACE_OS_String::strcmp (type_id.in (),
"IDL:omg.org/CORBA/TRANSIENT:1.0") == 0 ||
ACE_OS_String::strcmp (type_id.in (),
"IDL:omg.org/CORBA/OBJ_ADAPTER:1.0") == 0 ||
ACE_OS_String::strcmp (type_id.in (),
"IDL:omg.org/CORBA/NO_RESPONSE:1.0") == 0 ||
ACE_OS_String::strcmp (type_id.in (),
- "IDL:omg.org/CORBA/COMM_FAILURE:1.0") == 0) &&
- (CORBA::CompletionStatus) completion != CORBA::COMPLETED_YES)
- {
- {
- // Start the special case for FTCORBA.
- /**
- * There has been a unanimous view that this is not the
- * right way to do things. But a need to be compliant is
- * forcing us into this.
- */
- Invocation_Status const s =
- this->stub ()->orb_core ()->service_raise_transient_failure (
- this->details_.request_service_context ().service_info (),
- this->resolver_.profile ());
-
- if (s == TAO_INVOKE_RESTART)
- return s;
- }
+ "IDL:omg.org/CORBA/COMM_FAILURE:1.0") == 0 ||
+ (this->stub ()->orb_core ()->orb_params ()->forward_invocation_on_object_not_exist()
+ && ACE_OS_String::strcmp (type_id.in (),
+ "IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0") == 0)))
+ {
+ // Start the special case for FTCORBA.
+ /**
+ * There has been a unanimous view that this is not the
+ * right way to do things. But a need to be compliant is
+ * forcing us into this.
+ */
+ Invocation_Status const s =
+ this->stub ()->orb_core ()->service_raise_transient_failure (
+ this->details_.request_service_context ().service_info (),
+ this->resolver_.profile ());
+
+ if (s == TAO_INVOKE_RESTART)
+ return s;
// Attempt profile retry.
/**
diff --git a/TAO/tao/SystemException.cpp b/TAO/tao/SystemException.cpp
index 79ddeff878c..664a37bd255 100644
--- a/TAO/tao/SystemException.cpp
+++ b/TAO/tao/SystemException.cpp
@@ -312,7 +312,7 @@ CORBA::SystemException::_info (void) const
location = "unknown location";
}
- const char *errno_indication;
+ const char *errno_indication = 0;
char unknown_errno [255];
CORBA::ULong minor_code = this->minor () & 0x7FU;
switch (minor_code)
diff --git a/TAO/tao/TAO_Server_Request.cpp b/TAO/tao/TAO_Server_Request.cpp
index 7a133e38e47..69aacc00917 100644
--- a/TAO/tao/TAO_Server_Request.cpp
+++ b/TAO/tao/TAO_Server_Request.cpp
@@ -589,6 +589,6 @@ TAO_ServerRequest::rs_pi_current (void)
return this->rs_pi_current_;
}
-TAO_END_VERSIONED_NAMESPACE_DECL
-
#endif /* TAO_HAS_INTERCEPTORS */
+
+TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp
index fce3f82b2bc..9494364a241 100644
--- a/TAO/tao/Transport.cpp
+++ b/TAO/tao/Transport.cpp
@@ -401,7 +401,7 @@ TAO_Transport::sendfile (TAO_MMAP_Allocator * /* allocator */,
iovec * iov,
int iovcnt,
size_t &bytes_transferred,
- ACE_Time_Value const * timeout)
+ TAO::Transport::Drain_Constraints const & dc)
{
// Concrete pluggable transport doesn't implement sendfile().
// Fallback on TAO_Transport::send().
@@ -410,7 +410,8 @@ TAO_Transport::sendfile (TAO_MMAP_Allocator * /* allocator */,
// implementation to this base class method, and leave any TCP
// specific configuration out of this base class method.
// -Ossama
- return this->send (iov, iovcnt, bytes_transferred, timeout);
+ return this->send (iov, iovcnt, bytes_transferred,
+ this->io_timeout (dc));
}
#endif /* TAO_HAS_SENDFILE==1 */
@@ -521,19 +522,23 @@ TAO_Transport::update_transport (void)
*
*/
int
-TAO_Transport::handle_output (ACE_Time_Value *max_wait_time)
+TAO_Transport::handle_output (TAO::Transport::Drain_Constraints const & dc)
{
if (TAO_debug_level > 3)
{
ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("TAO (%P|%t) - Transport[%d]::handle_output\n"),
- this->id ()));
+ ACE_TEXT ("TAO (%P|%t) - Transport[%d]::handle_output")
+ ACE_TEXT (" - block_on_io=%d, timeout=%d.%06d\n"),
+ this->id (),
+ dc.block_on_io(),
+ dc.timeout() ? dc.timeout()->sec() : -1,
+ dc.timeout() ? dc.timeout()->usec() : -1 ));
}
// The flushing strategy (potentially via the Reactor) wants to send
// more data, first check if there is a current message that needs
// more sending...
- int const retval = this->drain_queue (max_wait_time);
+ int const retval = this->drain_queue (dc);
if (TAO_debug_level > 3)
{
@@ -541,7 +546,7 @@ TAO_Transport::handle_output (ACE_Time_Value *max_wait_time)
ACE_TEXT ("TAO (%P|%t) - Transport[%d]::handle_output, ")
ACE_TEXT ("drain_queue returns %d/%d\n"),
this->id (),
- retval, errno));
+ retval, ACE_ERRNO_GET));
}
// Any errors are returned directly to the Reactor
@@ -566,15 +571,18 @@ TAO_Transport::send_message_block_chain (const ACE_Message_Block *mb,
{
ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->handler_lock_, -1);
+ TAO::Transport::Drain_Constraints dc(
+ max_wait_time, true);
+
return this->send_message_block_chain_i (mb,
bytes_transferred,
- max_wait_time);
+ dc);
}
int
TAO_Transport::send_message_block_chain_i (const ACE_Message_Block *mb,
size_t &bytes_transferred,
- ACE_Time_Value *max_wait_time)
+ TAO::Transport::Drain_Constraints const & dc)
{
size_t const total_length = mb->total_length ();
@@ -584,7 +592,7 @@ TAO_Transport::send_message_block_chain_i (const ACE_Message_Block *mb,
synch_message.push_back (this->head_, this->tail_);
- int const n = this->drain_queue_i (max_wait_time);
+ int const n = this->drain_queue_i (dc);
if (n == -1)
{
@@ -769,7 +777,10 @@ int
TAO_Transport::send_synch_message_helper_i (TAO_Synch_Queued_Message &synch_message,
ACE_Time_Value * max_wait_time)
{
- int const n = this->drain_queue_i (max_wait_time);
+ TAO::Transport::Drain_Constraints dc(
+ max_wait_time, this->using_blocking_io_for_synch_messages());
+
+ int const n = this->drain_queue_i (dc);
if (n == -1)
{
@@ -796,7 +807,18 @@ TAO_Transport::schedule_output_i (void)
ACE_Reactor * const reactor = eh->reactor ();
if (reactor == 0)
- return -1;
+ {
+ if (TAO_debug_level > 1)
+ {
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("TAO (%P|%t) - ")
+ ACE_TEXT ("Transport[%d]::schedule_output_i, ")
+ ACE_TEXT ("no reactor,")
+ ACE_TEXT ("returning -1\n"),
+ this->id ()));
+ }
+ return -1;
+ }
// Check to see if our event handler is still registered with the
// reactor. It's possible for another thread to have run close_connection()
@@ -810,7 +832,7 @@ TAO_Transport::schedule_output_i (void)
{
if (TAO_debug_level > 3)
{
- ACE_DEBUG ((LM_DEBUG,
+ ACE_ERROR ((LM_ERROR,
ACE_TEXT ("TAO (%P|%t) - ")
ACE_TEXT ("Transport[%d]::schedule_output_i ")
ACE_TEXT ("event handler not found in reactor,")
@@ -890,10 +912,10 @@ TAO_Transport::handle_timeout (const ACE_Time_Value & /* current_time */,
}
int
-TAO_Transport::drain_queue (ACE_Time_Value *max_wait_time)
+TAO_Transport::drain_queue (TAO::Transport::Drain_Constraints const & dc)
{
ACE_GUARD_RETURN (ACE_Lock, ace_mon, *this->handler_lock_, -1);
- int const retval = this->drain_queue_i (max_wait_time);
+ int const retval = this->drain_queue_i (dc);
if (retval == 1)
{
@@ -911,10 +933,15 @@ TAO_Transport::drain_queue (ACE_Time_Value *max_wait_time)
}
int
-TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[], ACE_Time_Value *max_wait_time)
+TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[],
+ TAO::Transport::Drain_Constraints const & dc)
{
+ // As a side-effect, this decrements the timeout() pointed-to value by
+ // the time used in this function. That might be important as there are
+ // potentially long running system calls invoked from here.
+ ACE_Countdown_Time countdown(dc.timeout());
+
size_t byte_count = 0;
- ACE_Countdown_Time countdown (max_wait_time);
// ... send the message ...
ssize_t retval = -1;
@@ -924,10 +951,12 @@ TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[], ACE_Time_Value *max
retval = this->sendfile (this->mmap_allocator_,
iov,
iovcnt,
- byte_count);
+ byte_count,
+ dc);
else
#endif /* TAO_HAS_SENDFILE==1 */
- retval = this->send (iov, iovcnt, byte_count, max_wait_time);
+ retval = this->send (iov, iovcnt, byte_count,
+ this->io_timeout (dc));
if (TAO_debug_level == 5)
{
@@ -953,7 +982,7 @@ TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[], ACE_Time_Value *max
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("TAO (%P|%t) - Transport[%d]::drain_queue_helper, ")
ACE_TEXT ("error during send() (errno: %d) - %m\n"),
- this->id (), errno));
+ this->id (), ACE_ERRNO_GET));
}
if (errno == EWOULDBLOCK || errno == EAGAIN)
@@ -988,7 +1017,7 @@ TAO_Transport::drain_queue_helper (int &iovcnt, iovec iov[], ACE_Time_Value *max
}
int
-TAO_Transport::drain_queue_i (ACE_Time_Value *max_wait_time)
+TAO_Transport::drain_queue_i (TAO::Transport::Drain_Constraints const & dc)
{
// This is the vector used to send data, it must be declared outside
// the loop because after the loop there may still be data to be
@@ -1039,8 +1068,7 @@ TAO_Transport::drain_queue_i (ACE_Time_Value *max_wait_time)
// IOV_MAX elements ...
if (iovcnt == ACE_IOV_MAX)
{
- int const retval = this->drain_queue_helper (iovcnt, iov,
- max_wait_time);
+ int const retval = this->drain_queue_helper (iovcnt, iov, dc);
now = ACE_High_Res_Timer::gettimeofday_hr ();
@@ -1067,7 +1095,7 @@ TAO_Transport::drain_queue_i (ACE_Time_Value *max_wait_time)
if (iovcnt != 0)
{
- int const retval = this->drain_queue_helper (iovcnt, iov, max_wait_time);
+ int const retval = this->drain_queue_helper (iovcnt, iov, dc);
if (TAO_debug_level > 4)
{
@@ -1345,6 +1373,9 @@ TAO_Transport::send_asynchronous_message_i (TAO_Stub *stub,
bool partially_sent = false;
bool timeout_encountered = false;
+ TAO::Transport::Drain_Constraints dc(
+ max_wait_time, this->using_blocking_io_for_asynch_messages());
+
if (try_sending_first)
{
ssize_t n = 0;
@@ -1367,7 +1398,7 @@ TAO_Transport::send_asynchronous_message_i (TAO_Stub *stub,
// code I will re-visit this decision
n = this->send_message_block_chain_i (message_block,
byte_count,
- max_wait_time);
+ dc);
if (n == -1)
{
@@ -2557,7 +2588,6 @@ TAO_Transport::notify_reactor (void)
this->id ()));
}
-
// Send a notification to the reactor...
int const retval = reactor->notify (eh, ACE_Event_Handler::READ_MASK);
@@ -2755,6 +2785,37 @@ TAO_Transport::set_bidir_context_info (TAO_Operation_Details &)
{
}
+ACE_Time_Value const *
+TAO_Transport::io_timeout(
+ TAO::Transport::Drain_Constraints const & dc) const
+{
+ if (dc.block_on_io())
+ {
+ return dc.timeout();
+ }
+ if (this->wait_strategy()->can_process_upcalls())
+ {
+ return 0;
+ }
+ return dc.timeout();
+}
+
+bool
+TAO_Transport::using_blocking_io_for_synch_messages() const
+{
+ if (this->wait_strategy()->can_process_upcalls())
+ {
+ return false;
+ }
+ return true;
+}
+
+bool
+TAO_Transport::using_blocking_io_for_asynch_messages() const
+{
+ return false;
+}
+
/*
* Hook to add concrete implementations from the derived class onto
* TAO's transport.
diff --git a/TAO/tao/Transport.h b/TAO/tao/Transport.h
index fb348274d7f..40ab7fac84e 100644
--- a/TAO/tao/Transport.h
+++ b/TAO/tao/Transport.h
@@ -30,6 +30,7 @@
#include "tao/Message_Semantics.h"
#include "ace/Time_Value.h"
#include "ace/Basic_Stats.h"
+#include "ace/Copy_Disabled.h"
struct iovec;
@@ -68,6 +69,80 @@ namespace TAO
/// Transport-level statistics. Initially introduced to support
/// the "Transport Current" functionality.
class Stats;
+
+ /**
+ * @struct Drain_Constraints
+ *
+ * @brief Encapsulate the flushing control parameters.
+ *
+ * At several points, the ORB needs to flush data from a transport to the
+ * underlying I/O mechanisms. How this data is flushed depends on the
+ * context where the request is made, the ORB configuration and the
+ * application level policies in effect.
+ *
+ * Some examples:
+ *
+ * # When idle, the ORB will want to send data on any socket that has
+ * space available. In this case, the queue must be drained on
+ * a best-effort basis, without any blocking.
+ * # If the ORB is configured to handle nested upcalls, any two-way
+ * request should block and push data to the underlying socket as fast
+ * as possible.
+ * # In the same use-case, but now with a timeout policy in
+ * effect, the ORB will need to send the data use I/O operations with
+ * timeouts (as implemented by ACE::sendv()
+ * # When the ORB is configured to support nested upcalls, any two-way,
+ * reliable oneway or similar should wait using the reactor or
+ * Leader-Follower implementation. While still respecting the timeout
+ * policies.
+ *
+ * Instead of sprinkling if() statements throughput the critical path
+ * trying to determine how the I/O operations should be performed, we
+ * pass the information encapsulated in this class. The caller into the
+ * Transport object determines the right parameters to use, and the
+ * Transport object simply obeys those instructions.
+ */
+ class Drain_Constraints : private ACE_Copy_Disabled
+ {
+ public:
+ /// Default constructor
+ Drain_Constraints()
+ : timeout_(0)
+ , block_on_io_(false)
+ {
+ }
+
+ /// Constructor
+ Drain_Constraints(
+ ACE_Time_Value * timeout,
+ bool block_on_io)
+ : timeout_(timeout)
+ , block_on_io_(block_on_io)
+ {
+ }
+
+ /**
+ * If true, then the ORB should block on I/O operations instead of
+ * using non-blocking I/O.
+ */
+ bool block_on_io() const
+ {
+ return block_on_io_;
+ }
+
+ /**
+ * The maximum time to block on I/O operations (or nested loops) based
+ * on the current timeout policies.
+ */
+ ACE_Time_Value * timeout() const
+ {
+ return timeout_;
+ }
+
+ private:
+ ACE_Time_Value * timeout_;
+ bool block_on_io_;
+ };
}
}
@@ -243,7 +318,7 @@ namespace TAO
* https://svn.dre.vanderbilt.edu/viewvc/Middleware/trunk/TAO/docs/pluggable_protocols/index.html?revision=HEAD
*
*/
-class TAO_Export TAO_Transport
+class TAO_Export TAO_Transport : private ACE_Copy_Disabled
{
public:
@@ -290,7 +365,7 @@ public:
TAO_Wait_Strategy *wait_strategy (void) const;
/// Callback method to reactively drain the outgoing data queue
- int handle_output (ACE_Time_Value *max_wait_time);
+ int handle_output (TAO::Transport::Drain_Constraints const & c);
/// Get the bidirectional flag
int bidirectional_flag (void) const;
@@ -411,7 +486,7 @@ public:
virtual ssize_t send (iovec *iov,
int iovcnt,
size_t &bytes_transferred,
- const ACE_Time_Value *timeout = 0) = 0;
+ ACE_Time_Value const * timeout) = 0;
#if TAO_HAS_SENDFILE == 1
/// Send data through zero-copy write mechanism, if available.
@@ -428,7 +503,7 @@ public:
iovec * iov,
int iovcnt,
size_t &bytes_transferred,
- ACE_Time_Value const * timeout = 0);
+ TAO::Transport::Drain_Constraints const & dc);
#endif /* TAO_HAS_SENDFILE==1 */
@@ -700,6 +775,21 @@ protected:
int queue_message_i (const ACE_Message_Block *message_block,
ACE_Time_Value *max_wait_time, bool back=true);
+ /**
+ * @brief Re-factor computation of I/O timeouts based on operation
+ * timeouts.
+ * Depending on the wait strategy, we need to timeout I/O operations or
+ * not. For example, if we are using a non-blocking strategy, we want
+ * to pass 0 to all I/O operations, and rely on the ACE_NONBLOCK
+ * settings on the underlying sockets. However, for blocking strategies
+ * we want to pass the operation timeouts, to respect the application
+ * level policies.
+ *
+ * This function was introduced as part of the fixes for bug 3647.
+ */
+ ACE_Time_Value const *io_timeout(
+ TAO::Transport::Drain_Constraints const & dc) const;
+
public:
/// Format and queue a message for @a stream
/// @param max_wait_time The maximum time that the operation can
@@ -708,7 +798,14 @@ public:
ACE_Time_Value *max_wait_time,
TAO_Stub* stub);
- /// Send a message block chain,
+ /**
+ * This is a very specialized interface to send a simple chain of
+ * messages through the Transport. The only place we use this interface
+ * is in GIOP_Message_Base.cpp, to send error messages (i.e., an
+ * indication that we received a malformed GIOP message,) and to close
+ * the connection.
+ *
+ */
int send_message_block_chain (const ACE_Message_Block *message_block,
size_t &bytes_transferred,
ACE_Time_Value *max_wait_time = 0);
@@ -716,7 +813,8 @@ public:
/// Send a message block chain, assuming the lock is held
int send_message_block_chain_i (const ACE_Message_Block *message_block,
size_t &bytes_transferred,
- ACE_Time_Value *max_wait_time);
+ TAO::Transport::Drain_Constraints const & dc);
+
/// Cache management
int purge_entry (void);
@@ -775,8 +873,8 @@ public:
/// Return true if the tcs has been set
CORBA::Boolean is_tcs_set() const;
- /// Set the state of the first_request_ flag to false
- void first_request_sent();
+ /// Set the state of the first_request_ to flag.
+ void first_request_sent (bool flag = false);
/// Get the first request flag
bool first_request () const;
@@ -801,10 +899,10 @@ private:
* Returns 0 if there is more data to send, -1 if there was an error
* and 1 if the message was completely sent.
*/
- int drain_queue (ACE_Time_Value *max_wait_time);
+ int drain_queue (TAO::Transport::Drain_Constraints const & dc);
/// Implement drain_queue() assuming the lock is held
- int drain_queue_i (ACE_Time_Value *max_wait_time);
+ int drain_queue_i (TAO::Transport::Drain_Constraints const & dc);
/// Check if there are messages pending in the queue
/**
@@ -816,7 +914,8 @@ private:
bool queue_is_empty_i (void) const;
/// A helper routine used in drain_queue_i()
- int drain_queue_helper (int &iovcnt, iovec iov[], ACE_Time_Value *max_wait_time);
+ int drain_queue_helper (int &iovcnt, iovec iov[],
+ TAO::Transport::Drain_Constraints const & dc);
/// These classes need privileged access to:
/// - schedule_output_i()
@@ -928,10 +1027,20 @@ private:
/// partial_message_ data member.
void allocate_partial_message_block (void);
- // Disallow copying and assignment.
- TAO_Transport (const TAO_Transport&);
- void operator= (const TAO_Transport&);
-
+ /**
+ * Return true if blocking I/O should be used for sending synchronous
+ * (two-way, reliable oneways, etc.) messages. This is determined based
+ * on the current flushing and waiting strategies.
+ */
+ bool using_blocking_io_for_synch_messages() const;
+
+ /**
+ * Return true if blocking I/O should be used for sending asynchronous
+ * (AMI calls, non-blocking oneways, responses to operations, etc.)
+ * messages. This is determined based on the current flushing strategy.
+ */
+ bool using_blocking_io_for_asynch_messages() const;
+
/*
* Specialization hook to add concrete private methods from
* TAO's protocol implementation onto the base Transport class
diff --git a/TAO/tao/Transport.inl b/TAO/tao/Transport.inl
index 1bac1fb0e54..4c17c1feaef 100644
--- a/TAO/tao/Transport.inl
+++ b/TAO/tao/Transport.inl
@@ -169,9 +169,9 @@ TAO_Transport::is_tcs_set(void) const
}
ACE_INLINE void
-TAO_Transport::first_request_sent (void)
+TAO_Transport::first_request_sent (bool flag)
{
- this->first_request_ = false;
+ this->first_request_ = flag;
}
ACE_INLINE bool
diff --git a/TAO/tao/Transport_Connector.cpp b/TAO/tao/Transport_Connector.cpp
index c9d417415f4..3c5c3ba7b9a 100644
--- a/TAO/tao/Transport_Connector.cpp
+++ b/TAO/tao/Transport_Connector.cpp
@@ -370,7 +370,7 @@ TAO_Connector::wait_for_transport (TAO::Profile_Transport_Resolver *r,
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("TAO (%P|%t) - TAO_Connector::wait_for_transport, ")
ACE_TEXT ("transport [%d], Connection failed. (%d)\n"),
- transport->id (), errno));
+ transport->id (), ACE_ERRNO_GET));
}
// purge from the connection cache. If we are not in the
@@ -440,7 +440,7 @@ TAO_Connector::wait_for_transport (TAO::Profile_Transport_Resolver *r,
ACE_TEXT("TAO (%P|%t) - TAO_Connector::wait_for_transport, ")
ACE_TEXT(" unknown error waiting on transport [%d] (%d)\n"),
transport->id (),
- errno));
+ ACE_ERRNO_GET));
}
}
// purge from the connection cache. If we are not in the
@@ -758,7 +758,7 @@ TAO_Connector::wait_for_connection_completion (
ACE_TEXT("TAO (%P|%t) - Transport_Connector::")
ACE_TEXT("wait_for_connection_completion, ")
ACE_TEXT("transport [%d], Connection failed. (%d) %p\n"),
- transport->id (), errno, ACE_TEXT("")));
+ transport->id (), ACE_ERRNO_GET, ACE_TEXT("")));
}
result = -1;
}
@@ -843,7 +843,7 @@ TAO_Connector::wait_for_connection_completion (
ACE_TEXT("wait_for_connection_completion, ")
ACE_TEXT("transport [%d], wait for completion failed")
ACE_TEXT(" (%d) %p\n"),
- transport->id (), errno, ACE_TEXT("")));
+ transport->id (), ACE_ERRNO_GET, ACE_TEXT("")));
}
TAO_Connection_Handler *con =
transport->connection_handler ();
diff --git a/TAO/tao/TypeCodeFactory/TypeCodeFactory.rc b/TAO/tao/TypeCodeFactory/TypeCodeFactory.rc
index 87bd0426914..24772624830 100644
--- a/TAO/tao/TypeCodeFactory/TypeCodeFactory.rc
+++ b/TAO/tao/TypeCodeFactory/TypeCodeFactory.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/Valuetype/Bounded_Valuetype_Sequence_T.h b/TAO/tao/Valuetype/Bounded_Valuetype_Sequence_T.h
index a4656160425..539b226c511 100644
--- a/TAO/tao/Valuetype/Bounded_Valuetype_Sequence_T.h
+++ b/TAO/tao/Valuetype/Bounded_Valuetype_Sequence_T.h
@@ -61,7 +61,10 @@ public:
inline void length(CORBA::ULong length) {
implementation_type::range::check_length(length, MAX);
- impl_.length(length);
+ if (MAX >= length)
+ {
+ impl_.length(length);
+ }
}
inline value_type const & operator[](CORBA::ULong i) const {
return impl_[i];
diff --git a/TAO/tao/Valuetype/TAO_Valuetype.rc b/TAO/tao/Valuetype/TAO_Valuetype.rc
index fe7afb3c6f9..0c0763fdbd6 100644
--- a/TAO/tao/Valuetype/TAO_Valuetype.rc
+++ b/TAO/tao/Valuetype/TAO_Valuetype.rc
@@ -1,4 +1,4 @@
-#include "..\Version.h"
+#include "../Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tao/ZIOP/ZIOP.cpp b/TAO/tao/ZIOP/ZIOP.cpp
index ef689281ae5..1f7df58d073 100644
--- a/TAO/tao/ZIOP/ZIOP.cpp
+++ b/TAO/tao/ZIOP/ZIOP.cpp
@@ -124,8 +124,8 @@ TAO_ZIOP_Loader::ziop_compressorid_name (::Compression::CompressorId st)
void
TAO_ZIOP_Loader::dump_msg (const char *type, const u_char *ptr,
- size_t len, size_t original_data_length,
- ::Compression::CompressorId compressor_id,
+ size_t len, size_t original_data_length,
+ ::Compression::CompressorId compressor_id,
::Compression::CompressionLevel compression_level)
{
if (TAO_debug_level < 10)
@@ -197,7 +197,7 @@ TAO_ZIOP_Loader::decompress (ACE_Data_Block **db, TAO_Queued_Data& qd,
if (!CORBA::is_nil(manager.in ()))
{
- ZIOP::CompressedData data;
+ ZIOP::CompressionData data;
// first set the read pointer after the header
size_t begin = qd.msg_block ()-> rd_ptr() - qd.msg_block ()->base ();
char * initial_rd_ptr = qd.msg_block ()-> rd_ptr();
@@ -216,7 +216,7 @@ TAO_ZIOP_Loader::decompress (ACE_Data_Block **db, TAO_Queued_Data& qd,
return false;
Compression::Compressor_var compressor =
- manager->get_compressor (data.compressorid, 6);
+ manager->get_compressor (data.compressor, 6);
CORBA::OctetSeq myout;
myout.length (data.original_length);
@@ -245,10 +245,10 @@ TAO_ZIOP_Loader::decompress (ACE_Data_Block **db, TAO_Queued_Data& qd,
if (TAO_debug_level > 9)
{ // we're only logging ZIOP messages. Log datablock before it's
// replaced by it's decompressed datablock
- this->dump_msg ("before decompression",
+ this->dump_msg ("before decompression",
reinterpret_cast <u_char *>(qd.msg_block ()->rd_ptr ()),
qd.msg_block ()->length (), data.original_length,
- data.compressorid, compressor->compression_level ());
+ data.compressor, compressor->compression_level ());
}
//replace data block
*db = mb.data_block ()->duplicate ();
@@ -308,20 +308,18 @@ TAO_ZIOP_Loader::compress (Compression::Compressor_ptr compressor,
return true;
}
-CORBA::ULong
+::Compression::CompressionRatio
TAO_ZIOP_Loader::get_ratio (CORBA::OctetSeq& uncompressed, CORBA::OctetSeq& compressed)
{
- return CORBA::ULong (100 - ((CORBA::Double)compressed.length () / uncompressed.length () *
- (CORBA::Double)100));
+ return (::Compression::CompressionRatio)uncompressed.length () / compressed.length ();
}
bool
-TAO_ZIOP_Loader::check_min_ratio (const CORBA::ULong& this_ratio,
+TAO_ZIOP_Loader::check_min_ratio (const ::Compression::CompressionRatio& this_ratio,
::Compression::CompressionRatio overall_ratio,
- CORBA::Long min_ratio) const
+ ::Compression::CompressionRatio min_ratio) const
{
- bool accepted = min_ratio == 0 ||
- static_cast < ::Compression::CompressionRatio>(this_ratio) > min_ratio;
+ bool accepted = min_ratio == 0 || (this_ratio * 10000) > (min_ratio * 10000);
if (TAO_debug_level > 8)
{
ACE_ERROR ((LM_ERROR,
@@ -420,7 +418,7 @@ TAO_ZIOP_Loader::get_compression_details(
compressor_id, compression_level);
}
}
- else
+ else
{
if (TAO_debug_level > 6)
{
@@ -441,7 +439,7 @@ TAO_ZIOP_Loader::complete_compression (Compression::Compressor_ptr compressor,
ACE_Message_Block& mb,
char *initial_rd_ptr,
CORBA::ULong low_value,
- CORBA::Long min_ratio,
+ Compression::CompressionRatio min_ratio,
CORBA::ULong original_data_length,
Compression::CompressorId compressor_id)
{
@@ -460,8 +458,8 @@ TAO_ZIOP_Loader::complete_compression (Compression::Compressor_ptr compressor,
{
mb.wr_ptr (mb.rd_ptr ());
cdr.current_alignment (mb.wr_ptr() - mb.base ());
- ZIOP::CompressedData data;
- data.compressorid = compressor_id;
+ ZIOP::CompressionData data;
+ data.compressor = compressor_id;
data.original_length = input.length();
data.data = output;
cdr << data;
@@ -475,7 +473,7 @@ TAO_ZIOP_Loader::complete_compression (Compression::Compressor_ptr compressor,
{
this->dump_msg ("after compression", reinterpret_cast <u_char *>(mb.rd_ptr ()),
mb.length (), data.original_length,
- data.compressorid, compressor->compression_level ());
+ data.compressor, compressor->compression_level ());
}
}
@@ -497,12 +495,12 @@ bool
TAO_ZIOP_Loader::compress_data (TAO_OutputCDR &cdr,
CORBA::Object_ptr compression_manager,
CORBA::ULong low_value,
- CORBA::Long min_ratio,
- Compression::CompressorId compressor_id,
- Compression::CompressionLevel compression_level)
+ ::Compression::CompressionRatio min_ratio,
+ ::Compression::CompressorId compressor_id,
+ ::Compression::CompressionLevel compression_level)
{
bool compressed = true;
-
+
cdr.consolidate ();
ACE_Message_Block* current = const_cast <ACE_Message_Block*> (cdr.current ());
@@ -570,7 +568,7 @@ TAO_ZIOP_Loader::marshal_data (TAO_OutputCDR &cdr, TAO_Stub& stub)
CORBA::ULong low_value =
this->compression_policy_value (policy_low_value.in ());
- CORBA::Long min_ratio =
+ Compression::CompressionRatio min_ratio =
this->compression_policy_value (policy_min_ratio.in ());
return compress_data(cdr, compression_manager.in (),
@@ -620,7 +618,7 @@ TAO_ZIOP_Loader::marshal_data (TAO_OutputCDR& cdr, TAO_ORB_Core& orb_core)
CORBA::ULong low_value =
this->compression_policy_value (policy_low_value.in ());
- CORBA::Long min_ratio =
+ Compression::CompressionRatio min_ratio =
this->compression_policy_value (policy_min_ratio.in ());
return compress_data(cdr, compression_manager.in (),
diff --git a/TAO/tao/ZIOP/ZIOP.h b/TAO/tao/ZIOP/ZIOP.h
index 1ce3ac690f7..fa458ff7064 100644
--- a/TAO/tao/ZIOP/ZIOP.h
+++ b/TAO/tao/ZIOP/ZIOP.h
@@ -60,7 +60,7 @@ public:
/// Used to force the initialization of the ORB code.
static int Initializer (void);
-
+
/// Converts compressor ID to a compressor name.
static const char * ziop_compressorid_name (::Compression::CompressorId st);
@@ -72,8 +72,8 @@ private:
/// dump a ZIOP datablock after (de)compression
void dump_msg (const char *type, const u_char *ptr,
- size_t len, size_t original_data_length,
- ::Compression::CompressorId compressor_id,
+ size_t len, size_t original_data_length,
+ ::Compression::CompressorId compressor_id,
::Compression::CompressionLevel compression_level);
/// Get the compression low value, returns 0 when it is not set
@@ -94,14 +94,14 @@ private:
ACE_Message_Block& mb,
char *initial_rd_ptr,
CORBA::ULong low_value,
- CORBA::Long min_ratio,
+ Compression::CompressionRatio min_ratio,
CORBA::ULong original_data_length,
Compression::CompressorId compressor_id);
bool compress_data (TAO_OutputCDR &cdr,
CORBA::Object_ptr compression_manager,
CORBA::ULong low_value,
- CORBA::Long min_ratio,
+ ::Compression::CompressionRatio min_ratio,
::Compression::CompressorId compressor_id,
::Compression::CompressionLevel compression_level);
@@ -112,13 +112,13 @@ private:
bool decompress (Compression::Compressor_ptr compressor,
const ::Compression::Buffer &source,
::Compression::Buffer &target);
-
- CORBA::ULong get_ratio (CORBA::OctetSeq& uncompressed,
+
+ ::Compression::CompressionRatio get_ratio (CORBA::OctetSeq& uncompressed,
CORBA::OctetSeq& compressed);
- bool check_min_ratio (const CORBA::ULong& this_ratio,
+ bool check_min_ratio (const ::Compression::CompressionRatio& this_ratio,
::Compression::CompressionRatio overall_ratio,
- CORBA::Long min_ratio) const;
+ ::Compression::CompressionRatio min_ratio) const;
};
static int
diff --git a/TAO/tao/ZIOP/ZIOP.pidl b/TAO/tao/ZIOP/ZIOP.pidl
index d3b49079881..4c7ef2648bd 100644
--- a/TAO/tao/ZIOP/ZIOP.pidl
+++ b/TAO/tao/ZIOP/ZIOP.pidl
@@ -6,8 +6,8 @@
module ZIOP
{
- struct CompressedData {
- Compression::CompressorId compressorid;
+ struct CompressionData {
+ Compression::CompressorId compressor;
unsigned long original_length;
Compression::Buffer data;
};
diff --git a/TAO/tao/params.cpp b/TAO/tao/params.cpp
index f3a299b9f84..7008353587a 100644
--- a/TAO/tao/params.cpp
+++ b/TAO/tao/params.cpp
@@ -61,6 +61,7 @@ TAO_ORB_Parameters::TAO_ORB_Parameters (void)
"TAO_PortableServer",
"_make_TAO_Object_Adapter_Factory",
""))
+ , forward_invocation_on_object_not_exist_ (false)
, collocation_resolver_name_ ("Default_Collocation_Resolver")
{
for (int i = 0; i != TAO_NO_OF_MCAST_SERVICES; ++i)
diff --git a/TAO/tao/params.h b/TAO/tao/params.h
index e9425d7789e..636988d3763 100644
--- a/TAO/tao/params.h
+++ b/TAO/tao/params.h
@@ -252,6 +252,9 @@ public:
void collocation_resolver_name (const char *s);
const char *collocation_resolver_name (void) const;
+ void forward_invocation_on_object_not_exist (bool opt);
+ bool forward_invocation_on_object_not_exist (void) const;
+
private:
// Each "endpoint" is of the form:
//
@@ -462,6 +465,13 @@ private:
*/
ACE_TString poa_factory_directive_;
+
+ /**
+ * Do we need forward invocation to next avaiable profile upon
+ * OBJECT_NOT_EXIST exception?
+ */
+ bool forward_invocation_on_object_not_exist_;
+
/**
* Name of the collocation resolver that needs to be instantiated.
* The default value is "Default_Collocation_Resolver". If
diff --git a/TAO/tao/params.inl b/TAO/tao/params.inl
index 7dde930b7f8..35bb921d258 100644
--- a/TAO/tao/params.inl
+++ b/TAO/tao/params.inl
@@ -352,4 +352,17 @@ TAO_ORB_Parameters::collocation_resolver_name (void) const
return this->collocation_resolver_name_.c_str ();
}
+ACE_INLINE bool
+TAO_ORB_Parameters::forward_invocation_on_object_not_exist (void) const
+{
+ return this->forward_invocation_on_object_not_exist_;
+}
+
+ACE_INLINE void
+TAO_ORB_Parameters::forward_invocation_on_object_not_exist (bool x)
+{
+ this->forward_invocation_on_object_not_exist_ = x;
+}
+
+
TAO_END_VERSIONED_NAMESPACE_DECL
diff --git a/TAO/tao/tao.mpc b/TAO/tao/tao.mpc
index 71ecf2a7e51..d0059ea4208 100644
--- a/TAO/tao/tao.mpc
+++ b/TAO/tao/tao.mpc
@@ -233,6 +233,7 @@ project(TAO) : acelib, install, tao_output, taodefaults, pidl, extra_core, taoid
Remote_Object_Proxy_Broker.cpp
Reply_Dispatcher.cpp
Request_Dispatcher.cpp
+ RequestInterceptor_Adapter.cpp
Resource_Factory.cpp
Resume_Handle.cpp
Server_Strategy_Factory.cpp
@@ -531,6 +532,7 @@ project(TAO) : acelib, install, tao_output, taodefaults, pidl, extra_core, taoid
Remote_Object_Proxy_Broker.h
Reply_Dispatcher.h
Request_Dispatcher.h
+ RequestInterceptor_Adapter.h
Resource_Factory.h
Resume_Handle.h
Seq_Out_T.h
diff --git a/TAO/tests/Abstract_Interface/client.cpp b/TAO/tests/Abstract_Interface/client.cpp
index a9b91dcda89..c4a678fc71a 100644
--- a/TAO/tests/Abstract_Interface/client.cpp
+++ b/TAO/tests/Abstract_Interface/client.cpp
@@ -197,7 +197,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
}
CORBA::Object_var obj =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior_input_file));
+ orb->string_to_object (ior_input_file);
if (CORBA::is_nil (obj.in ()))
{
diff --git a/TAO/tests/BiDirectional/run_test3557.pl b/TAO/tests/BiDirectional/run_test3557.pl
index 42123839deb..f90401f6e45 100755
--- a/TAO/tests/BiDirectional/run_test3557.pl
+++ b/TAO/tests/BiDirectional/run_test3557.pl
@@ -26,7 +26,7 @@ my $client_iorfile = $client->LocalFile ($iorbase);
$server->DeleteFile($iorbase);
$client->DeleteFile($iorbase);
-$SV = $server->CreateProcess ("server", "-ORBdebuglevel $debug_level -o $server_iorfile -i 100");
+$SV = $server->CreateProcess ("server", "-ORBdebuglevel $debug_level -o $server_iorfile -i 3");
$CL = $client->CreateProcess ("client", "-k file://$client_iorfile -ORBEndpoint iiop://:9950/hostname_in_ior=foobar.baz");
$server_status = $SV->Spawn ();
diff --git a/TAO/tests/Big_Reply/client.cpp b/TAO/tests/Big_Reply/client.cpp
index cb6a7de2c64..ff401da2ed4 100644
--- a/TAO/tests/Big_Reply/client.cpp
+++ b/TAO/tests/Big_Reply/client.cpp
@@ -49,7 +49,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var tmp =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Test::Big_Reply_var reply_gen =
Test::Big_Reply::_narrow (tmp.in ());
diff --git a/TAO/tests/Bug_1254_Regression/client.cpp b/TAO/tests/Bug_1254_Regression/client.cpp
index 54d1dc20f20..0da8e0bf326 100644
--- a/TAO/tests/Bug_1254_Regression/client.cpp
+++ b/TAO/tests/Bug_1254_Regression/client.cpp
@@ -43,7 +43,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
return 1;
CORBA::Object_var tmp =
- orb->string_to_object(ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
BlobServer_var blobServer = BlobServer::_narrow(tmp.in());
if(CORBA::is_nil(blobServer.in()))
diff --git a/TAO/tests/Bug_1269_Regression/Server_Timer.cpp b/TAO/tests/Bug_1269_Regression/Server_Timer.cpp
index f099a972b94..7804f97eb1e 100644
--- a/TAO/tests/Bug_1269_Regression/Server_Timer.cpp
+++ b/TAO/tests/Bug_1269_Regression/Server_Timer.cpp
@@ -32,7 +32,7 @@ Server_Timer::handle_timeout (ACE_Time_Value const &, void const *)
Test::Payload pload(1024);
pload.length(1024);
- ACE_OS::memset(pload.get_buffer(), pload.length(), 0);
+ ACE_OS::memset(pload.get_buffer(), 0, pload.length());
try
{
diff --git a/TAO/tests/Bug_1270_Regression/Server_Timer.cpp b/TAO/tests/Bug_1270_Regression/Server_Timer.cpp
index 5eca7f6b241..79303d57c3e 100644
--- a/TAO/tests/Bug_1270_Regression/Server_Timer.cpp
+++ b/TAO/tests/Bug_1270_Regression/Server_Timer.cpp
@@ -35,7 +35,7 @@ Server_Timer::handle_timeout (ACE_Time_Value const &, void const *)
Test::Payload pload (1024);
pload.length (1024);
- ACE_OS::memset (pload.get_buffer(), pload.length(), 0);
+ ACE_OS::memset (pload.get_buffer(), 0, pload.length());
try
{
diff --git a/TAO/tests/Bug_1361_Regression/Echo.cpp b/TAO/tests/Bug_1361_Regression/Echo.cpp
index a005d687217..03cd406e7c4 100644
--- a/TAO/tests/Bug_1361_Regression/Echo.cpp
+++ b/TAO/tests/Bug_1361_Regression/Echo.cpp
@@ -40,7 +40,7 @@ Echo::echo_payload_out (
int j = ACE_OS::rand() % 40000;
data = new Test::Payload(j);
data->length(j);
- ACE_OS::memset(data->get_buffer(), data->length(), 0);
+ ACE_OS::memset(data->get_buffer(), 0, data->length());
--this->abort_counter_;
diff --git a/TAO/tests/Bug_1482_Regression/Client_Task.cpp b/TAO/tests/Bug_1482_Regression/Client_Task.cpp
index 3285a62ed18..822d5322d78 100644
--- a/TAO/tests/Bug_1482_Regression/Client_Task.cpp
+++ b/TAO/tests/Bug_1482_Regression/Client_Task.cpp
@@ -17,13 +17,6 @@ Client_Task::Client_Task (Test::Hello_ptr receiver,
, orb_ (CORBA::ORB::_duplicate (o))
{
this->handler_var_ = this->handler_._this ();
- this->handler_var_->_stubobj ()->_incr_refcnt ();
- this->handler_var_->_add_ref ();
-}
-
-Client_Task::~Client_Task (void)
-{
- (void) this->handler_var_._retn ();
}
int
diff --git a/TAO/tests/Bug_1482_Regression/Client_Task.h b/TAO/tests/Bug_1482_Regression/Client_Task.h
index 07e59e3c5c2..c91b880a5a4 100644
--- a/TAO/tests/Bug_1482_Regression/Client_Task.h
+++ b/TAO/tests/Bug_1482_Regression/Client_Task.h
@@ -24,8 +24,6 @@ public:
CORBA::ORB_ptr o,
ACE_Thread_Manager *thr_mgr);
- ~Client_Task (void);
-
/// Thread entry point
int svc (void);
diff --git a/TAO/tests/Bug_1482_Regression/run_test.pl b/TAO/tests/Bug_1482_Regression/run_test.pl
index 871726389ff..bf2db8257e7 100755
--- a/TAO/tests/Bug_1482_Regression/run_test.pl
+++ b/TAO/tests/Bug_1482_Regression/run_test.pl
@@ -47,7 +47,7 @@ $client2 = $CL2->Spawn ();
$client3 = $CL3->Spawn ();
-sleep (60);
+sleep (90);
$SV->WaitKill (3) unless $sv1 < 0;
$CL1->WaitKill (3);
$CL2->WaitKill (3);
diff --git a/TAO/tests/Bug_1482_Regression/server.cpp b/TAO/tests/Bug_1482_Regression/server.cpp
index ab25832e277..982e9a5e462 100644
--- a/TAO/tests/Bug_1482_Regression/server.cpp
+++ b/TAO/tests/Bug_1482_Regression/server.cpp
@@ -2,7 +2,6 @@
#include "Hello.h"
#include "ace/Get_Opt.h"
-#include "Server_Task.h"
ACE_RCSID (LongUpcall_Crash_Test,
server,
@@ -90,16 +89,6 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
poa_manager->activate ();
- Server_Task st (orb.in (),
- ACE_Thread_Manager::instance ());
-
- if (st.activate (THR_NEW_LWP | THR_JOINABLE, 4, 1) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- "Error activating server task\n"));
-
- return -1;
- }
orb->run ();
ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n"));
diff --git a/TAO/tests/Bug_1568_Regression/server.cpp b/TAO/tests/Bug_1568_Regression/server.cpp
index 03c2ad349f6..24bbf4fc48f 100644
--- a/TAO/tests/Bug_1568_Regression/server.cpp
+++ b/TAO/tests/Bug_1568_Regression/server.cpp
@@ -33,7 +33,7 @@ public:
void op4 (Baz::AMH_CResponseHandler_ptr _tao_rh);
void shutdown (Baz::AMH_CResponseHandler_ptr _tao_rh);
protected:
- CORBA::ORB_ptr orb_;
+ CORBA::ORB_var orb_;
};
diff --git a/TAO/tests/Bug_1869_Regression/run_test.pl b/TAO/tests/Bug_1869_Regression/run_test.pl
index b01f8718b03..b01f8718b03 100644..100755
--- a/TAO/tests/Bug_1869_Regression/run_test.pl
+++ b/TAO/tests/Bug_1869_Regression/run_test.pl
diff --git a/TAO/tests/Bug_2084_Regression/Collocated_Test.cpp b/TAO/tests/Bug_2084_Regression/Collocated_Test.cpp
index 736ea5e4d61..1af0460353f 100644
--- a/TAO/tests/Bug_2084_Regression/Collocated_Test.cpp
+++ b/TAO/tests/Bug_2084_Regression/Collocated_Test.cpp
@@ -51,17 +51,16 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
try
{
-
- // Keep a copy of the ORB options args
- ACE_ARGV orb_args;
- for (int i = 1; i < argc; ++i)
- {
- if (orb_args.add (argv[i]) == -1)
+ // Keep a copy of the ORB options args
+ ACE_ARGV orb_args;
+ for (int i = 1; i < argc; ++i)
+ {
+ if (orb_args.add (argv[i]) == -1)
return -1;
- }
+ }
ACE_Argv_Type_Converter satc (argc, argv);
-
+ // This eats all orb-specific options!
CORBA::ORB_var sorb =
CORBA::ORB_init (satc.get_argc (),
satc.get_TCHAR_argv (),
@@ -83,7 +82,12 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
// Wait for the server thread to do some processing
me.wait ();
- // This eats all orb-specific options!
+ // Restore the orb-specific options.
+ argc = orb_args.argc ();
+ for (int i = 1; i < argc; ++i)
+ {
+ argv[i] = const_cast<ACE_TCHAR*> (orb_args[i]);
+ }
ACE_Argv_Type_Converter catc (argc, argv);
CORBA::ORB_var corb =
CORBA::ORB_init (catc.get_argc(),
diff --git a/TAO/tests/Bug_2084_Regression/EventNode.cpp b/TAO/tests/Bug_2084_Regression/EventNode.cpp
index d10b472e837..8490764d777 100644
--- a/TAO/tests/Bug_2084_Regression/EventNode.cpp
+++ b/TAO/tests/Bug_2084_Regression/EventNode.cpp
@@ -5,6 +5,7 @@
#include "tid_to_int.h"
#include "tao/ORB_Core.h"
#include "tao/ORB_Table.h"
+#include "tao/ORB_Core_Auto_Ptr.h"
ACE_RCSID(EventNode, EventNode, "$Id$")
@@ -35,7 +36,8 @@ void EventNode::registerHello ( ::Test::Hello_ptr h )
TAO::ORB_Table * const orb_table =
TAO::ORB_Table::instance ();
- if (orb_table->find ("server_orb") == 0)
+ TAO_ORB_Core_Auto_Ptr tmp (orb_table->find ("server_orb"));
+ if (tmp.get () == 0)
{
// We are running on a single ORB and this is an error.
ACE_ERROR ((LM_ERROR,
diff --git a/TAO/tests/Bug_2084_Regression/Hello.cpp b/TAO/tests/Bug_2084_Regression/Hello.cpp
index 52d91f88e7e..a374609b63a 100644
--- a/TAO/tests/Bug_2084_Regression/Hello.cpp
+++ b/TAO/tests/Bug_2084_Regression/Hello.cpp
@@ -5,6 +5,7 @@
#include "tid_to_int.h"
#include "tao/ORB_Core.h"
#include "tao/ORB_Table.h"
+#include "tao/ORB_Core_Auto_Ptr.h"
ACE_RCSID(Hello, Hello, "$Id$")
@@ -21,10 +22,6 @@ Hello::get_string (::Test::ThreadId caller_threadid)
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) Upcall in process ..\n"));
- // Use portable thread IDs
- ACE_Thread_ID this_ID;
- this_ID.id (this->thr_id_);
-
if (ACE_thread_t_to_integer< ::Test::ThreadId> (ACE_Thread::self ()) != caller_threadid)
{
// this means a remote call was made
@@ -43,7 +40,8 @@ Hello::get_string (::Test::ThreadId caller_threadid)
TAO::ORB_Table * const orb_table =
TAO::ORB_Table::instance ();
- if (orb_table->find ("server_orb") == 0)
+ TAO_ORB_Core_Auto_Ptr tmp (orb_table->find ("server_orb"));
+ if (tmp.get () == 0)
{
// We are running on a single ORB and this is an error.
ACE_ERROR ((LM_ERROR,
diff --git a/TAO/tests/Bug_2084_Regression/run_test.pl b/TAO/tests/Bug_2084_Regression/run_test.pl
index fc099eeb4a1..7daf9108a27 100755
--- a/TAO/tests/Bug_2084_Regression/run_test.pl
+++ b/TAO/tests/Bug_2084_Regression/run_test.pl
@@ -72,7 +72,7 @@ if ($sv != 0) {
unlink $iorfile;
print STDERR "======== Running in no collocation mode and two ORBS \n";
-$SV->Arguments ("-o $iorfile -k file://$iorfile -n -ORBCollocation per-orb");
+$SV->Arguments ("-o $iorfile -k file://$iorfile -n -ORBCollocation no");
$sv = $SV->SpawnWaitKill ($PerlACE::wait_interval_for_process_creation);
if ($sv != 0) {
diff --git a/TAO/tests/Bug_2174_Regression/client.cpp b/TAO/tests/Bug_2174_Regression/client.cpp
index c2d15a95592..b3162c7a9ef 100644
--- a/TAO/tests/Bug_2174_Regression/client.cpp
+++ b/TAO/tests/Bug_2174_Regression/client.cpp
@@ -53,7 +53,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Simple_Server_var server =
Simple_Server::_narrow (object.in ());
diff --git a/TAO/tests/Bug_2234_Regression/server.cpp b/TAO/tests/Bug_2234_Regression/server.cpp
index d4f8d5b598a..fd9122fc6e2 100644
--- a/TAO/tests/Bug_2234_Regression/server.cpp
+++ b/TAO/tests/Bug_2234_Regression/server.cpp
@@ -18,6 +18,7 @@
#include "tao/PI_Server/PI_Server.h"
#include "tao/ORBInitializer_Registry.h"
#include "tao/PortableServer/Root_POA.h"
+#include "tao/LocalObject.h"
CORBA::ORB_ptr orb;
@@ -726,7 +727,9 @@ public:
}
};
-class Initialiser : public PortableInterceptor::ORBInitializer
+class Initialiser
+ : public virtual PortableInterceptor::ORBInitializer
+ , public virtual CORBA::LocalObject
{
public:
Initialiser( AnInterceptor* interceptor )
diff --git a/TAO/tests/Bug_2345_Regression/server.cpp b/TAO/tests/Bug_2345_Regression/server.cpp
index a5693fcb879..57c7ab10806 100644
--- a/TAO/tests/Bug_2345_Regression/server.cpp
+++ b/TAO/tests/Bug_2345_Regression/server.cpp
@@ -5,10 +5,13 @@
int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
+ // Put orb outside try scope since there will be an
+ // exception and it will not be possible to call
+ // orb->destroy() at the end, hence memory leak.
+ CORBA::ORB_var orb = CORBA::ORB::_nil();
+
try
{
- CORBA::ORB_var orb = CORBA::ORB::_nil();
-
// Initialize the ORB.
//
orb = CORBA::ORB_init(argc, argv);
@@ -37,5 +40,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
// ... normally print an error here
}
+
+ orb->destroy ();
return 0;
}
diff --git a/TAO/tests/Bug_2356_Regression/ami_test_i.cpp b/TAO/tests/Bug_2356_Regression/ami_test_i.cpp
index 3ca8d589a2c..3062427213a 100644
--- a/TAO/tests/Bug_2356_Regression/ami_test_i.cpp
+++ b/TAO/tests/Bug_2356_Regression/ami_test_i.cpp
@@ -31,10 +31,10 @@ AMI_Test_i::foo (CORBA::Long value)
ACE_DEBUG ((LM_DEBUG,
"Throwing Exception: A::DidTheRightThing\n"));
#if defined(ACE_HAS_WCHAR) || defined(ACE_HAS_XPG4_MULTIBYTE_CHAR)
- CORBA::WChar* wstring = CORBA::wstring_dup(L"Hello world");
+ CORBA::WChar const* wstring = L"Hello world";
#else
- CORBA::WChar empty[] = { 0 };
- CORBA::WChar* wstring = CORBA::wstring_dup(empty);
+ CORBA::WChar const empty[] = { 0 };
+ CORBA::WChar const* wstring = empty;
#endif
throw A::DidTheRightThing(42, wstring);
}
diff --git a/TAO/tests/Bug_2356_Regression/client.cpp b/TAO/tests/Bug_2356_Regression/client.cpp
index a6441e24e56..b57ce1c0573 100644
--- a/TAO/tests/Bug_2356_Regression/client.cpp
+++ b/TAO/tests/Bug_2356_Regression/client.cpp
@@ -91,10 +91,10 @@ public:
ACE_OS::strlen(ex.whatDidTheRightThing.in()) * sizeof(CORBA::WChar)
));
- CORBA::WChar* wstring = CORBA::wstring_dup(L"Hello world");
+ CORBA::WChar const* wstring = L"Hello world";
#else
- CORBA::WChar empty[] = { 0 };
- CORBA::WChar* wstring = CORBA::wstring_dup(empty);
+ CORBA::WChar const empty[] = { 0 };
+ CORBA::WChar const* wstring = empty;
#endif
if (ACE_OS::strcmp (wstring, ex.whatDidTheRightThing.in()) != 0)
{
diff --git a/TAO/tests/Bug_2593_Regression/run_test.pl b/TAO/tests/Bug_2593_Regression/run_test.pl
index be4ae9996d0..8e457643261 100755
--- a/TAO/tests/Bug_2593_Regression/run_test.pl
+++ b/TAO/tests/Bug_2593_Regression/run_test.pl
@@ -20,7 +20,8 @@ foreach $i (@ARGV) {
$iorfile = PerlACE::LocalFile ("server.ior");
unlink $iorfile;
-$endpoints = "-ORBEndpoint shmiop://12345 -ORBEndpoint iiop://:4444";
+$endpoints = "-ORBEndpoint shmiop://12345 -ORBEndpoint iiop://:"
+ . PerlACE::random_port();
$debug_conf = "-ORBDebugLevel $debug_level";
$svc_conf = "-ORBSvcConf server.conf";
diff --git a/TAO/tests/Bug_2734_Regression/client.cpp b/TAO/tests/Bug_2734_Regression/client.cpp
index 689a85e3493..755d3da6daf 100644
--- a/TAO/tests/Bug_2734_Regression/client.cpp
+++ b/TAO/tests/Bug_2734_Regression/client.cpp
@@ -96,7 +96,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Simple_Server_var server =
Simple_Server::_narrow (object.in ());
diff --git a/TAO/tests/Bug_2768_Regression/client.cpp b/TAO/tests/Bug_2768_Regression/client.cpp
index 08b619eef2a..707b9119343 100644
--- a/TAO/tests/Bug_2768_Regression/client.cpp
+++ b/TAO/tests/Bug_2768_Regression/client.cpp
@@ -43,7 +43,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var object_temp =
- orb->string_to_object(ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
SimpleMessenger::Messenger_var messenger =
SimpleMessenger::Messenger::_unchecked_narrow( object_temp.in ());
diff --git a/TAO/tests/Bug_3171_Regression/server.cpp b/TAO/tests/Bug_3171_Regression/server.cpp
index ffb8b698905..79c4b0c4ac8 100644
--- a/TAO/tests/Bug_3171_Regression/server.cpp
+++ b/TAO/tests/Bug_3171_Regression/server.cpp
@@ -8,6 +8,7 @@
#include "tao/Messaging/Messaging.h"
#include "tao/ORBInitializer_Registry.h"
#include "tao/PI/PI.h"
+#include "tao/LocalObject.h"
int g_nthreads = 1;
bool g_setTimeout = true;
@@ -65,7 +66,8 @@ private:
};
class MyORBinitializer
- : public PortableInterceptor::ORBInitializer
+ : public virtual PortableInterceptor::ORBInitializer
+ , public virtual CORBA::LocalObject
{
public:
MyORBinitializer( ACE_CString orbID )
diff --git a/TAO/tests/Bug_3198_Regression/bug_3198_regression.cpp b/TAO/tests/Bug_3198_Regression/bug_3198_regression.cpp
index 69605476994..ac31228b5e0 100644
--- a/TAO/tests/Bug_3198_Regression/bug_3198_regression.cpp
+++ b/TAO/tests/Bug_3198_Regression/bug_3198_regression.cpp
@@ -47,7 +47,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
if (parse_args (argc, argv) != 0)
return 1;
- CORBA::Object_var obj = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ CORBA::Object_var obj = orb->string_to_object (ior);
CORBA::PolicyList_var policies;
CORBA::Boolean result = obj->_validate_connection (policies.out());
if (result)
diff --git a/TAO/tests/Bug_3598a_Regression/client.cpp b/TAO/tests/Bug_3598a_Regression/client.cpp
index 06919103896..1eb9ffec04b 100644
--- a/TAO/tests/Bug_3598a_Regression/client.cpp
+++ b/TAO/tests/Bug_3598a_Regression/client.cpp
@@ -62,7 +62,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var tmp =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Test::Hello_var hello =
Test::Hello::_narrow(tmp.in () );
diff --git a/TAO/tests/Bug_3632_Regression/Bug_3632_Regression.mpc b/TAO/tests/Bug_3632_Regression/Bug_3632_Regression.mpc
new file mode 100644
index 00000000000..fb8d07ee600
--- /dev/null
+++ b/TAO/tests/Bug_3632_Regression/Bug_3632_Regression.mpc
@@ -0,0 +1,16 @@
+// -*- MPC -*-
+// $Id$
+
+project(*idl): taoidldefaults {
+ IDL_Files {
+ test.idl
+ }
+ custom_only = 1
+}
+
+project(*test): taoclient {
+ Source_Files {
+ test.cpp
+ testC.cpp
+ }
+}
diff --git a/TAO/tests/Bug_3632_Regression/README b/TAO/tests/Bug_3632_Regression/README
new file mode 100644
index 00000000000..918ba5096a3
--- /dev/null
+++ b/TAO/tests/Bug_3632_Regression/README
@@ -0,0 +1,10 @@
+# $Id$
+
+C++ mapping says that "For bounded sequences, the maximum length is part of the
+type and cannot be set or modified..." and later "For a bounded sequence,
+maximum() always returns the bound of the sequence as given in its OMG IDL type
+declaration."
+
+Also it says that "For a bounded sequence, attempting to set the current length
+to a value larger than the maximum length given in the OMG IDL specification
+produces undefined behavior". \ No newline at end of file
diff --git a/TAO/tests/Bug_3632_Regression/run_test.pl b/TAO/tests/Bug_3632_Regression/run_test.pl
new file mode 100755
index 00000000000..c7521144e9d
--- /dev/null
+++ b/TAO/tests/Bug_3632_Regression/run_test.pl
@@ -0,0 +1,22 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+my $client = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+$CL = $client->CreateProcess ("client");
+
+$test = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval());
+
+if ($test != 0) {
+ print STDERR "ERROR: test returned $test\n";
+ exit 1;
+}
+
+exit 0;
diff --git a/TAO/tests/Bug_3632_Regression/test.cpp b/TAO/tests/Bug_3632_Regression/test.cpp
new file mode 100644
index 00000000000..d560ad838ed
--- /dev/null
+++ b/TAO/tests/Bug_3632_Regression/test.cpp
@@ -0,0 +1,13 @@
+// $Id$
+
+#include "testC.h"
+
+int
+ACE_TMAIN (int, ACE_TCHAR *[])
+{
+ Test::bounded_string_seq seq;
+ seq.length (11);
+ ACE_TEST_ASSERT (seq.maximum () == 10);
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3632_Regression/test.idl b/TAO/tests/Bug_3632_Regression/test.idl
new file mode 100644
index 00000000000..7f95d1147e2
--- /dev/null
+++ b/TAO/tests/Bug_3632_Regression/test.idl
@@ -0,0 +1,6 @@
+// $Id$
+
+module Test
+{
+ typedef sequence <string, 10> bounded_string_seq;
+};
diff --git a/TAO/tests/Bug_3647_Regression/Backend_Impl.cpp b/TAO/tests/Bug_3647_Regression/Backend_Impl.cpp
new file mode 100644
index 00000000000..d3752c32b41
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/Backend_Impl.cpp
@@ -0,0 +1,68 @@
+#include "Backend_Impl.h"
+#include "ace/OS.h"
+
+ACE_RCSID(Bug_3647_Regression, Backend_Impl, "$Id$")
+
+Bug_3647_Regression::Backend_Impl::
+Backend_Impl(CORBA::ORB_ptr orb, bool verbose)
+ : POA_Bug_3647_Regression::Backend()
+ , orb_(CORBA::ORB::_duplicate(orb))
+ , verbose_(verbose)
+{
+}
+
+Bug_3647_Regression::Backend_Impl::
+~Backend_Impl()
+{
+}
+
+void Bug_3647_Regression::Backend_Impl::
+startup_test()
+{
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Backend_Impl::startup_test(%P|%t) - called\n"));
+ }
+}
+
+void Bug_3647_Regression::Backend_Impl::
+ping(Bug_3647_Regression::Payload const & p)
+{
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Backend_Impl::ping(%P|%t) - called, payload length = %d\n",
+ p.length()));
+ }
+}
+
+void Bug_3647_Regression::Backend_Impl::
+freeze(CORBA::ULong seconds)
+{
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Backend_Impl::freeze(%P|%t) - called, sleeping for %d seconds\n",
+ seconds));
+ }
+ ACE_OS::sleep(seconds);
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Backend_Impl::sleep(%P|%t) - finished after %d seconds\n",
+ seconds));
+ }
+ shutdown();
+}
+
+void Bug_3647_Regression::Backend_Impl::
+shutdown()
+{
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Backend_Impl::shutdown(%P|%t) - called\n"));
+ }
+ orb_->shutdown (false);
+}
diff --git a/TAO/tests/Bug_3647_Regression/Backend_Impl.h b/TAO/tests/Bug_3647_Regression/Backend_Impl.h
new file mode 100644
index 00000000000..6a8b08b9f61
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/Backend_Impl.h
@@ -0,0 +1,40 @@
+#ifndef Bug_3647_Regression_Backend_Impl_h
+#define Bug_3647_Regression_Backend_Impl_h
+//
+// $Id$
+//
+
+#include "TestS.h"
+
+namespace Bug_3647_Regression
+{
+
+/**
+ * @class Backend
+ *
+ * Implement the Bug_3647_Regression::Backend interface
+ *
+ */
+class Backend_Impl : public POA_Bug_3647_Regression::Backend
+{
+public:
+ Backend_Impl(CORBA::ORB_ptr orb, bool verbose);
+ virtual ~Backend_Impl();
+
+ virtual void startup_test();
+ virtual void ping(Bug_3647_Regression::Payload const & the_payload);
+ virtual void freeze(CORBA::ULong seconds);
+
+ virtual void shutdown();
+
+private:
+ /// Keep a reference to the ORB so we can shutdown the application.
+ CORBA::ORB_var orb_;
+
+ /// Use this flag to decide if the program should produce any output.
+ bool verbose_;
+};
+
+} // namespace Bug_3647_Regression
+
+#endif // Bug_3647_Regression_Backend_h
diff --git a/TAO/tests/Bug_3647_Regression/Bug_3647_Regression.mpc b/TAO/tests/Bug_3647_Regression/Bug_3647_Regression.mpc
new file mode 100644
index 00000000000..35be833411b
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/Bug_3647_Regression.mpc
@@ -0,0 +1,52 @@
+// -*- MPC -*-
+// $Id$
+
+project(*idl): taoidldefaults, strategies {
+ IDL_Files {
+ Test.idl
+ }
+ custom_only = 1
+}
+
+project(*Backend): taoserver, utils, strategies {
+ after += *idl
+ Source_Files {
+ Backend_Impl.cpp
+ backend_server.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ TestS.cpp
+ }
+ IDL_Files {
+ }
+ exename = backend_server
+}
+
+project(*Middle): taoserver, messaging, utils, strategies {
+ after += *idl
+ Source_Files {
+ Middle_Impl.cpp
+ middle_server.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ TestS.cpp
+ }
+ IDL_Files {
+ }
+ exename = middle_server
+}
+
+project(*Client): taoclient, messaging, utils, strategies {
+ after += *idl
+ Source_Files {
+ client.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ }
+ IDL_Files {
+ }
+}
+
diff --git a/TAO/tests/Bug_3647_Regression/Middle_Impl.cpp b/TAO/tests/Bug_3647_Regression/Middle_Impl.cpp
new file mode 100644
index 00000000000..4a5fa30195d
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/Middle_Impl.cpp
@@ -0,0 +1,100 @@
+#include "Middle_Impl.h"
+
+ACE_RCSID(Bug_3647_Regression, Middle_Impl, "$Id$")
+
+Bug_3647_Regression::Middle_Impl::
+Middle_Impl(
+ Backend_ptr backend,
+ CORBA::ORB_ptr orb,
+ bool verbose,
+ long timeout)
+ : POA_Bug_3647_Regression::Middle()
+ , backend_(Bug_3647_Regression::Backend::_duplicate(backend))
+ , orb_(CORBA::ORB::_duplicate(orb))
+ , verbose_(verbose)
+ , timeout_(timeout)
+{
+}
+
+Bug_3647_Regression::Middle_Impl::
+~Middle_Impl()
+{
+}
+
+void Bug_3647_Regression::Middle_Impl::
+startup_test()
+{
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::startup_test(%P|%t) - called\n"));
+ }
+ backend_->startup_test();
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::startup_test(%P|%t) - backend "
+ "startup call sucessful\n"));
+ }
+ backend_->freeze(10);
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::startup_test(%P|%t) - backend "
+ "freeze call sucessful\n"));
+ }
+}
+
+void Bug_3647_Regression::Middle_Impl::
+ping()
+{
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::ping(%P|%t) - called\n"));
+ }
+ try
+ {
+ Payload p;
+ p.length(1024);
+ backend_->ping(p);
+ }
+ catch(CORBA::TIMEOUT const & ex)
+ {
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::ping(%P|%t) - timeout raised\n"));
+ ex._tao_print_exception ("Exception caught:");
+ }
+ }
+ catch(CORBA::Exception const & ex)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::ping(%P|%t) - unexpected exception raised\n"));
+ ex._tao_print_exception ("Exception caught:");
+ throw;
+ }
+}
+
+void Bug_3647_Regression::Middle_Impl::
+shutdown()
+{
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::shutdown(%P|%t) - called\n"));
+ }
+ backend_->shutdown();
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::shutdown(%P|%t) - call to backend was completed\n"));
+ }
+ orb_->shutdown (false);
+ if (verbose_)
+ {
+ ACE_DEBUG ((LM_INFO,
+ "Middle_Impl::shutdown(%P|%t) - call to ORB was completed\n"));
+ }
+}
diff --git a/TAO/tests/Bug_3647_Regression/Middle_Impl.h b/TAO/tests/Bug_3647_Regression/Middle_Impl.h
new file mode 100644
index 00000000000..ef57ed5a1a6
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/Middle_Impl.h
@@ -0,0 +1,49 @@
+#ifndef Bug_3647_Regression_Middle_Impl_h
+#define Bug_3647_Regression_Middle_Impl_h
+//
+// $Id$
+//
+
+#include "TestS.h"
+
+namespace Bug_3647_Regression
+{
+
+/**
+ * @class Middle
+ *
+ * Implement the Bug_3647_Regression::Middle interface
+ *
+ */
+class Middle_Impl : public POA_Bug_3647_Regression::Middle
+{
+public:
+ Middle_Impl(
+ Backend_ptr backend,
+ CORBA::ORB_ptr orb,
+ bool verbose,
+ long timeout);
+ virtual ~Middle_Impl();
+
+ virtual void startup_test();
+ virtual void ping();
+
+ virtual void shutdown();
+
+private:
+ /// Keep a reference to the backend so we can call it, shutdown, etc.
+ Backend_var backend_;
+
+ /// Keep a reference to the ORB so we can shutdown the application.
+ CORBA::ORB_var orb_;
+
+ /// Use this flag to decide if the program should produce any output.
+ bool verbose_;
+
+ /// Control the freeze time based on the timeout time
+ long timeout_;
+};
+
+} // namespace Bug_3647_Regression
+
+#endif // Bug_3647_Regression_Middle_hpp
diff --git a/TAO/tests/Bug_3647_Regression/README b/TAO/tests/Bug_3647_Regression/README
new file mode 100644
index 00000000000..13afa51b826
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/README
@@ -0,0 +1,32 @@
+/**
+
+@page Bug_3647_Regression Test README File
+
+This test demonstrates the problem described in bugzilla entry #3647.
+
+In this test we have three participants:
+
+A) A back-end server that will inconveniently block in the middle of
+ its work
+B) A middle-tier server that is trying to communicate with the back
+ end server using SYNC_WITH_TRANSPORT oneway calls, with timeouts.
+C) A client application that is sending twoway calls to the
+ middle-tier server.
+
+The expectaton is that when the back-end server completely blocks, the
+middle-tier server will continue to operate normally. That is, the
+oneway calls to the back-end server will block it, the timeouts will
+expire, but the recursive loop will be available to respond to any
+incoming requests from the client application.
+
+What we observe is that the middle-tier application blocks, but not in
+the event loop as it should, but while checking if the socket is ready
+for output.
+
+To run the test use the run_test.pl script:
+
+$ ./run_test.pl
+
+the script returns 0 if the test was successful, non-zero otherwise.
+
+*/
diff --git a/TAO/tests/Bug_3647_Regression/Test.idl b/TAO/tests/Bug_3647_Regression/Test.idl
new file mode 100644
index 00000000000..e8fc5efdfdf
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/Test.idl
@@ -0,0 +1,50 @@
+/**
+ * @namespace Bug_3647_Regression
+ *
+ * Keep the types in this test to its own namespace.
+ *
+ * Keeping each test in its own namespace makes it easier to generate
+ * Doxygen documentation for all the tests. Also, it makes it clear as to
+ * what types are local vs. coming from the library vs. generated.
+ *
+ * $Id$
+ *
+ */
+
+module Bug_3647_Regression
+{
+ typedef sequence<octet> Payload;
+
+ interface Backend
+ {
+ /// This operation is called during the startup, to make sure all
+ /// servers are talking to each other and communication has been
+ /// established.
+ void startup_test();
+
+ /// When called this will just consume the data. The idea is to
+ /// generate network/traffic load.
+ oneway void ping(in Payload the_payload);
+
+ /// When called this will cause the single thread in the server to
+ /// block for the specified number of seconds.
+ oneway void freeze(in unsigned long seconds);
+
+ /// Shutdown the server
+ oneway void shutdown();
+ };
+
+ interface Middle
+ {
+ /// This operation is called during the startup, to make sure all
+ /// servers are talking to each other and communication has been
+ /// established.
+ void startup_test();
+
+ /// When called this operation should return immediately.
+ void ping();
+
+ /// Shutdown the server
+ oneway void shutdown();
+ };
+};
diff --git a/TAO/tests/Bug_3647_Regression/backend_server.cpp b/TAO/tests/Bug_3647_Regression/backend_server.cpp
new file mode 100644
index 00000000000..974686b3025
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/backend_server.cpp
@@ -0,0 +1,120 @@
+// $Id$
+
+#include "Backend_Impl.h"
+
+#include "tao/Strategies/advanced_resource.h"
+
+#include "tao/Utils/Servant_Var.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+ACE_RCSID (Bug_3647_Regression,
+ backend_server,
+ "$Id$")
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT ("backend.ior");
+bool verbose = false;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("vo:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case 'v':
+ verbose = true;
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT("usage: %s ")
+ ACE_TEXT("-o <iorfile>")
+ ACE_TEXT("\n"),
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ if (CORBA::is_nil (root_poa.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "backend_server(%P|%t) - panic: nil RootPOA\n"),
+ 1);
+ }
+
+ PortableServer::POAManager_var poa_manager = root_poa->the_POAManager ();
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ using namespace Bug_3647_Regression;
+ TAO::Utils::Servant_Var<Backend_Impl> impl(
+ new Backend_Impl(orb.in(), verbose));
+
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (impl.in());
+
+ CORBA::Object_var object = root_poa->id_to_reference (id.in ());
+
+ Bug_3647_Regression::Backend_var backend =
+ Bug_3647_Regression::Backend::_narrow (object.in ());
+
+ CORBA::String_var ior = orb->object_to_string (backend.in ());
+
+ // Output the IOR to the <ior_output_file>
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "backend_server(%P|%) - cannot open output file "
+ "for writing IOR: %s\n",
+ ior_output_file),
+ 1);
+ }
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ ACE_DEBUG ((LM_DEBUG, "backend_server(%P|%t) - event loop finished\n"));
+
+ root_poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "backend_server"));
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3647_Regression/client.cpp b/TAO/tests/Bug_3647_Regression/client.cpp
new file mode 100644
index 00000000000..993a1a76ec6
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/client.cpp
@@ -0,0 +1,147 @@
+// $Id$
+
+#include "TestC.h"
+#include "tao/Strategies/advanced_resource.h"
+#include "tao/Utils/PolicyList_Destroyer.h"
+#include "tao/Messaging/Messaging.h"
+#include "tao/AnyTypeCode/Any.h"
+#include "ace/Get_Opt.h"
+
+ACE_RCSID(Bug_3647_Regression,
+ client,
+ "$Id$")
+
+const ACE_TCHAR *ior = ACE_TEXT ("file://middle.ior");
+bool verbose = true;
+long timeout = 2;
+
+void
+usage(ACE_TCHAR const *cmd,
+ ACE_TCHAR const *msg)
+{
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("usage: %s ")
+ ACE_TEXT("-v ")
+ ACE_TEXT("-k <ior> ")
+ ACE_TEXT("-t timeout ")
+ ACE_TEXT("\n")
+ ACE_TEXT(" %s\n"),
+ cmd, msg));
+}
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("vk:t:"));
+ int c;
+ ACE_TCHAR const *stimeout = 0;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'v':
+ verbose = true;
+ break;
+
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 't':
+ stimeout = get_opts.opt_arg();
+ break;
+
+ case '?':
+ default:
+ usage(argv[0], ACE_TEXT("unknown argument"));
+ return -1;
+ }
+
+ if (stimeout != 0)
+ {
+ ACE_TCHAR *end;
+ long tmp = ACE_OS::strtol(stimeout, &end, 10);
+ if (end == 0 || *end != '\0')
+ {
+ usage(argv[0], ACE_TEXT("Invalid timeout value"));
+ return -1;
+ }
+ timeout = tmp;
+ }
+
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var tmp = orb->string_to_object(ior);
+
+ // one second in TimeT units
+ TimeBase::TimeT const second = 10 * TimeBase::TimeT(1000000);
+
+ CORBA::Any timeout_as_any;
+ timeout_as_any <<= TimeBase::TimeT(timeout * second);
+
+ TAO::Utils::PolicyList_Destroyer plist(1);
+ plist.length(1);
+ plist[0] =
+ orb->create_policy(Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE,
+ timeout_as_any);
+
+ tmp = tmp->_set_policy_overrides(plist, CORBA::SET_OVERRIDE);
+
+ Bug_3647_Regression::Middle_var middle =
+ Bug_3647_Regression::Middle::_narrow(tmp.in ());
+
+ if (CORBA::is_nil (middle.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "client(%P|%t) - nil "
+ "Bug_3647_Regression::Middle reference <%s>\n",
+ ior),
+ 1);
+ }
+
+ // Startup the tests ...
+ middle->startup_test();
+
+ ACE_DEBUG ((LM_DEBUG, "client(%P|%t) - test started up\n"));
+
+ int const iterations = 10000;
+ int const interval = iterations / 20;
+ ACE_DEBUG ((LM_DEBUG, "client(%P|%t) - running pings"));
+ for (int i = 0; i != iterations; ++i)
+ {
+ middle->ping();
+ if (i % interval == 0 && i > 0)
+ {
+ ACE_DEBUG((LM_DEBUG, "."));
+ }
+ }
+ ACE_DEBUG ((LM_DEBUG, "done\n"));
+
+ middle->shutdown ();
+ ACE_DEBUG ((LM_DEBUG,
+ "client(%P|%t) - server shutdown request sent\n"));
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "client"));
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3647_Regression/middle_server.cpp b/TAO/tests/Bug_3647_Regression/middle_server.cpp
new file mode 100644
index 00000000000..23a03de8eeb
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/middle_server.cpp
@@ -0,0 +1,221 @@
+// $Id$
+
+#include "Middle_Impl.h"
+
+#include "tao/Utils/PolicyList_Destroyer.h"
+#include "tao/Utils/Servant_Var.h"
+#include "tao/Utils/RIR_Narrow.h"
+#include "tao/Strategies/advanced_resource.h"
+#include "tao/Messaging/Messaging.h"
+#include "tao/AnyTypeCode/Any.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+ACE_RCSID (Bug_3647_Regression,
+ middle_server,
+ "$Id$")
+
+bool verbose = false;
+const ACE_TCHAR *ior_output_file = ACE_TEXT ("middle.ior");
+const ACE_TCHAR *ior = ACE_TEXT ("file://backend.ior");
+Messaging::SyncScope scope = Messaging::SYNC_NONE;
+long timeout = 2;
+
+void
+usage(ACE_TCHAR const *cmd,
+ ACE_TCHAR const *msg)
+{
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT("Usage: %s ")
+ ACE_TEXT("-v ")
+ ACE_TEXT("-k <ior> ")
+ ACE_TEXT("-o <iorfile> ")
+ ACE_TEXT("-s <NONE|TRANSPORT|SERVER|TARGET|DELAYED> ")
+ ACE_TEXT("-t timeout ")
+ ACE_TEXT("\n")
+ ACE_TEXT(" %s\n"),
+ cmd, msg));
+}
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("vo:k:s:t:"));
+ int c;
+ ACE_TCHAR const *sname = ACE_TEXT("NONE");
+ ACE_TCHAR const *stimeout = 0;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'v':
+ verbose = true;
+ break;
+
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 's':
+ sname = get_opts.opt_arg ();
+ break;
+
+ case 't':
+ stimeout = get_opts.opt_arg();
+ break;
+
+ case '?':
+ default:
+ usage(argv[0], ACE_TEXT("unknown argument"));
+ return -1;
+ }
+
+ if (ACE_OS::strcmp(sname, ACE_TEXT("NONE")) == 0) {
+ scope = Messaging::SYNC_NONE;
+ } else if (ACE_OS::strcmp(sname, ACE_TEXT("TRANSPORT")) == 0) {
+ scope = Messaging::SYNC_WITH_TRANSPORT;
+ } else if (ACE_OS::strcmp(sname, ACE_TEXT("SERVER")) == 0) {
+ scope = Messaging::SYNC_WITH_SERVER;
+ } else if (ACE_OS::strcmp(sname, ACE_TEXT("TARGET")) == 0) {
+ scope = Messaging::SYNC_WITH_TARGET;
+ } else if (ACE_OS::strcmp(sname, ACE_TEXT("DELAYED")) == 0) {
+ scope = TAO::SYNC_DELAYED_BUFFERING;
+ } else {
+ usage(argv[0], ACE_TEXT("Invalid scope value"));
+ return -1;
+ }
+
+ if (stimeout != 0)
+ {
+ ACE_TCHAR *end;
+ long tmp = ACE_OS::strtol(stimeout, &end, 10);
+ if (end == 0 || *end != '\0')
+ {
+ usage(argv[0], ACE_TEXT("Invalid timeout value"));
+ return -1;
+ }
+ timeout = tmp;
+ }
+
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ if (CORBA::is_nil (root_poa.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "backend_server(%P|%t) - panic: nil RootPOA\n"),
+ 1);
+ }
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var tmp = orb->string_to_object(ior);
+
+ // one second in TimeT units
+ TimeBase::TimeT const second = 10 * TimeBase::TimeT(1000000);
+
+ CORBA::Any timeout_as_any;
+ timeout_as_any <<= TimeBase::TimeT(timeout * second);
+
+ CORBA::Any scope_as_any;
+ scope_as_any <<= scope;
+
+ TAO::Utils::PolicyList_Destroyer plist(1);
+ plist.length(2);
+ plist[0] =
+ orb->create_policy(Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE,
+ timeout_as_any);
+ plist[1] =
+ orb->create_policy(Messaging::SYNC_SCOPE_POLICY_TYPE,
+ scope_as_any);
+
+ CORBA::PolicyCurrent_var policy_current =
+ TAO::Utils::RIR_Narrow<CORBA::PolicyCurrent>::narrow(
+ orb.in (),
+ "PolicyCurrent");
+
+ policy_current->set_policy_overrides(
+ plist, CORBA::ADD_OVERRIDE);
+
+ Bug_3647_Regression::Backend_var backend =
+ Bug_3647_Regression::Backend::_narrow(tmp.in ());
+
+ if (CORBA::is_nil (backend.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "middle_server(%P|%t) - nil backend reference <%s>\n",
+ ior),
+ 1);
+ }
+
+ using namespace Bug_3647_Regression;
+ TAO::Utils::Servant_Var<Middle_Impl> impl(
+ new Middle_Impl(backend.in(), orb.in(), verbose,
+ timeout));
+
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (impl.in());
+
+ CORBA::Object_var object = root_poa->id_to_reference (id.in ());
+
+
+ Bug_3647_Regression::Middle_var middle =
+ Bug_3647_Regression::Middle::_narrow (object.in ());
+
+ CORBA::String_var ior = orb->object_to_string (middle.in ());
+
+ // Output the IOR to the <ior_output_file>
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "middle_server(%P|%t) - Cannot open output file "
+ "for writing IOR: %s\n",
+ ior_output_file),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ ACE_DEBUG ((LM_DEBUG,
+ "middle_server(%P|%t) - event loop finished\n"));
+
+ root_poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "middle_server"));
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3647_Regression/run_test.pl b/TAO/tests/Bug_3647_Regression/run_test.pl
new file mode 100755
index 00000000000..3b544e83599
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/run_test.pl
@@ -0,0 +1,148 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+use strict;
+
+my $verbose = '';
+my $mode = 'DELAYED';
+
+foreach my $i (@ARGV) {
+ if ($i eq '-verbose') {
+ $verbose = ' -v';
+ } elsif ($i eq '-none') {
+ $mode = 'NONE';
+ } elsif ($i eq '-delayed') {
+ $mode = 'DELAYED';
+ } elsif ($i eq '-transport') {
+ # In this mode, the test is *expected* to fail. We only run it
+ # like this to verify that the test is a good test (i.e. it
+ # detects failures.) Same comment applies for SERVER and TARGET
+ # modes.
+ $mode = 'TRANSPORT';
+ } elsif ($i eq '-server') {
+ $mode = 'SERVER';
+ } elsif ($i eq '-target') {
+ $mode = 'TARGET';
+ }
+}
+
+my $backend = PerlACE::TestTarget::create_target(1)
+ or die "Create target 1 failed\n";
+my $middle = PerlACE::TestTarget::create_target(2)
+ or die "Create target 2 failed\n";
+my $client = PerlACE::TestTarget::create_target(3)
+ or die "Create target 3 failed\n";
+
+my $backend_ior = "backend.ior";
+my $middle_ior = "middle.ior";
+
+my $backend_iorfile = $backend->LocalFile ($backend_ior);
+my $middle_in_iorfile = $middle->LocalFile ($backend_ior);
+my $middle_out_iorfile = $middle->LocalFile ($middle_ior);
+my $client_in_iorfile = $client->LocalFile ($middle_ior);
+
+$backend->DeleteFile($backend_ior);
+$middle->DeleteFile($backend_ior);
+$middle->DeleteFile($middle_ior);
+$client->DeleteFile($middle_ior);
+
+my $BE =
+ $backend->CreateProcess ("backend_server",
+ " -o $backend_iorfile"
+ . $verbose);
+my $MD =
+ $middle->CreateProcess ("middle_server",
+ " -s $mode -t 5 "
+ ." -o $middle_out_iorfile"
+ . $verbose
+ . " -k file://$middle_in_iorfile");
+my $CL = $client->CreateProcess ("client",
+ " -k file://$client_in_iorfile"
+ ." -t 1 "
+ .$verbose);
+my $be_status = $BE->Spawn ();
+if ($be_status != 0) {
+ print STDERR "ERROR: server returned $be_status\n";
+ exit 1;
+}
+
+if ($backend->WaitForFileTimed ($backend_ior,
+ $backend->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$backend_iorfile>\n";
+ $BE->Kill (); $BE->TimedWait (1);
+ exit 1;
+}
+
+if ($backend->GetFile ($backend_ior) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$backend_iorfile>\n";
+ $BE->Kill (); $BE->TimedWait (1);
+ exit 1;
+}
+
+if ($middle->PutFile ($backend_ior) == -1) {
+ print STDERR "ERROR: cannot set file <$middle_in_iorfile>\n";
+ $BE->Kill (); $BE->TimedWait (1);
+ exit 1;
+}
+
+my $md_status = $MD->Spawn ();
+if ($md_status != 0) {
+ print STDERR "ERROR: server returned $md_status\n";
+ $BE->Kill (); $BE->TimedWait (1);
+ exit 1;
+}
+
+if ($middle->WaitForFileTimed ($middle_ior,
+ $middle->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$middle_in_iorfile>\n";
+ $MD->Kill (); $MD->TimedWait (1);
+ $BE->Kill (); $BE->TimedWait (1);
+ exit 1;
+}
+
+if ($middle->GetFile ($middle_ior) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$middle_out_iorfile>\n";
+ $MD->Kill (); $MD->TimedWait (1);
+ $BE->Kill (); $BE->TimedWait (1);
+ exit 1;
+}
+
+if ($client->PutFile ($middle_ior) == -1) {
+ print STDERR "ERROR: cannot set file <$client_in_iorfile>\n";
+ $MD->Kill (); $MD->TimedWait (1);
+ $BE->Kill (); $BE->TimedWait (1);
+ exit 1;
+}
+
+my $status = 0;
+my $client_status =
+ $CL->SpawnWaitKill ($client->ProcessStartWaitInterval());
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+}
+
+$md_status = $MD->WaitKill ($middle->ProcessStopWaitInterval());
+if ($md_status != 0) {
+ print STDERR "ERROR: middle returned $md_status\n";
+ $status = 1;
+}
+
+$be_status = $BE->WaitKill ($backend->ProcessStopWaitInterval());
+if ($be_status != 0) {
+ print STDERR "ERROR: backend returned $be_status\n";
+ $status = 1;
+}
+
+$backend->DeleteFile($backend_ior);
+$middle->DeleteFile($backend_ior);
+$middle->DeleteFile($middle_ior);
+$client->DeleteFile($middle_ior);
+
+exit $status;
diff --git a/TAO/tests/Bug_3647_Regression/svc.conf b/TAO/tests/Bug_3647_Regression/svc.conf
new file mode 100644
index 00000000000..b3efd649ff2
--- /dev/null
+++ b/TAO/tests/Bug_3647_Regression/svc.conf
@@ -0,0 +1,6 @@
+#
+# $Id$
+#
+static Advanced_Resource_Factory "-ORBReactorType select_st -ORBInputCDRAllocator null -ORBConnectionCacheLock null"
+static Server_Strategy_Factory "-ORBPOALock null"
+static Client_Strategy_Factory "-ORBProfileLock null"
diff --git a/TAO/tests/Bug_3672_Regression/Bug_3672_Regression.mpc b/TAO/tests/Bug_3672_Regression/Bug_3672_Regression.mpc
new file mode 100644
index 00000000000..fad2c5ec8c6
--- /dev/null
+++ b/TAO/tests/Bug_3672_Regression/Bug_3672_Regression.mpc
@@ -0,0 +1,34 @@
+// -*- MPC -*-
+// $Id$
+
+project(*idl): taoidldefaults, ami {
+ IDL_Files {
+ ami_test.idl
+ }
+ custom_only = 1
+}
+
+project(*Server): taoserver, messaging, ami {
+ after += *idl
+ Source_Files {
+ ami_test_i.cpp
+ ami_testS.cpp
+ ami_testC.cpp
+ server.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*Client): messaging, taoserver, ami {
+ exename = client
+ after += *idl
+ Source_Files {
+ client.cpp
+ ami_testS.cpp
+ ami_testC.cpp
+ }
+ IDL_Files {
+ }
+}
+
diff --git a/TAO/tests/Bug_3672_Regression/ami_test.idl b/TAO/tests/Bug_3672_Regression/ami_test.idl
new file mode 100644
index 00000000000..fa04f8a7b3e
--- /dev/null
+++ b/TAO/tests/Bug_3672_Regression/ami_test.idl
@@ -0,0 +1,27 @@
+
+//=============================================================================
+/**
+ * @file ami_test.idl
+ *
+ * $Id$
+ *
+ * IDL description of the AMI Test interface
+ *
+ *
+ * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ * @author Michael Kircher <Michael.Kircher@mchp.siemens.de>
+ */
+//=============================================================================
+
+
+
+module A
+ {
+ interface AMI_Test
+ {
+ long foo (out long out_l);
+
+ oneway void shutdown ();
+ };
+
+ };
diff --git a/TAO/tests/Bug_3672_Regression/ami_test_i.cpp b/TAO/tests/Bug_3672_Regression/ami_test_i.cpp
new file mode 100644
index 00000000000..6e3a9ea50b7
--- /dev/null
+++ b/TAO/tests/Bug_3672_Regression/ami_test_i.cpp
@@ -0,0 +1,43 @@
+
+//=============================================================================
+/**
+ * @file ami_test_i.cpp
+ *
+ * $Id$
+ *
+ * Implementation of the AMI Test interface.
+ *
+ *
+ * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ * @author Michael Kircher <Michael.Kircher@mchp.siemens.de>
+ */
+//=============================================================================
+
+
+#include "ami_test_i.h"
+#include "tao/debug.h"
+#include "ace/OS_NS_unistd.h"
+
+ACE_RCSID(AMI, ami_test_i, "$Id$")
+
+AMI_Test_i::AMI_Test_i (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+CORBA::Long
+AMI_Test_i::foo (CORBA::Long_out out_l)
+{
+ out_l = 931233;
+
+ ACE_OS::sleep (10);
+
+ return 931234;
+}
+
+void
+AMI_Test_i::shutdown (void)
+{
+ this->orb_->shutdown (0);
+}
+
diff --git a/TAO/tests/Bug_3672_Regression/ami_test_i.h b/TAO/tests/Bug_3672_Regression/ami_test_i.h
new file mode 100644
index 00000000000..4b5beee5254
--- /dev/null
+++ b/TAO/tests/Bug_3672_Regression/ami_test_i.h
@@ -0,0 +1,41 @@
+
+//=============================================================================
+/**
+ * @file ami_test_i.h
+ *
+ * $Id$
+ *
+ * @author Michael Kircher <Michael.Kircher@mchp.siemens.de>
+ */
+//=============================================================================
+
+
+#ifndef TAO_AMI_TEST_I_H
+#define TAO_AMI_TEST_I_H
+
+#include "ami_testS.h"
+
+/**
+ * @class AMI_Test_i
+ *
+ * @brief AMI Test implementation
+ *
+ * Implements the AMI_Test interface in test.idl
+ */
+class AMI_Test_i : public POA_A::AMI_Test
+{
+public:
+ /// ctor
+ AMI_Test_i (CORBA::ORB_ptr orb);
+
+ // The AMI_Test methods.
+ CORBA::Long foo (CORBA::Long_out out_l);
+
+ void shutdown (void);
+
+private:
+ CORBA::ORB_var orb_;
+};
+
+#endif /* TAO_AMI_TEST_I_H */
+
diff --git a/TAO/tests/Bug_3672_Regression/client.cpp b/TAO/tests/Bug_3672_Regression/client.cpp
new file mode 100644
index 00000000000..8d8580aee36
--- /dev/null
+++ b/TAO/tests/Bug_3672_Regression/client.cpp
@@ -0,0 +1,324 @@
+
+//=============================================================================
+/**
+ * @file client.cpp
+ *
+ * $Id$
+ *
+ * A client which uses the AMI callback model.
+ *
+ *
+ * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ * @author Michael Kircher <Michael.Kircher@mchp.siemens.de>
+ */
+//=============================================================================
+
+
+#include "ace/Get_Opt.h"
+#include "ace/Task.h"
+#include "ami_test_i.h"
+#include "tao/ORB_Core.h"
+ACE_RCSID (AMI,
+ client,
+ "$Id$")
+
+const ACE_TCHAR *ior = ACE_TEXT("file://test.ior");
+int nthreads = 1;
+int niterations = 1;
+int debug = 0;
+int number_of_replies = 0;
+
+CORBA::Long in_number = 931232;
+const char * in_str = "Let's talk AMI.";
+int parameter_corruption = 0;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("dk:n:i:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd':
+ debug = 1;
+ break;
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+ case 'n':
+ nthreads = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+ case 'i':
+ niterations = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-d "
+ "-k <ior> "
+ "-n <nthreads> "
+ "-i <niterations> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+
+/**
+ * @class Client
+ *
+ * @brief Run the client thread
+ *
+ * Use the ACE_Task_Base class to run the client threads.
+ */
+class Client : public ACE_Task_Base
+{
+public:
+ /// ctor
+ Client (A::AMI_Test_ptr server, int niterations, A::AMI_AMI_TestHandler_ptr handler);
+
+ /// The thread entry point.
+ virtual int svc (void);
+
+ /// Set all members to nil
+ void clear ();
+
+private:
+ /// Var for the AMI_Test object.
+ A::AMI_Test_var ami_test_var_;
+
+ /// The number of iterations on each client thread.
+ int niterations_;
+
+ /// Var for AMI_AMI_Test_ReplyHandler object.
+ A::AMI_AMI_TestHandler_var the_handler_var_;
+};
+
+class Handler : public POA_A::AMI_AMI_TestHandler
+{
+public:
+ Handler (void)
+ {
+ };
+
+ void foo (CORBA::Long result,
+ CORBA::Long out_l)
+ {
+ if (result == 0)
+ {
+ ACE_ERROR((LM_ERROR, "ERROR: Callback method detected parameter corruption.\n"));
+ parameter_corruption = 1;
+ }
+
+ if (debug)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P | %t) : Callback method called: result <%d>, out_arg <%d>\n",
+ result,
+ out_l));
+ }
+
+ --number_of_replies;
+ };
+
+ void foo_excep (::Messaging::ExceptionHolder * excep_holder)
+ {
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Callback method <foo_excep> called:\n"));
+ try
+ {
+ excep_holder->raise_exception ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught exception:");
+ }
+ };
+
+ ~Handler (void)
+ {
+ };
+};
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var object =
+ orb->string_to_object (ior);
+ A::AMI_Test_var server = A::AMI_Test::_narrow (object.in ());
+
+ if (CORBA::is_nil (server.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Object reference <%s> is nil.\n",
+ ior),
+ 1);
+ }
+
+ // Activate POA to handle the call back.
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ if (CORBA::is_nil (poa_object.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize the POA.\n"),
+ 1);
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ poa_manager->activate ();
+
+ // Let the client perform the test in a separate thread
+ Handler* handler = 0;
+ ACE_NEW_RETURN (handler,
+ Handler,
+ 1);
+ PortableServer::ServantBase_var owner_transfer(handler);
+
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (handler);
+
+ CORBA::Object_var object2 = root_poa->id_to_reference (id.in ());
+
+ A::AMI_AMI_TestHandler_var hello = A::AMI_AMI_TestHandler::_narrow (object2.in ());
+ object2 = CORBA::Object::_nil ();
+
+ Client client (server.in (), niterations, hello.in ());
+ if (client.activate (THR_NEW_LWP | THR_JOINABLE,
+ nthreads) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot activate client threads\n"),
+ 1);
+
+ // Main thread collects replies. It needs to collect
+ // <nthreads*niterations> replies.
+ number_of_replies = nthreads *niterations;
+
+ if (debug)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) : Entering perform_work loop to receive <%d> replies\n",
+ number_of_replies));
+ }
+
+ // ORB loop.
+ ACE_Time_Value tv (1,0);
+ orb->run (tv);
+
+ if (debug)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) : Exited perform_work loop Received <%d> replies\n",
+ (nthreads*niterations) - number_of_replies));
+ }
+
+ ACE_DEBUG ((LM_DEBUG, "threads finished\n"));
+
+ server->shutdown ();
+
+ client.wait ();
+
+ tv = ACE_Time_Value (1,0);
+ orb->run (tv);
+
+ root_poa->deactivate_object (id.in ());
+ root_poa->destroy (1, // ethernalize objects
+ 0); // wait for completion
+
+ hello = A::AMI_AMI_TestHandler::_nil ();
+ root_poa = PortableServer::POA::_nil ();
+ poa_object = CORBA::Object::_nil ();
+ object = CORBA::Object::_nil ();
+ server = A::AMI_Test::_nil ();
+ poa_manager = PortableServer::POAManager::_nil ();
+ client.clear ();
+
+ TAO_ORB_Core* core = orb->orb_core ();
+
+ orb->shutdown ();
+
+ orb->destroy ();
+
+ CORBA::ULong core_count = core->_refcnt();
+ if (core_count > 1)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Refcount core %d\n"), core_count));
+ ++parameter_corruption;
+ }
+ CORBA::ULong ref_count = orb->_refcnt();
+ if (ref_count > 1)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT("Refcount orb %d\n"), ref_count));
+ ++parameter_corruption;
+ }
+ orb = CORBA::ORB::_nil ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught exception:");
+ return 1;
+
+ }
+
+ return parameter_corruption;
+}
+
+// ****************************************************************
+
+void Client::clear ()
+{
+ ami_test_var_ = A::AMI_Test::_nil ();
+ the_handler_var_ = A::AMI_AMI_TestHandler::_nil ();
+}
+
+Client::Client (A::AMI_Test_ptr server,
+ int niterations,
+ A::AMI_AMI_TestHandler_ptr handler)
+ : ami_test_var_ (A::AMI_Test::_duplicate (server)),
+ niterations_ (niterations),
+ the_handler_var_ (A::AMI_AMI_TestHandler::_duplicate (handler))
+{
+}
+
+int
+Client::svc (void)
+{
+ try
+ {
+ for (int i = 0; i < this->niterations_; ++i)
+ {
+ ami_test_var_->sendc_foo (the_handler_var_.in ());
+ }
+ if (debug)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P | %t):<%d> Asynchronous methods issued\n",
+ niterations));
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("MT_Client: exception raised");
+ }
+ return 0;
+}
diff --git a/TAO/tests/Bug_3672_Regression/run_test.pl b/TAO/tests/Bug_3672_Regression/run_test.pl
new file mode 100755
index 00000000000..414ffd824cb
--- /dev/null
+++ b/TAO/tests/Bug_3672_Regression/run_test.pl
@@ -0,0 +1,67 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
+
+$debug_level = '0';
+$iterations = '1';
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+my $iorbase = "server.ior";
+my $server_iorfile = $server->LocalFile ($iorbase);
+my $client_iorfile = $client->LocalFile ($iorbase);
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+$SV = $server->CreateProcess ("server", "-ORBdebuglevel $debug_level -o $server_iorfile");
+
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
+
+if ($server->WaitForFileTimed ($iorbase,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$CL = $client->CreateProcess ("client",
+ "-ORBdebuglevel $debug_level"
+ . " -k file://$client_iorfile "
+ . " -i $iterations -d");
+
+$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval());
+
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+}
+
+$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval());
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+exit $status;
diff --git a/TAO/tests/Bug_3672_Regression/server.cpp b/TAO/tests/Bug_3672_Regression/server.cpp
new file mode 100644
index 00000000000..456eceb946e
--- /dev/null
+++ b/TAO/tests/Bug_3672_Regression/server.cpp
@@ -0,0 +1,126 @@
+
+//=============================================================================
+/**
+ * @file server.cpp
+ *
+ * $Id$
+ *
+ * Implementation of the server.
+ *
+ *
+ * @author Alexander Babu Arulanthu <alex@cs.wustl.edu>
+ * @author Michael Kircher <Michael.Kircher@mchp.siemens.de>
+ */
+//=============================================================================
+
+
+#include "ami_test_i.h"
+#include "tao/debug.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/Get_Opt.h"
+
+ACE_RCSID(AMI, server, "$Id$")
+
+const ACE_TCHAR *ior_output_file = 0;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:d"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+ case 'd':
+ TAO_debug_level++;
+ break;
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ if (CORBA::is_nil (poa_object.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize the POA.\n"),
+ 1);
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ AMI_Test_i ami_test_i (orb.in ());
+
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (&ami_test_i);
+
+ CORBA::Object_var object = root_poa->id_to_reference (id.in ());
+
+ A::AMI_Test_var ami_test_var =
+ A::AMI_Test::_narrow (object.in ());
+
+ CORBA::String_var ior =
+ orb->object_to_string (ami_test_var.in ());
+
+ ACE_DEBUG ((LM_DEBUG, "Activated as <%C>\n", ior.in ()));
+
+ // If the ior_output_file exists, output the ior to it
+ if (ior_output_file != 0)
+ {
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: %s",
+ ior_output_file),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+ }
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ root_poa->destroy (1, // ethernalize objects
+ 0 // wait for completion
+ );
+
+ orb->destroy ();
+
+ ACE_DEBUG ((LM_DEBUG, "event loop finished\n"));
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Caught exception:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3674_Regression/Bug_3674_Regression.mpc b/TAO/tests/Bug_3674_Regression/Bug_3674_Regression.mpc
new file mode 100644
index 00000000000..ac2bd7dc889
--- /dev/null
+++ b/TAO/tests/Bug_3674_Regression/Bug_3674_Regression.mpc
@@ -0,0 +1,13 @@
+// -*- MPC -*-
+// $Id$
+
+
+project(*): taoserver, pi_server, iorinterceptor {
+ requires += interceptors
+ exename = *
+ Source_Files {
+ test.cpp
+ testS.cpp
+ testC.cpp
+ }
+}
diff --git a/TAO/tests/Bug_3674_Regression/run_test.pl b/TAO/tests/Bug_3674_Regression/run_test.pl
new file mode 100755
index 00000000000..5a07112951a
--- /dev/null
+++ b/TAO/tests/Bug_3674_Regression/run_test.pl
@@ -0,0 +1,17 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+& eval 'exec perl -S $0 $argv:q'
+if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::TestTarget;
+
+my $target= PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $theTest= $target->CreateProcess ("Bug_3674_Regression", "");
+my $status= $theTest->SpawnWaitKill ($target->ProcessStartWaitInterval());
+if ($status != 0) {
+ print STDERR "ERROR: theTest failed with status = $status\n";
+}
+exit $status;
diff --git a/TAO/tests/Bug_3674_Regression/test.cpp b/TAO/tests/Bug_3674_Regression/test.cpp
new file mode 100644
index 00000000000..d506290225f
--- /dev/null
+++ b/TAO/tests/Bug_3674_Regression/test.cpp
@@ -0,0 +1,380 @@
+// $Id$
+
+#include "tao/ORB_Core.h"
+#include "tao/ORBInitializer_Registry.h"
+#include "tao/PI/PI.h"
+#include "tao/PI_Server/PI_Server.h"
+#include "tao/PI/ORBInitInfo.h"
+
+#include "testS.h"
+
+ACE_RCSID (PICurrent,
+ test,
+ "test.cpp,v 1.7 2003/11/01 11:15:11 dhinton Exp")
+
+#if defined(_MSC_VER)
+#pragma warning(push)
+#pragma warning(disable:4250)
+#endif /* _MSC_VER */
+
+namespace
+{
+ //------------------------------------------------------------------
+ // For simplicity most of the main variables are available GLOBALLY.
+ int Result= 0;
+ CORBA::ORB_var orb;
+ PortableInterceptor::Current_var PICurrent;
+ PortableInterceptor::SlotId slot_id= 2093843221;
+ testInterface_var server;
+
+ void isCorrect (const CORBA::Any &data, const CORBA::Long correct, const ACE_TCHAR *const ID)
+ {
+ CORBA::Long actual= 0;
+ if (data >>= actual)
+ if (correct == actual)
+ ACE_DEBUG ((LM_DEBUG,
+ ". %s retrieved CORRECT long (%d) from the TSC.\n",
+ ID, actual));
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". %s retrieved **INCORRECT** long (%d should be %d) from TSC.\n",
+ ID, actual, correct));
+ Result= 1;
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". %s can't retrieved long from the TSC.\n",
+ ID));
+ Result= 1;
+ }
+ }
+
+ //------------------------------------------------------------------
+ // Need either a Client OR Server OR BOTH Request Interceptors
+ // registered for the use of PICurrent to make sense in the application.
+ struct ClientRequestInterceptor
+ : public virtual PortableInterceptor::ClientRequestInterceptor,
+ public virtual CORBA::LocalObject
+ {
+ /// Constructor.
+ ClientRequestInterceptor () {}
+
+ /// Return the name of this ClientRequestInterceptor.
+ virtual char * name ()
+ {
+ return CORBA::string_dup ("ClientRequestInterceptor");
+ }
+
+ virtual void destroy () {}
+
+ virtual void send_request (
+ PortableInterceptor::ClientRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". CLIENT Interception, send_request\n"));
+ }
+
+ virtual void send_poll (
+ PortableInterceptor::ClientRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". CLIENT Interception, send_poll\n"));
+ }
+
+ virtual void receive_reply (
+ PortableInterceptor::ClientRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". CLIENT Interception, receive_reply\n"));
+ }
+
+ virtual void receive_exception (
+ PortableInterceptor::ClientRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". CLIENT Interception, receive_exception\n"));
+ }
+
+ virtual void receive_other (
+ PortableInterceptor::ClientRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". CLIENT Interception, receive_other\n"));
+ }
+ };
+
+ //------------------------------------------------------------------
+ // This is our server side request interceptor.
+ // Need either a Client OR Server OR BOTH Request Interceptors
+ // registered for the use of PICurrent to make sense in the application.
+ struct ServerRequestInterceptor
+ : public virtual PortableInterceptor::ServerRequestInterceptor,
+ public virtual CORBA::LocalObject
+ {
+ /// Constructor.
+ ServerRequestInterceptor () {}
+
+ /// Return the name of this ServerRequestinterceptor.
+ virtual char * name ()
+ {
+ return CORBA::string_dup ("ServerRequestInterceptor");
+ }
+
+ virtual void destroy () {}
+
+ #if TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1
+ virtual void tao_ft_interception_point (
+ PortableInterceptor::ServerRequestInfo_ptr,
+ CORBA::OctetSeq_out)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". SERVER Interception, tao_ft_interception_point\n"));
+ }
+ #endif // TAO_HAS_EXTENDED_FT_INTERCEPTORS == 1
+
+ virtual void receive_request_service_contexts (
+ PortableInterceptor::ServerRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". SERVER Interception, receive_request_service_contexts\n"));
+ }
+
+ virtual void receive_request (
+ PortableInterceptor::ServerRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". SERVER Interception, receive_request\n"));
+ }
+
+ virtual void send_reply (
+ PortableInterceptor::ServerRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". SERVER Interception, send_reply\n"));
+ }
+
+ virtual void send_exception (
+ PortableInterceptor::ServerRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". SERVER Interception, send_exception\n"));
+ }
+
+ virtual void send_other (
+ PortableInterceptor::ServerRequestInfo_ptr)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ". SERVER Interception, send_other\n"));
+ }
+ };
+
+ //------------------------------------------------------------------
+ // This is the test ORB initializer that registers the IORInterceptor
+ // for this test.
+ class MyORBInitializer :
+ public virtual PortableInterceptor::ORBInitializer,
+ public virtual CORBA::LocalObject
+ {
+ public:
+ ~MyORBInitializer() {slot_id= 2093843221;} // Invalidate slot
+ /// The pre-initialization hook.
+ virtual void pre_init (
+ PortableInterceptor::ORBInitInfo_ptr)
+ {}
+
+ /// The post-initialization hook.
+ virtual void post_init (
+ PortableInterceptor::ORBInitInfo_ptr info)
+ {
+ CORBA::Object_var
+ obj= info->resolve_initial_references ("PICurrent");
+ PICurrent= PortableInterceptor::Current::_narrow (obj.in ());
+ if (CORBA::is_nil (PICurrent.in ()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ "ERROR: Could not resolve PICurrent object.\n"));
+ throw ::CORBA::INTERNAL ();
+ }
+ slot_id= info->allocate_slot_id ();
+
+ // Need either a Client OR Server OR BOTH Request Interceptors
+ // Registered for the use of PICurrent to make sense in the application.
+ PortableInterceptor::ClientRequestInterceptor_ptr client_tmp;
+ ACE_NEW_THROW_EX (client_tmp,
+ ClientRequestInterceptor (),
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ TAO::VMCID,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ PortableInterceptor::ClientRequestInterceptor_var
+ client_interceptor= client_tmp;
+ info->add_client_request_interceptor (client_interceptor.in ());
+
+ // Need either a Client OR Server OR BOTH Request Interceptors
+ // Registered for the use of PICurrent to make sense in the application.
+ PortableInterceptor::ServerRequestInterceptor_ptr server_tmp;
+ ACE_NEW_THROW_EX (server_tmp,
+ ServerRequestInterceptor,
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ TAO::VMCID,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ PortableInterceptor::ServerRequestInterceptor_var
+ server_interceptor= server_tmp;
+ info->add_server_request_interceptor (server_interceptor.in ());
+
+ // Disable collocation identification -- TAO-specific!!!
+ // The fix needs to work even if collocation is not optomized for.
+ TAO_ORBInitInfo_var
+ tao_info= TAO_ORBInitInfo::_narrow (info);
+ tao_info->orb_core ()->optimize_collocation_objects (0);
+ }
+ };
+
+ //------------------------------------------------------------------
+ // This is the implimentation of our test server.
+ class testInterface_i : public virtual POA_testInterface
+ {
+ public:
+ /// Constructor & Destructor.
+ testInterface_i () {}
+ ~testInterface_i () {}
+ /// Main servant test methods.
+ virtual void firstCalling ()
+ {
+ // Insert some data into the allocated PICurrent slot BEFORE we start.
+ CORBA::Any data;
+ CORBA::Long number = 2; // Different from the client's data
+ data <<= number;
+ PICurrent.in()->set_slot (slot_id, data);
+ ACE_DEBUG ((LM_DEBUG,
+ ". SERVER firstCalling() stored long (%d) to TSC.\n",
+ number));
+ // Perform the next nested collocated call.
+ server->secondCalling();
+ // Check that the data in the PICurrent slot has not been corrupted.
+ CORBA::Any_var data2= PICurrent.in()->get_slot (slot_id);
+ isCorrect (data2.in (), 2, ACE_TEXT ("SERVER firstCalling()"));
+ }
+ virtual void secondCalling ()
+ {
+ // Insert some data into the allocated PICurrent slot.
+ CORBA::Any data;
+ CORBA::Long number = 3; // Different from other server's data
+ data <<= number;
+ PICurrent.in()->set_slot (slot_id, data);
+ ACE_DEBUG ((LM_DEBUG,
+ ". SERVER secondCalling() stored long (%d) to TSC.\n",
+ number));
+ }
+ };
+}
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif /* _MSC_VER */
+
+//------------------------------------------------------------------
+int
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ // Initialise the ORBInitializer for server side interception points
+ PortableInterceptor::ORBInitializer_ptr
+ temp_initializer= PortableInterceptor::ORBInitializer::_nil ();
+ ACE_NEW_RETURN (temp_initializer,
+ MyORBInitializer,
+ -1); // No CORBA exceptions yet we haven't yet ORB_init!
+ PortableInterceptor::ORBInitializer_var
+ orb_initializer= temp_initializer;
+ PortableInterceptor::register_orb_initializer (orb_initializer.in ());
+
+ // Start up the ORB and start the POAManager
+ struct guardORB
+ {
+ guardORB(int argc, ACE_TCHAR *argv[])
+ {orb= CORBA::ORB_init (argc, argv, "test_orb");}
+ ~guardORB() {PICurrent= 0; orb= 0;}
+ } guardORB_(argc, argv);
+
+ CORBA::Object_var
+ obj= orb->resolve_initial_references ("RootPOA");
+ PortableServer::POA_var
+ RootPOA= PortableServer::POA::_narrow (obj.in ());
+ if (CORBA::is_nil (RootPOA.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to obtain RootPOA reference.\n"),
+ -1);
+ PortableServer::POAManager_var
+ POAManager= RootPOA->the_POAManager ();
+ if (CORBA::is_nil (POAManager.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to obtain POAManager reference.\n"),
+ -1);
+ POAManager->activate ();
+
+ // OK now start our collocated client/server and activate it on the default POA
+ testInterface_i *testInt;
+ ACE_NEW_THROW_EX (testInt,
+ testInterface_i,
+ CORBA::NO_MEMORY (
+ CORBA::SystemException::_tao_minor_code (
+ TAO::VMCID,
+ ENOMEM),
+ CORBA::COMPLETED_NO));
+ PortableServer::ServantBase_var
+ server_impl= testInt;
+ obj= testInt->_this ();
+ struct serverGuard
+ {
+ serverGuard(CORBA::Object_ptr obj)
+ {server= testInterface::_narrow (obj);}
+ ~serverGuard() {server= 0;}
+ } serverGuard_ (obj.in ());
+ if (CORBA::is_nil (server.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Unable to obtain reference to testInterface object.\n"),
+ -1);
+
+ ACE_DEBUG ((LM_DEBUG, "Start of actual regression test...\n"));
+ // Insert some data into the allocated PICurrent slot BEFORE we start.
+ CORBA::Any data;
+ CORBA::Long number = 1;
+ data <<= number;
+ PICurrent.in ()->set_slot (slot_id, data);
+ ACE_DEBUG ((LM_DEBUG,
+ ". CLIENT stored long (%d) to TSC.\n",
+ number));
+ // Perform the collocated call.
+ server->firstCalling();
+ // Check that the data in the PICurrent slot has not been corrupted.
+ CORBA::Any_var data2= PICurrent.in ()->get_slot (slot_id);
+ isCorrect (data2.in (), 1, ACE_TEXT ("CLIENT"));
+ ACE_DEBUG ((LM_DEBUG, "End of actual regression test...\n"));
+
+ RootPOA->destroy (1, 1);
+ orb->destroy ();
+ }
+ catch (const ::CORBA::Exception &ex)
+ {
+ ex._tao_print_exception ("Corba exception");
+ Result= 1;
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Unknown exception caught\n"));
+ Result= 1;
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ "Test %s\n",
+ (Result ?
+ ACE_TEXT ("***FAILURE***") :
+ ACE_TEXT ("Success"))));
+ return Result;
+}
diff --git a/TAO/tests/Bug_3674_Regression/test.idl b/TAO/tests/Bug_3674_Regression/test.idl
new file mode 100644
index 00000000000..09e9fd73d76
--- /dev/null
+++ b/TAO/tests/Bug_3674_Regression/test.idl
@@ -0,0 +1,7 @@
+// $Id$
+
+interface testInterface
+{
+ void firstCalling ();
+ void secondCalling ();
+};
diff --git a/TAO/tests/Bug_3676_Regression/Bug_3676_Regression.mpc b/TAO/tests/Bug_3676_Regression/Bug_3676_Regression.mpc
new file mode 100644
index 00000000000..f024b91def8
--- /dev/null
+++ b/TAO/tests/Bug_3676_Regression/Bug_3676_Regression.mpc
@@ -0,0 +1,37 @@
+// -*- MPC -*-
+// $Id$
+
+project(*idl): taoidldefaults {
+ idlflags += -Sp
+ IDL_Files {
+ Test.idl
+ }
+ custom_only = 1
+}
+
+project(*Server): taoserver {
+ after += *idl
+ Source_Files {
+ Hello.cpp
+ server.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ TestS.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*Client): taoclient {
+ after += *idl
+ requires += corba_messaging
+ Source_Files {
+ client.cpp
+ }
+ Source_Files {
+ TestC.cpp
+ }
+ IDL_Files {
+ }
+}
diff --git a/TAO/tests/Bug_3676_Regression/Hello.cpp b/TAO/tests/Bug_3676_Regression/Hello.cpp
new file mode 100644
index 00000000000..df5dc90d3d9
--- /dev/null
+++ b/TAO/tests/Bug_3676_Regression/Hello.cpp
@@ -0,0 +1,23 @@
+//
+// $Id$
+//
+#include "Hello.h"
+
+ACE_RCSID(Hello, Hello, "$Id$")
+
+Hello::Hello (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+char *
+Hello::get_string (void)
+{
+ return CORBA::string_dup ("Hello there!");
+}
+
+void
+Hello::shutdown (void)
+{
+ this->orb_->shutdown (0);
+}
diff --git a/TAO/tests/Bug_3676_Regression/Hello.h b/TAO/tests/Bug_3676_Regression/Hello.h
new file mode 100644
index 00000000000..f87205c3011
--- /dev/null
+++ b/TAO/tests/Bug_3676_Regression/Hello.h
@@ -0,0 +1,31 @@
+//
+// $Id$
+//
+
+#ifndef HELLO_H
+#define HELLO_H
+#include /**/ "ace/pre.h"
+
+#include "TestS.h"
+
+/// Implement the Test::Hello interface
+class Hello
+ : public virtual POA_Test::Hello
+{
+public:
+ /// Constructor
+ Hello (CORBA::ORB_ptr orb);
+
+ // = The skeleton methods
+ virtual char * get_string (void);
+
+ virtual void shutdown (void);
+
+private:
+ /// Use an ORB reference to conver strings to objects and shutdown
+ /// the application.
+ CORBA::ORB_var orb_;
+};
+
+#include /**/ "ace/post.h"
+#endif /* HELLO_H */
diff --git a/TAO/tests/Bug_3676_Regression/README b/TAO/tests/Bug_3676_Regression/README
new file mode 100644
index 00000000000..3bd8afb095a
--- /dev/null
+++ b/TAO/tests/Bug_3676_Regression/README
@@ -0,0 +1,22 @@
+// $Id$
+
+Codeset information is sent only in the first request in the service_context
+field of GIOP request message. However, CORBA::Object::_validate_connection()
+uses LocateRequest message and this kind of message doesn't have
+service_context field. If validate_connection is the first remote call in the
+application the transport is marked as the one that already sent the first
+request and thus no codeset negotiation happens in subsequent call. So, the
+solution for this problem is to restore TAO_Transport::first_request_ flag to
+it's state before LocateRequest message was sent. We check the later in this
+test.
+
+_Expected successful result_:
+
+$ ./run_test.pl
+(9909|140389579343600) server - event loop finished
+
+_Expected regression result_:
+
+$ ./run_test.pl
+Test FAILED after LocateRequest (bug#3676 is not fixed)!!
+(9931|67366400) server - event loop finished
diff --git a/TAO/tests/Bug_3676_Regression/Test.idl b/TAO/tests/Bug_3676_Regression/Test.idl
new file mode 100644
index 00000000000..3c0976e106d
--- /dev/null
+++ b/TAO/tests/Bug_3676_Regression/Test.idl
@@ -0,0 +1,20 @@
+//
+// $Id$
+//
+
+/// Put the interfaces in a module, to avoid global namespace pollution
+module Test
+{
+ /// A very simple interface
+ interface Hello
+ {
+ /// Return a simple string
+ string get_string ();
+
+ /// A method to shutdown the ORB
+ /**
+ * This method is used to simplify the test shutdown process
+ */
+ oneway void shutdown ();
+ };
+};
diff --git a/TAO/tests/Bug_3676_Regression/client.cpp b/TAO/tests/Bug_3676_Regression/client.cpp
new file mode 100644
index 00000000000..4009d9b2e13
--- /dev/null
+++ b/TAO/tests/Bug_3676_Regression/client.cpp
@@ -0,0 +1,128 @@
+// $Id$
+
+#include "TestC.h"
+#include "tao/Profile_Transport_Resolver.h"
+#include "tao/Transport.h"
+
+#include "ace/Get_Opt.h"
+
+ACE_RCSID(Hello, client, "$Id$")
+
+const ACE_TCHAR *ior = ACE_TEXT ("file://test.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-k <ior> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+// This function does what TAO does in order to get a transport.
+CORBA::Boolean
+first_request_flag (CORBA::Object_ptr obj)
+{
+ TAO_Stub *const stub = obj->_stubobj ();
+ if (0 == stub)
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "CORBA::Object has stub = 0\n"),
+ 1);
+ }
+
+ TAO::Profile_Transport_Resolver resolver (obj, stub, true);
+
+ resolver.resolve (0);
+
+ TAO_Transport *transport = resolver.transport ();
+ if (0 == transport)
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "Transport is 0\n"),
+ 1);
+ }
+
+ return transport->first_request ();
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var tmp = orb->string_to_object (ior);
+
+ // No remote calls, first request flag is on.
+ if (!first_request_flag (tmp.in ()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Test FAILED at the beginning (why?)\n"));
+ }
+
+ // This call must issue LocateRequest message.
+ CORBA::PolicyList_var pl;
+ tmp->_validate_connection (pl.out ());
+
+ // There was a LocateRequest call, first request flag
+ // must be still on.
+ if (!first_request_flag (tmp.in ()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Test FAILED after LocateRequest (bug#3676 is not fixed)!!\n"));
+ }
+
+ Test::Hello_var hello = Test::Hello::_narrow (tmp.in ());
+
+ if (CORBA::is_nil (hello.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_DEBUG,
+ "Nil Test::Hello reference <%s>\n",
+ ior),
+ 1);
+ }
+
+ CORBA::String_var the_string = hello->get_string ();
+
+ // Either _narrow or get_string issued a remote call,
+ // first request flag is off.
+ if (first_request_flag (tmp.in ()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Test FAILED after normal request (why?)\n"));
+ }
+
+ hello->shutdown ();
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3676_Regression/run_test.pl b/TAO/tests/Bug_3676_Regression/run_test.pl
new file mode 100755
index 00000000000..171b2763078
--- /dev/null
+++ b/TAO/tests/Bug_3676_Regression/run_test.pl
@@ -0,0 +1,79 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$debug_level = '0';
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+PerlACE::add_lib_path ('IBM1047_ISO8859/.');
+PerlACE::add_lib_path ('UCS4_UTF16/.');
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
+
+my $iorbase = "server.ior";
+my $server_iorfile = $server->LocalFile ($iorbase);
+my $client_iorfile = $client->LocalFile ($iorbase);
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+$SV = $server->CreateProcess ("server", "-o $server_iorfile " .
+ "-ORBDebugLevel $debug_level "); #.
+# "-ORBObjRefStyle URL ");
+$CL = $client->CreateProcess ("client", "-k file://$client_iorfile "); #.
+# "-ORBDebugLevel $debug_level ");
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
+
+if ($server->WaitForFileTimed ($iorbase,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+if ($server->GetFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+if ($client->PutFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot set file <$client_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval());
+
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+}
+
+$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval());
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+exit $status;
diff --git a/TAO/tests/Bug_3676_Regression/server.cpp b/TAO/tests/Bug_3676_Regression/server.cpp
new file mode 100644
index 00000000000..cacd790a6ff
--- /dev/null
+++ b/TAO/tests/Bug_3676_Regression/server.cpp
@@ -0,0 +1,105 @@
+// $Id$
+
+#include "Hello.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+ACE_RCSID (Hello,
+ server,
+ "$Id$")
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT ("test.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+
+ if (CORBA::is_nil (root_poa.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Panic: nil RootPOA\n"),
+ 1);
+
+ PortableServer::POAManager_var poa_manager = root_poa->the_POAManager ();
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ Hello *hello_impl = 0;
+ ACE_NEW_RETURN (hello_impl,
+ Hello (orb.in ()),
+ 1);
+ PortableServer::ServantBase_var owner_transfer(hello_impl);
+
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (hello_impl);
+
+ CORBA::Object_var object = root_poa->id_to_reference (id.in ());
+
+ Test::Hello_var hello = Test::Hello::_narrow (object.in ());
+
+ CORBA::String_var ior = orb->object_to_string (hello.in ());
+
+ // Output the IOR to the <ior_output_file>
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: %s\n",
+ ior_output_file),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t) server - event loop finished\n"));
+
+ root_poa->destroy (1, 1);
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3683_Regression/Bug_3683_Regression.mpc b/TAO/tests/Bug_3683_Regression/Bug_3683_Regression.mpc
new file mode 100644
index 00000000000..9a3c4a1c7b3
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/Bug_3683_Regression.mpc
@@ -0,0 +1,36 @@
+// -*- MPC -*-
+// $Id$
+
+project(*IDL): taoidldefaults {
+ IDL_Files {
+ Echo.idl
+ }
+ custom_only = 1
+}
+
+project(*server): iortable, utils, avoids_corba_e_micro {
+ exename = server
+ after += *IDL
+ Source_Files {
+ Echo_i.cpp
+ Simple_util.cpp
+ server.cpp
+ EchoS.cpp
+ EchoC.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*client): iortable, utils, messaging {
+ exename = client
+ after += *IDL
+ Source_Files {
+ Echo_Client_i.cpp
+ Simple_util.cpp
+ client.cpp
+ EchoC.cpp
+ }
+ IDL_Files {
+ }
+}
diff --git a/TAO/tests/Bug_3683_Regression/Echo.idl b/TAO/tests/Bug_3683_Regression/Echo.idl
new file mode 100644
index 00000000000..993d08612bd
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/Echo.idl
@@ -0,0 +1,27 @@
+/* -*- C++ -*- */
+// $Id$
+
+#if !defined (_ECHO_IDL)
+#define _ECHO_IDL
+
+interface Echo
+{
+ // = TITLE
+ // Defines an interface that encapsulates operations that return the
+ // mesg string to be displayed and shuts down the server.
+
+ typedef sequence<Object> List;
+
+ List echo_list (in string message);
+ // This operation returns the message as a sequence of Objects and
+ // displays it on the screen as a string.
+
+ string echo_string (in string message);
+ // This operation returns the message as a string and displays it on
+ // the screen.
+
+ oneway void shutdown ();
+ // This operation will shutdown the server.
+};
+
+#endif /* _ECHO_IDL */
diff --git a/TAO/tests/Bug_3683_Regression/Echo_Client_i.cpp b/TAO/tests/Bug_3683_Regression/Echo_Client_i.cpp
new file mode 100644
index 00000000000..b73c744a21b
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/Echo_Client_i.cpp
@@ -0,0 +1,93 @@
+//$Id$
+
+#include "Echo_Client_i.h"
+#include "ace/Get_Opt.h"
+#include "ace/Read_Buffer.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/Messaging/Messaging.h"
+
+// This is the interface program that accesses the remote object
+
+// Constructor.
+Echo_Client_i::Echo_Client_i (void) : payload_length_ (0)
+{
+ //no-op
+}
+
+//Destructor.
+Echo_Client_i::~Echo_Client_i (void)
+{
+ //no-op
+}
+
+int
+Echo_Client_i::parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("p:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'p':
+ this->payload_length_ = ACE_OS::atoi(get_opts.opt_arg ()) * 1000000;
+ break;
+ }
+ // Indicates successful parsing of the command line
+ return 0;
+}
+
+
+int
+Echo_Client_i::run (const char *name,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ // Initialize the client.
+ if (client_.init (name, argc, argv) == -1)
+ return -1;
+
+ if (this->parse_args (argc, argv) == -1)
+ return -1;
+
+ try
+ {
+ CORBA::PolicyList policyList;
+ policyList.length(1);
+ CORBA::Any objectTimeout;
+ TimeBase::TimeT to = 50000;
+ to *= 365 * 24 * 3600;
+ to *= 100;
+ objectTimeout <<= to;
+ policyList[0] = client_.orb()->create_policy(
+ Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE,
+ objectTimeout);
+ CORBA::Object_var object =
+ client_->_set_policy_overrides(policyList, CORBA::ADD_OVERRIDE);
+
+ Echo_var srv(Echo::_narrow(object.in ()));
+
+ char* buf = new char [this->payload_length_+ 1];
+ ACE_OS::memset (buf, 'a', this->payload_length_);
+ buf[this->payload_length_] = '\0';
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Sending len: %d \n"), ACE_OS::strlen (buf)));
+
+ CORBA::String_var s = srv->echo_string (buf);
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\nString echoed by client has len %d\n"),
+ ACE_OS::strlen(s.in ())));
+
+ delete [] buf;
+
+ if (client_.do_shutdown () == 1)
+ client_->shutdown ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("\n Exception in RMI");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3683_Regression/Echo_Client_i.h b/TAO/tests/Bug_3683_Regression/Echo_Client_i.h
new file mode 100644
index 00000000000..2ca50272169
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/Echo_Client_i.h
@@ -0,0 +1,55 @@
+// -*- C++ -*-
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Simple/echo
+//
+// = FILENAME
+// Echo_Client_i.h
+//
+// = DESCRIPTION
+// This class implements the interface calls for RMI.
+//
+// = AUTHOR
+//
+// Balachandran Natarajan <bala@cs.wustl.edu>
+//
+// ============================================================================
+
+#ifndef ECHO_CLIENT_I_H
+#define ECHO_CLIENT_I_H
+
+#include "Simple_util.h"
+#include "EchoC.h"
+
+class Echo_Client_i
+{
+ // = TITLE
+ // Echo_Client interface subclass.
+ //
+ // = DESCRIPTION
+ // This class implements the interface between the interface
+ // objects and the client .
+public:
+ // = Initialization and termination methods.
+ Echo_Client_i (void);
+ // Constructor
+
+ ~Echo_Client_i (void);
+ // Destructor
+
+ int run (const char *, int, ACE_TCHAR **);
+ // Execute the methods
+
+private:
+ int parse_args (int argc, ACE_TCHAR *argv[]);
+
+ Client<Echo> client_;
+ // Instantiate the client object.
+
+ size_t payload_length_;
+};
+
+#endif /* TIME_CLIENT_I_H */
diff --git a/TAO/tests/Bug_3683_Regression/Echo_i.cpp b/TAO/tests/Bug_3683_Regression/Echo_i.cpp
new file mode 100644
index 00000000000..9bb628c8707
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/Echo_i.cpp
@@ -0,0 +1,94 @@
+// $Id$
+
+#include "Echo_i.h"
+
+ACE_RCSID(Echo, Echo_i, "$Id$")
+
+// Constructor.
+
+Echo_i::Echo_i (void)
+{
+}
+
+// Destructor.
+
+Echo_i::~Echo_i (void)
+{
+}
+
+// Set the ORB pointer.
+
+void
+Echo_i::orb (CORBA::ORB_ptr o)
+{
+ this->orb_ = CORBA::ORB::_duplicate (o);
+}
+
+// Return a list of object references.
+
+Echo::List *
+Echo_i::echo_list (const char *)
+{
+ Echo::List_var list;
+
+ {
+ Echo::List *tmp = 0;
+ ACE_NEW_RETURN (tmp,
+ Echo::List (3),
+ 0);
+ // Pass ownership to the _var, pitty that ACE_NEW_RETURN cannot
+ // assign to T_vars directly.
+ list = tmp;
+ }
+
+ list->length (3);
+
+ // Just do something to get a list of object references.
+ list[CORBA::ULong(0)] =
+ orb_->resolve_initial_references ("NameService");
+
+ list[CORBA::ULong(1)] =
+ orb_->resolve_initial_references ("NameService");;
+
+ list[CORBA::ULong(2)] =
+ orb_->resolve_initial_references ("NameService");
+
+ return list._retn ();
+}
+
+// Return the mesg string from the server
+
+char *
+Echo_i::echo_string (const char *mesg)
+{
+ // The pointer mesg was NULL, return.
+ if (mesg == 0)
+ return 0;
+
+ CORBA::String_var str = CORBA::string_dup (mesg);
+
+ // if <CORBA::string_dup> returns a 0 pointer, an exception is
+ // raised.
+
+ if (str.in () == 0)
+ throw CORBA::NO_MEMORY ();
+
+ // Got thru! now, make a deep copy of the mesg string and send it
+ // back to the client.
+
+ return str._retn ();
+ // The _retn is used as it allows the conversion of
+ // CORBA::String_var to char* without causing any compiler errors.
+}
+
+// Shutdown the server application.
+
+void
+Echo_i::shutdown (void)
+{
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\nThe echo server is shutting down\n")));
+
+ // Instruct the ORB to shutdown.
+ this->orb_->shutdown ();
+}
diff --git a/TAO/tests/Bug_3683_Regression/Echo_i.h b/TAO/tests/Bug_3683_Regression/Echo_i.h
new file mode 100644
index 00000000000..b048eeb8357
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/Echo_i.h
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Simple/echo
+//
+// = FILENAME
+// Echo_i.h
+//
+// = DESCRIPTION
+// This class implements the Echo IDL interface.
+//
+// = AUTHOR
+// Kirthika Parameswaran <kirthika@cs.wustl.edu>
+//
+// ============================================================================
+
+#ifndef ECHO_I_H
+#define ECHO_I_H
+
+#include "EchoS.h"
+
+class Echo_i : public POA_Echo
+{
+ // = TITLE
+ // Echo Object Implementation
+ //
+ // = DESCRIPTION
+ // The object implementation performs teh following functions:
+ // -- To return the string which needs to be displayed
+ // from the server.
+ // -- shuts down the server
+public:
+ // = Initialization and termination methods.
+ Echo_i (void);
+ // Constructor.
+
+ virtual ~Echo_i (void);
+ // Destructor.
+
+ virtual Echo::List *echo_list (const char *mesg);
+ // Return the mesg string back from the server.
+
+ virtual char *echo_string (const char *mesg);
+ // Return the mesg string back from the server.
+
+ virtual void shutdown (void);
+ // Shutdown the server.
+
+ void orb (CORBA::ORB_ptr o);
+ // Set the ORB pointer.
+
+private:
+ CORBA::ORB_var orb_;
+ // ORB pointer.
+
+ ACE_UNIMPLEMENTED_FUNC (void operator= (const Echo_i&))
+ // Keeping g++ 2.7.2 happy..
+};
+
+#endif /* ECHO_I_H */
diff --git a/TAO/tests/Bug_3683_Regression/Simple_util.cpp b/TAO/tests/Bug_3683_Regression/Simple_util.cpp
new file mode 100644
index 00000000000..392f20221cb
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/Simple_util.cpp
@@ -0,0 +1,340 @@
+// $Id$
+
+#ifndef SIMPLE_UTIL_C
+#define SIMPLE_UTIL_C
+
+#include "Simple_util.h"
+#include "tao/IORTable/IORTable.h"
+#include "tao/debug.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_string.h"
+#include "ace/OS_NS_fcntl.h"
+
+// Constructor.
+template <class Servant>
+Server<Servant>::Server (void)
+ : servant_ (0)
+ , ior_output_file_ (0)
+ , ins_ (0)
+{
+ Servant *tmp = 0;
+ ACE_NEW_THROW_EX (tmp,
+ Servant (),
+ CORBA::NO_MEMORY ());
+ this->servant_ = tmp;
+}
+
+// Destructor.
+template <class Servant>
+Server<Servant>::~Server (void)
+{
+}
+
+// Parse the command-line arguments and set options.
+template <class Servant> int
+Server<Servant>::parse_args (void)
+{
+ ACE_Get_Opt get_opts (this->argc_, this->argv_,
+ ACE_TEXT ("do:i:"), 1, 0,
+ ACE_Get_Opt::REQUIRE_ORDER);
+ int c = 0;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag.
+ TAO_debug_level++;
+ break;
+ case 'o': // output the IOR to a file.
+ this->ior_output_file_ = get_opts.opt_arg ();
+ break;
+ case 'i': // For Testing the InterOperable Naming Service.
+ this->ins_ = get_opts.opt_arg ();
+ break;
+ }
+
+ // Indicates successful parsing of command line.
+ return 0;
+}
+
+// Add the ObjectID:IOR mapping to the IOR table of
+// the ORB. Ignore this method if you are not testing for
+// the InterOperable Naming Service.
+template <class Servant> int
+Server<Servant>::test_for_ins (const char *ior)
+{
+ CORBA::ORB_var orb = this->orb_manager_.orb ();
+
+ if (TAO_debug_level > 0)
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Adding (KEY:IOR) %s:%C\n"),
+ this->ins_,
+ ior));
+
+ try
+ {
+ CORBA::Object_var table_object =
+ orb->resolve_initial_references ("IORTable");
+
+ IORTable::Table_var adapter =
+ IORTable::Table::_narrow (table_object.in ());
+ if (CORBA::is_nil (adapter.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Nil IORTable\n")),
+ -1);
+ }
+
+ adapter->bind (ACE_TEXT_ALWAYS_CHAR (this->ins_), ior);
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("ERROR: test_for_ins failed\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+// Initialize the server.
+template <class Servant> int
+Server<Servant>::init (const char *servant_name,
+ int argc,
+ ACE_TCHAR *argv[])
+{
+ // Call the init of <TAO_ORB_Manager> to initialize the ORB and
+ // create a child POA under the root POA.
+ if (this->orb_manager_.init_child_poa (argc,
+ argv,
+ "child_poa") == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("%p\n"),
+ ACE_TEXT ("init_child_poa")),
+ -1);
+
+ this->argc_ = argc;
+ this->argv_ = argv;
+
+ int retval = this->parse_args ();
+
+ if (retval != 0)
+ return retval;
+
+ CORBA::ORB_var orb = this->orb_manager_.orb ();
+
+ // Stash our ORB pointer for later reference.
+ this->servant_->orb (orb.in ());
+
+ // Activate the servant in its own child POA.
+
+ // Make sure that you check for failures here via the try?!
+ try
+ {
+ CORBA::String_var str =
+ this->orb_manager_.activate_under_child_poa (servant_name,
+ this->servant_.in ());
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("The IOR is: <%C>\n"),
+ str.in ()));
+
+ if (this->ins_ && this->test_for_ins (str.in ()) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("test_for_ins (): failed\n")),
+ -1);
+
+ if (this->ior_output_file_)
+ {
+ FILE *fh = ACE_OS::fopen (this->ior_output_file_, "w");
+ if (fh == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Unable to open %s for writing (%p)\n"),
+ this->ior_output_file_,
+ ACE_TEXT ("fopen")),
+ -1);
+ ACE_OS::fprintf (fh, "%s", str.in ());
+ ACE_OS::fclose (fh);
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("\tException in activation of POA");
+ return -1;
+ }
+
+ return 0;
+}
+
+template <class Servant>int
+Server<Servant>::run (void)
+{
+ // Run the main event loop for the ORB.
+ if (this->orb_manager_.run () == -1)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Server_i::run")),
+ -1);
+
+ return 0;
+}
+
+// Constructor.
+template <class ServerInterface>
+Client<ServerInterface>::Client (void)
+ : ior_ ("")
+ , do_shutdown_ (0)
+{
+ //no-op
+}
+
+// Reads the Server ior from a file
+template <class ServerInterface> int
+Client<ServerInterface>::read_ior (ACE_TCHAR *filename)
+{
+ // Open the file for reading.
+ ACE_HANDLE f_handle = ACE_OS::open (filename, 0);
+
+ if (f_handle == ACE_INVALID_HANDLE)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Unable to open %s for writing (%p)\n"),
+ filename,
+ ACE_TEXT ("open")),
+ -1);
+
+ ACE_Read_Buffer ior_buffer (f_handle);
+ char *data = ior_buffer.read ();
+
+ if (data == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Unable to read ior (%p)\n"),
+ ACE_TEXT ("read")),
+ -1);
+
+ this->ior_ = data;
+ ior_buffer.alloc ()->free (data);
+
+ ACE_OS::close (f_handle);
+
+ return 0;
+}
+
+// Parses the command line arguments and returns an error status.
+template <class ServerInterface> int
+Client<ServerInterface>::parse_args (void)
+{
+ ACE_Get_Opt get_opts (argc_, argv_,
+ ACE_TEXT ("df:nk:x"), 1, 0,
+ ACE_Get_Opt::REQUIRE_ORDER);
+ int c = 0;
+ int result = 0;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'd': // debug flag
+ TAO_debug_level++;
+ break;
+ case 'k': // ior provide on command line
+ this->ior_ = ACE_TEXT_ALWAYS_CHAR(get_opts.opt_arg ());
+ break;
+ case 'f': // read the IOR from the file.
+ result = this->read_ior (get_opts.opt_arg ());
+ if (result < 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Unable to read ior from %s (%p)\n"),
+ get_opts.opt_arg (),
+ ACE_TEXT ("read_ior")),
+ -1);
+ break;
+ case 'x': // read the flag for shutting down
+ this->do_shutdown_ = 1;
+ break;
+ case 'h': // display help for use of the client.
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("usage: %s")
+ ACE_TEXT (" [-d (debug)]")
+ ACE_TEXT (" [-k] <ior>")
+ ACE_TEXT (" [-f] <ior_output_file>")
+ ACE_TEXT (" [-x (shutdown server)]")
+ ACE_TEXT (" [-h (help)]")
+ ACE_TEXT ("\n"),
+ this->argv_ [0]),
+ -1);
+ }
+
+ // Indicates successful parsing of command line.
+ return 0;
+}
+
+template <class ServerInterface>
+Client<ServerInterface>::~Client (void)
+{
+ this->orb_->destroy ();
+}
+
+template <class ServerInterface> int
+Client<ServerInterface>::init (const char *,
+ int argc,
+ ACE_TCHAR **argv)
+{
+ this->argc_ = argc;
+ this->argv_ = argv;
+
+ try
+ {
+ // Retrieve the ORB.
+ this->orb_ = CORBA::ORB_init (this->argc_, this->argv_);
+
+ // Parse command line and verify parameters.
+ if (this->parse_args () == -1)
+ return -1;
+
+ if (this->ior_.length () != 0)
+ {
+ CORBA::Object_var server_object =
+ this->orb_->string_to_object (this->ior_.c_str ());
+
+ if (CORBA::is_nil (server_object.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("invalid ior <%C>\n"),
+ this->ior_.c_str ()),
+ -1);
+ this->server_ = ServerInterface::_narrow (server_object.in ());
+ if (CORBA::is_nil (this->server_.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("Nil Server\n")),
+ -1);
+ }
+ }
+ else
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("no ior or naming options specified\n")),
+ -1);
+
+
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Client_i::init");
+ return -1;
+ }
+
+ return 0;
+}
+
+template <class ServerInterface> int
+Client<ServerInterface>::do_shutdown (void)
+{
+ // Returns the shutdwon flag
+ return this->do_shutdown_;
+}
+
+template <class ServerInterface> void
+Client<ServerInterface>::do_shutdown (int flag)
+{
+ // Fills the flag
+ this->do_shutdown_ = flag;
+}
+
+#endif /* SIMPLE_UTIL_C */
diff --git a/TAO/tests/Bug_3683_Regression/Simple_util.h b/TAO/tests/Bug_3683_Regression/Simple_util.h
new file mode 100644
index 00000000000..a5b2bd8304f
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/Simple_util.h
@@ -0,0 +1,165 @@
+//$Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Simple
+//
+// = FILENAME
+// Simple_Util.h
+//
+// = DESCRIPTION
+// The classe define the templates for the client and server.
+//
+// = AUTHOR
+// Balachandran Natarajan <bala@cs.wustl.edu>
+//
+// ============================================================================
+
+#ifndef TAO_UTIL_H
+#define TAO_UTIL_H
+
+#include "tao/Utils/ORB_Manager.h"
+#include "ace/Get_Opt.h"
+#include "ace/Read_Buffer.h"
+#include "tao/Intrusive_Ref_Count_Handle_T.h"
+
+template <class Servant>
+class Server
+{
+ // = TITLE
+ // A set of useful class Templates for using the TAO CORBA
+ // implementation.
+ //
+ // = DESCRIPTION
+ // A template server definition. This template can be used by
+ // single server/client projects for defintion of their
+ // server/clients. See the directories time, bank, echo for
+ // further details of implemenatation.
+public:
+ // = Initialization and termination methods.
+
+ Server (void);
+ // Constructor.
+
+ ~Server (void);
+ // Destructor.
+
+ int init (const char *servant_name,
+ int argc,
+ ACE_TCHAR *argv[]);
+ // Initialize the Server state - parsing arguments and waiting.
+ // interface_name is the name used to register the Servant.
+
+ int run (void);
+ // Run the orb.
+
+ int test_for_ins (const char *ior);
+ // Ignore this method if you are not testing the InterOperable
+ // Naming Service.
+
+private:
+ int parse_args (void);
+ // Parses the commandline arguments.
+
+ typedef TAO_Intrusive_Ref_Count_Handle<Servant> Servant_var;
+ Servant_var servant_;
+ // A holder of the servant that does ref counting for him.
+
+ TAO_ORB_Manager orb_manager_;
+ // The ORB manager - a helper class for accessing the POA and
+ // registering objects.
+
+ ACE_TCHAR *ior_output_file_;
+ // File where the IOR of the server object is stored.
+
+ int naming_;
+ // Flag to indicate whether naming service could be used
+
+ ACE_TCHAR *ins_;
+ // Used test the INS.
+
+ int argc_;
+ // Number of command line arguments.
+
+ ACE_TCHAR **argv_;
+ // The command line arguments.
+};
+
+template <class ServerInterface>
+class Client
+{
+ // = TITLE
+ // Template Client class
+ //
+ // = DESCRIPTION
+ // A template client implementation for a single server/client
+ // model. The example usage of these usage can be found in the
+ // sub-directories below
+public:
+
+ // = Initialization and termination methods.
+ Client (void);
+ // Constructor.
+
+ ~Client (void);
+ // Destructor.
+
+ int init (const char *name, int argc, ACE_TCHAR *argv[]);
+ // Initialize the client communication endpoint with server.
+
+ ServerInterface *operator-> () { return server_.in (); }
+ // Return the interface object pointer.
+
+ int do_shutdown (void);
+ // Returns the shutdown flag.
+
+ void do_shutdown (int);
+ // Fills in the shutdwon flag.
+
+ int obtain_initial_references (const char *name);
+ // Initialize naming service
+
+ CORBA::ORB_ptr orb (void)
+ {
+ return CORBA::ORB::_duplicate (this->orb_.in ());
+ }
+
+private:
+ int read_ior (ACE_TCHAR *filename);
+ // Function to read the server IOR from a file.
+
+ int parse_args (void);
+ // Parses the arguments passed on the command line.
+
+ CORBA::ORB_var orb_;
+ // Remember our orb.
+
+ int argc_;
+ // # of arguments on the command line.
+
+ ACE_TCHAR **argv_;
+ // arguments from command line.
+
+ ACE_CString ior_;
+ // IOR of the obj ref of the server.
+
+ typedef TAO_Intrusive_Ref_Count_Handle<ServerInterface> ServerInterface_var;
+ ServerInterface_var server_;
+ // Server object
+
+ int naming_;
+ // Flag to use the naming service
+
+ int do_shutdown_;
+ // Flag for shutting down the server
+};
+
+#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
+#include "Simple_util.cpp"
+#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
+#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
+#pragma implementation ("Simple_util.cpp")
+#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
+
+#endif /* TAO_UTIL_H */
diff --git a/TAO/tests/Bug_3683_Regression/client.cpp b/TAO/tests/Bug_3683_Regression/client.cpp
new file mode 100644
index 00000000000..41f99b1df94
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/client.cpp
@@ -0,0 +1,21 @@
+//$Id$
+
+# include "Echo_Client_i.h"
+
+// The client program for the application.
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ Echo_Client_i client;
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\nEcho client\n\n")));
+
+ if (client.run ("Echo",
+ argc,
+ argv) == -1)
+ return -1;
+ else
+ return 0;
+}
diff --git a/TAO/tests/Bug_3683_Regression/run_test.pl b/TAO/tests/Bug_3683_Regression/run_test.pl
new file mode 100755
index 00000000000..6b1960d9b26
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/run_test.pl
@@ -0,0 +1,76 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$debug_level = '0';
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
+
+my $iorbase = "server.ior";
+my $server_iorfile = $server->LocalFile ($iorbase);
+my $client_iorfile = $client->LocalFile ($iorbase);
+$server->DeleteFile($iorbase);
+$client->DeleteFile($iorbase);
+
+$SV = $server->CreateProcess ("server", "-ORBdebuglevel $debug_level -o $server_iorfile");
+$CL = $client->CreateProcess ("client", "-f $client_iorfile -x -ORBSvcConf svc.conf -p 16");
+$server_status = $SV->Spawn ();
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ exit 1;
+}
+
+if ($server->WaitForFileTimed ($iorbase,
+ $server->ProcessStartWaitInterval()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+if ($server->GetFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$server_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+if ($client->PutFile ($iorbase) == -1) {
+ print STDERR "ERROR: cannot set file <$client_iorfile>\n";
+ $SV->Kill (); $SV->TimedWait (1);
+ exit 1;
+}
+
+$client_status = $CL->SpawnWaitKill ($client->ProcessStartWaitInterval());
+
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+}
+
+$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval());
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+$server->GetStderrLog();
+$client->GetStderrLog();
+
+$server->DeleteFile($server_iorfile);
+$client->DeleteFile($client_iorfile);
+
+exit $status;
diff --git a/TAO/tests/Bug_3683_Regression/server.cpp b/TAO/tests/Bug_3683_Regression/server.cpp
new file mode 100644
index 00000000000..18eaefc297e
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/server.cpp
@@ -0,0 +1,38 @@
+// $Id$
+#include "Simple_util.h"
+#include "Echo_i.h"
+
+// This is the main driver program for the time and date server.
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ Server<Echo_i> server;
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("\n\tEcho server\n\n")));
+
+ try
+ {
+ if (server.init ("Echo",
+ argc,
+ argv) == -1)
+ return 1;
+ else
+ {
+ server.run ();
+ }
+ }
+ catch (const CORBA::UserException& userex)
+ {
+ userex._tao_print_exception ("User Exception");
+ return -1;
+ }
+ catch (const CORBA::SystemException& sysex)
+ {
+ sysex._tao_print_exception ("System Exception");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/Bug_3683_Regression/svc.conf b/TAO/tests/Bug_3683_Regression/svc.conf
new file mode 100644
index 00000000000..def545d4845
--- /dev/null
+++ b/TAO/tests/Bug_3683_Regression/svc.conf
@@ -0,0 +1,3 @@
+static Resource_Factory "-ORBFlushingStrategy blocking"
+static Client_Strategy_Factory "-ORBTransportMuxStrategy EXCLUSIVE -ORBClientConnectionHandler RW"
+
diff --git a/TAO/tests/Bug_3695_Regression/Bug_3695.cpp b/TAO/tests/Bug_3695_Regression/Bug_3695.cpp
new file mode 100644
index 00000000000..2d6e49eb0af
--- /dev/null
+++ b/TAO/tests/Bug_3695_Regression/Bug_3695.cpp
@@ -0,0 +1,77 @@
+// $Id$
+
+#if defined (TAO_HAS_IIOP) && (TAO_HAS_IIOP == 0)
+
+#include "ace/OS_main.h"
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ return 0;
+}
+
+#else /* TAO_HAS_IIOP */
+
+#include "tao/IIOP_Profile.h"
+
+struct IIOP_Profile_var
+{
+ explicit IIOP_Profile_var (TAO_IIOP_Profile *pro)
+ : pro_ (pro)
+ {}
+
+ ~IIOP_Profile_var ()
+ {
+ this->pro_->_decr_refcnt ();
+ }
+
+ TAO_IIOP_Profile *operator->()
+ {
+ return this->pro_;
+ }
+
+ TAO_IIOP_Profile *get()
+ {
+ return this->pro_;
+ }
+
+ TAO_IIOP_Profile *pro_;
+};
+
+
+int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
+{
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ TAO_ORB_Core *orb_core = orb->orb_core ();
+
+ // 1. Construct a profile with at least 2 *alternate* endpoints
+
+ ACE_INET_Addr addr (9238, "localhost"), addr2 (9239, "localhost"),
+ addr3 (9240, "localhost");
+ TAO::ObjectKey okey;
+ TAO_GIOP_Message_Version version;
+ IIOP_Profile_var test_profile (
+ new TAO_IIOP_Profile ("localhost", 9238, okey,
+ addr, version, orb_core));
+ test_profile->add_endpoint (new TAO_IIOP_Endpoint (addr2, 0));
+ test_profile->add_endpoint (new TAO_IIOP_Endpoint (addr3, 0));
+ test_profile->encode_alternate_endpoints ();
+
+
+ // 2. Marshal and demarshal it
+
+ TAO_OutputCDR stream;
+ test_profile->encode (stream);
+ TAO_InputCDR in_stream (stream);
+ in_stream.skip_ulong (); // tag
+ in_stream.skip_ulong (); // length
+ in_stream.skip_octet (); // byte order
+ IIOP_Profile_var test_profile2 (new TAO_IIOP_Profile (orb_core));
+ test_profile2->decode (in_stream);
+
+
+ // 3. The result of demarshalling should be equivalent to the original
+
+ return (test_profile->is_equivalent (test_profile2.get ()) ? 0 : 1);
+}
+
+#endif /* TAO_HAS_IIOP */
diff --git a/TAO/tests/Bug_3695_Regression/Bug_3695_Regression.mpc b/TAO/tests/Bug_3695_Regression/Bug_3695_Regression.mpc
new file mode 100644
index 00000000000..f4f5bc2a5e2
--- /dev/null
+++ b/TAO/tests/Bug_3695_Regression/Bug_3695_Regression.mpc
@@ -0,0 +1,4 @@
+// $Id$
+project: taoclient {
+ exename = *
+}
diff --git a/TAO/tests/Bug_3695_Regression/run_test.pl b/TAO/tests/Bug_3695_Regression/run_test.pl
new file mode 100755
index 00000000000..ba6926f25f1
--- /dev/null
+++ b/TAO/tests/Bug_3695_Regression/run_test.pl
@@ -0,0 +1,26 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+my $target = PerlACE::TestTarget::create_target(1) || die "Create target 1 failed\n";
+
+$status = 0;
+
+$SV = $target->CreateProcess ("Bug_3695_Regression");
+
+$server = $SV->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($server != 0) {
+ print STDERR "ERROR: Bug_3695_Regression returned $server\n";
+ $status = 1;
+}
+
+$target->GetStderrLog();
+
+exit $status;
diff --git a/TAO/tests/COIOP/Hello.cpp b/TAO/tests/COIOP/Hello.cpp
index 9cfd6c265c9..5d2383f3a68 100644
--- a/TAO/tests/COIOP/Hello.cpp
+++ b/TAO/tests/COIOP/Hello.cpp
@@ -4,6 +4,7 @@
#include "Hello.h"
#include "tao/ORB_Core.h"
#include "tao/ORB_Table.h"
+#include "tao/ORB_Core_Auto_Ptr.h"
#include "tao/Strategies/advanced_resource.h"
ACE_RCSID(Hello, Hello, "$Id$")
@@ -42,7 +43,8 @@ Hello::get_string (void)
TAO::ORB_Table * const orb_table =
TAO::ORB_Table::instance ();
- if (orb_table->find ("server_orb") == 0)
+ TAO_ORB_Core_Auto_Ptr tmp (orb_table->find ("server_orb"));
+ if (tmp.get () == 0)
{
// We are running on a single ORB and this is an error.
ACE_ERROR ((LM_ERROR,
diff --git a/TAO/tests/Client_Leaks/Process_Factory.cpp b/TAO/tests/Client_Leaks/Process_Factory.cpp
index 367b6871170..c58a665dec6 100644
--- a/TAO/tests/Client_Leaks/Process_Factory.cpp
+++ b/TAO/tests/Client_Leaks/Process_Factory.cpp
@@ -66,7 +66,7 @@ Process_Factory::create_new_process (void)
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) Process_Factory::create_new_process, "
" spawn call failed (%d)\n",
- errno));
+ ACE_ERRNO_GET));
throw Test::Spawn_Failed ();
}
diff --git a/TAO/tests/Client_Leaks/client.cpp b/TAO/tests/Client_Leaks/client.cpp
index e0dbd06604a..01e917895f6 100644
--- a/TAO/tests/Client_Leaks/client.cpp
+++ b/TAO/tests/Client_Leaks/client.cpp
@@ -57,7 +57,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var tmp =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Test::Process_Factory_var process_factory =
Test::Process_Factory::_narrow(tmp.in ());
diff --git a/TAO/tests/Collocation_Exception_Test/Hello.cpp b/TAO/tests/Collocation_Exception_Test/Hello.cpp
index 2362176f053..53b174e7c1e 100644
--- a/TAO/tests/Collocation_Exception_Test/Hello.cpp
+++ b/TAO/tests/Collocation_Exception_Test/Hello.cpp
@@ -4,6 +4,7 @@
#include "Hello.h"
#include "tao/ORB_Core.h"
#include "tao/ORB_Table.h"
+#include "tao/ORB_Core_Auto_Ptr.h"
ACE_RCSID(Collocation_Oneway_Tests, Hello, "$Id$")
@@ -65,7 +66,8 @@ Hello::get_string (void)
TAO::ORB_Table * const orb_table =
TAO::ORB_Table::instance ();
- if (orb_table->find ("server_orb") == 0)
+ TAO_ORB_Core_Auto_Ptr tmp (orb_table->find ("server_orb"));
+ if (tmp.get () == 0)
{
// We are running on a single ORB and this is an error.
ACE_ERROR ((LM_ERROR,
diff --git a/TAO/tests/Collocation_Oneway_Tests/Hello.cpp b/TAO/tests/Collocation_Oneway_Tests/Hello.cpp
index 6a3b92b19eb..41679d5a852 100644
--- a/TAO/tests/Collocation_Oneway_Tests/Hello.cpp
+++ b/TAO/tests/Collocation_Oneway_Tests/Hello.cpp
@@ -4,6 +4,7 @@
#include "Hello.h"
#include "tao/ORB_Core.h"
#include "tao/ORB_Table.h"
+#include "tao/ORB_Core_Auto_Ptr.h"
ACE_RCSID(Collocation_Oneway_Tests, Hello, "$Id$")
@@ -50,7 +51,8 @@ Hello::get_string (void)
TAO::ORB_Table * const orb_table =
TAO::ORB_Table::instance ();
- if (orb_table->find ("server_orb") == 0)
+ TAO_ORB_Core_Auto_Ptr tmp (orb_table->find ("server_orb"));
+ if (tmp.get () == 0)
{
// We are running on a single ORB and this is an error.
ACE_ERROR ((LM_ERROR,
diff --git a/TAO/tests/DII_AMI_Forward/orb_initializer.h b/TAO/tests/DII_AMI_Forward/orb_initializer.h
index 71bd1b9692d..c19c9bf6d99 100644
--- a/TAO/tests/DII_AMI_Forward/orb_initializer.h
+++ b/TAO/tests/DII_AMI_Forward/orb_initializer.h
@@ -7,13 +7,13 @@
#define TAO_SERVER_ORB_INITIALIZER_H
#include /**/ "ace/pre.h"
+#include "tao/LocalObject.h"
#include "tao/PI/PI.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-//#include "tao/LocalObject.h"
class ForwardTest_Request_Interceptor;
@@ -25,8 +25,9 @@ class ForwardTest_Request_Interceptor;
#endif /* _MSC_VER */
/// Server ORB initializer.
-class Server_ORBInitializer :
- public virtual PortableInterceptor::ORBInitializer
+class Server_ORBInitializer
+ : public virtual PortableInterceptor::ORBInitializer
+ , public virtual CORBA::LocalObject
{
public:
/// Constructor
diff --git a/TAO/tests/DII_AMI_Forward/server_interceptor.cpp b/TAO/tests/DII_AMI_Forward/server_interceptor.cpp
index 401a5683c9c..4ac94e07c1a 100644
--- a/TAO/tests/DII_AMI_Forward/server_interceptor.cpp
+++ b/TAO/tests/DII_AMI_Forward/server_interceptor.cpp
@@ -74,7 +74,8 @@ ForwardTest_Request_Interceptor::receive_request_service_contexts (
"Sending LOCATION_FORWARD, current thread %i\n",
ACE_Thread::self ()));
- throw PortableInterceptor::ForwardRequest (this->forward_location_);
+ throw PortableInterceptor::ForwardRequest (
+ CORBA::Object::_duplicate (this->forward_location_.in ()));
}
}
diff --git a/TAO/tests/DII_AMI_Forward/server_interceptor.h b/TAO/tests/DII_AMI_Forward/server_interceptor.h
index e2896065d24..8300f690343 100644
--- a/TAO/tests/DII_AMI_Forward/server_interceptor.h
+++ b/TAO/tests/DII_AMI_Forward/server_interceptor.h
@@ -53,7 +53,7 @@ public:
bool forward_location_done() const;
private:
const char *myname_;
- CORBA::Object_ptr forward_location_;
+ CORBA::Object_var forward_location_;
bool forward_location_done_;
};
diff --git a/TAO/tests/DII_Collocation_Tests/oneway/Hello.cpp b/TAO/tests/DII_Collocation_Tests/oneway/Hello.cpp
index 4b4a1e3839c..4ce5dd499d6 100644
--- a/TAO/tests/DII_Collocation_Tests/oneway/Hello.cpp
+++ b/TAO/tests/DII_Collocation_Tests/oneway/Hello.cpp
@@ -4,6 +4,7 @@
#include "Hello.h"
#include "tao/ORB_Core.h"
#include "tao/ORB_Table.h"
+#include "tao/ORB_Core_Auto_Ptr.h"
// Force static build to load the DII_Arguments_Converter service.
#include "tao/DynamicInterface/DII_Arguments_Converter_Impl.h"
@@ -295,7 +296,8 @@ Hello::get_string (void)
TAO::ORB_Table * const orb_table =
TAO::ORB_Table::instance ();
- if (orb_table->find ("server_orb") == 0)
+ TAO_ORB_Core_Auto_Ptr tmp (orb_table->find ("server_orb"));
+ if (tmp.get () == 0)
{
// We are running on a single ORB and this is an error.
ACE_ERROR ((LM_ERROR,
diff --git a/TAO/tests/DII_Collocation_Tests/oneway/run_test.pl b/TAO/tests/DII_Collocation_Tests/oneway/run_test.pl
index 2ad755e4656..b1b49a94d06 100755
--- a/TAO/tests/DII_Collocation_Tests/oneway/run_test.pl
+++ b/TAO/tests/DII_Collocation_Tests/oneway/run_test.pl
@@ -72,7 +72,7 @@ if ($sv != 0) {
unlink $iorfile;
print STDERR "======== Running in no collocation mode and two ORBS \n";
-$SV->Arguments ("-o $iorfile -k file://$iorfile -n -ORBCollocation per-orb");
+$SV->Arguments ("-o $iorfile -k file://$iorfile -n -ORBCollocation no");
$sv = $SV->SpawnWaitKill ($PerlACE::wait_interval_for_process_creation);
if ($sv != 0) {
diff --git a/TAO/tests/DII_Collocation_Tests/twoway/Hello.cpp b/TAO/tests/DII_Collocation_Tests/twoway/Hello.cpp
index da2b21ba6ed..a38a7d163a2 100644
--- a/TAO/tests/DII_Collocation_Tests/twoway/Hello.cpp
+++ b/TAO/tests/DII_Collocation_Tests/twoway/Hello.cpp
@@ -4,6 +4,7 @@
#include "Hello.h"
#include "tao/ORB_Core.h"
#include "tao/ORB_Table.h"
+#include "tao/ORB_Core_Auto_Ptr.h"
// Force static build to load the DII_Arguments_Converter service.
#include "tao/DynamicInterface/DII_Arguments_Converter_Impl.h"
@@ -312,7 +313,8 @@ Hello::get_string (void)
TAO::ORB_Table * const orb_table =
TAO::ORB_Table::instance ();
- if (orb_table->find ("server_orb") == 0)
+ TAO_ORB_Core_Auto_Ptr tmp (orb_table->find ("server_orb"));
+ if (tmp.get () == 0)
{
// We are running on a single ORB and this is an error.
ACE_ERROR ((LM_ERROR,
diff --git a/TAO/tests/DII_Collocation_Tests/twoway/run_test.pl b/TAO/tests/DII_Collocation_Tests/twoway/run_test.pl
index 789b1121a62..1800e82c364 100755
--- a/TAO/tests/DII_Collocation_Tests/twoway/run_test.pl
+++ b/TAO/tests/DII_Collocation_Tests/twoway/run_test.pl
@@ -72,7 +72,7 @@ if ($sv != 0) {
unlink $iorfile;
print STDERR "======== Running in no collocation mode and two ORBS \n";
-$SV->Arguments ("-o $iorfile -k file://$iorfile -n -ORBCollocation per-orb");
+$SV->Arguments ("-o $iorfile -k file://$iorfile -n -ORBCollocation no");
$sv = $SV->SpawnWaitKill ($PerlACE::wait_interval_for_process_creation);
if ($sv != 0) {
diff --git a/TAO/tests/FL_Cube/client.cpp b/TAO/tests/FL_Cube/client.cpp
index 746b9c64bd9..49152351bee 100644
--- a/TAO/tests/FL_Cube/client.cpp
+++ b/TAO/tests/FL_Cube/client.cpp
@@ -181,7 +181,7 @@ Client::parse_args (int argc, ACE_TCHAR *argv[])
}
CORBA::Object_var object =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ this->orb_->string_to_object (ior);
this->server_ =
Simple_Server::_narrow (object.in ());
diff --git a/TAO/tests/ForwardUponObjectNotExist/ForwardUponObjectNotExist.mpc b/TAO/tests/ForwardUponObjectNotExist/ForwardUponObjectNotExist.mpc
new file mode 100755
index 00000000000..ee705f01845
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/ForwardUponObjectNotExist.mpc
@@ -0,0 +1,35 @@
+// -*- MPC -*-
+// $Id$
+
+project(*idl): taoidldefaults {
+ IDL_Files {
+ test.idl
+ }
+ custom_only = 1
+}
+
+project(*Server): taoserver, iortable {
+ after += *idl
+ Source_Files {
+ test_i.cpp
+ server.cpp
+ }
+ Source_Files {
+ testC.cpp
+ testS.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*Client): taoclient, anytypecode {
+ after += *idl
+ Source_Files {
+ client.cpp
+ }
+ Source_Files {
+ testC.cpp
+ }
+ IDL_Files {
+ }
+}
diff --git a/TAO/tests/ForwardUponObjectNotExist/README b/TAO/tests/ForwardUponObjectNotExist/README
new file mode 100755
index 00000000000..c6ad499922b
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/README
@@ -0,0 +1,30 @@
+/**
+
+@page ForwardUponObjectNotExist Test README File
+
+$Id$
+
+ This is test for feature of request forwarding when client receives
+ OBJECT_NOT_EXIST exception. The feature is enabled and disabled by
+ -ORBForwardInvocationOnObjectNotExist [0|1] option.
+
+ The servant implementation is made to raise OBJECT_NOT_EXIST exception.
+ This is to simulate the server exception reply regardless the actual
+ meaning of the OBJECT_NOT_EXIST exception. The test also takes advantage
+ of the IORTable facilities in TAO to create a simple corbaloc IOR, TAO
+ always responds with a LOCATION_FORWARD message when a request is
+ made for an object in the IORTable. This would make the stub have the
+ forward address upon receiving OBJECT_NOT_EXIST exception so it can
+ perform the forwarding. If client runs with the feature disabled
+ (-ORBForwardInvocationOnObjectNotExist 0) then the client should catch
+ the OBJECT_NOT_EXIST exception, otherwise, the request will be looping
+ between server and client and the invocation never ends. The invocation
+ finally ends because of the server shutdown.
+
+ To execute the test simply run:
+
+$ ./run_test.pl
+
+ the script returns 0 on success and non-zero on failures.
+
+*/
diff --git a/TAO/tests/ForwardUponObjectNotExist/client.cpp b/TAO/tests/ForwardUponObjectNotExist/client.cpp
new file mode 100755
index 00000000000..cea8a74686a
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/client.cpp
@@ -0,0 +1,197 @@
+// $Id$
+
+#include "testC.h"
+#include "ace/Get_Opt.h"
+#include "ace/Task.h"
+
+ACE_RCSID(Forwarding, client, "$Id$")
+
+const ACE_TCHAR *ior = ACE_TEXT("file://test.ior");
+int nthreads = 1;
+int do_shutdown = 0;
+static const ACE_TCHAR corbaloc_prefix[] = ACE_TEXT("corbaloc:");
+int expected_object_not_exist = 0;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("xk:e:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'x':
+ do_shutdown = 1;
+ break;
+
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 'e':
+ expected_object_not_exist = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-k <ior> -x "
+ "-e <expected_object_not_exist> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ if (ACE_OS::strncmp (ior,
+ corbaloc_prefix,
+ sizeof corbaloc_prefix -1) != 0)
+ return 1;
+
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+class Worker : public ACE_Task_Base
+{
+public:
+ Worker (CORBA::ORB_ptr orb);
+ // Constructor
+
+ virtual void run_test (void);
+ // The actual implementation of the test
+
+ // = The Task_Base methods
+ virtual int svc (void);
+
+ // Caught OBJECT_NOT_EXIST exception ?
+ int got_object_not_exist () const;
+
+private:
+ CORBA::ORB_var orb_;
+ // The ORB reference
+ int got_object_not_exist_;
+};
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ Worker worker (orb.in ());
+
+ if (worker.activate (THR_NEW_LWP | THR_JOINABLE,
+ nthreads) != 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%P|%t) Cannot activate worker threads\n"),
+ 1);
+
+ int timeout = 30;
+ int now = 0;
+ while (now < timeout && worker.got_object_not_exist () != expected_object_not_exist)
+ {
+ now += 5;
+ ACE_Time_Value tv (5, 0);
+ orb->run (tv);
+ }
+
+ if (do_shutdown)
+ {
+ CORBA::Object_var object =
+ orb->string_to_object (ior);
+
+ Simple_Server_var server =
+ Simple_Server::_narrow (object.in ());
+
+ server->shutdown ();
+ }
+
+ orb->destroy ();
+
+ worker.thr_mgr ()->wait ();
+
+ if (worker.got_object_not_exist () != expected_object_not_exist)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%P|%t)client: test failed.\n"),
+ 1);
+ }
+ else
+ {
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t)client: test passed.\n"));
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught in main:");
+ return 1;
+ }
+
+ return 0;
+}
+
+// ****************************************************************
+
+Worker::Worker (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ got_object_not_exist_ (0)
+{
+}
+
+int
+Worker::svc (void)
+{
+ try
+ {
+ this->run_test ();
+ }
+ catch (const CORBA::OBJECT_NOT_EXIST &)
+ {
+ got_object_not_exist_ = 1;
+ }
+ catch (...)
+ {
+ }
+
+ return 0;
+}
+
+void
+Worker::run_test (void)
+{
+ CORBA::Object_var object =
+ this->orb_->string_to_object (ior);
+
+ Simple_Server_var server =
+ Simple_Server::_narrow (object.in ());
+
+ if (CORBA::is_nil (server.in ()))
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Object reference <%s> is nil.\n",
+ ior));
+ return;
+ }
+
+
+ CORBA::Boolean r =
+ server->test_is_a ("IDL:Foo:1.0");
+
+ if (r != 0)
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) unexpected result = %d\n",
+ r));
+}
+
+int
+Worker::got_object_not_exist () const
+{
+ return got_object_not_exist_;
+}
diff --git a/TAO/tests/ForwardUponObjectNotExist/run_test.pl b/TAO/tests/ForwardUponObjectNotExist/run_test.pl
new file mode 100755
index 00000000000..417a4839d55
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/run_test.pl
@@ -0,0 +1,73 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$iorfile = PerlACE::LocalFile ("test.ior");
+
+unlink $iorfile;
+
+$port = PerlACE::uniqueid () + 10001; # This can't be 10000 for Chorus 4.0
+$status = 0;
+
+if (PerlACE::is_vxworks_test()) {
+ $TARGETHOSTNAME = $ENV{'ACE_RUN_VX_TGTHOST'};
+ $SV = new PerlACE::ProcessVX ("server", "-ORBEndpoint iiop://$TARGETHOSTNAME:$port -o $iorfile");
+}
+else {
+ $TARGETHOSTNAME = "localhost";
+ $SV = new PerlACE::Process ("server", "-ORBEndpoint iiop://$TARGETHOSTNAME:$port -o $iorfile");
+}
+
+# Client 1 expects OBJECT_NOT_EXIST exception ("-e 1")
+$CL1 = new PerlACE::Process ("client",
+ "-k corbaloc::$TARGETHOSTNAME:$port/Simple_Server -e 1 "
+ . "-ORBForwardInvocationOnObjectNotExist 0");
+
+# Client 2 does not expects OBJECT_NOT_EXIST exception ("-e 0")
+$CL2 = new PerlACE::Process ("client",
+ "-x -k corbaloc::$TARGETHOSTNAME:$port/Simple_Server -e 0 "
+ . "-ORBForwardInvocationOnObjectNotExist 1");
+
+$SV->Spawn ();
+
+if (PerlACE::waitforfile_timed ($iorfile,
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: cannot find file <$iorfile>\n";
+ $SV->Kill ();
+ exit 1;
+}
+
+print STDERR "==== Running first client with -ORBForwardInvocationOnObjectNotExist 0\n";
+
+$client = $CL1->SpawnWaitKill (60);
+
+if ($client != 0) {
+ print STDERR "ERROR: client 1 returned $client\n";
+ $status = 1;
+}
+
+print STDERR "==== Running second client with -ORBForwardInvocationOnObjectNotExist 1\n";
+
+$client = $CL2->SpawnWaitKill (60);
+
+if ($client != 0) {
+ print STDERR "ERROR: client 2 returned $client\n";
+ $status = 1;
+}
+
+$server = $SV->WaitKill (15);
+
+if ($server != 0) {
+ print STDERR "ERROR: server returned $server\n";
+ $status = 1;
+}
+
+unlink $iorfile;
+
+exit $status;
diff --git a/TAO/tests/ForwardUponObjectNotExist/server.cpp b/TAO/tests/ForwardUponObjectNotExist/server.cpp
new file mode 100755
index 00000000000..94f63160aeb
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/server.cpp
@@ -0,0 +1,110 @@
+// $Id$
+
+#include "test_i.h"
+#include "tao/IORTable/IORTable.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+ACE_RCSID(Forwarding, server, "$Id$")
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT("test.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile>"
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ CORBA::Object_var poa_object =
+ orb->resolve_initial_references("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (poa_object.in ());
+ if (CORBA::is_nil (root_poa.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize the POA.\n"),
+ 1);
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ Simple_Server_i server_impl (orb.in ());
+
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (&server_impl);
+
+ CORBA::Object_var object = root_poa->id_to_reference (id.in ());
+
+ Simple_Server_var server =
+ Simple_Server::_narrow (object.in ());
+
+ CORBA::String_var ior =
+ orb->object_to_string (server.in ());
+
+ CORBA::Object_var table_object =
+ orb->resolve_initial_references("IORTable");
+
+ IORTable::Table_var table =
+ IORTable::Table::_narrow (table_object.in ());
+ if (CORBA::is_nil (table.in ()))
+ ACE_ERROR_RETURN ((LM_ERROR,
+ " (%P|%t) Unable to initialize the IORTable.\n"),
+ 1);
+ table->bind ("Simple_Server", ior.in ());
+
+ //ACE_DEBUG ((LM_DEBUG, "Activated as <%C>\n", ior.in ()));
+
+ FILE *output_file= ACE_OS::fopen (ior_output_file, "w");
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: %s",
+ ior_output_file),
+ 1);
+ ACE_OS::fprintf (output_file, "%s", ior.in ());
+ ACE_OS::fclose (output_file);
+
+ poa_manager->activate ();
+
+ orb->run ();
+
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t)server: event loop finished\n"));
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/ForwardUponObjectNotExist/test.idl b/TAO/tests/ForwardUponObjectNotExist/test.idl
new file mode 100755
index 00000000000..b9aa7108ed3
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/test.idl
@@ -0,0 +1,8 @@
+// $Id$
+
+interface Simple_Server
+{
+ boolean test_is_a (in string type);
+
+ oneway void shutdown ();
+};
diff --git a/TAO/tests/ForwardUponObjectNotExist/test_i.cpp b/TAO/tests/ForwardUponObjectNotExist/test_i.cpp
new file mode 100755
index 00000000000..fbb43910dbb
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/test_i.cpp
@@ -0,0 +1,23 @@
+// $Id$
+
+#include "test_i.h"
+
+#if !defined(__ACE_INLINE__)
+#include "test_i.inl"
+#endif /* __ACE_INLINE__ */
+
+ACE_RCSID(Forwarding, test_i, "$Id$")
+
+CORBA::Boolean
+Simple_Server_i::test_is_a (const char * /* type */)
+{
+ // ACE_DEBUG ((LM_DEBUG, "(%P|%t) test_is_a %s\n", type));
+ throw ::CORBA::OBJECT_NOT_EXIST ();
+ return 0;
+}
+
+void
+Simple_Server_i::shutdown (void)
+{
+ this->orb_->shutdown (0);
+}
diff --git a/TAO/tests/ForwardUponObjectNotExist/test_i.h b/TAO/tests/ForwardUponObjectNotExist/test_i.h
new file mode 100755
index 00000000000..60670e13d54
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/test_i.h
@@ -0,0 +1,47 @@
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO/tests/Forwarding
+//
+// = FILENAME
+// test_i.h
+//
+// = AUTHOR
+// Carlos O'Ryan
+//
+// ============================================================================
+
+#ifndef TAO_FORWARDING_TEST_I_H
+#define TAO_FORWARDING_TEST_I_H
+
+#include "testS.h"
+
+class Simple_Server_i : public POA_Simple_Server
+{
+ // = TITLE
+ // Simpler Server implementation
+ //
+ // = DESCRIPTION
+ // Implements the Simple_Server interface in test.idl
+ //
+public:
+ Simple_Server_i (CORBA::ORB_ptr orb);
+ // ctor
+
+ // = The Simple_Server methods.
+ CORBA::Boolean test_is_a (const char * type);
+
+ void shutdown (void);
+
+private:
+ CORBA::ORB_var orb_;
+ // The ORB
+};
+
+#if defined(__ACE_INLINE__)
+#include "test_i.inl"
+#endif /* __ACE_INLINE__ */
+
+#endif /* TAO_FORWARDING_TEST_I_H */
diff --git a/TAO/tests/ForwardUponObjectNotExist/test_i.inl b/TAO/tests/ForwardUponObjectNotExist/test_i.inl
new file mode 100755
index 00000000000..97524552ff4
--- /dev/null
+++ b/TAO/tests/ForwardUponObjectNotExist/test_i.inl
@@ -0,0 +1,7 @@
+// $Id$
+
+ACE_INLINE
+Simple_Server_i::Simple_Server_i (CORBA::ORB_ptr orb)
+ : orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
diff --git a/TAO/tests/HandleExhaustion/client.cpp b/TAO/tests/HandleExhaustion/client.cpp
index 5b4b0446711..dd2e4af7a87 100644
--- a/TAO/tests/HandleExhaustion/client.cpp
+++ b/TAO/tests/HandleExhaustion/client.cpp
@@ -47,7 +47,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var tmp =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Test_var test = Test::_narrow(tmp.in ());
diff --git a/TAO/tests/Hello/client.cpp b/TAO/tests/Hello/client.cpp
index 9999a38d5c7..940e5439939 100644
--- a/TAO/tests/Hello/client.cpp
+++ b/TAO/tests/Hello/client.cpp
@@ -29,7 +29,7 @@ parse_args (int argc, ACE_TCHAR *argv[])
argv [0]),
-1);
}
- // Indicates sucessful parsing of the command line
+ // Indicates successful parsing of the command line
return 0;
}
diff --git a/TAO/tests/IPV6/run_test.pl b/TAO/tests/IPV6/run_test.pl
index 5fd05c3d071..555d35a5fa9 100755
--- a/TAO/tests/IPV6/run_test.pl
+++ b/TAO/tests/IPV6/run_test.pl
@@ -19,6 +19,8 @@ if (PerlACE::is_vxworks_test()) {
else {
$srv_arg = "-o $iorfile ";
}
+
+$srv_arg .= "-ORBUseSharedProfile 0 ";
$clt_arg = "-k file://$iorfile ";
@configurations =
diff --git a/TAO/tests/Leader_Followers/client.cpp b/TAO/tests/Leader_Followers/client.cpp
index ec2b7f9b5b4..50085c4d683 100644
--- a/TAO/tests/Leader_Followers/client.cpp
+++ b/TAO/tests/Leader_Followers/client.cpp
@@ -241,7 +241,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Get an object reference from the argument string.
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (IOR));
+ orb->string_to_object (IOR);
// Try to narrow the object reference to a <server> reference.
test_var server = test::_narrow (object.in ());
diff --git a/TAO/tests/MProfile_Forwarding/Manager.cpp b/TAO/tests/MProfile_Forwarding/Manager.cpp
index f1489871650..21880114610 100644
--- a/TAO/tests/MProfile_Forwarding/Manager.cpp
+++ b/TAO/tests/MProfile_Forwarding/Manager.cpp
@@ -175,18 +175,18 @@ Manager::make_iors_register (void)
{
// First server
CORBA::Object_var object_primary =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (first_ior));
+ this->orb_->string_to_object (first_ior);
//Second server
CORBA::Object_var object_secondary =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (second_ior));
+ this->orb_->string_to_object (second_ior);
if (third_ior == 0)
ACE_DEBUG ((LM_DEBUG,
"Here is the culprit\n"));
// Third Server
CORBA::Object_var object_tertiary =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (third_ior));
+ this->orb_->string_to_object (third_ior);
// Get an object reference for the ORBs IORManipultion object!
CORBA::Object_ptr IORM =
diff --git a/TAO/tests/Multiple/client.cpp b/TAO/tests/Multiple/client.cpp
index 08634f5a3e2..1b1d7a9d8f5 100644
--- a/TAO/tests/Multiple/client.cpp
+++ b/TAO/tests/Multiple/client.cpp
@@ -43,7 +43,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
if (parse_args (argc, argv) != 0)
return 1;
- CORBA::Object_var object = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ CORBA::Object_var object = orb->string_to_object (ior);
if (CORBA::is_nil (object.in ()))
{
diff --git a/TAO/tests/NestedUpcall/Simple/client.cpp b/TAO/tests/NestedUpcall/Simple/client.cpp
index 26fa14a24b0..39912c97638 100644
--- a/TAO/tests/NestedUpcall/Simple/client.cpp
+++ b/TAO/tests/NestedUpcall/Simple/client.cpp
@@ -130,7 +130,7 @@ ACE_TMAIN (int argc,
poa_manager->activate ();
- object = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ object = orb->string_to_object (ior);
server_var server = server::_narrow (object.in ());
diff --git a/TAO/tests/NestedUpcall/Simple/simple-client.cpp b/TAO/tests/NestedUpcall/Simple/simple-client.cpp
index 89f634b7500..53fd7dc44a9 100644
--- a/TAO/tests/NestedUpcall/Simple/simple-client.cpp
+++ b/TAO/tests/NestedUpcall/Simple/simple-client.cpp
@@ -137,7 +137,7 @@ ACT_TMAIN (int argc, ACE_TCHAR **argv)
poa_manager->activate ();
- object = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ object = orb->string_to_object (ior);
server_var server = server::_narrow (object.in ());
diff --git a/TAO/tests/Nested_Event_Loop/client.cpp b/TAO/tests/Nested_Event_Loop/client.cpp
index a2bada21ad1..cda926dccea 100644
--- a/TAO/tests/Nested_Event_Loop/client.cpp
+++ b/TAO/tests/Nested_Event_Loop/client.cpp
@@ -95,7 +95,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
poa_manager->activate ();
// Get an object reference from the argument string.
- object = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (IOR));
+ object = orb->string_to_object (IOR);
// Try to narrow the object reference to a <server> reference.
server_var server_object = server::_narrow (object.in ());
diff --git a/TAO/tests/ORB_Local_Config/ORB_Local_Config.mwc b/TAO/tests/ORB_Local_Config/ORB_Local_Config.mwc
deleted file mode 100644
index b9b3417f5ee..00000000000
--- a/TAO/tests/ORB_Local_Config/ORB_Local_Config.mwc
+++ /dev/null
@@ -1,14 +0,0 @@
-// -*- MPC -*-
-// $Id$
-
-workspace {
- lib
- Bunch
- Bug_1459
- Bug_2612
- Separation
- Service_Dependency
- Shared
- Simple
- Two_DLL_ORB
-}
diff --git a/TAO/tests/ORB_Local_Config/Two_DLL_ORB/Two_DLL_ORB.mpc b/TAO/tests/ORB_Local_Config/Two_DLL_ORB/Two_DLL_ORB.mpc
index 326f3fc69c4..43ea58515d0 100644
--- a/TAO/tests/ORB_Local_Config/Two_DLL_ORB/Two_DLL_ORB.mpc
+++ b/TAO/tests/ORB_Local_Config/Two_DLL_ORB/Two_DLL_ORB.mpc
@@ -39,7 +39,7 @@ project(ORB_DLL_Server) : taolib_with_idl, portableserver, threads {
}
project(ORB_DLL_Client) : taolib_with_idl, portableserver {
- after += ORB_DLL_Server
+ after += ORB_DLL_Server *idl
sharedname = ORB_DLL_Client
dynamicflags = SERVICE_CONFIG_ORB_DLL_BUILD_DLL
diff --git a/TAO/tests/ORB_Local_Config/Two_DLL_ORB/client.cpp b/TAO/tests/ORB_Local_Config/Two_DLL_ORB/client.cpp
index 82371609cb3..b32d87d3aa5 100644
--- a/TAO/tests/ORB_Local_Config/Two_DLL_ORB/client.cpp
+++ b/TAO/tests/ORB_Local_Config/Two_DLL_ORB/client.cpp
@@ -63,7 +63,7 @@ Client_Worker::test_main (int argc, ACE_TCHAR *argv[])
try
{
- co = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior_file_.c_str ()));
+ co = orb->string_to_object (ior_file_.c_str ());
if (co == 0)
{
diff --git a/TAO/tests/Ondemand_Write/run_test.pl b/TAO/tests/Ondemand_Write/run_test.pl
index c2f34e80624..c2f34e80624 100644..100755
--- a/TAO/tests/Ondemand_Write/run_test.pl
+++ b/TAO/tests/Ondemand_Write/run_test.pl
diff --git a/TAO/tests/POA/EndpointPolicy/client.cpp b/TAO/tests/POA/EndpointPolicy/client.cpp
index a82eb00d24d..0ee720ca386 100644
--- a/TAO/tests/POA/EndpointPolicy/client.cpp
+++ b/TAO/tests/POA/EndpointPolicy/client.cpp
@@ -51,7 +51,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
if (parse_args (argc, argv) != 0)
return 1;
- tmp = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ tmp = orb->string_to_object (ior);
}
catch (const CORBA::Exception& ex)
{
diff --git a/TAO/tests/POA/Generic_Servant/client.cpp b/TAO/tests/POA/Generic_Servant/client.cpp
index 3b8725f1aae..b00706c55da 100644
--- a/TAO/tests/POA/Generic_Servant/client.cpp
+++ b/TAO/tests/POA/Generic_Servant/client.cpp
@@ -122,7 +122,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Get an object reference from the argument string.
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (IOR));
+ orb->string_to_object (IOR);
// Try to narrow the object reference to a test reference.
test_var test = test::_narrow (object.in ());
diff --git a/TAO/tests/POA/Persistent_ID/client.cpp b/TAO/tests/POA/Persistent_ID/client.cpp
index 44246fffec2..fe95b34dfdf 100644
--- a/TAO/tests/POA/Persistent_ID/client.cpp
+++ b/TAO/tests/POA/Persistent_ID/client.cpp
@@ -73,7 +73,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return parse_args_result;
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (IOR));
+ orb->string_to_object (IOR);
test_var test1 =
test::_narrow (object.in ());
diff --git a/TAO/tests/Portable_Interceptors/AMI/client.cpp b/TAO/tests/Portable_Interceptors/AMI/client.cpp
index 0ea1013c803..dec2ca68b50 100644
--- a/TAO/tests/Portable_Interceptors/AMI/client.cpp
+++ b/TAO/tests/Portable_Interceptors/AMI/client.cpp
@@ -79,7 +79,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
root_poa->the_POAManager ();
CORBA::Object_var tmp =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Test::Echo_var echo =
Test::Echo::_narrow (tmp.in ());
diff --git a/TAO/tests/Portable_Interceptors/AdvSlot/client.cpp b/TAO/tests/Portable_Interceptors/AdvSlot/client.cpp
index 6680f5cfc52..9dde6c00f21 100644
--- a/TAO/tests/Portable_Interceptors/AdvSlot/client.cpp
+++ b/TAO/tests/Portable_Interceptors/AdvSlot/client.cpp
@@ -14,7 +14,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
return -1;
}
- CORBA::Object_var obj = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (argv[1]));
+ CORBA::Object_var obj = orb->string_to_object (argv[1]);
StateTransfer_var server = StateTransfer::_narrow (obj.in ());
CORBA::Short n = server->number ();
diff --git a/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp b/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp
index 230158bcdd5..ed27268f76e 100644
--- a/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp
+++ b/TAO/tests/Portable_Interceptors/AdvSlotDblCpy/client.cpp
@@ -29,7 +29,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
return -1;
}
- CORBA::Object_var obj = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (argv[1]));
+ CORBA::Object_var obj = orb->string_to_object (argv[1]);
InvokeMe_var server = InvokeMe::_narrow (obj.in ());
always Shutdown( server.in () ); // When goes out of scope!
diff --git a/TAO/tests/Portable_Interceptors/AdvSlotExt/client.cpp b/TAO/tests/Portable_Interceptors/AdvSlotExt/client.cpp
index 6680f5cfc52..9dde6c00f21 100644
--- a/TAO/tests/Portable_Interceptors/AdvSlotExt/client.cpp
+++ b/TAO/tests/Portable_Interceptors/AdvSlotExt/client.cpp
@@ -14,7 +14,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
return -1;
}
- CORBA::Object_var obj = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (argv[1]));
+ CORBA::Object_var obj = orb->string_to_object (argv[1]);
StateTransfer_var server = StateTransfer::_narrow (obj.in ());
CORBA::Short n = server->number ();
diff --git a/TAO/tests/Portable_Interceptors/Bug_2133/client.cpp b/TAO/tests/Portable_Interceptors/Bug_2133/client.cpp
index 7f3621783ac..1da90efa1cc 100644
--- a/TAO/tests/Portable_Interceptors/Bug_2133/client.cpp
+++ b/TAO/tests/Portable_Interceptors/Bug_2133/client.cpp
@@ -61,7 +61,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var tmp =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Test::Hello_var hello =
Test::Hello::_narrow(tmp.in () );
diff --git a/TAO/tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.cpp b/TAO/tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.cpp
index c66781e67be..bf9838c0ae4 100644
--- a/TAO/tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.cpp
+++ b/TAO/tests/Portable_Interceptors/IORInterceptor/FOO_IORInterceptor.cpp
@@ -83,7 +83,7 @@ FOO_IORInterceptor::establish_components (
// Verify that policy retrieval internals work, and do not cause
// memory access violations.
CORBA::Policy_var policy =
- info->get_effective_policy (PortableServer::THREAD_POLICY_ID);
+ info->get_effective_policy (PortableServer::LIFESPAN_POLICY_ID);
ACE_DEBUG ((LM_DEBUG,
"(%P|%t) Successfully retrieved effective policy.\n"));
diff --git a/TAO/tests/RTCORBA/Bug_3382_Regression/client.cpp b/TAO/tests/RTCORBA/Bug_3382_Regression/client.cpp
index fde63d573cb..b1da2b8dbde 100644
--- a/TAO/tests/RTCORBA/Bug_3382_Regression/client.cpp
+++ b/TAO/tests/RTCORBA/Bug_3382_Regression/client.cpp
@@ -239,7 +239,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Unexpected error.
ACE_ERROR_RETURN ((LM_ERROR,
"ERROR: Cannot create thread. errno = %d\n",
- errno),
+ ACE_ERRNO_GET),
-1);
}
diff --git a/TAO/tests/RTCORBA/Bug_3382_Regression/server.cpp b/TAO/tests/RTCORBA/Bug_3382_Regression/server.cpp
index 5265f46930a..c6d20b0dc8a 100644
--- a/TAO/tests/RTCORBA/Bug_3382_Regression/server.cpp
+++ b/TAO/tests/RTCORBA/Bug_3382_Regression/server.cpp
@@ -279,7 +279,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Unexpected error.
ACE_ERROR_RETURN ((LM_ERROR,
"ERROR: Cannot create thread. errno = %d\n",
- errno),
+ ACE_ERRNO_GET),
-1);
}
diff --git a/TAO/tests/RTCORBA/Bug_3643_Regression/Bug_3643_Regression.mpc b/TAO/tests/RTCORBA/Bug_3643_Regression/Bug_3643_Regression.mpc
new file mode 100644
index 00000000000..07d678f931a
--- /dev/null
+++ b/TAO/tests/RTCORBA/Bug_3643_Regression/Bug_3643_Regression.mpc
@@ -0,0 +1,37 @@
+// -*- MPC -*-
+// $Id$
+
+project(*idl): taoidldefaults {
+ idlflags += -Sp
+ IDL_Files {
+ test.idl
+ }
+ custom_only = 1
+}
+
+project(*Server): rt_server, avoids_minimum_corba, avoids_corba_e_compact, avoids_corba_e_micro {
+ after += *idl
+ Source_Files {
+ test_i.cpp
+ server.cpp
+ }
+ Source_Files {
+ testC.cpp
+ testS.cpp
+ }
+ IDL_Files {
+ }
+}
+
+project(*Client): rt_client {
+ after += *idl
+ Source_Files {
+ client.cpp
+ }
+ Source_Files {
+ testC.cpp
+ }
+ IDL_Files {
+ }
+}
+
diff --git a/TAO/tests/RTCORBA/Bug_3643_Regression/client.cpp b/TAO/tests/RTCORBA/Bug_3643_Regression/client.cpp
new file mode 100644
index 00000000000..d578c7336b4
--- /dev/null
+++ b/TAO/tests/RTCORBA/Bug_3643_Regression/client.cpp
@@ -0,0 +1,245 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "testC.h"
+#include "tao/RTCORBA/RTCORBA.h"
+#include "tao/ORB_Core.h"
+#include "ace/Task.h"
+#include "ace/OS_NS_unistd.h"
+#include "ace/OS_NS_time.h"
+
+ACE_RCSID(Thread_Pool, client, "$Id$")
+
+const ACE_TCHAR *ior = ACE_TEXT ("file://ior_1");
+int iterations = 1000;
+int shutdown_server = 0;
+bool decreased = false;
+
+const char *
+sched_policy_name (int sched_policy)
+{
+ const char *name = 0;
+
+ switch (sched_policy)
+ {
+ case ACE_SCHED_OTHER:
+ name = "SCHED_OTHER";
+ break;
+ case ACE_SCHED_RR:
+ name = "SCHED_RR";
+ break;
+ case ACE_SCHED_FIFO:
+ name = "SCHED_FIFO";
+ break;
+ }
+
+ return name;
+}
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "xk:i:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'x':
+ shutdown_server = 1;
+ break;
+
+ case 'k':
+ ior = get_opts.opt_arg ();
+ break;
+
+ case 'i':
+ iterations = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-k <ior> "
+ "-i <iterations> "
+ "-x [shutdown server] "
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+class Task : public ACE_Task_Base
+{
+public:
+
+ Task (ACE_Thread_Manager &thread_manager,
+ CORBA::ORB_ptr orb);
+
+ int svc (void);
+
+ CORBA::ORB_var orb_;
+
+};
+
+Task::Task (ACE_Thread_Manager &thread_manager,
+ CORBA::ORB_ptr orb)
+ : ACE_Task_Base (&thread_manager),
+ orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+int
+Task::svc (void)
+{
+ try
+ {
+ CORBA::Object_var object =
+ this->orb_->string_to_object (ior);
+
+ test_var test =
+ test::_narrow (object.in ());
+
+ pid_t pid =
+ ACE_OS::getpid ();
+
+ CORBA::Long tc = 0;
+
+ struct timespec millis;
+ millis.tv_sec = 0L;
+ millis.tv_nsec = 50 * 1000000L; // 1e6 nanos per milli
+
+ ACE_hrtime_t start = ACE_OS::gethrtime();
+
+ for (int i = 0; i != iterations; ++i)
+ {
+ // ~20 req/sec means to sleep 50 millis between each
+ ACE_OS::nanosleep(&millis); // ignore signals
+
+ CORBA::Long mtc = 0;
+ CORBA::Long r =
+ test->method (pid,
+ i,
+ mtc);
+
+ ACE_ASSERT (r == i);
+ // Assert disappears on with optimizations on.
+ ACE_UNUSED_ARG (r);
+
+ if (mtc > tc)
+ {
+ // Number of threads increased, so store this.
+ ACE_DEBUG ((LM_DEBUG, "Thread count increased to %d\n", mtc));
+ tc = mtc;
+ }
+ else if (mtc < tc)
+ {
+ // Number of threads decreased!
+ ACE_DEBUG ((LM_DEBUG, "Thread count decreased to %d\n", mtc));
+ decreased = true;
+ tc = mtc;
+ }
+ }
+ ACE_hrtime_t duration = ACE_OS::gethrtime() - start;
+ double tp = ((double) iterations) / (duration / 1000000);
+ tp *= 1000.0;
+ ACE_DEBUG ((LM_DEBUG, "Throughput: %d\n", tp));
+
+ ACE_OS::sleep (10);
+
+ CORBA::Long end = 0;
+ CORBA::Long re =
+ test->method (pid,
+ 0,
+ end);
+
+ ACE_ASSERT (re == 0);
+ // Assert disappears on with optimizations on.
+ ACE_UNUSED_ARG (re);
+
+ if (end != 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Dynamic thread count should be 0, not %d\n", end));
+ }
+
+ if (shutdown_server)
+ {
+ test->shutdown ();
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ int result =
+ parse_args (argc, argv);
+ if (result != 0)
+ return result;
+
+ // Thread Manager for managing task.
+ ACE_Thread_Manager thread_manager;
+
+ // Create task.
+ Task task (thread_manager,
+ orb.in ());
+
+ // Task activation flags.
+ long flags =
+ THR_NEW_LWP |
+ THR_JOINABLE |
+ orb->orb_core ()->orb_params ()->thread_creation_flags ();
+
+ // Activate task.
+ result = task.activate (flags);
+
+ if (result == -1)
+ {
+ if (errno == EPERM)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot create thread with scheduling policy %s\n"
+ "because the user does not have the appropriate privileges, terminating program....\n"
+ "Check svc.conf options and/or run as root\n",
+ sched_policy_name (orb->orb_core ()->orb_params ()->ace_sched_policy ())),
+ 2);
+ }
+ else
+ // Unexpected error.
+ ACE_ASSERT (0);
+ }
+
+ // Wait for task to exit.
+ result =
+ thread_manager.wait ();
+ ACE_ASSERT (result != -1);
+
+ if (decreased == false)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR, "ERROR: Number of threads didn't decrease\n"), -1);
+ }
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/RTCORBA/Bug_3643_Regression/run_test.pl b/TAO/tests/RTCORBA/Bug_3643_Regression/run_test.pl
new file mode 100755
index 00000000000..d51b5d263d5
--- /dev/null
+++ b/TAO/tests/RTCORBA/Bug_3643_Regression/run_test.pl
@@ -0,0 +1,115 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+my $server = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+my $client = PerlACE::TestTarget::create_target (2) || die "Create target 2 failed\n";
+
+$number_of_clients = 4;
+$status = 0;
+$continuous = ($^O eq 'hpux');
+
+@configurations =
+ ({
+ file => "ior_1",
+ description => "Invoking methods on servant in default thread pool",
+ },{
+ file => "ior_2",
+ description => "Invoking methods on servant in first RT thread pool (without lanes)",
+ },{
+ file => "ior_3",
+ description => "Invoking methods on servant in second RT thread pool (with lanes)",
+ },
+ );
+
+for $test (@configurations) {
+ $server->DeleteFile ($test->{file});
+ $client->DeleteFile ($test->{file});
+}
+
+sub run_clients
+{
+ my @parms = @_;
+ $arg = $parms[0];
+ $clients = $parms[1];
+
+
+ for ($i = 0; $i < $clients; $i++) {
+ $CL[$i] = $client->CreateProcess ("client", $arg);
+ $CL[$i]->Spawn ();
+ }
+
+ for ($i = 0; $i < $clients; $i++) {
+ $client_status = $CL[$i]->WaitKill ($client->ProcessStopWaitInterval (120));
+ if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+ goto kill_server;
+ }
+ }
+ print STDERR "Finished running clients";
+}
+
+$SV = $server->CreateProcess ("server");
+
+if ($continuous) {
+ $SV->Arguments ("-ORBSvcConf continuous$PerlACE::svcconf_ext");
+}
+
+$SV->Spawn ();
+
+for $test (@configurations) {
+ if ($server->WaitForFileTimed ($test->{file},
+ $server->ProcessStartWaitInterval()) == -1) {
+ $server_status = $SV->TimedWait (1);
+ if ($server_status == 2) {
+ # Mark as no longer running to avoid errors on exit.
+ $SV->{RUNNING} = 0;
+ exit $status;
+ }
+ else {
+ print STDERR "ERROR: cannot find ior file: $test->{file}\n";
+ $status = 1;
+ goto kill_server;
+ }
+ }
+}
+
+for $test (@configurations) {
+ print STDERR "\n*************************************************************\n";
+ print STDERR "$test->{description}\n";
+ print STDERR "*************************************************************\n\n";
+
+ $iorfile = $client->LocalFile ($test->{file});
+ run_clients ("-k file://$iorfile", $number_of_clients);
+ print STDERR "Prepare next cycle";
+}
+
+print STDERR "\n************************\n";
+print STDERR "Shutting down the server\n";
+print STDERR "************************\n\n";
+
+$client_iorfile = $client->LocalFile ($configurations[0]->{file});
+run_clients ("-k file://$client_iorfile -i 0 -x", 1);
+
+kill_server:
+
+$server_status = $SV->WaitKill ($server->ProcessStopWaitInterval () + (2 * $number_of_clients * 100));
+
+if ($server_status != 0) {
+ print STDERR "ERROR: server returned $server_status\n";
+ $status = 1;
+}
+
+for $test (@configurations) {
+ $client->DeleteFile ($test->{file});
+ $server->DeleteFile ($test->{file});
+}
+
+exit $status
diff --git a/TAO/tests/RTCORBA/Bug_3643_Regression/server.cpp b/TAO/tests/RTCORBA/Bug_3643_Regression/server.cpp
new file mode 100644
index 00000000000..96745267fb2
--- /dev/null
+++ b/TAO/tests/RTCORBA/Bug_3643_Regression/server.cpp
@@ -0,0 +1,354 @@
+// $Id$
+
+#include "test_i.h"
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/ORB_Core.h"
+#include "ace/Task.h"
+#include "tao/RTPortableServer/RTPortableServer.h"
+#include "../check_supported_priorities.cpp"
+
+ACE_RCSID(Thread_Pool, server, "$Id$")
+
+const ACE_TCHAR *ior_output_file = ACE_TEXT("ior");
+int ior_count = 1;
+CORBA::ULong static_threads = 1;
+CORBA::ULong dynamic_threads = 25;
+long nap_time = 1000;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("o:s:d:t:h"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'o':
+ ior_output_file = get_opts.opt_arg ();
+ break;
+
+ case 's':
+ static_threads = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'd':
+ dynamic_threads = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 't':
+ nap_time = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case 'h':
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-o <iorfile> "
+ "-s <static_threads> "
+ "-d <dynamic_threads> "
+ "-t <nap_time> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+write_ior_to_file (CORBA::ORB_ptr orb,
+ test_ptr test)
+{
+ CORBA::String_var ior =
+ orb->object_to_string (test);
+
+ char filename[BUFSIZ];
+ ACE_OS::sprintf (filename,
+ "%s_%d",
+ ior_output_file,
+ ior_count++);
+
+ FILE *output_file =
+ ACE_OS::fopen (filename,
+ "w");
+
+ if (output_file == 0)
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot open output file for writing IOR: %s",
+ filename),
+ -1);
+
+ ACE_OS::fprintf (output_file,
+ "%s",
+ ior.in ());
+
+ ACE_OS::fclose (output_file);
+
+ return 0;
+}
+
+int
+create_POA_and_register_servant (CORBA::Policy_ptr threadpool_policy,
+ const char *poa_name,
+ PortableServer::POAManager_ptr poa_manager,
+ PortableServer::POA_ptr root_poa,
+ CORBA::ORB_ptr orb,
+ RTCORBA::RTORB_ptr rt_orb)
+{
+ // Policies for the firstPOA to be created.
+ CORBA::PolicyList policies (3); policies.length (3);
+
+ // Implicit_activation policy.
+ policies[0] =
+ root_poa->create_implicit_activation_policy
+ (PortableServer::IMPLICIT_ACTIVATION);
+
+ // Thread pool policy.
+ policies[1] =
+ CORBA::Policy::_duplicate (threadpool_policy);
+
+ // Priority Model policy.
+ policies[2] =
+ rt_orb->create_priority_model_policy (RTCORBA::CLIENT_PROPAGATED,
+ 0);
+
+ // Create the POA under the RootPOA.
+ PortableServer::POA_var poa =
+ root_poa->create_POA (poa_name,
+ poa_manager,
+ policies);
+
+ // Creation of POAs is over. Destroy the Policy objects.
+ for (CORBA::ULong i = 0;
+ i < policies.length ();
+ ++i)
+ {
+ policies[i]->destroy ();
+ }
+
+ test_i *servant =
+ new test_i (orb,
+ poa.in (),
+ nap_time);
+
+ PortableServer::ServantBase_var safe_servant (servant);
+ ACE_UNUSED_ARG (safe_servant);
+
+ PortableServer::ObjectId_var id =
+ poa->activate_object (servant);
+
+ CORBA::Object_var object = poa->id_to_reference (id.in ());
+
+ test_var test =
+ test::_narrow (object.in ());
+
+ int result =
+ write_ior_to_file (orb,
+ test.in ());
+
+ return result;
+}
+
+class Task : public ACE_Task_Base
+{
+public:
+
+ Task (ACE_Thread_Manager &thread_manager,
+ CORBA::ORB_ptr orb);
+
+ int svc (void);
+
+ CORBA::ORB_var orb_;
+
+};
+
+Task::Task (ACE_Thread_Manager &thread_manager,
+ CORBA::ORB_ptr orb)
+ : ACE_Task_Base (&thread_manager),
+ orb_ (CORBA::ORB::_duplicate (orb))
+{
+}
+
+int
+Task::svc (void)
+{
+ try
+ {
+ CORBA::Object_var object =
+ this->orb_->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ object =
+ this->orb_->resolve_initial_references ("RTORB");
+
+ RTCORBA::RTORB_var rt_orb =
+ RTCORBA::RTORB::_narrow (object.in ());
+
+ object =
+ this->orb_->resolve_initial_references ("RTCurrent");
+
+ RTCORBA::Current_var current =
+ RTCORBA::Current::_narrow (object.in ());
+
+ RTCORBA::Priority default_thread_priority =
+ get_implicit_thread_CORBA_priority (this->orb_.in ());
+
+ test_i servant (this->orb_.in (),
+ root_poa.in (),
+ nap_time);
+ PortableServer::ObjectId_var id =
+ root_poa->activate_object (&servant);
+
+ CORBA::Object_var object_act = root_poa->id_to_reference (id.in ());
+
+ test_var test =
+ test::_narrow (object_act.in ());
+
+ int result =
+ write_ior_to_file (this->orb_.in (),
+ test.in ());
+
+ if (result != 0)
+ return result;
+
+ poa_manager->activate ();
+
+ CORBA::ULong stacksize = 0;
+ CORBA::Boolean allow_request_buffering = 0;
+ CORBA::ULong max_buffered_requests = 0;
+ CORBA::ULong max_request_buffer_size = 0;
+
+ RTCORBA::ThreadpoolId threadpool_id_1 =
+ rt_orb->create_threadpool (stacksize,
+ static_threads,
+ dynamic_threads,
+ default_thread_priority,
+ allow_request_buffering,
+ max_buffered_requests,
+ max_request_buffer_size);
+
+ CORBA::Policy_var threadpool_policy_1 =
+ rt_orb->create_threadpool_policy (threadpool_id_1);
+
+ CORBA::Boolean allow_borrowing = 0;
+ RTCORBA::ThreadpoolLanes lanes (1);
+ lanes.length (1);
+
+ lanes[0].lane_priority = default_thread_priority;
+ lanes[0].static_threads = static_threads;
+ lanes[0].dynamic_threads = dynamic_threads;
+
+ RTCORBA::ThreadpoolId threadpool_id_2 =
+ rt_orb->create_threadpool_with_lanes (stacksize,
+ lanes,
+ allow_borrowing,
+ allow_request_buffering,
+ max_buffered_requests,
+ max_request_buffer_size);
+
+ CORBA::Policy_var threadpool_policy_2 =
+ rt_orb->create_threadpool_policy (threadpool_id_2);
+
+ result =
+ create_POA_and_register_servant (threadpool_policy_1.in (),
+ "first_poa",
+ poa_manager.in (),
+ root_poa.in (),
+ this->orb_.in (),
+ rt_orb.in ());
+ if (result != 0)
+ return result;
+
+ result =
+ create_POA_and_register_servant (threadpool_policy_2.in (),
+ "second_poa",
+ poa_manager.in (),
+ root_poa.in (),
+ this->orb_.in (),
+ rt_orb.in ());
+ if (result != 0)
+ return result;
+
+ this->orb_->run ();
+
+ this->orb_->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught:");
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb =
+ CORBA::ORB_init (argc, argv);
+
+ int result =
+ parse_args (argc, argv);
+ if (result != 0)
+ return result;
+
+ // Make sure we can support multiple priorities that are required
+ // for this test.
+ if (!check_supported_priorities (orb.in ()))
+ return 2;
+
+ // Thread Manager for managing task.
+ ACE_Thread_Manager thread_manager;
+
+ // Create task.
+ Task task (thread_manager,
+ orb.in ());
+
+ // Task activation flags.
+ long flags =
+ THR_NEW_LWP |
+ THR_JOINABLE |
+ orb->orb_core ()->orb_params ()->thread_creation_flags ();
+
+ // Activate task.
+ result =
+ task.activate (flags);
+ if (result == -1)
+ {
+ if (errno == EPERM)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Cannot create thread with scheduling policy %s\n"
+ "because the user does not have the appropriate privileges, terminating program....\n"
+ "Check svc.conf options and/or run as root\n",
+ sched_policy_name (orb->orb_core ()->orb_params ()->ace_sched_policy ())),
+ 2);
+ }
+ else
+ // Unexpected error.
+ ACE_ASSERT (0);
+ }
+
+ // Wait for task to exit.
+ result =
+ thread_manager.wait ();
+ ACE_ASSERT (result != -1);
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Exception caught");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/TAO/tests/RTCORBA/Bug_3643_Regression/svc.conf.dynamic b/TAO/tests/RTCORBA/Bug_3643_Regression/svc.conf.dynamic
new file mode 100644
index 00000000000..c288d674567
--- /dev/null
+++ b/TAO/tests/RTCORBA/Bug_3643_Regression/svc.conf.dynamic
@@ -0,0 +1 @@
+static RT_ORB_Loader "-RTORBDynamicThreadIdleTimeout 1000000"
diff --git a/TAO/tests/RTCORBA/Bug_3643_Regression/test.idl b/TAO/tests/RTCORBA/Bug_3643_Regression/test.idl
new file mode 100644
index 00000000000..3bc8f9af25c
--- /dev/null
+++ b/TAO/tests/RTCORBA/Bug_3643_Regression/test.idl
@@ -0,0 +1,12 @@
+//
+// $Id$
+//
+
+interface test
+{
+ long method (in long client_id,
+ in long iteration,
+ out long thread_count);
+
+ oneway void shutdown ();
+};
diff --git a/TAO/tests/RTCORBA/Bug_3643_Regression/test_i.cpp b/TAO/tests/RTCORBA/Bug_3643_Regression/test_i.cpp
new file mode 100644
index 00000000000..55d36ae90e3
--- /dev/null
+++ b/TAO/tests/RTCORBA/Bug_3643_Regression/test_i.cpp
@@ -0,0 +1,68 @@
+// $Id$
+
+#include "test_i.h"
+#include "ace/OS_NS_unistd.h"
+#include "tao/ORB_Core.h"
+#include "tao/RTCORBA/Thread_Pool.h"
+
+ACE_RCSID(Thread_Pools, test_i, "$Id$")
+
+test_i::test_i (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ long msec_sleep)
+ : orb_ (CORBA::ORB::_duplicate (orb)),
+ poa_ (PortableServer::POA::_duplicate (poa)),
+ nap_time_ ()
+{
+ this->nap_time_.msec (msec_sleep);
+}
+
+CORBA::Long
+test_i::method (CORBA::Long client_id,
+ CORBA::Long iteration,
+ CORBA::Long_out thread_count)
+{
+ // Get the ORB_Core's TSS resources.
+ TAO_ORB_Core_TSS_Resources *tss =
+ this->orb_->orb_core ()->get_tss_resources ();
+
+ /// Get the lane attribute in TSS.
+ TAO_Thread_Lane *lane =
+ static_cast <TAO_Thread_Lane *> (tss->lane_);
+
+#ifndef NDEBUG
+ if (lane)
+ ACE_DEBUG ((LM_DEBUG,
+ "Request in thread %t (pool id = %d; lane id = %d) for client %d iteration %d\n",
+ lane->pool ().id (),
+ lane->id (),
+ client_id,
+ iteration));
+ else
+ ACE_DEBUG ((LM_DEBUG,
+ "Request in thread %t (default thread pool) for client %d iteration %d\n",
+ client_id,
+ iteration));
+#endif // NDEBUG
+
+ ACE_OS::sleep (this->nap_time_);
+
+ if (lane)
+ thread_count = lane->current_threads ();
+ else
+ thread_count = 0;
+
+ return iteration;
+}
+
+PortableServer::POA_ptr
+test_i::_default_POA (void)
+{
+ return PortableServer::POA::_duplicate (this->poa_.in ());
+}
+
+void
+test_i::shutdown (void)
+{
+ this->orb_->shutdown (0);
+}
diff --git a/TAO/tests/RTCORBA/Bug_3643_Regression/test_i.h b/TAO/tests/RTCORBA/Bug_3643_Regression/test_i.h
new file mode 100644
index 00000000000..f6fa6a9fbee
--- /dev/null
+++ b/TAO/tests/RTCORBA/Bug_3643_Regression/test_i.h
@@ -0,0 +1,42 @@
+//=============================================================================
+/**
+ * @file test_i.h
+ *
+ * $Id$
+ *
+ * @author Irfan Pyarali
+ */
+// ===================================================================
+
+#include "testS.h"
+
+class test_i :
+ public POA_test
+{
+public:
+ /// Constructor.
+ test_i (CORBA::ORB_ptr orb,
+ PortableServer::POA_ptr poa,
+ long msec_sleep);
+
+ /// Test method.
+ CORBA::Long method (CORBA::Long client_id,
+ CORBA::Long iteration,
+ CORBA::Long_out thread_count);
+
+ /// Shutdown the server.
+ void shutdown (void);
+
+ /// Our POA.
+ PortableServer::POA_ptr _default_POA (void);
+
+private:
+ /// ORB.
+ CORBA::ORB_var orb_;
+
+ /// Our POA.
+ PortableServer::POA_var poa_;
+
+ /// Time spent in executing the upcall.
+ ACE_Time_Value nap_time_;
+};
diff --git a/TAO/tests/RTCORBA/Dynamic_Thread_Pool/run_test.pl b/TAO/tests/RTCORBA/Dynamic_Thread_Pool/run_test.pl
index 11c893bb82b..11c893bb82b 100644..100755
--- a/TAO/tests/RTCORBA/Dynamic_Thread_Pool/run_test.pl
+++ b/TAO/tests/RTCORBA/Dynamic_Thread_Pool/run_test.pl
diff --git a/TAO/tests/RTCORBA/Linear_Priority/client.cpp b/TAO/tests/RTCORBA/Linear_Priority/client.cpp
index cfc51faa19d..c95cb27668c 100644
--- a/TAO/tests/RTCORBA/Linear_Priority/client.cpp
+++ b/TAO/tests/RTCORBA/Linear_Priority/client.cpp
@@ -199,7 +199,7 @@ Task::svc (void)
CORBA::PolicyManager::_narrow (object.in ());
object =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ this->orb_->string_to_object (ior);
test_var test =
test::_narrow (object.in ());
diff --git a/TAO/tests/RTCORBA/Persistent_IOR/client.cpp b/TAO/tests/RTCORBA/Persistent_IOR/client.cpp
index f154282327c..e38d91d6d8f 100644
--- a/TAO/tests/RTCORBA/Persistent_IOR/client.cpp
+++ b/TAO/tests/RTCORBA/Persistent_IOR/client.cpp
@@ -63,7 +63,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return result;
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
test_var test =
test::_narrow (object.in ());
diff --git a/TAO/tests/RTCORBA/Policy_Combinations/client.cpp b/TAO/tests/RTCORBA/Policy_Combinations/client.cpp
index e479d7fd306..f0f3dee1ecd 100644
--- a/TAO/tests/RTCORBA/Policy_Combinations/client.cpp
+++ b/TAO/tests/RTCORBA/Policy_Combinations/client.cpp
@@ -88,7 +88,7 @@ Task::svc (void)
get_implicit_thread_CORBA_priority (this->orb_.in ());
object =
- this->orb_->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ this->orb_->string_to_object (ior);
test_var test =
test::_narrow (object.in ());
diff --git a/TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp
index 372baf585c9..42eeb58b3e9 100644
--- a/TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp
@@ -362,7 +362,7 @@ int ACE_TMAIN(int,ACE_TCHAR*[])
status += myntester.test_all();
-#if defined(ACE_HAS_WCHAR)
+#if defined(ACE_HAS_WCHAR) && !defined(TAO_LACKS_WCHAR_CXX_STDLIB)
typedef TAO::bounded_basic_string_sequence<CORBA::WChar, MAXIMUM> w_sequence;
typedef Tester<w_sequence> wTester;
wTester mywtester;
diff --git a/TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp b/TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
index 3eba6d93cad..e15a5a4a8ce 100644
--- a/TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
+++ b/TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
@@ -62,7 +62,11 @@ struct string_sequence_test_helpers<char>
}
};
-#if defined(ACE_HAS_WCHAR)
+#if defined(_GLIBCPP_VERSION) && !defined(_GLIBCPP_USE_WCHAR_T)
+# define TAO_LACKS_WCHAR_CXX_STDLIB
+#endif
+
+#if defined(ACE_HAS_WCHAR) && !defined(TAO_LACKS_WCHAR_CXX_STDLIB)
template<>
struct string_sequence_test_helpers<CORBA::WChar>
{
diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp
index f2639091b7d..8b540d78d2a 100644
--- a/TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp
@@ -517,7 +517,7 @@ int ACE_TMAIN(int,ACE_TCHAR*[])
status += ntester.test_all ();
}
-#if defined(ACE_HAS_WCHAR)
+#if defined(ACE_HAS_WCHAR) && !defined(TAO_LACKS_WCHAR_CXX_STDLIB)
{
typedef Tester<unbounded_basic_string_sequence <CORBA::WChar> > wTester;
wTester wtester;
diff --git a/TAO/tests/Server_Connection_Purging/client2.cpp b/TAO/tests/Server_Connection_Purging/client2.cpp
index 1cd616d0d2f..406ab3f4fc9 100644
--- a/TAO/tests/Server_Connection_Purging/client2.cpp
+++ b/TAO/tests/Server_Connection_Purging/client2.cpp
@@ -55,7 +55,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Get an object reference from the argument string.
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (IOR));
+ orb->string_to_object (IOR);
// Try to narrow the object reference to a <test> reference.
test_var test_object = test::_narrow (object.in ());
diff --git a/TAO/tests/Single_Read/client.cpp b/TAO/tests/Single_Read/client.cpp
index 4927ca14972..c756e56970d 100644
--- a/TAO/tests/Single_Read/client.cpp
+++ b/TAO/tests/Single_Read/client.cpp
@@ -85,7 +85,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Get an object reference from the argument string.
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (IOR));
+ orb->string_to_object (IOR);
// Try to narrow the object reference to a <test> reference.
test_var test_object = test::_narrow (object.in ());
diff --git a/TAO/tests/Smart_Proxies/dtor/client.cpp b/TAO/tests/Smart_Proxies/dtor/client.cpp
index 0d9bb73f23a..1e9be0a8579 100644
--- a/TAO/tests/Smart_Proxies/dtor/client.cpp
+++ b/TAO/tests/Smart_Proxies/dtor/client.cpp
@@ -42,7 +42,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
if (parse_args (argc, argv) != 0)
return 1;
- CORBA::Object_var obj = orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ CORBA::Object_var obj = orb->string_to_object (ior);
// force a scope to see the destruction of the server object
{
diff --git a/TAO/tests/Timed_Buffered_Oneways/client.cpp b/TAO/tests/Timed_Buffered_Oneways/client.cpp
index 07d9f055a8f..6bc6276367b 100644
--- a/TAO/tests/Timed_Buffered_Oneways/client.cpp
+++ b/TAO/tests/Timed_Buffered_Oneways/client.cpp
@@ -187,7 +187,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
// Get an object reference from the argument string.
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (IOR));
+ orb->string_to_object (IOR);
// Try to narrow the object reference to a <test> reference.
test_var test_object_no_policy = test::_narrow (object.in ());
diff --git a/TAO/tests/Timeout/client.cpp b/TAO/tests/Timeout/client.cpp
index 689a85e3493..755d3da6daf 100644
--- a/TAO/tests/Timeout/client.cpp
+++ b/TAO/tests/Timeout/client.cpp
@@ -96,7 +96,7 @@ int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
return 1;
CORBA::Object_var object =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (ior));
+ orb->string_to_object (ior);
Simple_Server_var server =
Simple_Server::_narrow (object.in ());
diff --git a/TAO/tests/ZIOP/TestCompressor/TAO_TestCompressor.rc b/TAO/tests/ZIOP/TestCompressor/TAO_TestCompressor.rc
index 9ed1be28a2e..1c761d966a1 100644
--- a/TAO/tests/ZIOP/TestCompressor/TAO_TestCompressor.rc
+++ b/TAO/tests/ZIOP/TestCompressor/TAO_TestCompressor.rc
@@ -1,4 +1,4 @@
-#include "..\..\tao\Version.h"
+#include "../../../tao/Version.h"
1 VERSIONINFO
FILEVERSION TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_BETA_VERSION,0
diff --git a/TAO/tests/ZIOP/client.cpp b/TAO/tests/ZIOP/client.cpp
index 0f4304527a1..15e2b51cc37 100644
--- a/TAO/tests/ZIOP/client.cpp
+++ b/TAO/tests/ZIOP/client.cpp
@@ -151,7 +151,7 @@ CORBA::Policy_ptr
create_min_ratio_policy (CORBA::ORB_ptr orb)
{
CORBA::Any min_compression_ratio_any;
- CORBA::Long min_compression_ratio = 50;
+ Compression::CompressionRatio min_compression_ratio = 0.50;
min_compression_ratio_any <<= min_compression_ratio;
return orb->create_policy (ZIOP::COMPRESSION_MIN_RATIO_POLICY_ID, min_compression_ratio_any);
@@ -286,7 +286,7 @@ check_results (CORBA::ORB_ptr orb)
#endif
}
-int
+int
run_string_test (Test::Hello_ptr hello)
{
ACE_DEBUG((LM_DEBUG,
@@ -313,7 +313,7 @@ run_string_test (Test::Hello_ptr hello)
return 0;
}
-int
+int
run_big_reply_test (Test::Hello_ptr hello)
{
ACE_DEBUG((LM_DEBUG,
@@ -337,7 +337,7 @@ run_big_reply_test (Test::Hello_ptr hello)
return 0;
}
-int
+int
run_big_request_test (Test::Hello_ptr hello)
{
int length = 40000;
@@ -351,7 +351,7 @@ run_big_request_test (Test::Hello_ptr hello)
return 0;
}
-int
+int
start_tests (Test::Hello_ptr hello, CORBA::ORB_ptr orb)
{
int result = 0;
diff --git a/TAO/tests/ZIOP/server.cpp b/TAO/tests/ZIOP/server.cpp
index 66ced845c6e..5fdd724b921 100644
--- a/TAO/tests/ZIOP/server.cpp
+++ b/TAO/tests/ZIOP/server.cpp
@@ -135,7 +135,7 @@ CORBA::Policy_ptr
create_min_ratio_policy (CORBA::ORB_ptr orb)
{
CORBA::Any min_compression_ratio_any;
- CORBA::Long min_compression_ratio = 75;
+ Compression::CompressionRatio min_compression_ratio = 0.75;
min_compression_ratio_any <<= min_compression_ratio;
return orb->create_policy (ZIOP::COMPRESSION_MIN_RATIO_POLICY_ID, min_compression_ratio_any);
diff --git a/TAO/utils/NamingViewer/NamingViewerDlg.cpp b/TAO/utils/NamingViewer/NamingViewerDlg.cpp
index baa5a4d07dd..0e312e51722 100644
--- a/TAO/utils/NamingViewer/NamingViewerDlg.cpp
+++ b/TAO/utils/NamingViewer/NamingViewerDlg.cpp
@@ -219,7 +219,7 @@ void CNamingViewerDlg::OnSelectNs()
}
try
{
- CORBA::Object_var Object = m_pORB->string_to_object(ACE_TEXT_ALWAYS_CHAR (Dialog.GetIOR()));
+ CORBA::Object_var Object = m_pORB->string_to_object(Dialog.GetIOR());
m_RootContext = CosNaming::NamingContext::_narrow(Object);
m_Server = Dialog.GetName();
UpdateData(FALSE);
diff --git a/TAO/utils/README b/TAO/utils/README
index 712cfaf67a9..4dba0ab072f 100644
--- a/TAO/utils/README
+++ b/TAO/utils/README
@@ -9,6 +9,9 @@ with TAO.
. IOR-parser -- The "ior-parser" utility is similar to catior,
i.e,. parses IORs generated by ORBs.
+ . logWalker -- A way to make sense of large, complicated
+ TAO debug output logs.
+
. nslist -- This utility lists the current entries in the
Naming Service in a nicely formatter manner.
diff --git a/TAO/utils/logWalker/HostProcess.cpp b/TAO/utils/logWalker/HostProcess.cpp
new file mode 100644
index 00000000000..2221250c1d8
--- /dev/null
+++ b/TAO/utils/logWalker/HostProcess.cpp
@@ -0,0 +1,281 @@
+// $Id$
+
+#include "HostProcess.h"
+#include "Invocation.h"
+#include "PeerProcess.h"
+#include "Thread.h"
+
+#include "ace/OS_NS_stdio.h"
+
+HostProcess::HostProcess (const ACE_CString &src, long pid)
+ : pid_(pid),
+ logfile_name_(src),
+ closed_handles_(0)
+{
+}
+
+HostProcess::~HostProcess (void)
+{
+ for (AddrList::ITERATOR i(this->endpoints_);
+ !i.done();
+ i++)
+ {
+ delete reinterpret_cast<ACE_CString *>(i.next()->item_);
+ }
+ for (ThreadList::ITERATOR i(this->threads_);
+ !i.done();
+ i++)
+ {
+ delete reinterpret_cast<Thread *>(i.next()->item_);
+ }
+ for (PeerProcs::ITERATOR i = clients_.begin(); i != clients_.end(); i++)
+ {
+ PeerProcs::ENTRY *entry;
+ if (i.next(entry) == 0)
+ break;
+ delete entry->item();
+ }
+ for (PeerProcs::ITERATOR i = servers_.begin(); i != servers_.end(); i++)
+ {
+ PeerProcs::ENTRY *entry;
+ if (i.next(entry) == 0)
+ break;
+ delete entry->item();
+ }
+}
+
+void
+HostProcess::proc_name (const ACE_CString &name)
+{
+ this->proc_name_ = name;
+}
+
+const ACE_CString&
+HostProcess::proc_name (void) const
+{
+ return this->proc_name_;
+}
+
+Thread *
+HostProcess::find_thread (long tid)
+{
+ Thread *thr;
+ for (ACE_DLList_Iterator<Thread> i(threads_);
+ !i.done();
+ i.advance())
+ {
+ i.next(thr);
+ if (thr->id() == tid)
+ return thr;
+ }
+ char alias[20];
+ ACE_OS::sprintf (alias,"Thread[%d]",this->threads_.size() + 1);
+ thr = new Thread (tid, alias);
+ threads_.insert_tail (thr);
+ return thr;
+}
+
+PeerProcess *
+HostProcess::find_peer (long handle)
+{
+ PeerProcess *pp = 0;
+ if (this->clients_.find(handle,pp) != 0)
+ this->servers_.find(handle,pp);
+ return pp;
+}
+
+long
+HostProcess::pid (void) const
+{
+ return this->pid_;
+}
+
+bool
+HostProcess::has_endpoint (ACE_CString& addr)
+{
+ ACE_CString *a;
+ for (ACE_DLList_Iterator<ACE_CString> i(this->endpoints_);
+ !i.done();
+ i.advance())
+ {
+ i.next(a);
+ if (*a == addr)
+ return true;
+ }
+ return false;
+}
+
+void
+HostProcess::add_endpoint(ACE_CString &addr)
+{
+ this->endpoints_.insert_tail(new ACE_CString (addr));
+}
+
+void
+HostProcess::add_peer(PeerProcess *peer, bool as_client)
+{
+ peer->set_owner (this);
+ PeerProcess *existing = this->find_peer(peer->handle());
+ if (existing != 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "add_peer, found existing for %d, is_closed = %d\n",
+ peer->handle(), existing->is_closed()));
+ }
+ PeerProcs *list = as_client ? &clients_ : &servers_;
+ long handle = peer->handle();
+ list->bind (handle, peer);
+}
+
+void
+HostProcess::close_peer (long handle, size_t offset)
+{
+ PeerProcess *pp = 0;
+ --this->closed_handles_;
+ if (this->clients_.unbind(handle,pp) == 0)
+ {
+ pp->close (offset);
+ this->clients_.bind (this->closed_handles_, pp);
+ }
+ else if (this->servers_.unbind(handle,pp) == 0)
+ {
+ pp->close (offset);
+ this->servers_.bind (this->closed_handles_, pp);
+ }
+ return;
+}
+
+void
+HostProcess::dump_summary (ostream &strm)
+{
+ strm << "Host process " << this->proc_name_ << " pid(" << this->pid_ << ") from logfile " << this->logfile_name_ << endl;
+ size_t num = this->endpoints_.size();
+ if (num > 0)
+ {
+ strm << " listening on ";
+ size_t count = 0;
+ for (ACE_DLList_Iterator <ACE_CString> t_iter (this->endpoints_);
+ !t_iter.done();
+ t_iter.advance())
+ {
+ ACE_CString *ep;
+ t_iter.next(ep);
+ strm << ep->c_str();
+ if (++count < num)
+ strm << ", ";
+ }
+ strm << endl;
+ }
+
+ strm << " " << threads_.size() << " threads";
+ if (clients_.current_size() > 0)
+ strm << ", client to " << clients_.current_size();
+ if (servers_.current_size() > 0)
+ strm << ", server to " << servers_.current_size();
+ strm << endl;
+}
+
+void
+HostProcess::dump_ident (ostream &strm, const char *message)
+{
+ strm <<"\nHost process ";
+ if (this->proc_name_.length())
+ strm << this->proc_name_;
+ strm << " pid (" << this->pid_ << ") " << message << endl;
+}
+
+void
+HostProcess::dump_thread_detail (ostream &strm)
+{
+ this->dump_ident (strm, " thread details:");
+ for (ACE_DLList_Iterator <Thread> t_iter (this->threads_);
+ !t_iter.done();
+ t_iter.advance())
+ {
+ Thread *thr;
+ t_iter.next(thr);
+ thr->dump_detail (strm);
+ }
+}
+
+void
+HostProcess::dump_thread_invocations (ostream &strm)
+{
+ this->dump_ident (strm, " invocations by thread:");
+ for (ACE_DLList_Iterator <Thread> t_iter (this->threads_);
+ !t_iter.done();
+ t_iter.advance())
+ {
+ Thread *thr;
+ t_iter.next(thr);
+ thr->dump_invocations (strm);
+ }
+}
+
+void
+HostProcess::dump_detail_list(ostream &strm, PeerProcs &list, int mode, Session *session)
+{
+ bool first = true;
+ for (PeerProcs::ITERATOR i = list.begin(); i !=list.end(); i++)
+ {
+ PeerProcs::ENTRY *entry;
+ if (i.next(entry) == 0)
+ break;
+ if (entry->item() == 0)
+ break;
+ switch (mode)
+ {
+ case 0:
+ entry->item()->dump_summary (strm);
+ break;
+ case 1:
+ entry->item()->dump_object_detail (strm);
+ strm << endl;
+ break;
+ case 2:
+ if (!first)
+ this->dump_ident (strm,"Invocations continued");
+ entry->item()->dump_invocation_detail (strm);
+ strm << endl;
+ break;
+ case 3:
+ entry->item()->match_hosts (session);
+ break;
+ }
+ first = false;
+ }
+}
+
+void
+HostProcess::dump_peer_detail (ostream &strm)
+{
+ this->dump_ident (strm, " peer processes:");
+ strm << this->clients_.current_size() << " clients" << endl;
+ this->dump_detail_list(strm, this->clients_, 0);
+ strm << this->servers_.current_size() << " servers" << endl;
+ this->dump_detail_list(strm, this->servers_, 0);
+}
+
+void
+HostProcess::dump_object_detail (ostream &strm)
+{
+ this->dump_ident (strm, " peer objects: ");
+ this->dump_detail_list(strm, this->clients_, 1);
+ this->dump_detail_list(strm, this->servers_, 1);
+}
+
+void
+HostProcess::dump_invocation_detail(ostream &strm)
+{
+ this->dump_ident (strm, " invocations: ");
+ this->dump_detail_list(strm, this->clients_, 2);
+ this->dump_detail_list(strm, this->servers_, 2);
+ this->dump_ident (strm, " end invocation report");
+}
+
+void
+HostProcess::reconcile_peers (Session *session)
+{
+ this->dump_detail_list(cout, this->clients_, 3, session);
+ this->dump_detail_list(cout, this->servers_, 3, session);
+}
diff --git a/TAO/utils/logWalker/HostProcess.h b/TAO/utils/logWalker/HostProcess.h
new file mode 100644
index 00000000000..014a0754f86
--- /dev/null
+++ b/TAO/utils/logWalker/HostProcess.h
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+
+// $Id$
+//
+
+#ifndef LOG_WALKER_HOST_PROCESS_H
+#define LOG_WALKER_HOST_PROCESS_H
+#include "ace/SString.h"
+#include "ace/Synch.h"
+#include "ace/Containers.h"
+#include "ace/Hash_Map_Manager.h"
+#include "Invocation.h"
+#include "PeerProcess.h"
+
+class Session;
+class Thread;
+
+typedef ACE_DLList<Thread> ThreadList;
+typedef ACE_DLList<ACE_CString> AddrList;
+typedef ACE_Hash_Map_Manager<long, PeerProcess *, ACE_Null_Mutex> PeerProcs;
+
+class HostProcess
+{
+public:
+ HostProcess (const ACE_CString &src, long pid);
+ ~HostProcess (void);
+ void proc_name (const ACE_CString &name);
+ const ACE_CString &proc_name (void) const;
+ Thread * find_thread (long tid);
+ long pid (void) const;
+ bool has_endpoint (ACE_CString& addr);
+ void add_endpoint (ACE_CString& addr);
+ void add_peer (PeerProcess *peer, bool as_client);
+ PeerProcess *find_peer (long handle);
+ void close_peer (long handle, size_t offset);
+
+ void dump_ident (ostream &strm, const char *extra);
+ void dump_summary (ostream &strm);
+ void dump_thread_detail (ostream &strm);
+ void dump_thread_invocations (ostream &strm);
+ void dump_peer_detail (ostream &strm);
+ void dump_object_detail (ostream &strm);
+ void dump_invocation_detail (ostream &strm);
+
+ void reconcile_peers (Session *session);
+
+private:
+ void dump_detail_list (ostream &strm, PeerProcs &list, int mode, Session * session = 0);
+
+ long pid_;
+ ACE_CString logfile_name_;
+ ACE_CString proc_name_;
+ AddrList endpoints_;
+ ThreadList threads_;
+ PeerProcs clients_;
+ PeerProcs servers_;
+ // PeerProcs closed_;
+ long closed_handles_;
+};
+
+#endif // LOG_WALKER_HOST_PROCESS_H
diff --git a/TAO/utils/logWalker/Invocation.cpp b/TAO/utils/logWalker/Invocation.cpp
new file mode 100644
index 00000000000..e4dae083b4f
--- /dev/null
+++ b/TAO/utils/logWalker/Invocation.cpp
@@ -0,0 +1,582 @@
+// $Id$
+
+#include "Invocation.h"
+#include "PeerProcess.h"
+#include "PeerObject.h"
+#include "Session.h"
+#include "HostProcess.h"
+#include "Thread.h"
+
+#include "ace/OS_NS_string.h"
+#include "ace/CDR_Stream.h"
+#include "ace/Log_Msg.h"
+#include <stdio.h>
+
+static const char *size_leadin_1_5 = "GIOP v1.2 msg, ";
+static const char *size_leadin_1_6 = "GIOP message v1.2, ";
+static const char *size_leadin = 0;
+static size_t leadin_len = 0;
+static const size_t giop_header_len = 12;
+
+// GIOP 1.2 header: 12 bytes
+// Magic: 4
+// ver: 2
+// flags: 1 // bo
+// type: 1 // req/repl/lf/excp
+// len: 4
+//
+// Request 1.2 header:
+// req_id: 4
+// flags: 1
+// RESVD: 3
+// Address disposition: 4
+// target: <4 len, + len> [0-3 pad]
+// opname: <4 len, + len>
+
+static const size_t target_offset = giop_header_len + 12;
+// 12 = req_id + flags + RESVD + addr disp.
+
+Invocation::GIOP_Buffer::GIOP_Buffer(const char *text,
+ size_t offset,
+ Thread *thread,
+ Invocation *owner)
+ : preamble_(text),
+ log_offset_(offset),
+ thr_(thread),
+ time_(0),
+ expected_req_id_(0),
+ expected_size_(0),
+ expected_type_(0),
+ size_(0),
+ wr_pos_ (0),
+ octets_ (0),
+ owner_ (owner),
+ buffer_lost_ (false),
+ sending_(false)
+{
+ const char *size_str = ACE_OS::strstr(text, size_leadin) + leadin_len;
+ const char *id = size_str == 0 ? 0 : ACE_OS::strchr(size_str, '[') + 1;
+ this->sending_ = ACE_OS::strstr(text,"send") ? 0 : 1;
+ this->expected_type_ = ACE_OS::strstr(text,"Request") ? 0 : 1;
+ this->expected_size_ = ACE_OS::strtol(size_str, 0,10) + giop_header_len;
+ this->expected_req_id_ = ACE_OS::strtol(id, 0, 10);
+ const char *time_tok = ACE_OS::strchr (text,'@');
+ if (time_tok != 0)
+ {
+ char timebuf[30];
+ ACE_OS::strncpy(timebuf, text, (time_tok - text));
+ timebuf[time_tok - text] = 0;
+ char *hms = ACE_OS::strchr (timebuf,' ');
+ if (hms != 0)
+ hms = ACE_OS::strchr (hms + 1, ' ');
+ if (hms != 0)
+ {
+ int hr, min, sec, msec;
+ ::sscanf (hms+1,"%d:%d:%d.%d", &hr, &min, &sec, &msec);
+ this->time_ = (hr * 3600 + min *60 + sec) * 1000 + msec;
+ }
+ }
+}
+
+void
+Invocation::GIOP_Buffer::owner (Invocation *owner)
+{
+ this->owner_ = owner;
+}
+
+Invocation *
+Invocation::GIOP_Buffer::owner (void)
+{
+ return this->owner_;
+}
+
+void
+Invocation::GIOP_Buffer::init_buf (const char *text)
+{
+ // GIOP message - HEXDUMP
+ const char * size_str = ACE_OS::strstr(text,"HEXDUMP ") + 8;
+ this->size_ = ACE_OS::strtol(size_str, 0,10);
+ size_str = ACE_OS::strstr(text,"showing first ");
+ if (size_str != 0)
+ {
+ size_str += 14;
+ this->size_ = ACE_OS::strtol(size_str, 0, 10);
+ }
+ this->octets_ = new char [this->size_];
+ ACE_OS::memset(this->octets_,0,this->size_);
+ this->wr_pos_ = this->octets_;
+}
+
+Invocation::GIOP_Buffer::~GIOP_Buffer(void)
+{
+ delete [] this->octets_;
+}
+
+int
+Invocation::GIOP_Buffer::add_octets(const char *text)
+{
+ if (this->octets_ == 0)
+ {
+ this->init_buf(text);
+ return 0;
+ }
+
+ const char *c = text;
+ char *err;
+ for (int count = 0; count < 16 && this->cur_size() < this->size_; count++)
+ {
+ if (count == 8)
+ ++c;
+ int o = ::strtol(c, &err, 16);
+ if (err == c || *err == 0)
+ return -1;
+ *this->wr_pos_++ = o;
+ c = err+1;
+ }
+ size_t cs = this->cur_size();
+ return cs == this->size_ ? -1 : int(cs) / 16;
+}
+
+bool
+Invocation::GIOP_Buffer::sending (void) const
+{
+ return this->sending_;
+}
+
+bool
+Invocation::GIOP_Buffer::is_full(void) const
+{
+ return this->size_ > 0 && this->cur_size() == this->size_;
+}
+
+char
+Invocation::GIOP_Buffer::type (void) const
+{
+ if (this->octets_ == 0)
+ return 127;
+ return this->octets_[7];
+}
+
+char
+Invocation::GIOP_Buffer::expected_type (void) const
+{
+ return this->expected_type_;
+}
+
+bool
+Invocation::GIOP_Buffer::is_oneway(void) const
+{
+ if (this->octets_ == 0)
+ {
+ return false;
+ }
+ char mtype = this->octets_[7];
+ if (mtype != 0) //GIOP_REQUEST
+ return false;
+ char flag = this->octets_[16]; // GIOP 1.2 request_header.response_flags
+ return (flag & 1) == 0;
+}
+
+size_t
+Invocation::GIOP_Buffer::log_posn (void) const
+{
+ return this->log_offset_;
+}
+
+const Thread *
+Invocation::GIOP_Buffer::thread (void) const
+{
+ return this->thr_;
+}
+
+time_t
+Invocation::GIOP_Buffer::time (void) const
+{
+ return this->time_;
+}
+
+const ACE_CString &
+Invocation::GIOP_Buffer::preamble(void) const
+{
+ return this->preamble_;
+}
+
+size_t
+Invocation::GIOP_Buffer::expected_size (void) const
+{
+ return this->expected_size_;
+}
+
+size_t
+Invocation::GIOP_Buffer::size(void) const
+{
+ return this->size_;
+}
+
+size_t
+Invocation::GIOP_Buffer::expected_req_id(void) const
+{
+ return this->expected_req_id_;
+}
+
+size_t
+Invocation::GIOP_Buffer::actual_req_id(void) const
+{
+ if (this->octets_ == 0)
+ return 0;
+ char vmaj = this->octets_[4];
+ char vmin = this->octets_[5];
+ char bo = this->octets_[6];
+
+ ACE_InputCDR cdr(this->octets_+giop_header_len,
+ this->cur_size() - giop_header_len,
+ bo, vmaj, vmin);
+ ACE_CDR::ULong rid;
+ cdr >> rid;
+ return static_cast<size_t>(rid);
+}
+
+size_t
+Invocation::GIOP_Buffer::cur_size(void) const
+{
+ return this->wr_pos_ - this->octets_;
+}
+
+const char *
+Invocation::GIOP_Buffer::target_oid(size_t &len) const
+{
+ if (this->octets_ == 0)
+ {
+ return 0;
+ }
+ char mtype = this->octets_[7];
+ if (mtype != 0) //GIOP_REQUEST
+ return 0;
+
+ char vmaj = this->octets_[4];
+ char vmin = this->octets_[5];
+ char bo = this->octets_[6];
+ ACE_InputCDR cdr(this->octets_ + target_offset,
+ this->cur_size() - target_offset,
+ bo, vmaj, vmin);
+ ACE_CDR::ULong len_ulong;
+ cdr >> len_ulong;
+ len = static_cast<size_t>(len_ulong);
+ if (target_offset + len > this->cur_size())
+ {
+ len = 0;
+ return 0;
+ }
+ return this->octets_ + target_offset + 4;
+}
+
+const char *
+Invocation::GIOP_Buffer::operation(void) const
+{
+ if (octets_ == 0)
+ return 0;
+
+ char mtype = this->octets_[7];
+ if (mtype != 0) //GIOP_REQUEST
+ return 0;
+
+ char vmaj = this->octets_[4];
+ char vmin = this->octets_[5];
+ char bo = this->octets_[6];
+ ACE_InputCDR cdr(this->octets_ + target_offset,
+ this->cur_size() - target_offset,
+ bo, vmaj, vmin);
+ ACE_CDR::Long tgt_size;
+ cdr.read_long(tgt_size);
+ if (target_offset + tgt_size > this->cur_size())
+ return 0;
+ cdr.skip_bytes(tgt_size);
+ cdr.read_long(tgt_size);
+ size_t offset = cdr.rd_ptr() - this->octets_;
+ if (offset + tgt_size > this->cur_size())
+ return 0;
+ return this->octets_ + offset;
+}
+
+bool
+Invocation::GIOP_Buffer::validate (void) const
+{
+ return this->expected_req_id_ == this->actual_req_id() &&
+ this->expected_type_ == this->type();
+}
+
+bool
+Invocation::GIOP_Buffer::matches (Invocation::GIOP_Buffer *other) const
+{
+ return this->expected_req_id_ == other->actual_req_id() &&
+ this->expected_type_ == other->type() &&
+ this->expected_size_ == other->size();
+}
+
+void
+Invocation::GIOP_Buffer::reset (void)
+{
+ this->octets_ = 0;
+ this->wr_pos_ = 0;
+ this->size_ = 0;
+ this->buffer_lost_ = true;
+}
+
+void
+Invocation::GIOP_Buffer::transfer_from (GIOP_Buffer *other)
+{
+ delete this->octets_;
+ this->octets_ = other->octets_;
+ this->wr_pos_ = other->wr_pos_;
+ this->size_ = other->size_;
+ other->reset();
+}
+
+
+//----------------------------------------------------------------------------
+
+
+Invocation::Invocation (PeerProcess *peer, size_t rid)
+ :req_octets_(0),
+ repl_octets_(0),
+ peer_(peer),
+ req_id_(rid),
+ target_(0),
+ child_(0),
+ sibling_(0),
+ dumped_(false)
+{
+ if (size_leadin == 0)
+ {
+ size_leadin = Session::tao_version() == 150 ?
+ size_leadin_1_5 : size_leadin_1_6;
+ leadin_len = ACE_OS::strlen(size_leadin);
+ }
+}
+
+Invocation::~Invocation (void)
+{
+ delete this->req_octets_;
+ delete this->repl_octets_;
+}
+
+bool
+Invocation::init (const char * text, size_t offset, Thread *thread)
+{
+ const char *size_str = ACE_OS::strstr(text, size_leadin);
+ const char *id = size_str == 0 ? 0 : ACE_OS::strchr(size_str, '[');
+ if (size_str == 0 || id == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Not a request preamble:\n '%s'\n",
+ text));
+ return false;
+ }
+
+
+ if( ACE_OS::strstr(text,"Request") == 0)
+ this->repl_octets_ = new GIOP_Buffer(text, offset, thread, this);
+ else
+ this->req_octets_ = new GIOP_Buffer(text, offset, thread, this);
+ return true;
+}
+
+bool
+Invocation::is_oneway(void) const
+{
+ return this->req_octets_ == 0 ? false : this->req_octets_->is_oneway();
+}
+
+void
+Invocation::set_target (const char *oid, size_t oid_len)
+{
+ PeerObject *tgt = this->peer_->object_for (oid, oid_len);
+ if (tgt == 0)
+ return;
+
+ if (this->target_ == 0)
+ {
+ this->target_ = tgt;
+ this->target_->add_invocation (this);
+ }
+}
+
+bool
+Invocation::message_complete (void)
+{
+ if (this->is_oneway())
+ {
+ if (this->req_octets_ == 0 || !this->req_octets_->is_full())
+ return false;
+ }
+ else
+ if (this->repl_octets_ == 0 || !this->repl_octets_->is_full())
+ return false;
+
+ return true;
+}
+
+Invocation::GIOP_Buffer *
+Invocation::octets (bool request)
+{
+ return request ? this->req_octets_ : this->repl_octets_ ;
+}
+
+Invocation::GIOP_Buffer *
+Invocation::give_octets (bool request)
+{
+ GIOP_Buffer *result = request ? this->req_octets_ : this->repl_octets_ ;
+
+ if (request)
+ this->req_octets_ = 0;
+ else
+ this->repl_octets_ = 0;
+ return result;
+}
+
+void
+Invocation::set_octets (bool request, GIOP_Buffer *octets)
+{
+ if (request)
+ {
+ if (this->req_octets_ != 0)
+ {
+ return;
+ }
+ this->req_octets_ = octets;
+ }
+ else
+ {
+ if (this->repl_octets_ != 0)
+ {
+ return;
+ }
+ this->repl_octets_ = octets;
+ }
+ octets->owner(this);
+}
+
+size_t
+Invocation::request_id (void) const
+{
+ return this->req_octets_ == 0 ? this->req_id_ : this->req_octets_->expected_req_id();
+}
+
+size_t
+Invocation::expected_size (void) const
+{
+ if (repl_octets_ != 0)
+ return repl_octets_->expected_size();
+ return req_octets_->expected_size();
+}
+
+
+void
+Invocation::add_child(Invocation *child)
+{
+ if (this->child_ == 0)
+ this->child_ = child;
+ else
+ this->child_->add_sibling(child);
+}
+
+void
+Invocation::add_sibling(Invocation *sibling)
+{
+ if (this->sibling_ == 0)
+ this->sibling_ = sibling;
+ else
+ this->sibling_->add_sibling(sibling);
+}
+
+Invocation *
+Invocation::child(void)
+{
+ return this->child_;
+}
+
+Invocation *
+Invocation::sibling(void)
+{
+ return this->sibling_;
+}
+
+void
+Invocation::dump_detail (ostream &strm, int indent)
+{
+ if (this->dumped_)
+ return;
+ this->dumped_ = true;
+ const char *opname = "";
+ const char *dir_1 = " to ";
+ const char *dir_2 = " in ";
+
+ if (this->req_octets_ != 0)
+ {
+ opname = this->req_octets_->operation();
+ if (this->req_octets_->sending())
+ {
+ dir_1 = " for ";
+ dir_2 = " from ";
+ }
+ }
+
+ for (int ind = 0; ind < indent; ind++)
+ strm << " ";
+
+ if (opname == 0)
+ opname = "<no operation>";
+
+ strm << " " << this->req_id_ << dir_1;
+ if (this->target_ == 0)
+ strm << "<unknown object>" ;
+ else
+ strm << this->target_->name();
+ strm << dir_2 << this->peer_->id()
+ << " [" << opname << "]\t";
+ time_t req_time = 0;
+ time_t rep_time = 0;
+ long delta = 0;
+ if (!this->is_oneway() && this->req_octets_ != 0)
+ {
+ req_time = this->req_octets_->time();
+ if (this->repl_octets_ != 0)
+ {
+ rep_time = this->repl_octets_->time();
+ delta = this->repl_octets_->log_posn() - this->req_octets_->log_posn();
+ }
+ }
+ if (req_time != 0 && rep_time != 0)
+ strm << " took " << (rep_time - req_time) << " ms";
+
+ if (this->req_octets_ != 0)
+ {
+ strm << " Request, line " << this->req_octets_->log_posn();
+// #if defined (SHOW_THREAD_ID)
+ strm << " " << this->req_octets_->thread()->alias();
+// #endif
+ }
+ else
+ strm << " <no request found>";
+ if (this->is_oneway())
+ strm << " oneway";
+ else
+ {
+ if (this->repl_octets_ != 0)
+ {
+ strm << " Reply, line " << this->repl_octets_->log_posn();
+#if defined (SHOW_THREAD_ID)
+ strm << " " << this->repl_octets_->thread()->alias();
+#endif
+ }
+ else
+ strm << " <no reply found>";
+ }
+ if (delta > 0)
+ strm << " log offset = " << delta;
+ strm << endl;
+ if (this->child_ != 0)
+ child_->dump_detail(strm, indent+1);
+ if (this->sibling_ != 0)
+ sibling_->dump_detail (strm, indent);
+}
diff --git a/TAO/utils/logWalker/Invocation.h b/TAO/utils/logWalker/Invocation.h
new file mode 100644
index 00000000000..ccac0967b2d
--- /dev/null
+++ b/TAO/utils/logWalker/Invocation.h
@@ -0,0 +1,130 @@
+// -*- C++ -*-
+
+// $Id$
+//
+
+#ifndef LOG_WALKER_INVOCATION_H
+#define LOG_WALKER_INVOCATION_H
+
+#include "ace/SString.h"
+
+class PeerProcess;
+class PeerObject;
+class Thread;
+
+// Invocation holds the buffer contents for a request/response pair.
+// This could be originating in this process, or in the peer process.
+//
+// The trigger for finding a new outgoing invocation is "Muxed_TMS[%d]"
+// following that the process/thread will perform a dump_msg.
+//
+// The trigger for finding a new incoming invocation is
+// "Transport[%d]::process_parsed_messages, entering (missing data == 0)"
+// which could indicate a new request or reply, depending on the context
+// in which the peer connection is made.
+//
+// It is possible that two or more threads may call dump_msg
+// concurrently and thus have the preamble and body printed out of
+// order. The HEXDUMP always reports a buffer size including the 12
+// byte GIOP header. Also, the first line of the text contains header
+// data which can be compared to the expected request ID.
+
+class Invocation
+{
+public:
+ class GIOP_Buffer
+ {
+ public:
+ GIOP_Buffer (const char *text, size_t offset, Thread *thread, Invocation *owner = 0);
+ ~GIOP_Buffer (void);
+ void owner (Invocation *);
+ Invocation *owner (void);
+ void init_buf (const char *text);
+ int add_octets(const char *text);
+ char type (void) const;
+ char expected_type (void) const;
+ bool sending (void) const;
+ bool is_oneway (void) const;
+ bool is_full (void) const;
+ size_t log_posn (void) const;
+ const Thread *thread (void) const;
+ time_t time (void) const;
+
+ const ACE_CString &preamble(void) const;
+ size_t expected_req_id(void) const;
+ size_t actual_req_id(void) const;
+ size_t expected_size (void) const;
+ size_t size (void) const;
+ size_t cur_size(void) const;
+ const char * target_oid (size_t &len) const;
+ const char * operation (void) const;
+ bool validate (void) const;
+ bool matches (GIOP_Buffer *other) const;
+ void reset (void);
+ void transfer_from (GIOP_Buffer *other);
+
+ private:
+ ACE_CString preamble_;
+ size_t log_offset_;
+ Thread *thr_;
+ time_t time_;
+ size_t expected_req_id_;
+ size_t expected_size_;
+ char expected_type_;
+ size_t size_;
+ char * wr_pos_;
+ char * octets_;
+ Invocation *owner_;
+ bool buffer_lost_;
+ bool sending_;
+ };
+
+ // initialize a new instance, with the initial request text line and offeset
+ Invocation (PeerProcess *peer, size_t req_id = 0);
+ bool init ( const char * text, size_t offset, Thread *thr);
+ ~Invocation (void);
+
+ // return true if the invocation was a oneway
+ bool is_oneway(void) const;
+
+ void set_target (const char *oid, size_t oid_len);
+
+ // return true if the request is a oneway and has all its octets, or
+ // if it also has all its reply octets. The side-effect of this call
+ // is to obtain the target reference from the request buffer and associate
+ // it with the peer process.
+ bool message_complete (void);
+
+ size_t request_id (void) const;
+
+ // returns the size parsed from either the request or reply preamble
+ // which can be used to match a HEXDUMP b
+ size_t expected_size (void) const;
+
+ void set_octets (bool request, GIOP_Buffer *octets);
+ GIOP_Buffer *octets (bool request);
+ GIOP_Buffer *give_octets (bool request);
+
+ void dump_detail (ostream &strm, int indent);
+
+ void add_child(Invocation *child);
+ void add_sibling(Invocation *sibling);
+
+ Invocation *child(void);
+ Invocation *sibling(void);
+
+private:
+ GIOP_Buffer *req_octets_;
+ GIOP_Buffer *repl_octets_;
+
+ PeerProcess *peer_;
+ size_t req_id_;
+ PeerObject *target_;
+
+ Invocation *child_;
+ Invocation *sibling_;
+
+ bool dumped_;
+};
+
+#endif // LOG_WALKER_INVOCATION_H
diff --git a/TAO/utils/logWalker/Log.cpp b/TAO/utils/logWalker/Log.cpp
new file mode 100644
index 00000000000..0d814c1c260
--- /dev/null
+++ b/TAO/utils/logWalker/Log.cpp
@@ -0,0 +1,486 @@
+// $Id$
+
+#include "Log.h"
+#include "Invocation.h"
+#include "PeerProcess.h"
+#include "HostProcess.h"
+#include "Session.h"
+#include "Thread.h"
+
+#include "ace/Mem_Map.h"
+
+Log::Log (Session &session)
+ : session_(session),
+ dump_target_(0)
+{
+}
+
+Log::~Log (void)
+{
+}
+
+bool
+Log::init (const ACE_TCHAR *filename, const char *alias)
+{
+ this->origin_ = ACE_TEXT_ALWAYS_CHAR (filename);
+ this->alias_ = alias;
+
+ ACE_Mem_Map mapped_file;
+ int result = mapped_file.map(filename);
+ if (result == -1)
+ return false;
+
+ size_t mapsize = mapped_file.size();
+ char *base = reinterpret_cast<char *>(mapped_file.addr());
+ if (mapsize == 0 || base == 0)
+ {
+ mapped_file.close();
+ return false;
+ }
+
+ size_t remainder = mapsize;
+ size_t linelen = 0;
+ char *line;
+ size_t maxline = 1000;
+ char *buffer = new char[maxline];
+ size_t line_pos = 1;
+ while ((line = ACE_OS::strchr(base,'\n')) != 0)
+ {
+ linelen = line - base;
+ if (linelen >= maxline)
+ {
+ delete [] buffer;
+ buffer = 0;
+ maxline = linelen + 100;
+ buffer = new char[maxline];
+ }
+ ACE_OS::strncpy(buffer,base,linelen);
+ buffer[linelen] = 0;
+ this->parse_line (buffer, line_pos);
+ base = line+1;
+ ++line_pos;
+ remainder -= linelen;
+ if (remainder < 1)
+ break;
+ }
+
+ delete [] buffer;
+
+ mapped_file.close();
+
+ return true;
+}
+
+bool
+Log::get_pid_tid (long &pid, long &tid, char *line)
+{
+ const char * p = ACE_OS::strstr (line, "TAO (");
+ char * t = 0;
+ if (p == 0)
+ return false;
+
+ pid = ACE_OS::strtol(p+5,&t,10);
+ tid = ACE_OS::strtol(t+1,0,10);
+ return true;
+}
+
+HostProcess *
+Log::get_host (long pid)
+{
+ HostProcess *hp = 0;
+ if (pid == 0)
+ return 0;
+ for (ACE_DLList_Iterator<HostProcess> i (this->procs_);
+ !i.done();
+ i.advance())
+ {
+ i.next(hp);
+ if (hp->pid() == pid)
+ return hp;
+ }
+ hp = this->session_.find_process(pid);
+ if (hp != 0)
+ return hp;
+
+ size_t numprocs = this->procs_.size();
+ hp = new HostProcess (this->origin_,pid);
+ this->procs_.insert_tail(hp);
+ if (this->alias_.length() > 0)
+ {
+ switch (numprocs)
+ {
+ case 0:
+ hp->proc_name(alias_);
+ break;
+ case 1:
+ {
+ ACE_CString a2 = alias_ + "_1";
+ HostProcess *first;
+ if (this->procs_.get(first) == 0)
+ first->proc_name(a2);
+ }
+ //fallthru
+ default:
+ {
+ char ext[10];
+ ACE_OS::sprintf(ext,"_%d",numprocs+1);
+ ACE_CString a2 = alias_ + ext;
+ hp->proc_name(a2);
+ }
+ }
+ }
+ this->session_.add_process(hp);
+ return hp;
+}
+
+void
+Log::parse_line (char *line, size_t offset)
+{
+ // first, is it a client connection to a new peer?
+ // next is it a server connection to a new peer?
+ // is it a new request or reply?
+ // a GIOP hex dump?
+
+ static const char * exprs[] = {
+ "make_connection, new connected",
+ "Handler::open, IIOP connection to peer",
+ "GIOP_Message_Base::dump_msg,",
+ "GIOP message - HEXDUMP",
+ "open_i, listening on:",
+ "Muxed_TMS[", // initiating new request
+ "process_parsed_messages", // server side new incoming
+ "wait_for_event",
+ "::cleanup_queue, byte_count",
+ "close_connection_eh",
+ "IIOP_Connector::begin_connection, to ",
+ "IIOP_Connection_Handler::open, The local addr is",
+ "opened as TAO_SERVER_ROLE",
+ //connection to peer closed.
+ 0
+ };
+
+ if (this->dump_target_ != 0)
+ {
+ int pos = this->dump_target_->add_octets(line);
+ if (pos == 1) // need to validate target
+ {
+ if (!this->dump_target_->validate())
+ {
+ for (ACE_DLList_Iterator<Thread> t_iter(this->giop_waiters_);
+ !t_iter.done();
+ t_iter.advance())
+ {
+ Thread *th = 0;
+ t_iter.next(th);
+ Invocation::GIOP_Buffer *new_target = th->giop_target();
+ if (new_target == 0 || new_target == this->dump_target_)
+ continue;
+ if (new_target->matches (this->dump_target_))
+ {
+ new_target->transfer_from (this->dump_target_);
+ this->dump_target_ = new_target;
+ th->exit_wait(th->incoming(), offset);
+ t_iter.remove();
+ break;
+ }
+ }
+ }
+ else
+ {
+ for (ACE_DLList_Iterator<Thread> t_iter(this->giop_waiters_);
+ !t_iter.done();
+ t_iter.advance())
+ {
+ Thread *th = 0;
+ t_iter.next(th);
+ if (this->dump_target_ == th->giop_target())
+ {
+ th->exit_wait(th->incoming(), offset);
+ t_iter.remove();
+ break;
+ }
+ }
+ }
+ }
+ else if (pos == -1) // done
+ {
+ Invocation *inv = this->dump_target_->owner();
+ if (inv != 0)
+ {
+ size_t len = 0;
+ const char *oid = this->dump_target_->target_oid(len);
+ if (oid != 0)
+ inv->set_target (oid, len);
+ }
+
+ this->dump_target_ = 0;
+ }
+ return;
+ }
+
+ int i = 0;
+ for (; exprs[i] != 0; i++)
+ {
+ if (ACE_OS::strstr(line, exprs[i]) != 0)
+ break;
+ }
+ if (exprs[i] == 0)
+ return;
+
+ long pid = 0;
+ long tid = 0;
+ this->get_pid_tid(pid,tid,line);
+
+ HostProcess *hp = this->get_host(pid);
+ Thread *thr = hp == 0 ? 0 : hp->find_thread (tid);
+
+ switch (i)
+ {
+ case 0: //"make_connection, new connected"
+ {// no longer needed... at least for now.
+ break;
+ }
+ case 1: // "Handler::open, IIOP connection to peer"
+ {
+ char *addr = ACE_OS::strchr(line,'<') +1;
+ char *c = ACE_OS::strchr(addr,'>');
+ *c = '\0';
+ c = ACE_OS::strstr(c+1,"on ");
+ long handle = ACE_OS::strtol(c + 3,0,10);
+ PeerProcess *pp = thr->pending_peer();
+ if (pp == 0)
+ {
+ ACE_ERROR ((LM_ERROR,"no pending peer for file %s, line %d\n",
+ this->origin_.c_str(), offset));
+ break;
+ }
+ if (!pp->is_client())
+ {
+ pp->set_addr(addr,false);
+ }
+ thr->pending_peer(0);
+ pp->handle(handle);
+ hp->add_peer(pp, pp->is_client());
+ break;
+ }
+ case 2: //GIOP_Message_Base::dump_msg,
+ {
+ int mode = ACE_OS::strstr (line,"send") != 0 ? 0 : 1;
+ mode += ACE_OS::strstr (line,"Request") != 0 ? 0 : 2;
+ char *pos = strrchr (line,'[');
+ long rid = ACE_OS::strtol(pos+1, 0, 10);
+ PeerProcess *pp = thr->incoming();
+ if (pp == 0)
+ {
+ ACE_ERROR((LM_ERROR,"dump_msg, could not find pp for incoming\n"));
+ break;
+ }
+ if (mode < 2)
+ thr->enter_wait(pp);
+ Invocation::GIOP_Buffer *target = 0;
+ switch (mode)
+ {
+ case 1: { // receiving request
+ Invocation *inv = pp->new_invocation (rid);
+ if (inv == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "process %d already has invocation "
+ "%d, at line %d\n",
+ pp->handle(), rid, offset));
+ break;
+ }
+ inv->init (line, offset, thr);
+ target = inv->octets(true);
+ break;
+ }
+ case 0: // sending request
+ case 3: { // receiving reply
+ Invocation *inv = pp->find_invocation(rid);
+ if (inv == 0)
+ {
+ ACE_ERROR ((LM_ERROR,"line %d, could not find existing invocation for req_id %d\n",
+ offset, rid));
+ inv = pp->new_invocation (rid);
+ }
+ inv->init (line, offset, thr);
+ target = inv->octets(mode == 0);
+ if (mode == 3)
+ thr->exit_wait(pp, offset);
+ break;
+ }
+ case 2: { // sending reply
+ target = new Invocation::GIOP_Buffer(line,offset, thr);
+ break;
+ }
+ default:;
+ }
+
+ thr->set_giop_target (target);
+ this->giop_waiters_.insert_tail(thr);
+ break;
+ }
+ case 3: // "GIOP message - HEXDUMP"
+ {
+ char *pos = ACE_OS::strstr (line,"HEXDUMP");
+ pos += 8;
+ size_t len = ACE_OS::strtol (pos, 0, 10);
+ for (ACE_DLList_Reverse_Iterator<Thread> t_iter(this->giop_waiters_);
+ !t_iter.done();
+ t_iter.advance())
+ {
+ t_iter.next(thr);
+ Invocation::GIOP_Buffer *target = thr->giop_target();
+ if (target == 0 || target->expected_size() != len || target->size() > 0)
+ continue;
+ this->dump_target_ = target;
+ break;
+ }
+ if (this->dump_target_ == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Could not find a giop waiter for size %d, offset = %d\n",
+ len, offset));
+ }
+ else
+ this->dump_target_->init_buf (line);
+ break;
+ }
+ case 4: // "open_i, listening on:"
+ {
+ char *addr = ACE_OS::strchr(line,'<') +1;
+ char *c = ACE_OS::strchr(addr,'>');
+ *c = '\0';
+ ACE_CString server_addr(addr);
+ hp->add_endpoint(server_addr);
+ break;
+ }
+ case 5: // "Muxed_TMS"
+ {
+ char *hpos = ACE_OS::strchr(line,'[');
+ long handle = ACE_OS::strtol(hpos+1,0,10);
+ hpos = ACE_OS::strchr(hpos, '<');
+ long req_id = ACE_OS::strtol(hpos+1,0,10);
+ PeerProcess *pp = hp->find_peer(handle);
+ if (pp == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Error parsing %C, line %d, can't find peer "
+ "for handle %d, text = %s\n",
+ this->origin_.c_str(), offset, handle, line));
+ break;
+ }
+
+ pp->new_invocation(req_id);
+ thr->incoming_from (pp);
+ break;
+ }
+ case 6: // "process_parsed_messages"
+ {
+ char *hpos = ACE_OS::strchr(line,'[');
+ long handle = ACE_OS::strtol(hpos+1,0,10);
+
+ PeerProcess *pp = hp->find_peer(handle);
+ if (pp == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Error parsing %C, line %d, can't find peer "
+ "for handle %d, text = %s\n",
+ this->origin_.c_str(), offset, handle, line));
+ break;
+ }
+ thr->incoming_from (pp);
+ break;
+ }
+ case 7: // "wait_for_event"
+ {
+ // thr->exit_wait()?
+ break;
+ }
+ case 8: // cleanup_queue
+ {
+ char *hpos = ACE_OS::strchr(line,'[');
+ long handle = ACE_OS::strtol(hpos+1,0,10);
+ PeerProcess *pp = hp->find_peer(handle);
+ Invocation::GIOP_Buffer *target = thr->giop_target();
+ thr->set_giop_target(0);
+ if (target != 0 && target->owner() == 0)
+ {
+ size_t rid = target->actual_req_id();
+ char mtype = target->type();
+ Invocation *inv = pp->find_invocation(rid);
+ if (inv == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Cleanup queue detected at line %d, "
+ "could not find invocation for rid = %d\n",
+ offset, rid));
+ rid = target->expected_req_id();
+ inv = pp->find_invocation (rid);
+ if (inv == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Cleanup queue still failed to find rid %d\n",
+ rid));
+ break;
+ }
+ thr->exit_wait(pp, offset);
+ mtype = target->expected_type();
+ }
+ inv->set_octets (mtype == 0, target);
+ size_t len = 0;
+ const char *oid = target->target_oid(len);
+ if (mtype == 0 && len > 0)
+ inv->set_target (oid, len);
+ }
+ break;
+ }
+ case 9: // close_connection_eh
+ {
+ char *hpos = ACE_OS::strchr(line,'[');
+ long handle = ACE_OS::strtol(hpos+1,0,10);
+ hp->close_peer (handle,offset);
+ break;
+ }
+ case 10: // IIOP_Connector::begin_connection
+ {
+ char *addr = ACE_OS::strchr(line,'<') +1;
+ char *c = ACE_OS::strchr(addr,'>');
+ *c = '\0';
+ thr->pending_peer (new PeerProcess(line,offset,true,addr,0));
+ break;
+ }
+ case 11: // IIOP_Connection_Handler::open, The local addr is
+ {
+ PeerProcess *peer = thr->pending_peer();
+ if (peer == 0)
+ ACE_ERROR((LM_ERROR, "file %s, line %d, no pending client or server\n",
+ this->origin_.c_str(), offset));
+ else
+ {
+ char *addr = ACE_OS::strchr(line,'<') +1;
+ char *c = ACE_OS::strchr(addr,'>');
+ *c = '\0';
+ peer->set_addr(addr, true);
+ ACE_CString server_addr(addr);
+ hp->add_endpoint(server_addr);
+ }
+ break;
+ }
+ case 12: // opened as TAO_SERVER_ROLE
+ {
+ thr->pending_peer (new PeerProcess(line,offset,false,"",0));
+ break;
+ }
+ default: // future expansion
+ {
+ break;
+ }
+ }
+}
+
+void
+Log::summarize (void)
+{
+ // todo
+}
diff --git a/TAO/utils/logWalker/Log.h b/TAO/utils/logWalker/Log.h
new file mode 100644
index 00000000000..60a0c96e20d
--- /dev/null
+++ b/TAO/utils/logWalker/Log.h
@@ -0,0 +1,50 @@
+// -*- C++ -*-
+
+// $Id$
+//
+
+#ifndef LOG_WALKER_LOG_H
+#define LOG_WALKER_LOG_H
+
+#include "ace/Containers.h"
+#include "ace/Synch.h"
+#include "ace/SString.h"
+#include "PeerProcess.h"
+#include "HostProcess.h"
+
+class Session;
+class HostProcess;
+
+typedef ACE_DLList<HostProcess> HostProcesses;
+typedef ACE_DLList<PeerProcess> PeerProcesses;
+
+
+class Log
+{
+public:
+ Log (Session &s);
+
+ ~Log();
+
+ bool init (const ACE_TCHAR *filename, const char *alias = "");
+ void parse_line (char* line, size_t offset);
+
+ void summarize(void);
+
+ void dump (ostream &strm);
+
+private:
+ bool get_pid_tid (long &pid, long &tid, char *line);
+ HostProcess *get_host (long pid);
+
+ ACE_CString origin_;
+ ACE_CString alias_;
+ Session &session_;
+ HostProcesses procs_;
+// PeerProcesses peers_;
+ Invocation::GIOP_Buffer* dump_target_;
+ ThreadList giop_waiters_;
+
+};
+
+#endif // LOG_WALKER_LOG_H
diff --git a/TAO/utils/logWalker/PeerObject.cpp b/TAO/utils/logWalker/PeerObject.cpp
new file mode 100644
index 00000000000..3cf504bcb5e
--- /dev/null
+++ b/TAO/utils/logWalker/PeerObject.cpp
@@ -0,0 +1,47 @@
+// $Id$
+
+
+#include "PeerObject.h"
+#include "Invocation.h"
+
+PeerObject::PeerObject (long id, const char *name, PeerProcess *parent)
+ :ident_(id),
+ name_(name),
+ parent_(parent)
+{
+}
+
+PeerObject::~PeerObject (void)
+{
+}
+
+ACE_CString &
+PeerObject::name (void)
+{
+ return this->name_;
+}
+
+long
+PeerObject::ident (void)
+{
+ return this->ident_;
+}
+
+void
+PeerObject::add_invocation (Invocation *inv)
+{
+ this->invocations_.enqueue_tail (inv);
+}
+size_t
+PeerObject::num_invocations (void)
+{
+ return this->invocations_.size();
+}
+
+void
+PeerObject::dump_detail (ostream &strm)
+{
+ strm << this->ident_ << " has "
+ << this->invocations_.size() << " invocations" << endl;
+
+}
diff --git a/TAO/utils/logWalker/PeerObject.h b/TAO/utils/logWalker/PeerObject.h
new file mode 100644
index 00000000000..7a7be19bd68
--- /dev/null
+++ b/TAO/utils/logWalker/PeerObject.h
@@ -0,0 +1,38 @@
+// -*- C++ -*-
+
+// $Id$
+//
+
+#ifndef LOG_WALKER_PEER_OBJECT_H
+#define LOG_WALKER_PEER_OBJECT_H
+
+#include "ace/SString.h"
+#include "ace/Unbounded_Queue.h"
+#include "ace/streams.h"
+
+class PeerProcess;
+class Invocation;
+
+typedef ACE_Unbounded_Queue<Invocation*> Invocations;
+typedef ACE_Unbounded_Queue_Iterator<Invocation*> InvocationIter;
+
+class PeerObject
+{
+public:
+ PeerObject (long ident, const char *name, PeerProcess *parent);
+ virtual ~PeerObject (void);
+
+ void add_invocation (Invocation *inv);
+ void dump_detail (ostream &strm);
+ size_t num_invocations (void);
+ long ident (void);
+ ACE_CString &name (void);
+
+private:
+ long ident_;
+ ACE_CString name_;
+ PeerProcess *parent_;
+ Invocations invocations_;
+};
+
+#endif // LOG_WALKER_PEER_OBJECT_H
diff --git a/TAO/utils/logWalker/PeerProcess.cpp b/TAO/utils/logWalker/PeerProcess.cpp
new file mode 100644
index 00000000000..79d26594b3e
--- /dev/null
+++ b/TAO/utils/logWalker/PeerProcess.cpp
@@ -0,0 +1,243 @@
+// $Id$
+
+#include "PeerProcess.h"
+#include "PeerObject.h"
+#include "ace/OS_NS_stdio.h"
+#include "ace/ACE.h"
+#include "Invocation.h"
+#include "HostProcess.h"
+#include "Session.h"
+
+char *
+PeerProcess::nextIdent(void)
+{
+ static int count = 0;
+ char *ident = new char[15];
+ ACE_OS::sprintf (ident,"proc_%d", count++);
+ return ident;
+}
+
+PeerProcess::PeerProcess (const char *text,
+ size_t offset,
+ bool as_client,
+ const char *target,
+ long handle)
+ : owner_ (0),
+ remote_ (0),
+ local_addr_(),
+ remote_addr_(target),
+ handle_(handle),
+ client_(as_client),
+ origin_(text),
+ origin_offset_ (offset),
+ closed_offset_ (0),
+ objects_ ()
+{
+ this->ident_ = PeerProcess::nextIdent();
+}
+
+PeerProcess::~PeerProcess (void)
+{
+ delete [] ident_;
+ while (this->invocations_.size())
+ {
+ Invocation *head = this->invocations_.delete_head();
+ delete head;
+ }
+ for (PeerObjectTable::ITERATOR i = objects_.begin(); i != objects_.end(); i++)
+ {
+ PeerObjectTable::ENTRY *entry;
+ if (i.next(entry) == 0)
+ break;
+ delete entry->item();
+ }
+}
+
+void
+PeerProcess::set_addr (const char *addr, bool local)
+{
+ if (local)
+ this->local_addr_ = addr;
+ else
+ this->remote_addr_ = addr;
+}
+
+void
+PeerProcess::match_hosts (Session *session)
+{
+ if (this->remote_addr_.length () > 0)
+ this->remote_ = session->find_host(this->remote_addr_.c_str());
+}
+
+void
+PeerProcess::handle (long h)
+{
+ this->handle_ = h;
+}
+
+long
+PeerProcess::handle (void) const
+{
+ return this->handle_;
+}
+
+const char *
+PeerProcess::id (void) const
+{
+ if (this->remote_ != 0)
+ {
+ const ACE_CString &pname = this->remote_->proc_name();
+ if (pname.length() > 0)
+ return pname.c_str();
+ }
+
+ return this->ident_;
+}
+
+void
+PeerProcess::close (size_t offset)
+{
+ this->closed_offset_ = offset;
+}
+
+bool
+PeerProcess::is_closed (void) const
+{
+ return this->closed_offset_ > 0;
+}
+
+bool
+PeerProcess::is_client (void) const
+{
+ return this->client_;
+}
+
+PeerObject *
+PeerProcess::object_for (const char *oid, size_t len)
+{
+ PeerObject *po = 0;
+ u_long key = ACE::hash_pjw (oid,len);
+ int result = objects_.find(key, po);
+ if (result == -1)
+ {
+ long index = static_cast<long>(objects_.current_size());
+ char alias[20];
+ ACE_OS::sprintf (alias, "obj_%ld", index);
+ po = new PeerObject(index,alias, this);
+ objects_.bind(key, po);
+ }
+ return po;
+}
+
+Invocation *
+PeerProcess::new_invocation (size_t req_id)
+{
+ if (this->find_invocation (req_id) != 0)
+ return 0;
+ Invocation *inv = new Invocation (this, req_id);
+ this->invocations_.insert_tail(inv);
+ return inv;
+}
+
+Invocation *
+PeerProcess::find_invocation (size_t req_id)
+{
+ Invocation *inv = 0;
+ for (ACE_DLList_Reverse_Iterator<Invocation> i(this->invocations_);
+ !i.done();
+ i.advance())
+ {
+ i.next(inv);
+ if (inv->request_id() == req_id)
+ {
+ return inv;
+ }
+ }
+ return 0;
+}
+
+Invocation *
+PeerProcess::find_invocation_size (size_t len)
+{
+ Invocation *inv = 0;
+ for (ACE_DLList_Reverse_Iterator<Invocation> i(this->invocations_);
+ !i.done();
+ i.advance())
+ {
+ i.next(inv);
+ if (!inv->message_complete() && inv->expected_size() == len)
+ {
+ return inv;
+ }
+ }
+ return 0;
+}
+
+void
+PeerProcess::set_owner (HostProcess *hp)
+{
+ this->owner_ = hp;
+}
+
+HostProcess *
+PeerProcess::owner (void)
+{
+ return this->owner_;
+}
+
+void
+PeerProcess::dump_summary (ostream &strm)
+{
+ strm << " peer process " << this->ident_ << " handle["
+ << this->handle_ << "] as ";
+ if (this->client_)
+ strm << "client on "
+ << this->local_addr_;
+ else
+ strm << " server";
+ if (this->remote_)
+ {
+ strm << " to " << remote_->proc_name();
+ }
+ else
+ strm << " to peer at " << this->remote_addr_;
+ strm << " referenced " << this->objects_.current_size()
+ << " objects in " << this->invocations_.size() << " invocations";
+ if (this->is_closed())
+ strm << " closed on line " << this->closed_offset_;
+ strm << endl;
+}
+
+void
+PeerProcess::dump_object_detail (ostream &strm)
+{
+ strm << this->objects_.current_size()
+ << " Objects referenced in " << this->ident_ << ":" << endl;
+ size_t count_inv = 0;
+ for (PeerObjectTable::ITERATOR i = this->objects_.begin();
+ i != this->objects_.end();
+ i++)
+ {
+ PeerObjectTable::ENTRY *entry = 0;
+ i.next (entry);
+ PeerObject *obj = entry->item();
+ obj->dump_detail (strm);
+ count_inv += obj->num_invocations();
+ }
+ strm << "Total of " << count_inv << " invocations " << endl;
+}
+
+void
+PeerProcess::dump_invocation_detail (ostream &strm)
+{
+ strm << "\n " << this->invocations_.size() << " Invocations with " << this->ident_ << ":" << endl;
+ Invocation *inv = 0;
+ for (ACE_DLList_Iterator<Invocation> i(this->invocations_);
+ !i.done();
+ i.advance())
+ {
+ i.next(inv);
+ inv->dump_detail(strm, 0);
+ }
+
+}
diff --git a/TAO/utils/logWalker/PeerProcess.h b/TAO/utils/logWalker/PeerProcess.h
new file mode 100644
index 00000000000..688bbcc9d05
--- /dev/null
+++ b/TAO/utils/logWalker/PeerProcess.h
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+
+// $Id$
+//
+
+#ifndef LOG_WALKER_PEER_PROCESS_H
+#define LOG_WALKER_PEER_PROCESS_H
+
+#include "ace/SString.h"
+#include "ace/Synch.h"
+#include "ace/Hash_Map_Manager.h"
+#include "ace/Containers.h"
+#include "ace/streams.h"
+
+class PeerObject;
+class HostProcess;
+class Invocation;
+class Session;
+
+typedef ACE_Hash_Map_Manager<u_long, PeerObject*, ACE_Null_Mutex> PeerObjectTable;
+typedef ACE_DLList<Invocation> InvocationList;
+
+class PeerProcess
+{
+public:
+ static char *nextIdent(void);
+ PeerProcess (const char *text,
+ size_t offset,
+ bool as_client,
+ const char *target_addr,
+ long handle_);
+ ~PeerProcess (void);
+ void handle (long h);
+ long handle (void) const;
+ bool is_client (void) const;
+ const char * id (void) const;
+
+ void set_owner (HostProcess *host);
+ HostProcess *owner (void);
+
+ void match_hosts (Session *session);
+ void set_addr (const char *addr, bool local);
+ bool match_local (const char *addr) const;
+
+ void close (size_t offset);
+ bool is_closed (void) const;
+
+ Invocation *new_invocation (size_t req_id);
+ Invocation *find_invocation (size_t req_id);
+ Invocation *find_invocation_size (size_t len);
+
+ PeerObject *object_for(const char *oid, size_t len);
+
+ void dump_summary (ostream &strm);
+ void dump_object_detail (ostream &strm);
+ void dump_invocation_detail (ostream &strm);
+
+private:
+ char *ident_;
+ HostProcess *owner_;
+ HostProcess *remote_;
+ ACE_CString local_addr_;
+ ACE_CString remote_addr_;
+ long handle_;
+ bool client_;
+ ACE_CString origin_;
+ size_t origin_offset_;
+ size_t closed_offset_;
+ PeerObjectTable objects_;
+ InvocationList invocations_;
+};
+
+#endif // LOG_WALKER_PEER_PROCESS_H
diff --git a/TAO/utils/logWalker/README b/TAO/utils/logWalker/README
new file mode 100644
index 00000000000..4e2bd883ffe
--- /dev/null
+++ b/TAO/utils/logWalker/README
@@ -0,0 +1,118 @@
+$Id$
+
+This utility is intended to assist in the analysis of large debug output
+files generated with -ORBDebuglevel 10. The utility summarizes thread,
+connection, and invocation details for a collection of related processes.
+
+This is a work in progress. It currently is limited to parsing logs of
+IIOP based apps only.
+
+The executable is installed as $ACE_ROOT/bin/tao_logWalker.
+
+The command line options are:
+
+ -t <version> where <version> represents a TAO minor version
+ number, currently only 1.5 and 1.6 are supported.
+ As variations in logfile output bound to version
+ are found, this option will expand and may include
+ micro release numbers as well. Default is 1.6.
+
+ -o <filename> redirects the output to the named file rather than
+ standard out.
+
+ -p <name=value> allows the tagging of processes participating in
+ a logged run, but for which no log file exists. The
+ name in this case is some alias which will appear in
+ the output, and value is the TCP endpoint used by
+ the phantom process.
+
+ -a <name=value> allows for substitution of addresses. Some endpoints
+ may be logged using a hostname, while other instances
+ may appear as an IP address. This is a simple means
+ of substituting one for the other to improve the
+ recognition of a peer process.
+
+ -m <filename> read argument from the named manifest file. For
+ repeated analysis of may perhaps distributed log files,
+ use a manifest file to minimize keying in long command
+ lines. Each line of the file contains one full argument.
+
+ [alias=]logfile provide as many log files as needed. The optional
+ alias gives a way to assign a useful name to the process
+ that generated the log output in the file. If many
+ processes shared a logfile so that their output is
+ comingled or consecutive, each process instance will be
+ given an indexed alias such as alias_1, alias_2, etc.
+
+Below is a sample output resulting from a run of tests/Hello, which can be
+reproduced by running: ./tao_logWalker -m hello.mft
+
+
+Session summary report: 2 Processes detected.
+Host process HelloServer pid(8447) from logfile helloServer.log
+ listening on phil.ociweb.com:33152, 10.201.200.173:33152
+ 1 threads, server to 1
+Host process HelloClient pid(8448) from logfile helloClient.log
+ listening on 10.201.200.173:40203
+ 1 threads, client to 1
+
+
+
+Session detail threads report:
+
+Host process HelloServer pid (8447) thread details:
+ Thread[1] tid = 2147483647 2 encounters
+
+Host process HelloClient pid (8448) thread details:
+ Thread[1] tid = 2147483647 2 encounters
+
+
+
+Session detail peer process report:
+
+Host process HelloServer pid (8447) peer processes:
+0 clients
+1 servers
+ peer process proc_0 handle[8] as server to HelloClient referenced 1 objects in 2 invocations closed on line 71
+
+Host process HelloClient pid (8448) peer processes:
+1 clients
+ peer process proc_1 handle[7] as client on 10.201.200.173:40203 to HelloServer referenced 1 objects in 2 invocations closed on line 77
+0 servers
+
+
+
+Session detail object report:
+
+Host process HelloServer pid (8447) peer objects:
+1 Objects referenced in proc_0:
+0 has 2 invocations
+Total of 2 invocations
+
+
+Host process HelloClient pid (8448) peer objects:
+1 Objects referenced in proc_1:
+0 has 2 invocations
+Total of 2 invocations
+
+
+
+
+Session detail invocation report:
+
+Host process HelloServer pid (8447) invocations:
+
+ 2 Invocations with proc_0:
+ 1 for obj_0 from HelloClient [get_string] Request, line 30 Thread[1] Reply, line 37 log offset = 7
+ 2 for obj_0 from HelloClient [shutdown] Request, line 58 Thread[1] oneway
+
+Host process HelloServer pid (8447) end invocation report
+
+Host process HelloClient pid (8448) invocations:
+
+ 2 Invocations with proc_1:
+ 1 to obj_0 in HelloServer [get_string] Request, line 27 Thread[1] Reply, line 49 log offset = 22
+ 2 to obj_0 in HelloServer [shutdown] Request, line 62 Thread[1] oneway
+
+Host process HelloClient pid (8448) end invocation report
+
diff --git a/TAO/utils/logWalker/Session.cpp b/TAO/utils/logWalker/Session.cpp
new file mode 100644
index 00000000000..386f88cf12b
--- /dev/null
+++ b/TAO/utils/logWalker/Session.cpp
@@ -0,0 +1,175 @@
+// $Id$
+
+#include "Session.h"
+#include "HostProcess.h"
+#include "Log.h"
+#include "ace/OS_NS_strings.h"
+#include "ace/SString.h"
+
+long
+Session::tao_version_ = 160;
+
+Session::Session (void)
+{
+ ACE_CString n ("localhost");
+ ACE_CString v ("127.0.0.1");
+ this->alt_addrs_.bind (n,v);
+}
+
+Session::~Session (void)
+{
+ for (Processes::iterator i = processes_.begin();
+ i != processes_.end();
+ i++)
+ {
+ delete i->item();
+ }
+}
+
+void
+Session::set_tao_version (ACE_TCHAR *str)
+{
+ if (ACE_OS::strncmp(str, ACE_TEXT("1.5"), 3)== 0)
+ tao_version_ = 150;
+ else if (ACE_OS::strncmp (str, ACE_TEXT("1.6"), 3) == 0)
+ tao_version_ = 160;
+}
+
+long
+Session::tao_version (void)
+{
+ return tao_version_;
+}
+
+void
+Session::add_process (HostProcess *proc)
+{
+ if (processes_.bind(proc->pid(),proc) != 0)
+ ACE_ERROR ((LM_ERROR,
+ "Session::add_process could not bind pid %d\n",
+ proc->pid()));
+}
+
+void
+Session::alternate_address (const char *addrspec)
+{
+ const char *equal = ACE_OS::strchr(addrspec,'=');
+ if (equal == 0)
+ return;
+ ACE_CString name (addrspec,(equal - addrspec));
+ ACE_CString value (equal+1);
+ this->alt_addrs_.bind(name,value);
+}
+
+void
+Session::default_service (const char *addrspec)
+{
+ const char *equal = ACE_OS::strchr(addrspec,'=');
+ if (equal == 0)
+ return;
+ ACE_CString name (addrspec,(equal - addrspec));
+ ACE_CString endpoint (equal+1);
+
+ static long next_def_pid = 0;
+ --next_def_pid;
+ HostProcess *hp = new HostProcess ("defaulted",next_def_pid);
+ hp->proc_name(name);
+ hp->add_endpoint (endpoint);
+ this->processes_.bind(next_def_pid,hp);
+}
+
+HostProcess *
+Session::find_process (long pid)
+{
+ Processes::ENTRY *entry;
+ if (this->processes_.find(pid,entry) == 0)
+ return entry->item();
+ else
+ return 0;
+}
+
+HostProcess *
+Session::find_host (const char *endpoint)
+{
+ ACE_CString test(endpoint);
+ ACE_CString alternate;
+ if (this->alt_addrs_.find(test,alternate) == 0)
+ test = alternate;
+ for (Processes::CONST_ITERATOR i (this->processes_); !i.done(); i.advance())
+ {
+ Processes::ENTRY *entry;
+ if (i.next(entry) == 0)
+ break;
+ if (entry->item()->has_endpoint(test))
+ return entry->item();
+ }
+ return 0;
+}
+
+void
+Session::dump (ostream &strm) const
+{
+ // report session metrics
+
+ strm << "Session summary report: "
+ << this->processes_.current_size() << " Processes detected." << endl;
+ for (Processes::CONST_ITERATOR i (this->processes_); !i.done(); i.advance())
+ {
+ Processes::ENTRY *entry;
+ if (i.next(entry) == 0)
+ continue;
+ entry->item()->dump_summary (strm);
+ }
+
+ strm << "\n\n\nSession detail threads report: " << endl;
+ for (Processes::CONST_ITERATOR i (this->processes_); !i.done(); i.advance())
+ {
+ Processes::ENTRY *entry;
+ if (i.next(entry) == 0)
+ continue;
+ entry->item()->dump_thread_detail (strm);
+ }
+
+ strm << "\n\n\nSession detail peer process report: " << endl;
+ for (Processes::CONST_ITERATOR i (this->processes_); !i.done(); i.advance())
+ {
+ Processes::ENTRY *entry;
+ if (i.next(entry) == 0)
+ continue;
+ entry->item()->dump_peer_detail (strm);
+ }
+
+ strm << "\n\n\nSession detail object report: " << endl;
+ for (Processes::CONST_ITERATOR i (this->processes_); !i.done(); i.advance())
+ {
+ Processes::ENTRY *entry;
+ if (i.next(entry) == 0)
+ continue;
+ entry->item()->dump_object_detail (strm);
+ }
+
+ strm << "\n\n\nSession detail invocation report: " << endl;
+ for (Processes::CONST_ITERATOR i (this->processes_); !i.done(); i.advance())
+ {
+ Processes::ENTRY *entry;
+ if (i.next(entry) == 0)
+ continue;
+ entry->item()->dump_invocation_detail (strm);
+ }
+}
+
+
+// iterate over the collection of host processes to associate peer
+// processes via endpoints.
+void
+Session::reconcile (void)
+{
+ for (Processes::CONST_ITERATOR i (this->processes_); !i.done(); i.advance())
+ {
+ Processes::ENTRY *entry;
+ if (i.next(entry) == 0)
+ continue;
+ entry->item()->reconcile_peers(this);
+ }
+
+}
diff --git a/TAO/utils/logWalker/Session.h b/TAO/utils/logWalker/Session.h
new file mode 100644
index 00000000000..6d30b843192
--- /dev/null
+++ b/TAO/utils/logWalker/Session.h
@@ -0,0 +1,44 @@
+// -*- C++ -*-
+
+// $Id$
+//
+
+#ifndef LOG_WALKER_SESSION_H
+#define LOG_WALKER_SESSION_H
+
+#include "ace/Hash_Map_Manager.h"
+#include "ace/SString.h"
+#include "ace/Synch.h"
+
+class Log;
+class HostProcess;
+
+typedef ACE_Hash_Map_Manager<long, HostProcess *, ACE_Null_Mutex> Processes;
+typedef ACE_Hash_Map_Manager<ACE_CString, ACE_CString, ACE_Null_Mutex> AltAddresses;
+
+class Session
+{
+public:
+ Session ();
+
+ ~Session (void);
+
+ void add_process (HostProcess *proc);
+ HostProcess *find_process (long pid);
+ HostProcess *find_host (const char *endpoint);
+ void reconcile (void);
+
+ static void set_tao_version (ACE_TCHAR *str);
+ static long tao_version (void);
+ void alternate_address (const char *string);
+ void default_service (const char *string);
+
+ void dump (ostream &strm) const;
+
+private:
+ Processes processes_;
+ AltAddresses alt_addrs_;
+ static long tao_version_;
+};
+
+#endif // LOG_WALKER_SESSION_H
diff --git a/TAO/utils/logWalker/Thread.cpp b/TAO/utils/logWalker/Thread.cpp
new file mode 100644
index 00000000000..894f78fabc4
--- /dev/null
+++ b/TAO/utils/logWalker/Thread.cpp
@@ -0,0 +1,133 @@
+// $Id$
+
+#include "Thread.h"
+#include "Invocation.h"
+#include "PeerProcess.h"
+
+#include "ace/OS_NS_stdio.h"
+
+Thread::Thread (long tid, const char *alias)
+ : id_(tid),
+ alias_ (alias),
+ max_depth_ (0),
+ encounters_ (0),
+ nested_ (0),
+ pending_(),
+ incoming_(0),
+ new_connection_(0),
+ giop_target_(0)
+{
+}
+
+void
+Thread::pending_peer (PeerProcess *pp)
+{
+ this->new_connection_ = pp;
+}
+
+PeerProcess *
+Thread::pending_peer (void) const
+{
+ return this->new_connection_;
+}
+
+void
+Thread::enter_wait (PeerProcess *pp)
+{
+ this->pending_.push (pp);
+ this->encounters_++;
+ if (this->pending_.size() > this->max_depth_)
+ this->max_depth_ = this->pending_.size();
+ if (this->pending_.size() > 1)
+ this->nested_++;
+}
+
+void
+Thread::exit_wait (PeerProcess *pp, size_t linenum)
+{
+ PeerProcess *old;
+ if (this->pending_.pop(old) == -1)
+ return;
+ while (old != pp)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Line %d, Ending an invocation to peer %s, but most recent started"
+ " is to peer %s\n", linenum, pp->id(), old->id()));
+ // this->pending_.push(old);
+ if (this->pending_.pop(old) == -1)
+ return;
+ }
+}
+
+long
+Thread::max_depth (void) const
+{
+ return this->max_depth_;
+}
+
+long
+Thread::encounters (void) const
+{
+ return this->encounters_;
+}
+
+long
+Thread::id (void) const
+{
+ return this->id_;
+}
+
+const ACE_CString &
+Thread::alias (void) const
+{
+ return this->alias_;
+}
+
+void
+Thread::incoming_from (PeerProcess *pp)
+{
+ this->incoming_ = pp;
+}
+
+PeerProcess *
+Thread::incoming (void) const
+{
+ return this->incoming_;
+}
+
+Invocation::GIOP_Buffer *
+Thread::giop_target (void)
+{
+ return this->giop_target_;
+}
+
+void
+Thread::set_giop_target (Invocation::GIOP_Buffer *buffer)
+{
+ this->giop_target_ = buffer;
+}
+
+void
+Thread::dump_detail (ostream &strm)
+{
+ strm << " " << this->alias_ << " tid = " << this->id_
+ << "\t" << this->encounters_ << " encounters";
+ if (nested_ > 0)
+ strm <<", with " << this->nested_ << " nested upcalls, max depth "
+ << this->max_depth_;
+ strm << endl;
+}
+
+void
+Thread::dump_invocations (ostream &strm)
+{
+ strm << " " << this->alias_ << " handled " << this->invocations_.size() << " invocations" << endl;
+ for (ACE_DLList_Iterator <Invocation> i(this->invocations_);
+ !i.done();
+ i.advance())
+ {
+ Invocation *inv;
+ i.next(inv);
+ inv->dump_detail (strm,0);
+ }
+}
diff --git a/TAO/utils/logWalker/Thread.h b/TAO/utils/logWalker/Thread.h
new file mode 100644
index 00000000000..adc92a300c1
--- /dev/null
+++ b/TAO/utils/logWalker/Thread.h
@@ -0,0 +1,50 @@
+// -*- C++ -*-
+
+// $Id$
+//
+
+#ifndef LOG_WALKER_THREAD_H
+#define LOG_WALKER_THREAD_H
+
+#include "ace/SString.h"
+#include "ace/Synch.h"
+#include "ace/Containers.h"
+#include "ace/Hash_Map_Manager.h"
+#include "Invocation.h"
+#include "PeerProcess.h"
+
+typedef ACE_Unbounded_Stack<PeerProcess *> UpcallStack;
+
+class Thread
+{
+public:
+ Thread (long tid, const char *alias);
+ long max_depth (void) const;
+ long encounters (void) const;
+ long id (void) const;
+ const ACE_CString &alias (void) const;
+ void incoming_from (PeerProcess *);
+ PeerProcess *incoming (void) const;
+ void enter_wait (PeerProcess *);
+ void exit_wait (PeerProcess *, size_t linenum);
+ Invocation::GIOP_Buffer *giop_target (void);
+ void set_giop_target (Invocation::GIOP_Buffer *buffer);
+ void dump_detail (ostream &strm);
+ void dump_invocations (ostream &strm);
+ PeerProcess *pending_peer (void) const;
+ void pending_peer (PeerProcess *pp);
+
+private:
+ long id_;
+ ACE_CString alias_;
+ size_t max_depth_;
+ long encounters_;
+ long nested_;
+ UpcallStack pending_;
+ PeerProcess *incoming_;
+ PeerProcess *new_connection_;
+ Invocation::GIOP_Buffer *giop_target_;
+ InvocationList invocations_;
+};
+
+#endif // LOG_WALKER_THREAD_H
diff --git a/TAO/utils/logWalker/hello.mft b/TAO/utils/logWalker/hello.mft
new file mode 100644
index 00000000000..419c8df4940
--- /dev/null
+++ b/TAO/utils/logWalker/hello.mft
@@ -0,0 +1,4 @@
+-t 1.5
+HelloServer=helloServer.log
+HelloClient=helloClient.log
+
diff --git a/TAO/utils/logWalker/helloClient.log b/TAO/utils/logWalker/helloClient.log
new file mode 100644
index 00000000000..d210e29119e
--- /dev/null
+++ b/TAO/utils/logWalker/helloClient.log
@@ -0,0 +1,86 @@
+TAO (8448|139740928042736) Initializing the process-wide services
+TAO (8448|139740928042736) Default ORB - global initialization completed.
+TAO (8448|139740928042736) Initializing the orb-specific services
+TAO (8448|139740928042736) Default_Resource_Factory - unable to create codeset manager.
+TAO (8448|139740928042736) ORB_Core: Codeset Manager not available
+TAO (8448|139740928042736) Loaded default protocol <IIOP_Factory>
+TAO (8448|139740928042736) created new ORB <>
+TAO (8448|139740928042736) - Transport_Cache_Manager::fill_set_i: current_size = 0, cache_maximum = 512
+TAO (8448|139740928042736) - Transport_Cache_Manager::purge: Cache size after purging is [0]
+TAO (8448|139740928042736) - IIOP_Connector::begin_connection, to <phil.ociweb.com:33152> which should block
+TAO (8448|139740928042736) - Transport_Connector::caching connection before wait_for_connection_completion 181029421 = [7732384]
+TAO (8448|139740928042736) - Transport_Cache_Manager::bind_i: Transport[7732384] @ hash{181029421}
+TAO (8448|139740928042736) - Transport_Cache_Manager::bind_i: Bound Transport[7732384] @ hash:index{181029421:0} state CONNECTING. Cache size is [1]
+TAO (8448|139740928042736) - Transport_Connector::wait_for_connection_completion, going to wait for connection completion on transport[7732384]
+TAO (8448|139740928042736) - Leader_Follower[7732384]::wait_for_event, (leader) enter reactor event loop
+TAO (8448|139740928042736) - IIOP_Connection_Handler::open, The local addr is <10.201.200.173:40203>
+TAO (8448|139740928042736) - IIOP_Connection_Handler::open, IIOP connection to peer <10.201.200.173:33152> on 7
+TAO (8448|139740928042736) - Leader_Follower[7732384]::wait_for_event, (leader) exit reactor event loop
+TAO (8448|139740928042736) - Transport_Connector::wait_for_connection_completion, transport [7], wait done result = 0
+TAO (8448|139740928042736) - IIOP_Connector::make_connection, new connected connection to <phil.ociweb.com:33152> on Transport[7]
+TAO (8448|139740928042736) - Transport[7]::register_handler
+TAO (8448|139740928042736) - Transport_Connector::connect, opening Transport[7] in TAO_CLIENT_ROLE
+TAO (8448|139740928042736) - Transport_Cache_Manager::is_transport_available:Returns True, Transport[7] state: IDLE_BUT_NOT_PURGABLE connected: yes
+TAO (8448|139740928042736) - Transport_Cache_Manager::find_i: Found available Transport[7] @hash:index {181029421:0}(
+TAO (8448|139740928042736) - Transport_Connector::connect, got an existing connected Transport[7] in role TAO_CLIENT_ROLE
+TAO (8448|139740928042736) - Muxed_TMS[7]::request_id, <1>
+TAO (8448|139740928042736) - GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 64 data bytes, my endian, Type Request[1]
+GIOP message - HEXDUMP 76 bytes
+47 49 4f 50 01 02 01 00 40 00 00 00 01 00 00 00 GIOP....@.......
+03 00 00 00 00 00 00 00 1b 00 00 00 14 01 0f 00 ................
+52 53 54 44 87 2e 4a 13 c9 01 00 00 00 00 00 01 RSTD..J.........
+00 00 00 01 00 00 00 00 0b 00 00 00 67 65 74 5f ............get_
+73 74 72 69 6e 67 00 00 00 00 00 00 string......
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue, byte_count = 76
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue, after transfer, bc = 0, all_sent = 1, ml = 0
+TAO (8448|139740928042736) - Transport[7]::drain_queue_helper, byte_count = 76, head_is_empty = 1
+TAO (8448|139740928042736) - Transport[7]::drain_queue_i, helper retval = 1
+TAO (8448|139740928042736) - Transport[7]::make_idle
+TAO (8448|139740928042736) - Leader_Follower[7]::wait_for_event, (leader) enter reactor event loop
+TAO (8448|139740928042736) - Connection_Handler[7]::handle_input, handle = 7/7
+TAO (8448|139740928042736) - Transport[7]::handle_input
+TAO (8448|139740928042736) - Transport[7]::process_queue_head, 0 enqueued
+TAO (8448|139740928042736) - Transport[7]::handle_input_parse_data, enter
+TAO (8448|139740928042736) - Transport[7]::handle_input_parse_data, read 41 bytes
+TAO (8448|139740928042736) - GIOP_Message_State::parse_message_header_i
+TAO (8448|139740928042736) - GIOP_Message_State::get_version_info
+TAO (8448|139740928042736) - GIOP_Message_State::get_byte_order_info
+TAO (8448|139740928042736) - Transport[7]::process_parsed_messages, entering (missing data == 0)
+TAO (8448|139740928042736) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 29 data bytes, my endian, Type Reply[1]
+GIOP message - HEXDUMP 41 bytes
+47 49 4f 50 01 02 01 01 1d 00 00 00 01 00 00 00 GIOP............
+00 00 00 00 00 00 00 00 0d 00 00 00 48 65 6c 6c ............Hell
+6f 20 74 68 65 72 65 21 00 o there!.
+TAO (8448|139740928042736) - TAO_Muxed_TMS::dispatch_reply, id = 1
+TAO (8448|139740928042736) - Connection_Handler[7]::handle_input, handle = 7/7, retval = 0
+TAO (8448|139740928042736) - Leader_Follower[7]::wait_for_event, (leader) exit reactor event loop
+(8448|139740928042736) - string returned <Hello there!>
+TAO (8448|139740928042736) - Transport_Cache_Manager::is_transport_available:Returns True, Transport[7] state: IDLE_AND_PURGABLE connected: yes
+TAO (8448|139740928042736) - Transport_Cache_Manager::find_i: Found available Transport[7] @hash:index {181029421:0}(
+TAO (8448|139740928042736) - Transport_Connector::connect, got an existing connected Transport[7] in role TAO_CLIENT_ROLE
+TAO (8448|139740928042736) - Muxed_TMS[7]::request_id, <2>
+TAO (8448|139740928042736) - GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 64 data bytes, my endian, Type Request[2]
+GIOP message - HEXDUMP 76 bytes
+47 49 4f 50 01 02 01 00 40 00 00 00 02 00 00 00 GIOP....@.......
+00 00 00 00 00 00 00 00 1b 00 00 00 14 01 0f 00 ................
+52 53 54 44 87 2e 4a 13 c9 01 00 00 00 00 00 01 RSTD..J.........
+00 00 00 01 00 00 00 00 09 00 00 00 73 68 75 74 ............shut
+64 6f 77 6e 00 67 00 00 00 00 00 00 down.g......
+TAO (8448|139740928042736) - Transport[7]::send_asynchronous_message_i, trying to send the message (ml = 76)
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue, byte_count = 76
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue, after transfer, bc = 0, all_sent = 1, ml = 0
+TAO (8448|139740928042736) - Transport[7]::drain_queue_helper, byte_count = 76, head_is_empty = 1
+TAO (8448|139740928042736) - Transport[7]::drain_queue_i, helper retval = 1
+TAO (8448|139740928042736) - Transport[7]::make_idle
+CORBA::ORB::destroy() called on ORB <>.
+Destroying ORB <>
+TAO (8448|139740928042736) - Connection_Handler[7]::close_connection_eh, purging entry from cache
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue_i, cleaning up complete queue
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue_i, discarded 0 messages, 0 bytes.
+TAO (8448|139740928042736) - Connection_Handler[7]::close_connection_eh, removing from the reactor
+TAO (8448|139740928042736) - Connection_Handler[7]::close_connection_eh, cancel all timers
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue_i, cleaning up complete queue
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue_i, discarded 0 messages, 0 bytes.
+TAO (8448|139740928042736) - Connection_Handler[7]::close_connection_eh
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue_i, cleaning up complete queue
+TAO (8448|139740928042736) - Transport[7]::cleanup_queue_i, discarded 0 messages, 0 bytes.
diff --git a/TAO/utils/logWalker/helloServer.log b/TAO/utils/logWalker/helloServer.log
new file mode 100644
index 00000000000..d4bc2c8c2dc
--- /dev/null
+++ b/TAO/utils/logWalker/helloServer.log
@@ -0,0 +1,80 @@
+TAO (8447|140673593390832) Initializing the process-wide services
+TAO (8447|140673593390832) Default ORB - global initialization completed.
+TAO (8447|140673593390832) Initializing the orb-specific services
+TAO (8447|140673593390832) Default_Resource_Factory - unable to create codeset manager.
+TAO (8447|140673593390832) ORB_Core: Codeset Manager not available
+TAO (8447|140673593390832) Loaded default protocol <IIOP_Factory>
+TAO (8447|140673593390832) created new ORB <>
+TAO (8447|140673593390832) - IIOP_Acceptor::open_i, listening on: <phil.ociweb.com:33152>
+TAO (8447|140673593390832) - ORB_Core::run, start [run]
+TAO (8447|140673593390832) - ORB_Core::run, calling handle_events()
+TAO (8447|140673593390832) - Transport_Cache_Manager::fill_set_i: current_size = 0, cache_maximum = 512
+TAO (8447|140673593390832) - Transport_Cache_Manager::purge: Cache size after purging is [0]
+TAO (8447|140673593390832) - Concurrency_Strategy::activate_svc_handler, opened as TAO_SERVER_ROLE
+TAO (8447|140673593390832) - IIOP_Connection_Handler::open, The local addr is <10.201.200.173:33152>
+TAO (8447|140673593390832) - IIOP_Connection_Handler::open, IIOP connection to peer <10.201.200.173:40203> on 8
+TAO (8447|140673593390832) - Transport_Cache_Manager::bind_i: Transport[8] @ hash{181036472}
+TAO (8447|140673593390832) - Transport_Cache_Manager::bind_i: Bound Transport[8] @ hash:index{181036472:0} state IDLE_AND_PURGABLE. Cache size is [1]
+TAO (8447|140673593390832) - Transport[8]::register_handler
+TAO (8447|140673593390832) - ORB_Core::run, handle_events() returns 0
+TAO (8447|140673593390832) - ORB_Core::run, calling handle_events()
+TAO (8447|140673593390832) - Connection_Handler[8]::handle_input, handle = 8/8
+TAO (8447|140673593390832) - Transport[8]::handle_input
+TAO (8447|140673593390832) - Transport[8]::process_queue_head, 0 enqueued
+TAO (8447|140673593390832) - Transport[8]::handle_input_parse_data, enter
+TAO (8447|140673593390832) - Transport[8]::handle_input_parse_data, read 76 bytes
+TAO (8447|140673593390832) - GIOP_Message_State::parse_message_header_i
+TAO (8447|140673593390832) - GIOP_Message_State::get_version_info
+TAO (8447|140673593390832) - GIOP_Message_State::get_byte_order_info
+TAO (8447|140673593390832) - Transport[8]::process_parsed_messages, entering (missing data == 0)
+TAO (8447|140673593390832) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 64 data bytes, my endian, Type Request[1]
+GIOP message - HEXDUMP 76 bytes
+47 49 4f 50 01 02 01 00 40 00 00 00 01 00 00 00 GIOP....@.......
+03 00 00 00 00 00 00 00 1b 00 00 00 14 01 0f 00 ................
+52 53 54 44 87 2e 4a 13 c9 01 00 00 00 00 00 01 RSTD..J.........
+00 00 00 01 00 00 00 00 0b 00 00 00 67 65 74 5f ............get_
+73 74 72 69 6e 67 00 00 00 00 00 00 string......
+TAO (8447|140673593390832) - GIOP_Message_Base::dump_msg, send GIOP v1.2 msg, 29 data bytes, my endian, Type Reply[1]
+GIOP message - HEXDUMP 41 bytes
+47 49 4f 50 01 02 01 01 1d 00 00 00 01 00 00 00 GIOP............
+00 00 00 00 00 00 00 00 0d 00 00 00 48 65 6c 6c ............Hell
+6f 20 74 68 65 72 65 21 00 o there!.
+TAO (8447|140673593390832) - Transport[8]::cleanup_queue, byte_count = 41
+TAO (8447|140673593390832) - Transport[8]::cleanup_queue, after transfer, bc = 0, all_sent = 1, ml = 0
+TAO (8447|140673593390832) - Transport[8]::drain_queue_helper, byte_count = 41, head_is_empty = 1
+TAO (8447|140673593390832) - Transport[8]::drain_queue_i, helper retval = 1
+TAO (8447|140673593390832) - Connection_Handler[8]::handle_input, handle = 8/8, retval = 0
+TAO (8447|140673593390832) - ORB_Core::run, handle_events() returns 0
+TAO (8447|140673593390832) - ORB_Core::run, calling handle_events()
+TAO (8447|140673593390832) - Connection_Handler[8]::handle_input, handle = 8/8
+TAO (8447|140673593390832) - Transport[8]::handle_input
+TAO (8447|140673593390832) - Transport[8]::process_queue_head, 0 enqueued
+TAO (8447|140673593390832) - Transport[8]::handle_input_parse_data, enter
+TAO (8447|140673593390832) - Transport[8]::handle_input_parse_data, read 76 bytes
+TAO (8447|140673593390832) - GIOP_Message_State::parse_message_header_i
+TAO (8447|140673593390832) - GIOP_Message_State::get_version_info
+TAO (8447|140673593390832) - GIOP_Message_State::get_byte_order_info
+TAO (8447|140673593390832) - Transport[8]::process_parsed_messages, entering (missing data == 0)
+TAO (8447|140673593390832) - GIOP_Message_Base::dump_msg, recv GIOP v1.2 msg, 64 data bytes, my endian, Type Request[2]
+GIOP message - HEXDUMP 76 bytes
+47 49 4f 50 01 02 01 00 40 00 00 00 02 00 00 00 GIOP....@.......
+00 00 00 00 00 00 00 00 1b 00 00 00 14 01 0f 00 ................
+52 53 54 44 87 2e 4a 13 c9 01 00 00 00 00 00 01 RSTD..J.........
+00 00 00 01 00 00 00 00 09 00 00 00 73 68 75 74 ............shut
+64 6f 77 6e 00 67 00 00 00 00 00 00 down.g......
+TAO (8447|140673593390832) - Connection_Handler[8]::handle_input, handle = 8/8, retval = 0
+TAO (8447|140673593390832) - ORB_Core::run, handle_events() returns 0
+TAO (8447|140673593390832) - ORB_Core::run, ends with result = 0
+(8447|140673593390832) server - event loop finished
+CORBA::ORB::destroy() called on ORB <>.
+Destroying ORB <>
+TAO (8447|140673593390832) - Connection_Handler[8]::close_connection_eh, purging entry from cache
+TAO (8447|140673593390832) - Transport[8]::cleanup_queue_i, cleaning up complete queue
+TAO (8447|140673593390832) - Transport[8]::cleanup_queue_i, discarded 0 messages, 0 bytes.
+TAO (8447|140673593390832) - Connection_Handler[8]::close_connection_eh, removing from the reactor
+TAO (8447|140673593390832) - Connection_Handler[8]::close_connection_eh, cancel all timers
+TAO (8447|140673593390832) - Transport[8]::cleanup_queue_i, cleaning up complete queue
+TAO (8447|140673593390832) - Transport[8]::cleanup_queue_i, discarded 0 messages, 0 bytes.
+TAO (8447|140673593390832) - Connection_Handler[8]::close_connection_eh
+TAO (8447|140673593390832) - Transport[8]::cleanup_queue_i, cleaning up complete queue
+TAO (8447|140673593390832) - Transport[8]::cleanup_queue_i, discarded 0 messages, 0 bytes.
diff --git a/TAO/utils/logWalker/logWalker.cpp b/TAO/utils/logWalker/logWalker.cpp
new file mode 100644
index 00000000000..e5ca05a10e6
--- /dev/null
+++ b/TAO/utils/logWalker/logWalker.cpp
@@ -0,0 +1,143 @@
+// $Id$
+
+// Utility to traverse and simplify verbose log files.
+//
+// The goal is to take a collection of log files and extract details
+// related to connections, objects, and invocations to separate out
+// perhaps multiple processes, or at least threads to get a sense of
+// invocation lifecycle.
+//
+// Ideally a collection of files could be used so that invocations
+// that traverse many processes could be tracked.
+
+#include "ace/OS_NS_stdio.h"
+#include "ace/Log_Msg.h"
+#include "ace/streams.h"
+#include "ace/OS_NS_strings.h"
+#include "ace/Tokenizer_T.h"
+
+#include "Invocation.h"
+#include "PeerObject.h"
+#include "PeerProcess.h"
+#include "Session.h"
+#include "Log.h"
+
+ACE_TCHAR *outfile = 0;
+
+void
+parse_manifest (Session &session, ACE_TCHAR *filename)
+{
+ // get list of logs, aliases, and other config from file
+ ifstream strm (ACE_TEXT_ALWAYS_CHAR (filename));
+ if (!strm.is_open())
+ {
+ ACE_DEBUG ((LM_DEBUG,"cannot open manifest file %C\n", filename));
+ return;
+ }
+ char buffer[500];
+ while (!strm.eof())
+ {
+ strm.getline(buffer,500);
+ if (buffer[0] == '\0' ||
+ buffer[0] == '#')
+ {
+ continue;
+ }
+ if (buffer[0] == '-')
+ {
+ if (buffer[1] == 'o')
+ {
+ outfile = new ACE_TCHAR[ACE_OS::strlen(buffer) - 3];
+ ACE_OS::strcpy(buffer+3, ACE_TEXT_ALWAYS_CHAR(outfile));
+ continue;
+ }
+ if (buffer[1] == 't')
+ {
+ Session::set_tao_version (ACE_TEXT_CHAR_TO_TCHAR (buffer + 3));
+ continue;
+ }
+ if (buffer[1] == 'a')
+ {
+ session.alternate_address(buffer+3);
+ continue;
+ }
+ if (buffer[1] == 'p')
+ {
+ session.default_service (buffer+3);
+ continue;
+ }
+ }
+ if (ACE_OS::strchr(buffer,'=') == 0)
+ {
+ ACE_DEBUG ((LM_DEBUG,"Unparsable string: %s\n",
+ buffer));
+ return;
+ }
+ ACE_Tokenizer_T<char> tokens(buffer);
+ tokens.delimiter_replace('=', 0);
+ char *alias = tokens.next();
+ ACE_TString filename = ACE_TEXT_CHAR_TO_TCHAR(tokens.next());
+ Log log(session);
+ log.init(filename.c_str(), alias);
+ }
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ if (argc < 2)
+ {
+ ACE_ERROR ((LM_ERROR," At least one log file must be specified\n"));
+ return 0;
+ }
+ Session session;
+ for (int i = 1; i < argc; i++)
+ {
+ if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-o")) == 0)
+ {
+ outfile = argv[++i];
+ continue;
+ }
+ if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-m")) == 0)
+ {
+ parse_manifest (session, argv[++i]);
+ continue;
+ }
+ if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-t")) == 0)
+ {
+ Session::set_tao_version (argv[++i]);
+ continue;
+ }
+ if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-a")) == 0)
+ {
+ session.alternate_address (ACE_TEXT_ALWAYS_CHAR (argv[++i]));
+ continue;
+ }
+ if (ACE_OS::strcasecmp (argv[i], ACE_TEXT("-p")) == 0)
+ {
+ session.default_service (ACE_TEXT_ALWAYS_CHAR (argv[++i]));
+ continue;
+ }
+
+ Log log(session);
+ ACE_DEBUG ((LM_DEBUG,"Parsing file %s\n", argv[i]));
+ if (log.init(argv[i]) == 0)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "Could not parse log file %s\n", argv[i]));
+ continue;
+ }
+
+ }
+
+ session.reconcile();
+ ostream *strm;
+ if (outfile == 0)
+ strm = &cout;
+ else
+ strm = new ofstream(ACE_TEXT_ALWAYS_CHAR (outfile));
+
+ session.dump(*strm);
+
+ return 0;
+}
diff --git a/TAO/utils/logWalker/logWalker.mpc b/TAO/utils/logWalker/logWalker.mpc
new file mode 100644
index 00000000000..d97d8fb2bdf
--- /dev/null
+++ b/TAO/utils/logWalker/logWalker.mpc
@@ -0,0 +1,7 @@
+// -*- mpc -*-
+// $Id$
+
+project : aceexe, avoids_ace_for_tao {
+ exename = tao_logWalker
+ install = $(ACE_ROOT)/bin
+}
diff --git a/TAO/utils/monitor/monitor_client.cpp b/TAO/utils/monitor/monitor_client.cpp
index 774df466d0e..35e98ed761d 100644
--- a/TAO/utils/monitor/monitor_client.cpp
+++ b/TAO/utils/monitor/monitor_client.cpp
@@ -86,7 +86,7 @@ ACE_TMAIN (int argc, ACE_TCHAR *argv[])
/// Get the MC object reference that the client has exposed.
CORBA::Object_var obj =
- orb->string_to_object (ACE_TEXT_ALWAYS_CHAR (monitor_ior));
+ orb->string_to_object (monitor_ior);
if (CORBA::is_nil (obj.in ()))
{
diff --git a/TAO/utils/nslist/nslist.cpp b/TAO/utils/nslist/nslist.cpp
index 0fbe467f7f0..09c336d5810 100644
--- a/TAO/utils/nslist/nslist.cpp
+++ b/TAO/utils/nslist/nslist.cpp
@@ -359,22 +359,17 @@ namespace
//============================================================================
int
-ACE_TMAIN (int argcw, ACE_TCHAR *argvw[])
+ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
try
{
// Contact the orb
- ACE_Argv_Type_Converter argcon (argcw, argvw);
- orb = CORBA::ORB_init (argcon.get_argc (), argcon.get_ASCII_argv ());
+ orb = CORBA::ORB_init (argc, argv);
// Scan through the command line options
bool
failed = false,
showNSonly = false;
- int
- argc = argcon.get_argc ();
- ACE_TCHAR
- **argv = argcon.get_TCHAR_argv ();
ACE_TCHAR kindsep = ACE_TEXT('.');
ACE_TCHAR ctxsep[] = ACE_TEXT("/");
ACE_TCHAR *name = 0;
@@ -392,7 +387,7 @@ ACE_TMAIN (int argcw, ACE_TCHAR *argvw[])
{
ACE_DEBUG ((LM_DEBUG,
"Error: --ns requires an argument\n"));
- failed= true;
+ failed = true;
}
else
{
@@ -401,7 +396,7 @@ ACE_TMAIN (int argcw, ACE_TCHAR *argvw[])
{
ACE_DEBUG ((LM_DEBUG,
"Error: more than one --ns.\n"));
- failed= true;
+ failed = true;
}
else if (showNSonly)
{
@@ -457,7 +452,7 @@ ACE_TMAIN (int argcw, ACE_TCHAR *argvw[])
{
ACE_DEBUG ((LM_DEBUG,
"Error: --tree requires an argument\n"));
- failed= true;
+ failed = true;
}
else
{
@@ -479,7 +474,7 @@ ACE_TMAIN (int argcw, ACE_TCHAR *argvw[])
{
ACE_DEBUG ((LM_DEBUG,
"Error: --node requires an argument\n"));
- failed= true;
+ failed = true;
}
else
{